From 79630f2b33d36746218f14348e3569f441d1bc7e Mon Sep 17 00:00:00 2001 From: zhengchuyi Date: Fri, 17 Jul 2026 00:44:15 +0800 Subject: [PATCH 1/5] feat: feishu channel in runtime --- frontend/src/adk/client.ts | 27 +- frontend/src/create/CustomCreate.tsx | 50 +- frontend/src/create/IntelligentCreate.tsx | 20 +- frontend/src/create/codegen.ts | 309 +++++- frontend/src/create/configYaml.ts | 3 + frontend/src/create/types.ts | 7 + frontend/src/ui/ProjectPreview.css | 150 +++ frontend/src/ui/ProjectPreview.tsx | 234 ++++- pyproject.toml | 1 + tests/test_feishu_channel_extension.py | 174 +++- veadk/cli/cli_frontend.py | 154 ++- veadk/extensions/feishu_channel.py | 47 +- veadk/webui/assets/index-C2cC86E6.css | 10 + veadk/webui/assets/index-CmGE8RHW.js | 1052 +++++++++++++++++++++ veadk/webui/index.html | 4 +- 15 files changed, 2192 insertions(+), 50 deletions(-) create mode 100644 veadk/webui/assets/index-C2cC86E6.css create mode 100644 veadk/webui/assets/index-CmGE8RHW.js diff --git a/frontend/src/adk/client.ts b/frontend/src/adk/client.ts index ab21285e..24a016c5 100644 --- a/frontend/src/adk/client.ts +++ b/frontend/src/adk/client.ts @@ -351,6 +351,11 @@ export interface DeployAgentkitResult { agentName: string; runtimeId?: string; consoleUrl?: string; + feishuChannel?: { + enabled: boolean; + transport: string; + runtimeId?: string; + }; } /** One live progress frame streamed during a deployment. */ @@ -375,12 +380,28 @@ export async function deployAgentkitProject( name: string, files: { path: string; content: string }[], config: { region: string; projectName: string }, - opts?: { author?: string; onStage?: (s: DeployStage) => void }, + opts?: { + author?: string; + onStage?: (s: DeployStage) => void; + im?: { + feishu?: { + enabled: boolean; + }; + }; + envs?: { key: string; value: string }[]; + }, ): Promise { const res = await apiFetch("/web/deploy-agentkit", { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ name, files, config, author: opts?.author ?? "" }), + body: JSON.stringify({ + name, + files, + config, + author: opts?.author ?? "", + im: opts?.im, + envs: opts?.envs, + }), }); if (!res.ok) { const t = await res.text().catch(() => ""); @@ -411,6 +432,7 @@ export async function deployAgentkitProject( agentName: final.agentName, runtimeId: final.runtimeId, consoleUrl: final.consoleUrl, + feishuChannel: final.feishuChannel, }; } @@ -605,4 +627,3 @@ export async function getRuntimeDetail( } return res.json(); } - diff --git a/frontend/src/create/CustomCreate.tsx b/frontend/src/create/CustomCreate.tsx index cd89eada..278da4cd 100644 --- a/frontend/src/create/CustomCreate.tsx +++ b/frontend/src/create/CustomCreate.tsx @@ -82,6 +82,7 @@ type StepId = | "memory" | "knowledge" | "tracing" + | "deploy" | "subagents" | "review"; @@ -102,6 +103,7 @@ const STEPS: StepMeta[] = [ { id: "memory", label: "记忆", hint: "短期 / 长期", icon: Layers }, { id: "knowledge", label: "知识库", hint: "外部知识检索", icon: Database }, { id: "tracing", label: "观测", hint: "Tracing 与 A2UI", icon: Eye }, + { id: "deploy", label: "部署配置", hint: "飞书等运行入口", icon: Rocket }, { id: "subagents", label: "子 Agent", hint: "嵌套协作", icon: Boxes }, { id: "review", label: "完成", hint: "预览并创建", icon: Rocket }, ]; @@ -922,6 +924,11 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut // Auto-enable tracing when at least one exporter is chosen. patch({ tracingExporters: next, tracing: next.length > 0 ? true : node.tracing }); }; + const patchDeployment = (p: Partial>) => + setDraft((d) => ({ + ...d, + deployment: { ...(d.deployment ?? { feishuEnabled: false }), ...p }, + })); // Detail-pane branching is driven by the SELECTED node's type. const orchestrator = isOrchestratorType(node.agentType); @@ -951,6 +958,7 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut memory: node.memory.shortTerm || node.memory.longTerm, knowledge: node.knowledgebase, tracing: node.tracing || node.enableA2ui, + deploy: true, subagents: (node.subAgents?.length ?? 0) > 0, review: canFinish, }), @@ -963,7 +971,16 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut const navStepIds: StepId[] = orchestrator || a2a ? ["basic"] - : ["basic", "model", "tools", "skills", "memory", "knowledge", "tracing"]; + : [ + "basic", + "model", + "tools", + "skills", + "memory", + "knowledge", + "tracing", + ...(safePath.length === 0 ? (["deploy"] as StepId[]) : []), + ]; const navSteps = STEPS.filter((s) => navStepIds.includes(s.id)); const activeIndex = navSteps.findIndex((s) => s.id === activeId); @@ -1077,12 +1094,13 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut const handleDeploy = async ( proj: AgentProject, onStage?: (s: DeployStage) => void, + options?: Parameters[3], ) => { return deployAgentkitProject( proj.name, proj.files, { region: "cn-beijing", projectName: "default" }, - { author, onStage }, + { ...options, author, onStage }, ); }; @@ -1114,7 +1132,13 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut
- +
); @@ -1512,6 +1536,26 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut /> + {safePath.length === 0 && ( +
+
+ patchDeployment({ feishuEnabled: v })} + title="连接飞书" + desc="部署后在同一个 AgentKit runtime 内启动飞书 Channel,用飞书消息触发当前 Agent。" + icon={Globe} + /> + {draft.deployment?.feishuEnabled && ( +
+ + App ID、App Secret 等运行时变量请在生成项目后的预览页右侧“环境变量”面板中填写。 + +
+ )} +
+
+ )} )} diff --git a/frontend/src/create/IntelligentCreate.tsx b/frontend/src/create/IntelligentCreate.tsx index b58ca973..d3d7732a 100644 --- a/frontend/src/create/IntelligentCreate.tsx +++ b/frontend/src/create/IntelligentCreate.tsx @@ -2,6 +2,7 @@ import { useEffect, useRef, useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { Send, Sparkles, Bot, FolderTree, AlertCircle, Loader2 } from "lucide-react"; import { createSession, runSSE, getAgentInfo, deployAgentkitProject } from "../adk/client"; +import type { DeployStage } from "../adk/client"; import { applyEvent, emptyAcc, type Acc } from "../blocks"; import { Markdown } from "../ui/Markdown"; import { ProjectPreview } from "../ui/ProjectPreview"; @@ -204,11 +205,20 @@ export function IntelligentCreate({ userId, onBack, onCreate, onAgentAdded }: In return { project: parseProject(finalText), finalText }; } - const handleDeploy = async (proj: AgentProject) => { - return deployAgentkitProject(proj.name, proj.files, { - region: "cn-beijing", - projectName: "default", - }); + const handleDeploy = async ( + proj: AgentProject, + onStage?: (s: DeployStage) => void, + options?: Parameters[3], + ) => { + return deployAgentkitProject( + proj.name, + proj.files, + { + region: "cn-beijing", + projectName: "default", + }, + { ...options, onStage }, + ); }; const send = async () => { diff --git a/frontend/src/create/codegen.ts b/frontend/src/create/codegen.ts index 4a54c29b..864b4675 100644 --- a/frontend/src/create/codegen.ts +++ b/frontend/src/create/codegen.ts @@ -315,10 +315,20 @@ function renderEnvExample(env: EnvVar[]): string { return lines.join("\n") + "\n"; } -function renderRequirements(extras: Set): string { - const list = [...extras].sort(); - const pkg = list.length ? `veadk-python[${list.join(",")}]` : "veadk-python"; - return `${pkg}\nagentkit-sdk-python\ngoogle-adk\n`; +function renderRequirements(extras: Set, includeFeishuChannel: boolean): string { + const list = [...extras]; + if (includeFeishuChannel) { + list.push("extensions"); + } + const uniqueExtras = [...new Set(list)].sort(); + const versionSpec = includeFeishuChannel ? ">=0.5.33" : ""; + const pkg = uniqueExtras.length + ? `veadk-python[${uniqueExtras.join(",")}]${versionSpec}` + : `veadk-python${versionSpec}`; + const packages = includeFeishuChannel + ? [pkg, "lark-channel-sdk", "agentkit-sdk-python", "google-adk>=1.32.0,<2.0.0", "starlette<1.0.0"] + : [pkg, "agentkit-sdk-python", "google-adk>=1.32.0,<2.0.0", "starlette<1.0.0"]; + return `${packages.join("\n")}\n`; } function renderReadme(name: string, draft: AgentDraft): string { @@ -337,6 +347,10 @@ function renderReadme(name: string, draft: AgentDraft): string { "", "`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。", "", + "## 飞书机器人", + "", + "在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。", + "", ].join("\n"); } @@ -344,6 +358,13 @@ function renderReadme(name: string, draft: AgentDraft): string { export function generateProject(draft: AgentDraft): AgentProject { const pkg = ident(draft.name, "my_agent"); const acc: Acc = { imports: [], preLines: [], env: [...MODEL_ENV], extras: new Set(), usedNames: new Set() }; + const feishuChannelEnabled = Boolean(draft.deployment?.feishuEnabled); + if (feishuChannelEnabled) { + acc.env.push( + { key: "FEISHU_APP_ID", required: false, placeholder: "cli_xxx", comment: "飞书机器人 App ID(前端部署时填写)" }, + { key: "FEISHU_APP_SECRET", required: false, placeholder: "your-feishu-app-secret", comment: "飞书机器人 App Secret(前端部署时填写)" }, + ); + } buildAgent(acc, draft, "agent"); @@ -352,7 +373,12 @@ export function generateProject(draft: AgentDraft): AgentProject { // Add deployment-specific imports const deploymentImports = [ + "import asyncio", + "import inspect", "import os", + "import threading", + "import traceback", + "from contextlib import asynccontextmanager", "from pathlib import Path", "from agentkit.apps import AgentkitAgentServerApp", "from fastapi.staticfiles import StaticFiles", @@ -371,10 +397,261 @@ export function generateProject(draft: AgentDraft): AgentProject { # Deployment configuration HOST = os.getenv("HOST", "0.0.0.0") PORT = int(os.getenv("PORT", "8000")) +FEISHU_CHANNEL_ENABLED = ${feishuChannelEnabled ? "True" : "False"} + +def _env_bool(name: str, default: bool = False) -> bool: + raw = os.getenv(name) + if raw is None: + return default + return raw.strip().lower() in {"1", "true", "yes", "y", "on"} + +def _coalesce(*values): + for value in values: + if value: + return value + return "" + +def _read_attr(obj, *path): + cur = obj + for part in path: + if cur is None: + return None + cur = getattr(cur, part, None) + return cur + +async def _maybe_await(value): + if inspect.isawaitable(value): + return await value + return value + +def _call_in_event_loop(loop, method): + result = method() + if inspect.isawaitable(result): + return loop.run_until_complete(result) + return result + +class _FallbackFeishuChannelExtension: + """Minimal Feishu bridge used when the installed veadk package lacks extensions.""" + + def __init__(self, runner, *, app_id, app_secret, channel_kwargs=None, **_kwargs): + try: + from lark_channel import FeishuChannel + except ImportError: + from lark_oapi.channel import FeishuChannel + + self.runner = runner + self.channel = FeishuChannel( + app_id=app_id, + app_secret=app_secret, + **dict(channel_kwargs or {}), + ) + self.channel.on("message", self._on_message) + + async def connect(self): + connect = getattr(self.channel, "start", None) or self.channel.connect + return await _maybe_await(connect()) + + async def disconnect(self): + disconnect = getattr(self.channel, "stop", None) or getattr(self.channel, "disconnect", None) + if disconnect is None: + return None + return await _maybe_await(disconnect()) + + async def _on_message(self, message) -> None: + text = str(getattr(message, "content_text", "") or "").strip() + if not text: + return + sender = getattr(message, "sender", None) + user_id = _coalesce( + getattr(sender, "union_id", None), + getattr(sender, "open_id", None), + getattr(sender, "user_id", None), + getattr(message, "sender_id", None), + "feishu_user", + ) + session_id = _coalesce( + _read_attr(message, "conversation", "thread_id"), + getattr(message, "thread_id", None), + getattr(message, "reply_to_message_id", None), + getattr(message, "chat_id", None), + _read_attr(message, "conversation", "chat_id"), + getattr(message, "message_id", None), + "feishu_session", + ) + chat_id = _coalesce( + getattr(message, "chat_id", None), + _read_attr(message, "conversation", "chat_id"), + ) + if not chat_id: + print("feishu channel fallback ignored message without chat_id", flush=True) + return + response_text = await self.runner.run( + messages=text, + user_id=user_id, + session_id=session_id, + ) + if response_text: + options = {} + message_id = _coalesce(getattr(message, "message_id", None), getattr(message, "id", None)) + if message_id: + options["reply_to"] = message_id + await _maybe_await(self.channel.send(chat_id, {"text": str(response_text)}, options)) + +def _get_feishu_channel_method(channel, names): + raw_channel = getattr(channel, "channel", None) + for name in names: + method = getattr(channel, name, None) + if method is not None: + return method + method = getattr(raw_channel, name, None) + if method is not None: + return method + return None + +def _connect_feishu_channel(loop, channel) -> None: + connect = _get_feishu_channel_method(channel, ("start", "connect")) + if connect is None: + raise AttributeError("Feishu channel has no start/connect method") + return _call_in_event_loop(loop, connect) + +def _disconnect_feishu_channel(loop, channel) -> None: + disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) + if disconnect is None: + return None + return _call_in_event_loop(loop, disconnect) + +def _stop_feishu_channel_from_lifespan(channel) -> None: + stop = _get_feishu_channel_method(channel, ("stop", "disconnect")) + if stop is None: + return None + return stop() + +def _build_feishu_channel(runner, app_id, app_secret): + FeishuChannelExtension = _FallbackFeishuChannelExtension + try: + from veadk.extensions import FeishuChannelExtension as _VeadkFeishuChannelExtension + except ImportError as exc: + print( + "veadk.extensions is not installed; using generated Feishu Channel fallback: " + f"{type(exc).__name__}: {exc}", + flush=True, + ) + else: + if getattr(_VeadkFeishuChannelExtension, "CHANNEL_SDK_COMPAT", False): + FeishuChannelExtension = _VeadkFeishuChannelExtension + else: + print( + "installed veadk FeishuChannelExtension lacks channel-sdk compatibility; " + "using generated Feishu Channel fallback", + flush=True, + ) + + return FeishuChannelExtension( + runner=runner, + app_id=app_id, + app_secret=app_secret, + channel_kwargs={ + "transport": os.getenv("TOOL_FEISHU_CHANNEL_TRANSPORT", "ws"), + }, + streaming=_env_bool("TOOL_FEISHU_CHANNEL_STREAMING"), + reactions=_env_bool("TOOL_FEISHU_CHANNEL_REACTIONS"), + ) + +def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: + loop = asyncio.new_event_loop() + state["loop"] = loop + asyncio.set_event_loop(loop) + try: + while not stop_event.is_set(): + channel = None + try: + channel = _build_feishu_channel(runner, app_id, app_secret) + state["channel"] = channel + print("feishu channel connecting in dedicated thread", flush=True) + _connect_feishu_channel(loop, channel) + print("feishu channel disconnected; reconnecting in 5s", flush=True) + except Exception as exc: + if channel is None: + print( + f"feishu channel initialization failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + print(traceback.format_exc(), flush=True) + else: + print( + f"feishu channel connect failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + finally: + if channel is not None: + try: + _disconnect_feishu_channel(loop, channel) + except Exception as exc: + print( + f"feishu channel disconnect failed: {type(exc).__name__}: {exc}", + flush=True, + ) + finally: + if state.get("channel") is channel: + state["channel"] = None + stop_event.wait(5) + finally: + asyncio.set_event_loop(None) + state["loop"] = None + loop.close() + +async def _start_feishu_channel(app, runner) -> None: + if not _env_bool("TOOL_FEISHU_CHANNEL_ENABLED", FEISHU_CHANNEL_ENABLED): + return + + app_id = os.getenv("TOOL_FEISHU_CHANNEL_APP_ID") or os.getenv("FEISHU_APP_ID") + app_secret = os.getenv("TOOL_FEISHU_CHANNEL_APP_SECRET") or os.getenv("FEISHU_APP_SECRET") + if not app_id or not app_secret: + print( + "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", + flush=True, + ) + return + + app.state.feishu_channel_state = {"channel": None, "loop": None} + app.state.feishu_channel_stop_event = threading.Event() + app.state.feishu_channel_thread = threading.Thread( + target=_run_feishu_channel, + args=( + runner, + app_id, + app_secret, + app.state.feishu_channel_stop_event, + app.state.feishu_channel_state, + ), + name="feishu-channel", + daemon=True, + ) + app.state.feishu_channel_thread.start() + print("feishu channel background thread started", flush=True) + +async def _stop_feishu_channel(app) -> None: + stop_event = getattr(app.state, "feishu_channel_stop_event", None) + if stop_event is not None: + stop_event.set() + state = getattr(app.state, "feishu_channel_state", None) or {} + channel = state.get("channel") + if channel is not None: + await asyncio.to_thread(_stop_feishu_channel_from_lifespan, channel) + thread = getattr(app.state, "feishu_channel_thread", None) + if thread is not None: + await asyncio.to_thread(thread.join, 2) + if thread.is_alive(): + print( + "feishu channel background thread did not stop within 2s", + flush=True, + ) def build_app(): """Build AgentKit AgentServerApp for deployment.""" import veadk + from veadk import Runner + WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" # AgentKit's AgentServerApp exposes the ADK-compatible API surface @@ -382,12 +659,30 @@ def build_app(): short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( backend="local" ) + runner = Runner( + agent=root_agent, + app_name=getattr(root_agent, "name", "") or "agent", + short_term_memory=short_term_memory, + ) agent_server_app = AgentkitAgentServerApp( agent=root_agent, short_term_memory=short_term_memory, ) app = agent_server_app.app + original_lifespan = app.router.lifespan_context + + @asynccontextmanager + async def lifespan(fastapi_app): + async with original_lifespan(fastapi_app): + await _start_feishu_channel(fastapi_app, runner) + try: + yield + finally: + await _stop_feishu_channel(fastapi_app) + + app.router.lifespan_context = lifespan + # Add health check endpoint @app.get("/ping") def ping() -> dict[str, str]: @@ -519,7 +814,7 @@ if __name__ == "__main__": { path: `agents/${pkg}/agent.py`, content: agentPy }, { path: `agents/${pkg}/__init__.py`, content: `from .agent import root_agent\n\n__all__ = ["root_agent"]\n` }, { path: ".env.example", content: renderEnvExample(dedupeEnv(acc.env)) }, - { path: "requirements.txt", content: renderRequirements(acc.extras) }, + { path: "requirements.txt", content: renderRequirements(acc.extras, feishuChannelEnabled) }, { path: "README.md", content: renderReadme(pkg, draft) }, ]; @@ -610,6 +905,9 @@ function parseSubAgents(v: unknown): AgentDraft[] { export function normalizeDraft(raw: unknown): AgentDraft { const o = (raw && typeof raw === "object" ? raw : {}) as Record; const mem = (o.memory && typeof o.memory === "object" ? o.memory : {}) as Record; + const deployment = ( + o.deployment && typeof o.deployment === "object" ? o.deployment : {} + ) as Record; const subAgents = parseSubAgents(o.subAgents); const mcpTools = Array.isArray(o.mcpTools) @@ -652,6 +950,7 @@ export function normalizeDraft(raw: unknown): AgentDraft { tracing: asBool(o.tracing), tracingExporters: asStringArray(o.tracingExporters).filter((e) => EXPORTER_IDS.has(e)), enableA2ui: asBool(o.enableA2ui), + deployment: { feishuEnabled: asBool(deployment.feishuEnabled) }, subAgents, selectedSkills: ((): SelectedSkill[] => { if (!Array.isArray(o.selectedSkills)) return []; diff --git a/frontend/src/create/configYaml.ts b/frontend/src/create/configYaml.ts index 41a1474b..0d88a2fb 100644 --- a/frontend/src/create/configYaml.ts +++ b/frontend/src/create/configYaml.ts @@ -46,6 +46,9 @@ function toConfig(draft: AgentDraft): Record { o.tracingExporters = [...draft.tracingExporters]; } if (draft.enableA2ui) o.enableA2ui = true; + if (draft.deployment?.feishuEnabled) { + o.deployment = { feishuEnabled: true }; + } if (draft.selectedSkills?.length) o.selectedSkills = draft.selectedSkills.map((s) => { const base: Record = { source: s.source, name: s.name, folder: s.folder }; diff --git a/frontend/src/create/types.ts b/frontend/src/create/types.ts index 1fd0275b..d33b1686 100644 --- a/frontend/src/create/types.ts +++ b/frontend/src/create/types.ts @@ -35,6 +35,10 @@ import type { SelectedSkill, SkillHit, SkillSource } from "./skills/types"; export type { SelectedSkill, SkillHit, SkillSource }; +export interface DeploymentConfig { + feishuEnabled: boolean; +} + /** A draft VeADK agent configuration produced by a creation flow. */ export interface AgentDraft { name: string; @@ -93,6 +97,8 @@ export interface AgentDraft { nodes: { id: string; agent: AgentDraft }[]; edges: { from: string; to: string }[]; }; + /** Deployment-time options that do not change generated agent code. */ + deployment?: DeploymentConfig; } export function emptyDraft(): AgentDraft { @@ -122,6 +128,7 @@ export function emptyDraft(): AgentDraft { knowledgebaseBackend: "local", tracingExporters: [], selectedSkills: [], + deployment: { feishuEnabled: false }, }; } diff --git a/frontend/src/ui/ProjectPreview.css b/frontend/src/ui/ProjectPreview.css index 842b7e59..280bf9ee 100644 --- a/frontend/src/ui/ProjectPreview.css +++ b/frontend/src/ui/ProjectPreview.css @@ -268,6 +268,156 @@ border-bottom: 1px solid hsl(var(--border)); } +/* --- environment variables ---------------------------------------------- */ + +.pp-env-panel { + flex: 0 0 400px; + width: 400px; + display: flex; + flex-direction: column; + min-height: 0; + border-left: 1px solid hsl(var(--border)); + background: hsl(var(--secondary) / 0.28); +} + +.pp-env-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 14px; + padding: 16px 16px 14px; + border-bottom: 1px solid hsl(var(--border)); + background: hsl(var(--card)); +} + +.pp-env-title { + font-size: 15px; + font-weight: 700; + color: hsl(var(--foreground)); +} + +.pp-env-sub { + margin-top: 5px; + max-width: 292px; + font-size: 12px; + line-height: 1.45; + color: hsl(var(--muted-foreground)); +} + +.pp-env-table { + flex: 1; + min-height: 0; + overflow: auto; + display: flex; + flex-direction: column; + gap: 8px; + padding: 12px; +} + +.pp-env-row { + display: grid; + grid-template-columns: minmax(142px, 1.08fr) minmax(120px, 1fr) 30px; + align-items: center; + gap: 8px; + padding: 8px; + border: 1px solid hsl(var(--border)); + border-radius: calc(var(--radius) - 1px); + background: hsl(var(--card)); +} + +.pp-env-row-head { + position: sticky; + top: 0; + z-index: 1; + padding: 0 8px 2px; + border: none; + background: hsl(var(--secondary) / 0.95); + color: hsl(var(--muted-foreground)); + font-size: 12px; + font-weight: 700; +} + +.pp-env-row input { + width: 100%; + min-width: 0; + height: 34px; + padding: 0 10px; + border: 1px solid hsl(var(--border)); + border-radius: calc(var(--radius) - 2px); + background: hsl(var(--background)); + color: hsl(var(--foreground)); + font: inherit; + font-size: 12px; +} + +.pp-env-row input:first-child { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; + font-size: 11.5px; +} + +.pp-env-key-fixed { + border-color: hsl(var(--primary) / 0.22) !important; + background: hsl(var(--primary) / 0.06) !important; + color: hsl(var(--foreground)) !important; + cursor: default; +} + +.pp-env-row input:focus { + outline: none; + border-color: hsl(var(--ring) / 0.45); + box-shadow: 0 0 0 2px hsl(var(--ring) / 0.1); +} + +.pp-env-row input:disabled, +.pp-env-row button:disabled, +.pp-env-add:disabled { + opacity: 0.55; + cursor: default; +} + +.pp-env-empty { + padding: 26px 12px; + color: hsl(var(--muted-foreground)); + font-size: 12px; + text-align: center; + border: 1px dashed hsl(var(--border)); + border-radius: calc(var(--radius) - 1px); + background: hsl(var(--card)); +} + +.pp-env-add { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + margin: 0 12px 12px; + height: 38px; + border: 1px dashed hsl(var(--border)); + border-radius: calc(var(--radius) - 1px); + background: hsl(var(--card)); + color: hsl(var(--foreground)); + font: inherit; + font-size: 13px; + font-weight: 600; + cursor: pointer; +} + +.pp-env-add:hover:not(:disabled) { + background: hsl(var(--foreground) / 0.04); + border-color: hsl(var(--foreground) / 0.22); +} + +.pp-env-remove { + width: 30px; + height: 30px; +} + +.pp-env-remove-placeholder { + display: block; + width: 30px; + height: 30px; +} + /* --- deploy stepper ------------------------------------------------------- */ .pp-steps { diff --git a/frontend/src/ui/ProjectPreview.tsx b/frontend/src/ui/ProjectPreview.tsx index 4fcf131f..447423f7 100644 --- a/frontend/src/ui/ProjectPreview.tsx +++ b/frontend/src/ui/ProjectPreview.tsx @@ -1,14 +1,18 @@ -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { ChevronRight, Download, + Eye, + EyeOff, File, FilePlus, Folder, Loader2, Pencil, + Plus, Rocket, Trash2, + X, } from "lucide-react"; // Use the core build + register only the languages we map, so we don't ship // all ~190 highlight.js grammars (keeps the bundle small). @@ -122,6 +126,11 @@ export interface DeployResult { apikey: string; url: string; agentName: string; + feishuChannel?: { + enabled: boolean; + transport: string; + runtimeId?: string; + }; } /** The ordered deploy phases shown in the stepper (keys match DeployStage.phase). */ @@ -131,6 +140,20 @@ const DEPLOY_STEPS: { phase: string; label: string }[] = [ { phase: "publish", label: "发布" }, ]; +export interface DeployOptions { + im?: { + feishu?: { + enabled: boolean; + }; + }; + envs?: DeployEnvVar[]; +} + +export interface DeployEnvVar { + key: string; + value: string; +} + export interface ProjectPreviewProps { project: AgentProject; /** When provided, files are editable and changes call onChange with the new project. Omit for read-only. */ @@ -140,9 +163,12 @@ export interface ProjectPreviewProps { onDeploy?: ( project: AgentProject, onStage?: (s: DeployStage) => void, + options?: DeployOptions, ) => Promise; /** Called after successfully adding the agent to the connection list. */ onAgentAdded?: (agentId: string, agentName: string) => void; + /** Whether Feishu Channel was enabled in the configuration step. */ + feishuEnabled?: boolean; } // --- tree model ------------------------------------------------------------- @@ -183,7 +209,37 @@ function sortedChildren(node: TreeNode): TreeNode[] { // --- component -------------------------------------------------------------- -export function ProjectPreview({ project, onChange, onDeploy, onAgentAdded }: ProjectPreviewProps) { +interface EnvRow { + id: string; + key: string; + value: string; +} + +function newEnvRow(key = "", value = ""): EnvRow { + return { + id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`, + key, + value, + }; +} + +const FEISHU_ENV_KEYS = new Set(["FEISHU_APP_ID", "FEISHU_APP_SECRET"]); + +function defaultEnvRows(feishuEnabled: boolean): EnvRow[] { + if (!feishuEnabled) return []; + return [ + newEnvRow("FEISHU_APP_ID", ""), + newEnvRow("FEISHU_APP_SECRET", ""), + ]; +} + +export function ProjectPreview({ + project, + onChange, + onDeploy, + onAgentAdded, + feishuEnabled = false, +}: ProjectPreviewProps) { const editable = typeof onChange === "function"; // Initialize all hooks BEFORE any conditional returns (React hooks rule) @@ -201,6 +257,35 @@ export function ProjectPreview({ project, onChange, onDeploy, onAgentAdded }: Pr const [stageMap, setStageMap] = useState>({}); const [activePhase, setActivePhase] = useState(null); const [addingAgent, setAddingAgent] = useState(false); + const [envRows, setEnvRows] = useState(() => + defaultEnvRows(feishuEnabled), + ); + const [showEnvValues, setShowEnvValues] = useState(false); + + useEffect(() => { + if (!feishuEnabled) { + setEnvRows((rows) => + rows.filter( + (row) => + !row.key.startsWith("TOOL_FEISHU_CHANNEL_") && + !FEISHU_ENV_KEYS.has(row.key), + ), + ); + return; + } + setEnvRows((rows) => { + const keptRows = rows.filter( + (row) => !row.key.startsWith("TOOL_FEISHU_CHANNEL_"), + ); + const byKey = new Map(keptRows.map((row) => [row.key, row])); + const required = defaultEnvRows(true); + const next = [...keptRows]; + for (const row of required) { + if (!byKey.has(row.key)) next.push(row); + } + return next; + }); + }, [feishuEnabled]); const tree = useMemo(() => { if (!project?.files || !Array.isArray(project.files)) { @@ -273,18 +358,63 @@ export function ProjectPreview({ project, onChange, onDeploy, onAgentAdded }: Pr commitFiles(remaining, remaining[0]?.path ?? null); } + function updateEnvRow(id: string, patch: Partial) { + setEnvRows((rows) => + rows.map((row) => (row.id === id ? { ...row, ...patch } : row)), + ); + } + + function removeEnvRow(id: string) { + setEnvRows((rows) => rows.filter((row) => row.id !== id)); + } + + function addEnvRow() { + setEnvRows((rows) => [...rows, newEnvRow()]); + } + + function deployEnvVars(): DeployEnvVar[] { + return envRows + .map((row) => ({ key: row.key.trim(), value: row.value })) + .filter((row) => row.key.length > 0); + } + async function handleDeploy() { if (!onDeploy || deploying) return; + const envs = deployEnvVars(); + if (feishuEnabled) { + const envMap = new Map(envs.map((row) => [row.key, row.value.trim()])); + if (!envMap.get("FEISHU_APP_ID")) { + setDeployError("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。"); + return; + } + if (!envMap.get("FEISHU_APP_SECRET")) { + setDeployError("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。"); + return; + } + } setDeployError(null); setDeployResult(null); setStageMap({}); setActivePhase(null); setDeploying(true); try { - const result = await onDeploy(project, (s) => { - setStageMap((prev) => ({ ...prev, [s.phase]: s })); - setActivePhase(s.phase); - }); + const result = await onDeploy( + project, + (s) => { + setStageMap((prev) => ({ ...prev, [s.phase]: s })); + setActivePhase(s.phase); + }, + feishuEnabled + ? { + im: { + feishu: { + enabled: true, + }, + }, + envs, + } + : { envs }, + ); setDeployResult(result); setActivePhase(null); } catch (err) { @@ -576,6 +706,14 @@ export function ProjectPreview({ project, onChange, onDeploy, onAgentAdded }: Pr {deployResult.apikey} + {deployResult.feishuChannel?.enabled && ( +
+ + + runtime 内启用 ({deployResult.feishuChannel.transport}) + +
+ )} + +
+
+ Key + Value + +
+ {envRows.length === 0 ? ( +
暂无环境变量
+ ) : ( + envRows.map((row) => { + const isFeishuPreset = feishuEnabled && FEISHU_ENV_KEYS.has(row.key); + const valuePlaceholder = + row.key === "FEISHU_APP_ID" + ? "cli_xxx" + : row.key === "FEISHU_APP_SECRET" + ? "输入 App Secret" + : "VALUE"; + return ( +
+ updateEnvRow(row.id, { key: e.currentTarget.value })} + /> + updateEnvRow(row.id, { value: e.currentTarget.value })} + /> + {isFeishuPreset ? ( + + ) : ( + + )} +
+ ); + }) + )} +
+ + + )} ); } diff --git a/pyproject.toml b/pyproject.toml index f5664245..c13b19c2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,6 +64,7 @@ extensions = [ "llama-index-vector-stores-milvus>=0.4", # For Milvus database "pymilvus>=2.4", # For Milvus database "opensearch-py>=2.8.0", + "lark-channel-sdk", "lark-oapi", ] database = [ diff --git a/tests/test_feishu_channel_extension.py b/tests/test_feishu_channel_extension.py index 74cc3e41..3444d884 100644 --- a/tests/test_feishu_channel_extension.py +++ b/tests/test_feishu_channel_extension.py @@ -12,11 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -from types import SimpleNamespace +import asyncio +import sys +import threading +from types import ModuleType, SimpleNamespace import pytest -from veadk.extensions.feishu_channel import FeishuChannelExtension +from veadk.extensions.feishu_channel import ( + FeishuChannelExtension, + _call_in_fresh_event_loop, +) @pytest.fixture @@ -55,6 +61,80 @@ async def stream(self, chat_id, spec, options=None): self.stream_calls.append((chat_id, controller.chunks, options)) +class FakeBlockingChannel(FakeChannel): + def __init__(self): + super().__init__() + self.connect_thread_id = None + self.disconnect_thread_id = None + self.connect_loop_running = None + self.disconnect_loop_running = None + + def connect(self): + self.connect_thread_id = threading.get_ident() + self.connect_loop_running = asyncio.get_event_loop().is_running() + return "connected" + + def disconnect(self): + self.disconnect_thread_id = threading.get_ident() + self.disconnect_loop_running = asyncio.get_event_loop().is_running() + return "disconnected" + + +class FakeLoopBoundChannel(FakeChannel): + created = [] + + def __init__(self, **kwargs): + super().__init__() + self.kwargs = kwargs + self.init_thread_id = threading.get_ident() + try: + self.init_loop_running = asyncio.get_event_loop().is_running() + except RuntimeError: + self.init_loop_running = False + self.connect_thread_id = None + self.connect_loop_running = None + FakeLoopBoundChannel.created.append(self) + + def connect(self): + self.connect_thread_id = threading.get_ident() + try: + self.connect_loop_running = asyncio.get_event_loop().is_running() + except RuntimeError: + self.connect_loop_running = False + return "connected" + + +class FakeLegacyChannel(FakeChannel): + created = [] + + def __init__(self, **kwargs): + super().__init__() + self.kwargs = kwargs + FakeLegacyChannel.created.append(self) + + +class FakeStartStopChannel(FakeChannel): + def __init__(self): + super().__init__() + self.start_called = False + self.stop_called = False + self.start_loop_running = None + self.stop_loop_running = None + + async def connect(self): + raise RuntimeError("async connect should not be used") + + def start(self): + self.start_called = True + self.start_loop_running = asyncio.get_event_loop().is_running() + return "started" + + def stop(self): + self.stop_called = True + self.stop_loop_running = asyncio.get_event_loop().is_running() + return "stopped" + + class FakeRunner: def __init__(self): self.calls = [] @@ -217,3 +297,93 @@ async def test_extension_streaming_uses_markdown_producer_controller(): ] assert len(runner.run_async_calls) == 1 assert channel.stream_calls == [("oc_chat", ["hel", "lo"], {"reply_to": "om_001"})] + + +@pytest.mark.anyio +async def test_extension_runs_sync_channel_connect_in_worker_thread(): + runner = FakeRunner() + channel = FakeBlockingChannel() + extension = FeishuChannelExtension(runner=runner, channel=channel) + main_thread_id = threading.get_ident() + + assert await extension.connect() == "connected" + assert await extension.disconnect() == "disconnected" + + assert channel.connect_thread_id is not None + assert channel.disconnect_thread_id is not None + assert channel.connect_thread_id != main_thread_id + assert channel.disconnect_thread_id != main_thread_id + assert channel.connect_loop_running is False + assert channel.disconnect_loop_running is False + + +@pytest.mark.anyio +async def test_extension_can_be_constructed_and_connected_in_worker_thread(monkeypatch): + fake_lark = ModuleType("lark_oapi") + fake_channel_module = ModuleType("lark_oapi.channel") + fake_channel_module.FeishuChannel = FakeLoopBoundChannel + monkeypatch.setitem(sys.modules, "lark_channel", None) + monkeypatch.setitem(sys.modules, "lark_oapi", fake_lark) + monkeypatch.setitem(sys.modules, "lark_oapi.channel", fake_channel_module) + FakeLoopBoundChannel.created = [] + main_thread_id = threading.get_ident() + + def build_and_connect(): + extension = FeishuChannelExtension( + runner=FakeRunner(), + app_id="cli_test", + app_secret="secret", + channel_kwargs={"transport": "ws"}, + ) + return extension.channel.connect() + + assert await asyncio.to_thread(_call_in_fresh_event_loop, build_and_connect) == "connected" + + channel = FakeLoopBoundChannel.created[0] + assert channel.kwargs == { + "app_id": "cli_test", + "app_secret": "secret", + "transport": "ws", + } + assert channel.init_thread_id != main_thread_id + assert channel.connect_thread_id == channel.init_thread_id + assert channel.init_loop_running is False + assert channel.connect_loop_running is False + + +def test_extension_prefers_lark_channel_sdk(monkeypatch): + fake_lark_channel = ModuleType("lark_channel") + fake_lark_channel.FeishuChannel = FakeLoopBoundChannel + fake_lark_oapi = ModuleType("lark_oapi") + fake_legacy_channel_module = ModuleType("lark_oapi.channel") + fake_legacy_channel_module.FeishuChannel = FakeLegacyChannel + monkeypatch.setitem(sys.modules, "lark_channel", fake_lark_channel) + monkeypatch.setitem(sys.modules, "lark_oapi", fake_lark_oapi) + monkeypatch.setitem(sys.modules, "lark_oapi.channel", fake_legacy_channel_module) + FakeLoopBoundChannel.created = [] + FakeLegacyChannel.created = [] + + extension = FeishuChannelExtension( + runner=FakeRunner(), + app_id="cli_test", + app_secret="secret", + channel_kwargs={"transport": "ws"}, + ) + + assert extension.channel is FakeLoopBoundChannel.created[0] + assert FakeLegacyChannel.created == [] + + +@pytest.mark.anyio +async def test_extension_prefers_sync_start_stop_over_async_connect(): + runner = FakeRunner() + channel = FakeStartStopChannel() + extension = FeishuChannelExtension(runner=runner, channel=channel) + + assert await extension.connect() == "started" + assert await extension.disconnect() == "stopped" + + assert channel.start_called is True + assert channel.stop_called is True + assert channel.start_loop_running is False + assert channel.stop_loop_running is False diff --git a/veadk/cli/cli_frontend.py b/veadk/cli/cli_frontend.py index 25d25e66..5648263e 100644 --- a/veadk/cli/cli_frontend.py +++ b/veadk/cli/cli_frontend.py @@ -835,6 +835,45 @@ async def _deploy_to_agentkit(request: Request): region = config.get("region", "cn-beijing") project_name = config.get("projectName", "default") + im_config = data.get("im") if isinstance(data.get("im"), dict) else {} + feishu_config = ( + im_config.get("feishu") + if isinstance(im_config.get("feishu"), dict) + else {} + ) + feishu_enabled = bool(feishu_config.get("enabled")) + requested_envs = data.get("envs") if isinstance(data.get("envs"), list) else [] + extra_runtime_envs: dict[str, str] = {} + for item in requested_envs: + if not isinstance(item, dict): + continue + key = str(item.get("key") or "").strip() + if not key: + continue + if not key.replace("_", "").isalnum() or key[0].isdigit(): + raise HTTPException( + status_code=400, + detail=f"Invalid environment variable name: {key}", + ) + extra_runtime_envs[key] = str(item.get("value") or "") + feishu_app_id = ( + extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_ID", "").strip() + or extra_runtime_envs.get("FEISHU_APP_ID", "").strip() + or os.getenv("FEISHU_APP_ID", "").strip() + ) + feishu_app_secret = ( + extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_SECRET", "").strip() + or extra_runtime_envs.get("FEISHU_APP_SECRET", "").strip() + or os.getenv("FEISHU_APP_SECRET", "").strip() + ) + if feishu_enabled and (not feishu_app_id or not feishu_app_secret): + raise HTTPException( + status_code=400, + detail=( + "Feishu Channel is enabled but FEISHU_APP_ID " + "/ FEISHU_APP_SECRET are missing." + ), + ) # Write the generated project (+ agentkit.yaml) into a temp dir. Passing # config_file makes the SDK resolve THIS dir as the project dir, so the @@ -855,6 +894,33 @@ async def _deploy_to_agentkit(request: Request): shutil.rmtree(temp_dir, ignore_errors=True) raise HTTPException(status_code=400, detail="No app.py found in files") + runtime_envs = { + "MODEL_AGENT_API_KEY": os.getenv("MODEL_AGENT_API_KEY", ""), + "OTEL_SDK_DISABLED": "true", + "VEADK_DISABLE_EXPIRE_AT": "true", + } + runtime_envs.update(extra_runtime_envs) + if feishu_enabled: + runtime_envs.update( + { + "TOOL_FEISHU_CHANNEL_ENABLED": "true", + "TOOL_FEISHU_CHANNEL_APP_ID": feishu_app_id, + "TOOL_FEISHU_CHANNEL_APP_SECRET": feishu_app_secret, + "TOOL_FEISHU_CHANNEL_TRANSPORT": str( + extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_TRANSPORT") + or feishu_config.get("transport") + or "ws" + ).strip() + or "ws", + "TOOL_FEISHU_CHANNEL_STREAMING": str( + feishu_config.get("streaming") or "false" + ).lower(), + "TOOL_FEISHU_CHANNEL_REACTIONS": str( + feishu_config.get("reactions") or "false" + ).lower(), + } + ) + agentkit_config = { "common": { "agent_name": agent_name, @@ -867,11 +933,7 @@ async def _deploy_to_agentkit(request: Request): "region": region, "project_name": project_name, "image_tag": "latest", - "runtime_envs": { - "MODEL_AGENT_API_KEY": os.getenv("MODEL_AGENT_API_KEY", ""), - "OTEL_SDK_DISABLED": "true", - "VEADK_DISABLE_EXPIRE_AT": "true", - }, + "runtime_envs": runtime_envs, } }, } @@ -884,6 +946,36 @@ async def _deploy_to_agentkit(request: Request): _PHASE_ORDER = {"build": 0, "deploy": 1, "publish": 2} + def _result_error_text(result) -> str: + parts = [] + for obj in ( + result, + getattr(result, "build_result", None), + getattr(result, "deploy_result", None), + ): + if obj is None: + continue + for attr in ("error", "error_code"): + value = getattr(obj, attr, None) + if value: + parts.append(str(value)) + return "\n".join(parts) + + def _is_tos_request_expired(error_text: str) -> bool: + lower = (error_text or "").lower() + return ( + "request has expired" in lower + and ("accessdenied" in lower or "access denied" in lower) + ) + + def _friendly_error(error_text: str) -> str: + if _is_tos_request_expired(error_text): + return ( + "云构建拉取源码包时 TOS 临时下载签名已过期。" + "已自动重试一次仍失败,请稍后重新点击部署。" + ) + return error_text + def _classify(message: str) -> str: """Map a reporter message to a deploy phase, monotonically. @@ -1002,11 +1094,32 @@ def _tagged_create(self, req, _orig=orig_create, _extra=extra): logger.warning(f"Could not attach author tag to runtime: {e}") try: - result_box["result"] = sdk.launch( - config_file=str(base / "agentkit.yaml"), - preflight_mode=PreflightMode.WARN, - reporter=_QReporter(), - ) + result = None + for attempt in range(1, 3): + if attempt > 1: + state["phase"] = "build" + _emit( + "warning", + ( + "TOS 临时下载签名已过期,正在重新打包上传并重试部署 " + f"({attempt}/2)..." + ), + ) + result = sdk.launch( + config_file=str(base / "agentkit.yaml"), + preflight_mode=PreflightMode.WARN, + reporter=_QReporter(), + ) + if getattr(result, "success", False): + break + error_text = _result_error_text(result) + if attempt >= 2 or not _is_tos_request_expired(error_text): + break + _emit( + "warning", + "云构建使用的 TOS 源码包签名超过 900 秒有效期,自动重试一次。", + ) + result_box["result"] = result except Exception as e: logger.error(f"AgentKit launch error: {e}", exc_info=True) result_box["error"] = str(e) @@ -1028,10 +1141,11 @@ async def _stream(): final = {"done": True} if result_box.get("error"): + error_text = str(result_box["error"]) final.update( { "success": False, - "error": result_box["error"], + "error": _friendly_error(error_text), "phase": state["phase"], } ) @@ -1049,6 +1163,15 @@ async def _stream(): else None, "apikey": meta.get("runtime_apikey", ""), "runtimeId": meta.get("runtime_id", ""), + "feishuChannel": { + "enabled": True, + "transport": runtime_envs.get( + "TOOL_FEISHU_CHANNEL_TRANSPORT", "ws" + ), + "runtimeId": meta.get("runtime_id", ""), + } + if feishu_enabled + else None, "consoleUrl": ( "https://console.volcengine.com/agentkit/" f"region:agentkit+{region}/runtime?projectName={project_name}" @@ -1057,10 +1180,17 @@ async def _stream(): ) else: err = getattr(res, "error", None) if res else None + err_text = ( + _result_error_text(res) + if res is not None + else str(err or "Deployment failed") + ) final.update( { "success": False, - "error": err or "Deployment failed", + "error": _friendly_error(err_text) + or err + or "Deployment failed", "phase": state["phase"], } ) diff --git a/veadk/extensions/feishu_channel.py b/veadk/extensions/feishu_channel.py index cde05d6d..0f0f7403 100644 --- a/veadk/extensions/feishu_channel.py +++ b/veadk/extensions/feishu_channel.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import asyncio import inspect import os from dataclasses import dataclass @@ -45,6 +46,19 @@ def _read_attr(obj: Any, *path: str) -> Any: return current +def _call_in_fresh_event_loop(method: Callable[[], Any]) -> Any: + loop = asyncio.new_event_loop() + try: + asyncio.set_event_loop(loop) + result = method() + if inspect.isawaitable(result): + return loop.run_until_complete(result) + return result + finally: + asyncio.set_event_loop(None) + loop.close() + + @dataclass(slots=True) class FeishuMessageContext: message_id: str @@ -73,6 +87,8 @@ class FeishuChannelExtension: memory, long-term memory and tracing continue to work without changes. """ + CHANNEL_SDK_COMPAT = True + def __init__( self, runner: "Runner", @@ -148,16 +164,20 @@ def default_response_formatter(text: str) -> dict[str, str]: return {"text": text} async def connect(self) -> Any: - return await self._maybe_await(self.channel.connect()) + connect = getattr(self.channel, "start", None) or self.channel.connect + if inspect.iscoroutinefunction(connect): + return await connect() + return await asyncio.to_thread(_call_in_fresh_event_loop, connect) async def disconnect(self) -> Any: - disconnect = getattr(self.channel, "disconnect", None) + disconnect = getattr(self.channel, "stop", None) or getattr( + self.channel, "disconnect", None + ) if disconnect is None: return None - result = disconnect() - if inspect.isawaitable(result): - return await result - return result + if inspect.iscoroutinefunction(disconnect): + return await disconnect() + return await asyncio.to_thread(_call_in_fresh_event_loop, disconnect) async def handle_webhook_request( self, headers: dict[str, str], body: bytes | str @@ -347,12 +367,15 @@ def _build_channel( channel_kwargs: dict[str, Any] | None, ) -> Any: try: - from lark_oapi.channel import FeishuChannel - except ImportError as exc: - raise ImportError( - "Feishu channel extension requires `lark-oapi`. " - "Install `veadk-python[extensions]` or `pip install lark-oapi`." - ) from exc + from lark_channel import FeishuChannel + except ImportError: + try: + from lark_oapi.channel import FeishuChannel + except ImportError as legacy_exc: + raise ImportError( + "Feishu channel extension requires `lark-channel-sdk` " + "(or legacy `lark-oapi`). Install `veadk-python[extensions]`." + ) from legacy_exc resolved_app_id = ( app_id diff --git a/veadk/webui/assets/index-C2cC86E6.css b/veadk/webui/assets/index-C2cC86E6.css new file mode 100644 index 00000000..23552cfb --- /dev/null +++ b/veadk/webui/assets/index-C2cC86E6.css @@ -0,0 +1,10 @@ +.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-env-panel{flex:0 0 400px;width:400px;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--secondary) / .28)}.pp-env-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.pp-env-title{font-size:15px;font-weight:700;color:hsl(var(--foreground))}.pp-env-sub{margin-top:5px;max-width:292px;font-size:12px;line-height:1.45;color:hsl(var(--muted-foreground))}.pp-env-table{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px}.pp-env-row{display:grid;grid-template-columns:minmax(142px,1.08fr) minmax(120px,1fr) 30px;align-items:center;gap:8px;padding:8px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card))}.pp-env-row-head{position:sticky;top:0;z-index:1;padding:0 8px 2px;border:none;background:hsl(var(--secondary) / .95);color:hsl(var(--muted-foreground));font-size:12px;font-weight:700}.pp-env-row input{width:100%;min-width:0;height:34px;padding:0 10px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:12px}.pp-env-row input:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px}.pp-env-key-fixed{border-color:hsl(var(--primary) / .22)!important;background:hsl(var(--primary) / .06)!important;color:hsl(var(--foreground))!important;cursor:default}.pp-env-row input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 2px hsl(var(--ring) / .1)}.pp-env-row input:disabled,.pp-env-row button:disabled,.pp-env-add:disabled{opacity:.55;cursor:default}.pp-env-empty{padding:26px 12px;color:hsl(var(--muted-foreground));font-size:12px;text-align:center;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card))}.pp-env-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 12px 12px;height:38px;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pp-env-add:hover:not(:disabled){background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .22)}.pp-env-remove{width:30px;height:30px}.pp-env-remove-placeholder{display:block;width:30px;height:30px}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-hl,.pp-input{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55;white-space:pre;-moz-tab-size:2;tab-size:2;box-sizing:border-box;border:none}.pp-pre code,.pp-hl code,.pp-input{font:inherit;-moz-tab-size:inherit;tab-size:inherit}.pp-pre{flex:1;width:100%;height:100%;overflow:auto}.pp-pre code{background:none;padding:0}.pp-editor-wrap{position:relative;flex:1;min-width:0;min-height:0;width:100%;height:100%}.pp-hl{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;pointer-events:none}.pp-hl code{background:none;padding:0}.pp-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;resize:none;outline:none;background:transparent;color:transparent;caret-color:hsl(var(--foreground))}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/assets/index-CmGE8RHW.js b/veadk/webui/assets/index-CmGE8RHW.js new file mode 100644 index 00000000..3fbf6a8e --- /dev/null +++ b/veadk/webui/assets/index-CmGE8RHW.js @@ -0,0 +1,1052 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Cu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ml(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var K_={exports:{}},Td={},q_={exports:{}},Te={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Il=Symbol.for("react.element"),xI=Symbol.for("react.portal"),wI=Symbol.for("react.fragment"),vI=Symbol.for("react.strict_mode"),_I=Symbol.for("react.profiler"),EI=Symbol.for("react.provider"),kI=Symbol.for("react.context"),SI=Symbol.for("react.forward_ref"),NI=Symbol.for("react.suspense"),TI=Symbol.for("react.memo"),AI=Symbol.for("react.lazy"),db=Symbol.iterator;function CI(e){return e===null||typeof e!="object"?null:(e=db&&e[db]||e["@@iterator"],typeof e=="function"?e:null)}var G_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},W_=Object.assign,Y_={};function Io(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}Io.prototype.isReactComponent={};Io.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Io.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function X_(){}X_.prototype=Io.prototype;function gg(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}var yg=gg.prototype=new X_;yg.constructor=gg;W_(yg,Io.prototype);yg.isPureReactComponent=!0;var fb=Array.isArray,Q_=Object.prototype.hasOwnProperty,bg={current:null},Z_={key:!0,ref:!0,__self:!0,__source:!0};function J_(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)Q_.call(t,r)&&!Z_.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,H=L[V];if(0>>1;Vi(X,k))Zi(J,X)?(L[V]=J,L[Z]=k,V=Z):(L[V]=X,L[U]=k,V=U);else if(Zi(J,k))L[V]=J,L[Z]=k,V=Z;else break e}}return D}function i(L,D){var k=L.sortIndex-D.sortIndex;return k!==0?k:L.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],d=1,u=null,h=3,p=!1,g=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(L){for(var D=n(c);D!==null;){if(D.callback===null)r(c);else if(D.startTime<=L)r(c),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(c)}}function v(L){if(b=!1,y(L),!g)if(n(l)!==null)g=!0,M(E);else{var D=n(c);D!==null&&B(v,D.startTime-L)}}function E(L,D){g=!1,b&&(b=!1,m(N),N=-1),p=!0;var k=h;try{for(y(D),u=n(l);u!==null&&(!(u.expirationTime>D)||L&&!P());){var V=u.callback;if(typeof V=="function"){u.callback=null,h=u.priorityLevel;var H=V(u.expirationTime<=D);D=e.unstable_now(),typeof H=="function"?u.callback=H:u===n(l)&&r(l),y(D)}else r(l);u=n(l)}if(u!==null)var T=!0;else{var U=n(c);U!==null&&B(v,U.startTime-D),T=!1}return T}finally{u=null,h=k,p=!1}}var _=!1,C=null,N=-1,I=5,A=-1;function P(){return!(e.unstable_now()-AL||125V?(L.sortIndex=k,t(c,L),n(l)===null&&L===n(c)&&(b?(m(N),N=-1):b=!0,B(v,k-V))):(L.sortIndex=H,t(l,L),g||p||(g=!0,M(E))),L},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(L){var D=h;return function(){var k=h;h=D;try{return L.apply(this,arguments)}finally{h=k}}}})(sE);iE.exports=sE;var FI=iE.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zI=S,fn=FI;function re(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wp=Object.prototype.hasOwnProperty,UI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pb={},mb={};function VI(e){return wp.call(mb,e)?!0:wp.call(pb,e)?!1:UI.test(e)?mb[e]=!0:(pb[e]=!0,!1)}function HI(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function KI(e,t,n,r){if(t===null||typeof t>"u"||HI(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Gt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Gt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Gt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Gt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Gt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Gt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Gt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Gt(e,5,!1,e.toLowerCase(),null,!1,!1)});var wg=/[\-:]([a-z])/g;function vg(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Gt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!0,!0)});function _g(e,t,n,r){var i=Tt.hasOwnProperty(t)?Tt[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` +`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Ff=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ua(e):""}function qI(e){switch(e.tag){case 5:return ua(e.type);case 16:return ua("Lazy");case 13:return ua("Suspense");case 19:return ua("SuspenseList");case 0:case 2:case 15:return e=zf(e.type,!1),e;case 11:return e=zf(e.type.render,!1),e;case 1:return e=zf(e.type,!0),e;default:return""}}function kp(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 Ts:return"Fragment";case Ns:return"Portal";case vp:return"Profiler";case Eg:return"StrictMode";case _p:return"Suspense";case Ep:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lE:return(e.displayName||"Context")+".Consumer";case aE:return(e._context.displayName||"Context")+".Provider";case kg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Sg:return t=e.displayName||null,t!==null?t:kp(e.type)||"Memo";case $r:t=e._payload,e=e._init;try{return kp(e(t))}catch{}}return null}function GI(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 kp(t);case 8:return t===Eg?"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 oi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function uE(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function WI(e){var t=uE(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fc(e){e._valueTracker||(e._valueTracker=WI(e))}function dE(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=uE(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Mu(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 Sp(e,t){var n=t.checked;return tt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=oi(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 fE(e,t){t=t.checked,t!=null&&_g(e,"checked",t,!1)}function Np(e,t){fE(e,t);var n=oi(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")?Tp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tp(e,t.type,oi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bb(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 Tp(e,t,n){(t!=="number"||Mu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var da=Array.isArray;function Ws(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=hc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Va(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},YI=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){YI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function gE(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function yE(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=gE(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var XI=tt({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 Mp(e,t){if(t){if(XI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(re(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(re(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(re(61))}if(t.style!=null&&typeof t.style!="object")throw Error(re(62))}}function Ip(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 Op=null;function Ng(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rp=null,Ys=null,Xs=null;function vb(e){if(e=Ll(e)){if(typeof Rp!="function")throw Error(re(280));var t=e.stateNode;t&&(t=Od(t),Rp(e.stateNode,e.type,t))}}function bE(e){Ys?Xs?Xs.push(e):Xs=[e]:Ys=e}function xE(){if(Ys){var e=Ys,t=Xs;if(Xs=Ys=null,vb(e),t)for(e=0;e>>=0,e===0?32:31-(aO(e)/lO|0)|0}var pc=64,mc=4194304;function fa(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 Lu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=fa(a):(s&=o,s!==0&&(r=fa(s)))}else o=n&~i,o!==0?r=fa(o):s!==0&&(r=fa(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ol(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function fO(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=Ea),Mb=" ",Ib=!1;function $E(e,t){switch(e){case"keyup":return FO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function FE(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var As=!1;function UO(e,t){switch(e){case"compositionend":return FE(t);case"keypress":return t.which!==32?null:(Ib=!0,Mb);case"textInput":return e=t.data,e===Mb&&Ib?null:e;default:return null}}function VO(e,t){if(As)return e==="compositionend"||!Lg&&$E(e,t)?(e=jE(),iu=Ig=Kr=null,As=!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)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=Pb(n)}}function HE(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?HE(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function KE(){for(var e=window,t=Mu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mu(e.document)}return t}function Pg(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 ZO(e){var t=KE(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&HE(n.ownerDocument.documentElement,n)){if(r!==null&&Pg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Db(n,s);var o=Db(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Cs=null,$p=null,Sa=null,Fp=!1;function jb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fp||Cs==null||Cs!==Mu(r)||(r=Cs,"selectionStart"in r&&Pg(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}),Sa&&Ya(Sa,r)||(Sa=r,r=ju($p,"onSelect"),0Os||(e.current=qp[Os],qp[Os]=null,Os--)}function ze(e,t){Os++,qp[Os]=e.current,e.current=t}var ai={},Pt=di(ai),Zt=di(!1),Vi=ai;function oo(e,t){var n=e.type.contextTypes;if(!n)return ai;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function $u(){Ke(Zt),Ke(Pt)}function Hb(e,t,n){if(Pt.current!==ai)throw Error(re(168));ze(Pt,t),ze(Zt,n)}function ek(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(re(108,GI(e)||"Unknown",i));return tt({},n,r)}function Fu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ai,Vi=Pt.current,ze(Pt,e),ze(Zt,Zt.current),!0}function Kb(e,t,n){var r=e.stateNode;if(!r)throw Error(re(169));n?(e=ek(e,t,Vi),r.__reactInternalMemoizedMergedChildContext=e,Ke(Zt),Ke(Pt),ze(Pt,e)):Ke(Zt),ze(Zt,n)}var gr=null,Rd=!1,th=!1;function tk(e){gr===null?gr=[e]:gr.push(e)}function uR(e){Rd=!0,tk(e)}function fi(){if(!th&&gr!==null){th=!0;var e=0,t=De;try{var n=gr;for(De=1;e>=o,i-=o,yr=1<<32-Un(t)+i|n<N?(I=C,C=null):I=C.sibling;var A=h(m,C,y[N],v);if(A===null){C===null&&(C=I);break}e&&C&&A.alternate===null&&t(m,C),x=s(A,x,N),_===null?E=A:_.sibling=A,_=A,C=I}if(N===y.length)return n(m,C),We&&_i(m,N),E;if(C===null){for(;NN?(I=C,C=null):I=C.sibling;var P=h(m,C,A.value,v);if(P===null){C===null&&(C=I);break}e&&C&&P.alternate===null&&t(m,C),x=s(P,x,N),_===null?E=P:_.sibling=P,_=P,C=I}if(A.done)return n(m,C),We&&_i(m,N),E;if(C===null){for(;!A.done;N++,A=y.next())A=u(m,A.value,v),A!==null&&(x=s(A,x,N),_===null?E=A:_.sibling=A,_=A);return We&&_i(m,N),E}for(C=r(m,C);!A.done;N++,A=y.next())A=p(C,m,N,A.value,v),A!==null&&(e&&A.alternate!==null&&C.delete(A.key===null?N:A.key),x=s(A,x,N),_===null?E=A:_.sibling=A,_=A);return e&&C.forEach(function(R){return t(m,R)}),We&&_i(m,N),E}function w(m,x,y,v){if(typeof y=="object"&&y!==null&&y.type===Ts&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case dc:e:{for(var E=y.key,_=x;_!==null;){if(_.key===E){if(E=y.type,E===Ts){if(_.tag===7){n(m,_.sibling),x=i(_,y.props.children),x.return=m,m=x;break e}}else if(_.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===$r&&Wb(E)===_.type){n(m,_.sibling),x=i(_,y.props),x.ref=Qo(m,_,y),x.return=m,m=x;break e}n(m,_);break}else t(m,_);_=_.sibling}y.type===Ts?(x=ji(y.props.children,m.mode,v,y.key),x.return=m,m=x):(v=fu(y.type,y.key,y.props,null,m.mode,v),v.ref=Qo(m,x,y),v.return=m,m=v)}return o(m);case Ns:e:{for(_=y.key;x!==null;){if(x.key===_)if(x.tag===4&&x.stateNode.containerInfo===y.containerInfo&&x.stateNode.implementation===y.implementation){n(m,x.sibling),x=i(x,y.children||[]),x.return=m,m=x;break e}else{n(m,x);break}else t(m,x);x=x.sibling}x=ch(y,m.mode,v),x.return=m,m=x}return o(m);case $r:return _=y._init,w(m,x,_(y._payload),v)}if(da(y))return g(m,x,y,v);if(qo(y))return b(m,x,y,v);_c(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,x!==null&&x.tag===6?(n(m,x.sibling),x=i(x,y),x.return=m,m=x):(n(m,x),x=lh(y,m.mode,v),x.return=m,m=x),o(m)):n(m,x)}return w}var lo=sk(!0),ok=sk(!1),Vu=di(null),Hu=null,Ps=null,$g=null;function Fg(){$g=Ps=Hu=null}function zg(e){var t=Vu.current;Ke(Vu),e._currentValue=t}function Yp(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 Zs(e,t){Hu=e,$g=Ps=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if($g!==e)if(e={context:e,memoizedValue:t,next:null},Ps===null){if(Hu===null)throw Error(re(308));Ps=e,Hu.dependencies={lanes:0,firstContext:e}}else Ps=Ps.next=e;return t}var Mi=null;function Ug(e){Mi===null?Mi=[e]:Mi.push(e)}function ak(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ug(t)):(n.next=i.next,i.next=n),t.interleaved=n,Tr(e,r)}function Tr(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 Fr=!1;function Vg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lk(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 vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ei(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Oe&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Tr(e,n)}return i=r.interleaved,i===null?(t.next=t,Ug(r)):(t.next=i.next,i.next=t),r.interleaved=t,Tr(e,n)}function ou(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,Ag(e,n)}}function Yb(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Ku(e,t,n,r){var i=e.updateQueue;Fr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=c:a.next=c,d.lastBaseUpdate=l))}if(s!==null){var u=i.baseState;o=0,d=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.payload,typeof g=="function"){u=g.call(p,u,h);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=b.payload,h=typeof g=="function"?g.call(p,u,h):g,h==null)break e;u=tt({},u,h);break e;case 2:Fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(c=d=p,l=u):d=d.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);qi|=o,e.lanes=o,e.memoizedState=u}}function Xb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=rh.transition;rh.transition={};try{e(!1),t()}finally{De=n,rh.transition=r}}function Sk(){return An().memoizedState}function pR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Nk(e))Tk(t,n);else if(n=ak(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),Ak(n,t,r)}}function mR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Nk(e))Tk(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Ug(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=ak(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),Ak(n,t,r))}}function Nk(e){var t=e.alternate;return e===et||t!==null&&t===et}function Tk(e,t){Na=Gu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ak(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ag(e,n)}}var Wu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},gR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:Zb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lu(4194308,4,wk.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lu(4194308,4,e,t)},useInsertionEffect:function(e,t){return lu(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=pR.bind(null,et,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:Qb,useDebugValue:Qg,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=Qb(!1),t=e[0];return e=hR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=et,i=Zn();if(We){if(n===void 0)throw Error(re(407));n=n()}else{if(n=t(),vt===null)throw Error(re(349));Ki&30||fk(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Zb(pk.bind(null,r,s,e),[e]),r.flags|=2048,rl(9,hk.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=vt.identifierPrefix;if(We){var n=br,r=yr;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=tl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Za]=r,Bk(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ip(n,r),n){case"dialog":He("cancel",e),He("close",e),i=r;break;case"iframe":case"object":case"embed":He("load",e),i=r;break;case"video":case"audio":for(i=0;ifo&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304)}else{if(!r)if(e=qu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Zo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!We)return Mt(t),null}else 2*ot()-s.renderingStartTime>fo&&n!==1073741824&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=ot(),t.sibling=null,n=Ze.current,ze(Ze,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ry(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(Mt(t),t.subtreeFlags&6&&(t.flags|=8192)):Mt(t),null;case 24:return null;case 25:return null}throw Error(re(156,t.tag))}function kR(e,t){switch(jg(t),t.tag){case 1:return Jt(t.type)&&$u(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return co(),Ke(Zt),Ke(Pt),qg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Kg(t),null;case 13:if(Ke(Ze),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(re(340));ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ke(Ze),null;case 4:return co(),null;case 10:return zg(t.type._context),null;case 22:case 23:return ry(),null;case 24:return null;default:return null}}var kc=!1,Ot=!1,SR=typeof WeakSet=="function"?WeakSet:Set,he=null;function Ds(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){rt(e,t,r)}else n.current=null}function im(e,t,n){try{n()}catch(r){rt(e,t,r)}}var cx=!1;function NR(e,t){if(zp=Pu,e=KE(),Pg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,d=0,u=e,h=null;t:for(;;){for(var p;u!==n||i!==0&&u.nodeType!==3||(a=o+i),u!==s||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(p=u.firstChild)!==null;)h=u,u=p;for(;;){if(u===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++d===r&&(l=o),(p=u.nextSibling)!==null)break;u=h,h=u.parentNode}u=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Up={focusedElem:e,selectionRange:n},Pu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var b=g.memoizedProps,w=g.memoizedState,m=t.stateNode,x=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),w);m.__reactInternalSnapshotBeforeUpdate=x}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(re(163))}}catch(v){rt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=cx,cx=!1,g}function Ta(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&im(t,n,s)}i=i.next}while(i!==r)}}function Dd(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 sm(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 zk(e){var t=e.alternate;t!==null&&(e.alternate=null,zk(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Za],delete t[Kp],delete t[lR],delete t[cR])),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 Uk(e){return e.tag===5||e.tag===3||e.tag===4}function ux(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uk(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 om(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=Bu));else if(r!==4&&(e=e.child,e!==null))for(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}function am(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(am(e,t,n),e=e.sibling;e!==null;)am(e,t,n),e=e.sibling}var kt=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)Vk(e,t,n),n=n.sibling}function Vk(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Ad,n)}catch{}switch(n.tag){case 5:Ot||Ds(n,t);case 6:var r=kt,i=Dn;kt=null,Lr(e,t,n),kt=r,Dn=i,kt!==null&&(Dn?(e=kt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):kt.removeChild(n.stateNode));break;case 18:kt!==null&&(Dn?(e=kt,n=n.stateNode,e.nodeType===8?eh(e.parentNode,n):e.nodeType===1&&eh(e,n),Ga(e)):eh(kt,n.stateNode));break;case 4:r=kt,i=Dn,kt=n.stateNode.containerInfo,Dn=!0,Lr(e,t,n),kt=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&im(n,t,o),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Ot&&(Ds(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){rt(n,t,a)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Lr(e,t,n),Ot=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function dx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new SR),t.forEach(function(r){var i=PR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=ot()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Qu=0,Oe&6)throw Error(re(331));var i=Oe;for(Oe|=4,he=e.current;he!==null;){var s=he,o=s.child;if(he.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lot()-ty?Di(e,0):ey|=n),en(e,t)}function Qk(e,t){t===0&&(e.mode&1?(t=mc,mc<<=1,!(mc&130023424)&&(mc=4194304)):t=1);var n=Ht();e=Tr(e,t),e!==null&&(Ol(e,t,n),en(e,n))}function LR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qk(e,n)}function PR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(re(314))}r!==null&&r.delete(t),Qk(e,n)}var Zk;Zk=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,_R(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,We&&t.flags&1048576&&nk(t,Uu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cu(e,t),e=t.pendingProps;var i=oo(t,Pt.current);Zs(t,n),i=Wg(null,t,r,e,i,n);var s=Yg();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Fu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Vg(t),i.updater=Pd,t.stateNode=i,i._reactInternals=t,Qp(t,r,e,n),t=em(null,t,r,!0,s,n)):(t.tag=0,We&&s&&Dg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(cu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=jR(r),e=Pn(r,e),i){case 0:t=Jp(null,t,r,e,n);break e;case 1:t=ox(null,t,r,e,n);break e;case 11:t=ix(null,t,r,e,n);break e;case 14:t=sx(null,t,r,Pn(r.type,e),n);break e}throw Error(re(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),Jp(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ox(e,t,r,i,n);case 3:e:{if(Pk(t),e===null)throw Error(re(387));r=t.pendingProps,s=t.memoizedState,i=s.element,lk(e,t),Ku(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=uo(Error(re(423)),t),t=ax(e,t,r,n,i);break e}else if(r!==i){i=uo(Error(re(424)),t),t=ax(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,We=!0,Bn=null,n=ok(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ao(),r===i){t=Ar(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return ck(t),e===null&&Wp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Vp(r,i)?o=null:s!==null&&Vp(r,s)&&(t.flags|=32),Lk(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&Wp(t),null;case 13:return Dk(e,t,n);case 4:return Hg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=lo(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ix(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ze(Vu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=vr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),Yp(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(re(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Yp(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Zs(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),sx(e,t,r,i,n);case 15:return Ok(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),cu(e,t),t.tag=1,Jt(r)?(e=!0,Fu(t)):e=!1,Zs(t,n),Ck(t,r,i),Qp(t,r,i,n),em(null,t,r,!0,e,n);case 19:return jk(e,t,n);case 22:return Rk(e,t,n)}throw Error(re(156,t.tag))};function Jk(e,t){return NE(e,t)}function DR(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 kn(e,t,n,r){return new DR(e,t,n,r)}function sy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function jR(e){if(typeof e=="function")return sy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kg)return 11;if(e===Sg)return 14}return 2}function ri(e,t){var n=e.alternate;return n===null?(n=kn(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 fu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")sy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ts:return ji(n.children,i,s,t);case Eg:o=8,i|=8;break;case vp:return e=kn(12,n,t,i|2),e.elementType=vp,e.lanes=s,e;case _p:return e=kn(13,n,t,i),e.elementType=_p,e.lanes=s,e;case Ep:return e=kn(19,n,t,i),e.elementType=Ep,e.lanes=s,e;case cE:return Bd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case aE:o=10;break e;case lE:o=9;break e;case kg:o=11;break e;case Sg:o=14;break e;case $r:o=16,r=null;break e}throw Error(re(130,e==null?e:typeof e,""))}return t=kn(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function ji(e,t,n,r){return e=kn(7,e,r,t),e.lanes=n,e}function Bd(e,t,n,r){return e=kn(22,e,r,t),e.elementType=cE,e.lanes=n,e.stateNode={isHidden:!1},e}function lh(e,t,n){return e=kn(6,e,null,t),e.lanes=n,e}function ch(e,t,n){return t=kn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function BR(e,t,n,r,i){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=Vf(0),this.expirationTimes=Vf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function oy(e,t,n,r,i,s,o,a,l){return e=new BR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=kn(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vg(s),e}function $R(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rS)}catch(e){console.error(e)}}rS(),rE.exports=mn;var HR=rE.exports,xx=HR;xp.createRoot=xx.createRoot,xp.hydrateRoot=xx.hydrateRoot;const uy=S.createContext({});function Vd(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Hd=S.createContext(null),sl=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class KR extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function qR({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=S.useContext(sl);return S.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return s&&(d.nonce=s),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${a}px !important; + top: ${l}px !important; + left: ${c}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),f.jsx(KR,{isPresent:t,childRef:r,sizeRef:i,children:S.cloneElement(e,{ref:r})})}const GR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Vd(WR),l=S.useId(),c=S.useCallback(u=>{a.set(u,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),d=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:u=>(a.set(u,!1),()=>a.delete(u))}),s?[Math.random(),c]:[n,c]);return S.useMemo(()=>{a.forEach((u,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(qR,{isPresent:n,children:e})),f.jsx(Hd.Provider,{value:d,children:e})};function WR(){return new Map}function iS(e=!0){const t=S.useContext(Hd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=S.useId();S.useEffect(()=>{e&&i(s)},[e]);const o=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Tc=e=>e.key||"";function wx(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const dy=typeof window<"u",sS=dy?S.useLayoutEffect:S.useEffect,fy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=iS(o),c=S.useMemo(()=>wx(e),[e]),d=o&&!a?[]:c.map(Tc),u=S.useRef(!0),h=S.useRef(c),p=Vd(()=>new Map),[g,b]=S.useState(c),[w,m]=S.useState(c);sS(()=>{u.current=!1,h.current=c;for(let v=0;v{const E=Tc(v),_=o&&!a?!1:c===w||d.includes(E),C=()=>{if(p.has(E))p.set(E,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(y==null||y(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(GR,{isPresent:_,initial:!u.current||n?void 0:!1,custom:_?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:_?void 0:C,children:v},E)})})},un=e=>e;let oS=un;const YR={useManualTiming:!1};function XR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,d=!1,u=!1)=>{const p=u&&r?t:n;return d&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Ac=["read","resolveKeyframes","update","preRender","render","postRender"],QR=40;function aS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Ac.reduce((m,x)=>(m[x]=XR(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:d,render:u,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,QR),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),d.process(i),u.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Ac.reduce((m,x)=>{const y=o[x];return m[x]=(v,E=!1,_=!1)=>(n||g(),y.schedule(v,E,_)),m},{}),cancel:m=>{for(let x=0;xvx[e].some(n=>!!t[n])};function ZR(e){for(const t in e)ho[t]={...ho[t],...e[t]}}const JR=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ed(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||JR.has(e)}let cS=e=>!ed(e);function uS(e){e&&(cS=t=>t.startsWith("on")?!ed(t):e(t))}try{uS(require("@emotion/is-prop-valid").default)}catch{}function eL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(cS(i)||n===!0&&ed(i)||!t&&!ed(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function tL({children:e,isValidProp:t,...n}){t&&uS(t),n={...S.useContext(sl),...n},n.isStatic=Vd(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(sl.Provider,{value:r,children:e})}function nL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Kd=S.createContext({});function ol(e){return typeof e=="string"||Array.isArray(e)}function qd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const hy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],py=["initial",...hy];function Gd(e){return qd(e.animate)||py.some(t=>ol(e[t]))}function dS(e){return!!(Gd(e)||e.variants)}function rL(e,t){if(Gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ol(n)?n:void 0,animate:ol(r)?r:void 0}}return e.inherit!==!1?t:{}}function iL(e){const{initial:t,animate:n}=rL(e,S.useContext(Kd));return S.useMemo(()=>({initial:t,animate:n}),[_x(t),_x(n)])}function _x(e){return Array.isArray(e)?e.join(" "):e}const sL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function oL(e,t,n){return S.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Bs(n)&&(n.current=r))},[t])}const my=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),aL="framerAppearId",fS="data-"+my(aL),{schedule:gy}=aS(queueMicrotask,!1),hS=S.createContext({});function lL(e,t,n,r,i){var s,o;const{visualElement:a}=S.useContext(Kd),l=S.useContext(lS),c=S.useContext(Hd),d=S.useContext(sl).reducedMotion,u=S.useRef(null);r=r||l.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const h=u.current,p=S.useContext(hS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&cL(u.current,n,i,p);const g=S.useRef(!1);S.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[fS],w=S.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,b)));return sS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),gy.render(h.render),w.current&&h.animationState&&h.animationState.animateChanges())}),S.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,b)}),w.current=!1))}),h}function cL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:pS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Bs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function pS(e){if(e)return e.options.allowProjection!==!1?e.projection:pS(e.parent)}function uL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&ZR(e);function a(c,d){let u;const h={...S.useContext(sl),...c,layoutId:dL(c)},{isStatic:p}=h,g=iL(c),b=r(c,p);if(!p&&dy){fL();const w=hL(h);u=w.MeasureLayout,g.visualElement=lL(i,b,h,t,w.ProjectionNode)}return f.jsxs(Kd.Provider,{value:g,children:[u&&g.visualElement?f.jsx(u,{visualElement:g.visualElement,...h}):null,n(i,c,oL(b,g.visualElement,d),b,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=S.forwardRef(a);return l[sL]=i,l}function dL({layoutId:e}){const t=S.useContext(uy).id;return t&&e!==void 0?t+"-"+e:e}function fL(e,t){S.useContext(lS).strict}function hL(e){const{drag:t,layout:n}=ho;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const pL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function yy(e){return typeof e!="string"||e.includes("-")?!1:!!(pL.indexOf(e)>-1||/[A-Z]/u.test(e))}function Ex(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function by(e,t,n,r){if(typeof t=="function"){const[i,s]=Ex(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Ex(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const fm=e=>Array.isArray(e),mL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),gL=e=>fm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function hu(e){const t=Rt(e)?e.get():e;return mL(t)?t.toValue():t}function yL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:bL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const mS=e=>(t,n)=>{const r=S.useContext(Kd),i=S.useContext(Hd),s=()=>yL(e,t,r,i);return n?s():Vd(s)};function bL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=hu(s[h]);let{initial:o,animate:a}=e;const l=Gd(e),c=dS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const u=d?a:o;if(u&&typeof u!="boolean"&&!qd(u)){const h=Array.isArray(u)?u:[u];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),yS=gS("--"),xL=gS("var(--"),xy=e=>xL(e)?wL.test(e.split("/*")[0].trim()):!1,wL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,bS=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Cr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},al={...Po,transform:e=>Cr(0,1,e)},Cc={...Po,default:1},Dl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=Dl("deg"),ir=Dl("%"),_e=Dl("px"),vL=Dl("vh"),_L=Dl("vw"),kx={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},EL={borderWidth:_e,borderTopWidth:_e,borderRightWidth:_e,borderBottomWidth:_e,borderLeftWidth:_e,borderRadius:_e,radius:_e,borderTopLeftRadius:_e,borderTopRightRadius:_e,borderBottomRightRadius:_e,borderBottomLeftRadius:_e,width:_e,maxWidth:_e,height:_e,maxHeight:_e,top:_e,right:_e,bottom:_e,left:_e,padding:_e,paddingTop:_e,paddingRight:_e,paddingBottom:_e,paddingLeft:_e,margin:_e,marginTop:_e,marginRight:_e,marginBottom:_e,marginLeft:_e,backgroundPositionX:_e,backgroundPositionY:_e},kL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Cc,scaleX:Cc,scaleY:Cc,scaleZ:Cc,skew:Br,skewX:Br,skewY:Br,distance:_e,translateX:_e,translateY:_e,translateZ:_e,x:_e,y:_e,z:_e,perspective:_e,transformPerspective:_e,opacity:al,originX:kx,originY:kx,originZ:_e},Sx={...Po,transform:Math.round},wy={...EL,...kL,zIndex:Sx,size:_e,fillOpacity:al,strokeOpacity:al,numOctaves:Sx},SL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},NL=Lo.length;function TL(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),xS=()=>({...Ey(),attrs:{}}),ky=e=>typeof e=="string"&&e.toLowerCase()==="svg";function wS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const vS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function _S(e,t,n,r){wS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(vS.has(i)?i:my(i),t.attrs[i])}const td={};function OL(e){Object.assign(td,e)}function ES(e,{layout:t,layoutId:n}){return is.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!td[e]||e==="opacity")}function Sy(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||ES(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function kS(e,t,n){const r=Sy(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Lo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function RL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Tx=["x","y","width","height","cx","cy","r"],LL={useVisualState:mS({scrapeMotionValuesFromProps:kS,createRenderState:xS,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(is.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{RL(n,r),qe.render(()=>{_y(r,i,ky(n.tagName),e.transformTemplate),_S(n,r)})})}})},PL={useVisualState:mS({scrapeMotionValuesFromProps:Sy,createRenderState:Ey})};function SS(e,t,n){for(const r in t)!Rt(t[r])&&!ES(r,n)&&(e[r]=t[r])}function DL({transformTemplate:e},t){return S.useMemo(()=>{const n=Ey();return vy(n,t,e),Object.assign({},n.vars,n.style)},[t])}function jL(e,t){const n=e.style||{},r={};return SS(r,n,e),Object.assign(r,DL(e,t)),r}function BL(e,t){const n={},r=jL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function $L(e,t,n,r){const i=S.useMemo(()=>{const s=xS();return _y(s,t,ky(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};SS(s,e.style,e),i.style={...s,...i.style}}return i}function FL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(yy(n)?$L:BL)(r,s,o,n),c=eL(r,typeof n=="string",e),d=n!==S.Fragment?{...c,...l,ref:i}:{},{children:u}=r,h=S.useMemo(()=>Rt(u)?u.get():u,[u]);return S.createElement(n,{...d,children:h})}}function zL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...yy(r)?LL:PL,preloadedFeatures:e,useRender:FL(i),createVisualElement:t,Component:r};return uL(o)}}function NS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(pu===void 0&&sr.set(St.isProcessing||YR.useManualTiming?St.timestamp:performance.now()),pu),set:e=>{pu=e,queueMicrotask(UL)}};function Ty(e,t){e.indexOf(t)===-1&&e.push(t)}function Ay(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Cy{constructor(){this.subscriptions=[]}add(t){return Ty(this.subscriptions,t),()=>Ay(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class HL{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=VL(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Cy);const r=this.events[t].add(n);return t==="change"?()=>{r(),qe.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ax)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ax);return AS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ll(e,t){return new HL(e,t)}function KL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ll(n))}function qL(e,t){const n=Wd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=gL(s[o]);KL(e,o,a)}}function GL(e){return!!(Rt(e)&&e.add)}function hm(e,t){const n=e.getValue("willChange");if(GL(n))return n.add(t)}function CS(e){return e.props[fS]}function My(e){let t;return()=>(t===void 0&&(t=e()),t)}const WL=My(()=>window.ScrollTimeline!==void 0);class YL{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(WL()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class XL extends YL{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const _r=e=>e*1e3,Er=e=>e/1e3;function Iy(e){return typeof e=="function"}function Cx(e,t){e.timeline=t,e.onfinish=null}const Oy=e=>Array.isArray(e)&&typeof e[0]=="number",QL={linearEasing:void 0};function ZL(e,t){const n=My(e);return()=>{var r;return(r=QL[t])!==null&&r!==void 0?r:n()}}const nd=ZL(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),po=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},MS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,pm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:pa([0,.65,.55,1]),circOut:pa([.55,0,1,.45]),backIn:pa([.31,.01,.66,-.59]),backOut:pa([.33,1.53,.69,.99])};function OS(e,t){if(e)return typeof e=="function"&&nd()?MS(e,t):Oy(e)?pa(e):Array.isArray(e)?e.map(n=>OS(n,t)||pm.easeOut):pm[e]}const RS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,JL=1e-7,eP=12;function tP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=RS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>JL&&++atP(s,0,1,e,n);return s=>s===0||s===1?s:RS(i(s),t,r)}const LS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,PS=e=>t=>1-e(1-t),DS=jl(.33,1.53,.69,.99),Ry=PS(DS),jS=LS(Ry),BS=e=>(e*=2)<1?.5*Ry(e):.5*(2-Math.pow(2,-10*(e-1))),Ly=e=>1-Math.sin(Math.acos(e)),$S=PS(Ly),FS=LS(Ly),zS=e=>/^0[^.\s]+$/u.test(e);function nP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||zS(e):!0}const Ma=e=>Math.round(e*1e5)/1e5,Py=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rP(e){return e==null}const iP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Dy=(e,t)=>n=>!!(typeof n=="string"&&iP.test(n)&&n.startsWith(e)||t&&!rP(n)&&Object.prototype.hasOwnProperty.call(n,t)),US=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Py);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},sP=e=>Cr(0,255,e),dh={...Po,transform:e=>Math.round(sP(e))},Oi={test:Dy("rgb","red"),parse:US("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dh.transform(e)+", "+dh.transform(t)+", "+dh.transform(n)+", "+Ma(al.transform(r))+")"};function oP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const mm={test:Dy("#"),parse:oP,transform:Oi.transform},$s={test:Dy("hsl","hue"),parse:US("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ma(t))+", "+ir.transform(Ma(n))+", "+Ma(al.transform(r))+")"},It={test:e=>Oi.test(e)||mm.test(e)||$s.test(e),parse:e=>Oi.test(e)?Oi.parse(e):$s.test(e)?$s.parse(e):mm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Oi.transform(e):$s.transform(e)},aP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function lP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Py))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(aP))===null||n===void 0?void 0:n.length)||0)>0}const VS="number",HS="color",cP="var",uP="var(",Mx="${}",dP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function cl(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(dP,l=>(It.test(l)?(r.color.push(s),i.push(HS),n.push(It.parse(l))):l.startsWith(uP)?(r.var.push(s),i.push(cP),n.push(l)):(r.number.push(s),i.push(VS),n.push(parseFloat(l))),++s,Mx)).split(Mx);return{values:n,split:a,indexes:r,types:i}}function KS(e){return cl(e).values}function qS(e){const{split:t,types:n}=cl(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function hP(e){const t=KS(e);return qS(e)(t.map(fP))}const ci={test:lP,parse:KS,createTransformer:qS,getAnimatableNone:hP},pP=new Set(["brightness","contrast","saturate","opacity"]);function mP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Py)||[];if(!r)return e;const i=n.replace(r,"");let s=pP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const gP=/\b([a-z-]*)\(.*?\)/gu,gm={...ci,getAnimatableNone:e=>{const t=e.match(gP);return t?t.map(mP).join(" "):e}},yP={...wy,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:gm,WebkitFilter:gm},jy=e=>yP[e];function GS(e,t){let n=jy(e);return n!==gm&&(n=ci),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const bP=new Set(["auto","none","0"]);function xP(e,t,n){let r=0,i;for(;re===Po||e===_e,Ox=(e,t)=>parseFloat(e.split(", ")[t]),Rx=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Ox(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Ox(s[1],e):0}},wP=new Set(["x","y","z"]),vP=Lo.filter(e=>!wP.has(e));function _P(e){const t=[];return vP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Rx(4,13),y:Rx(5,14)};mo.translateX=mo.x;mo.translateY=mo.y;const Bi=new Set;let ym=!1,bm=!1;function WS(){if(bm){const e=Array.from(Bi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=_P(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}bm=!1,ym=!1,Bi.forEach(e=>e.complete()),Bi.clear()}function YS(){Bi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(bm=!0)})}function EP(){YS(),WS()}class By{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Bi.add(this),ym||(ym=!0,qe.read(YS),qe.resolveKeyframes(WS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),kP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function SP(e){const t=kP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function QS(e,t,n=1){const[r,i]=SP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return XS(o)?parseFloat(o):o}return xy(i)?QS(i,t,n+1):i}const ZS=e=>t=>t.test(e),NP={test:e=>e==="auto",parse:e=>e},JS=[Po,_e,ir,Br,_L,vL,NP],Lx=e=>JS.find(ZS(e));class eN extends By{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Px=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ci.test(e)||e==="0")&&!e.startsWith("url("));function TP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Yd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(CP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const MP=40;class tN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>MP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&EP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!AP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Yd(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const xm=2e4;function nN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=xm?1/0:t}const Je=(e,t,n)=>e+(t-e)*n;function fh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function IP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=fh(l,a,e+1/3),s=fh(l,a,e),o=fh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function rd(e,t){return n=>n>0?t:e}const hh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},OP=[mm,Oi,$s],RP=e=>OP.find(t=>t.test(e));function Dx(e){const t=RP(e);if(!t)return!1;let n=t.parse(e);return t===$s&&(n=IP(n)),n}const jx=(e,t)=>{const n=Dx(e),r=Dx(t);if(!n||!r)return rd(e,t);const i={...n};return s=>(i.red=hh(n.red,r.red,s),i.green=hh(n.green,r.green,s),i.blue=hh(n.blue,r.blue,s),i.alpha=Je(n.alpha,r.alpha,s),Oi.transform(i))},LP=(e,t)=>n=>t(e(n)),Bl=(...e)=>e.reduce(LP),wm=new Set(["none","hidden"]);function PP(e,t){return wm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function DP(e,t){return n=>Je(e,t,n)}function $y(e){return typeof e=="number"?DP:typeof e=="string"?xy(e)?rd:It.test(e)?jx:$P:Array.isArray(e)?rN:typeof e=="object"?It.test(e)?jx:jP:rd}function rN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>$y(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function BP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ci.createTransformer(t),r=cl(e),i=cl(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?wm.has(e)&&!i.values.length||wm.has(t)&&!r.values.length?PP(e,t):Bl(rN(BP(r,i),i.values),n):rd(e,t)};function iN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Je(e,t,n):$y(e)(e,t)}const FP=5;function sN(e,t,n){const r=Math.max(t-FP,0);return AS(n-e(r),t-r)}const nt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ph=.001;function zP({duration:e=nt.duration,bounce:t=nt.bounce,velocity:n=nt.velocity,mass:r=nt.mass}){let i,s,o=1-t;o=Cr(nt.minDamping,nt.maxDamping,o),e=Cr(nt.minDuration,nt.maxDuration,Er(e)),o<1?(i=c=>{const d=c*o,u=d*e,h=d-n,p=vm(c,o),g=Math.exp(-u);return ph-h/p*g},s=c=>{const u=c*o*e,h=u*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-u),b=vm(Math.pow(c,2),o);return(-i(c)+ph>0?-1:1)*((h-p)*g)/b}):(i=c=>{const d=Math.exp(-c*e),u=(c-n)*e+1;return-ph+d*u},s=c=>{const d=Math.exp(-c*e),u=(n-c)*(e*e);return d*u});const a=5/e,l=VP(i,s,a);if(e=_r(e),isNaN(l))return{stiffness:nt.stiffness,damping:nt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const UP=12;function VP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function qP(e){let t={velocity:nt.velocity,stiffness:nt.stiffness,damping:nt.damping,mass:nt.mass,isResolvedFromDuration:!1,...e};if(!Bx(e,KP)&&Bx(e,HP))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Cr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:nt.mass,stiffness:i,damping:s}}else{const n=zP(e);t={...t,...n,mass:nt.mass},t.isResolvedFromDuration=!0}return t}function oN(e=nt.visualDuration,t=nt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:d,duration:u,velocity:h,isResolvedFromDuration:p}=qP({...n,velocity:-Er(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*d)),w=o-s,m=Er(Math.sqrt(l/d)),x=Math.abs(w)<5;r||(r=x?nt.restSpeed.granular:nt.restSpeed.default),i||(i=x?nt.restDelta.granular:nt.restDelta.default);let y;if(b<1){const E=vm(m,b);y=_=>{const C=Math.exp(-b*m*_);return o-C*((g+b*m*w)/E*Math.sin(E*_)+w*Math.cos(E*_))}}else if(b===1)y=E=>o-Math.exp(-m*E)*(w+(g+m*w)*E);else{const E=m*Math.sqrt(b*b-1);y=_=>{const C=Math.exp(-b*m*_),N=Math.min(E*_,300);return o-C*((g+b*m*w)*Math.sinh(N)+E*w*Math.cosh(N))/E}}const v={calculatedDuration:p&&u||null,next:E=>{const _=y(E);if(p)a.done=E>=u;else{let C=0;b<1&&(C=E===0?_r(g):sN(y,E,_));const N=Math.abs(C)<=r,I=Math.abs(o-_)<=i;a.done=N&&I}return a.value=a.done?o:_,a},toString:()=>{const E=Math.min(nN(v),xm),_=MS(C=>v.next(E*C).value,E,30);return E+"ms "+_}};return v}function $x({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:d}){const u=e[0],h={done:!1,value:u},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-b*Math.exp(-N/r),y=N=>m+x(N),v=N=>{const I=x(N),A=y(N);h.done=Math.abs(I)<=c,h.value=h.done?m:A};let E,_;const C=N=>{p(h.value)&&(E=N,_=oN({keyframes:[h.value,g(h.value)],velocity:sN(y,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:d}))};return C(0),{calculatedDuration:null,next:N=>{let I=!1;return!_&&E===void 0&&(I=!0,v(N),C(N)),E!==void 0&&N>=E?_.next(N-E):(!I&&v(N),h)}}}const GP=jl(.42,0,1,1),WP=jl(0,0,.58,1),aN=jl(.42,0,.58,1),YP=e=>Array.isArray(e)&&typeof e[0]!="number",XP={linear:un,easeIn:GP,easeInOut:aN,easeOut:WP,circIn:Ly,circInOut:FS,circOut:$S,backIn:Ry,backInOut:jS,backOut:DS,anticipate:BS},Fx=e=>{if(Oy(e)){oS(e.length===4);const[t,n,r,i]=e;return jl(t,n,r,i)}else if(typeof e=="string")return XP[e];return e};function QP(e,t,n){const r=[],i=n||iN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=QP(t,r,i),l=a.length,c=d=>{if(o&&d1)for(;uc(Cr(e[0],e[s-1],d)):c}function JP(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=po(0,t,r);e.push(Je(n,1,i))}}function eD(e){const t=[0];return JP(t,e.length-1),t}function tD(e,t){return e.map(n=>n*t)}function nD(e,t){return e.map(()=>t||aN).splice(0,e.length-1)}function id({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=YP(r)?r.map(Fx):Fx(r),s={done:!1,value:t[0]},o=tD(n&&n.length===t.length?n:eD(t),e),a=ZP(o,t,{ease:Array.isArray(i)?i:nD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const rD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>qe.update(t,!0),stop:()=>li(t),now:()=>St.isProcessing?St.timestamp:sr.now()}},iD={decay:$x,inertia:$x,tween:id,keyframes:id,spring:oN},sD=e=>e/100;class Fy extends tN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||By,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Iy(n)?n:iD[n]||id;let l,c;a!==id&&typeof t[0]!="number"&&(l=Bl(sD,iN(t[0],t[1])),t=[0,100]);const d=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=nN(d));const{calculatedDuration:u}=d,h=u+i,p=h*(r+1)-i;return{generator:d,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:u,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:d,resolvedDuration:u}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:b,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),x=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let y=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,d)/u;let I=Math.floor(N),A=N%1;!A&&N>=1&&(A=1),A===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(A=1-A,b&&(A-=b/u)):g==="mirror"&&(v=o)),y=Cr(0,1,A)*u}const E=x?{done:!1,value:l[0]}:v.next(y);a&&(E.value=a(E.value));let{done:_}=E;!x&&c!==null&&(_=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&_);return C&&i!==void 0&&(E.value=Yd(l,this.options,i)),w&&w(E.value),C&&this.finish(),E}get duration(){const{resolved:t}=this;return t?Er(t.calculatedDuration):0}get time(){return Er(this.currentTime)}set time(t){t=_r(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Er(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=rD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const oD=new Set(["opacity","clipPath","filter","transform"]);function aD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const d=OS(a,i);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const lD=My(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),sd=10,cD=2e4;function uD(e){return Iy(e.type)||e.type==="spring"||!IS(e.ease)}function dD(e,t){const n=new Fy({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&nd()&&fD(s)&&(s=lN[s]),uD(this.options)){const{onComplete:u,onUpdate:h,motionValue:p,element:g,...b}=this.options,w=dD(t,b);t=w.keyframes,t.length===1&&(t[1]=t[0]),r=w.duration,i=w.times,s=w.ease,o="keyframes"}const d=aD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return d.startTime=c??this.calcStartTime(),this.pendingTimeline?(Cx(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:u}=this.options;a.set(Yd(t,this.options,n)),u&&u(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return Er(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return Er(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_r(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Cx(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:d,onComplete:u,element:h,...p}=this.options,g=new Fy({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=_r(this.time);c.setWithVelocity(g.sample(b-sd).value,g.sample(b).value,sd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return lD()&&r&&oD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const hD={type:"spring",stiffness:500,damping:25,restSpeed:10},pD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),mD={type:"keyframes",duration:.8},gD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},yD=(e,{keyframes:t})=>t.length>2?mD:is.has(e)?e.startsWith("scale")?pD(t[1]):hD:gD;function bD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...d}){return!!Object.keys(d).length}const zy=(e,t,n,r={},i,s)=>o=>{const a=Ny(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-_r(l);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};bD(a)||(d={...d,...yD(e,d)}),d.duration&&(d.duration=_r(d.duration)),d.repeatDelay&&(d.repeatDelay=_r(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let u=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(u=!0)),u&&!s&&t.get()!==void 0){const h=Yd(d.keyframes,a);if(h!==void 0)return qe.update(()=>{d.onUpdate(h),d.onComplete()}),new XL([])}return!s&&zx.supports(d)?new zx(d):new Fy(d)};function xD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function cN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in l){const h=e.getValue(u,(s=e.latestValues[u])!==null&&s!==void 0?s:null),p=l[u];if(p===void 0||d&&xD(d,u))continue;const g={delay:n,...Ny(o||{},u)};let b=!1;if(window.MotionHandoffAnimation){const m=CS(e);if(m){const x=window.MotionHandoffAnimation(m,u,qe);x!==null&&(g.startTime=x,b=!0)}}hm(e,u),h.start(zy(u,h,p,e.shouldReduceMotion&&TS.has(u)?{type:!1}:g,e,b));const w=h.animation;w&&c.push(w)}return a&&Promise.all(c).then(()=>{qe.update(()=>{a&&qL(e,a)})}),c}function _m(e,t,n={}){var r;const i=Wd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(cN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:h}=s;return wD(e,t,d+c,u,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,d]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>d())}else return Promise.all([o(),a(n.delay)])}function wD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(vD).forEach((c,d)=>{c.notify("AnimationStart",t),o.push(_m(c,t,{...s,delay:n+l(d)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function vD(e,t){return e.sortNodePosition(t)}function _D(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>_m(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=_m(e,t,n);else{const i=typeof t=="function"?Wd(e,t,n.custom):t;r=Promise.all(cN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const ED=py.length;function uN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?uN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>_D(e,n,r)))}function TD(e){let t=ND(e),n=Ux(),r=!0;const i=l=>(c,d)=>{var u;const h=Wd(e,d,l==="exit"?(u=e.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(h){const{transition:p,transitionEnd:g,...b}=h;c={...c,...b,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,d=uN(e.parent)||{},u=[],h=new Set;let p={},g=1/0;for(let w=0;wg&&v,I=!1;const A=Array.isArray(y)?y:[y];let P=A.reduce(i(m),{});E===!1&&(P={});const{prevResolvedValues:R={}}=x,$={...R,...P},O=B=>{N=!0,h.has(B)&&(I=!0,h.delete(B)),x.needsAnimating[B]=!0;const L=e.getValue(B);L&&(L.liveStyle=!1)};for(const B in $){const L=P[B],D=R[B];if(p.hasOwnProperty(B))continue;let k=!1;fm(L)&&fm(D)?k=!NS(L,D):k=L!==D,k?L!=null?O(B):h.add(B):L!==void 0&&h.has(B)?O(B):x.protectedKeys[B]=!0}x.prevProp=y,x.prevResolvedValues=P,x.isActive&&(p={...p,...P}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(_&&C)||I)&&u.push(...A.map(B=>({animation:B,options:{type:m}})))}if(h.size){const w={};h.forEach(m=>{const x=e.getBaseTarget(m),y=e.getValue(m);y&&(y.liveStyle=!0),w[m]=x??null}),u.push({animation:w})}let b=!!u.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?t(u):Promise.resolve()}function a(l,c){var d;if(n[l].isActive===c)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const u=o(l);for(const h in n)n[h].protectedKeys={};return u}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Ux(),r=!0}}}function AD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!NS(t,e):!1}function yi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Ux(){return{animate:yi(!0),whileInView:yi(),whileHover:yi(),whileTap:yi(),whileDrag:yi(),whileFocus:yi(),exit:yi()}}class hi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class CD extends hi{constructor(t){super(t),t.animationState||(t.animationState=TD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();qd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let MD=0;class ID extends hi{constructor(){super(...arguments),this.id=MD++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const OD={animation:{Feature:CD},exit:{Feature:ID}},Ln={x:!1,y:!1};function dN(){return Ln.x||Ln.y}function RD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Uy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function ul(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function $l(e){return{point:{x:e.pageX,y:e.pageY}}}const LD=e=>t=>Uy(t)&&e(t,$l(t));function Ia(e,t,n,r){return ul(e,t,LD(n),r)}const Vx=(e,t)=>Math.abs(e-t);function PD(e,t){const n=Vx(e.x,t.x),r=Vx(e.y,t.y);return Math.sqrt(n**2+r**2)}class fN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=gh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=PD(u.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=u,{timestamp:b}=St;this.history.push({...g,timestamp:b});const{onStart:w,onMove:m}=this.handlers;h||(w&&w(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,u)},this.handlePointerMove=(u,h)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=mh(h,this.transformPagePoint),qe.update(this.updatePoint,!0)},this.handlePointerUp=(u,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=gh(u.type==="pointercancel"?this.lastMoveEventInfo:mh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(u,w),g&&g(u,w)},!Uy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=$l(t),a=mh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=St;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=n;d&&d(t,gh(a,this.history)),this.removeListeners=Bl(Ia(this.contextWindow,"pointermove",this.handlePointerMove),Ia(this.contextWindow,"pointerup",this.handlePointerUp),Ia(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),li(this.updatePoint)}}function mh(e,t){return t?{point:t(e.point)}:e}function Hx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gh({point:e},t){return{point:e,delta:Hx(e,hN(t)),offset:Hx(e,DD(t)),velocity:jD(t,.1)}}function DD(e){return e[0]}function hN(e){return e[e.length-1]}function jD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=hN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>_r(t)));)n--;if(!r)return{x:0,y:0};const s=Er(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const pN=1e-4,BD=1-pN,$D=1+pN,mN=.01,FD=0-mN,zD=0+mN;function hn(e){return e.max-e.min}function UD(e,t,n){return Math.abs(e-t)<=n}function Kx(e,t,n,r=.5){e.origin=r,e.originPoint=Je(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Je(n.min,n.max,e.origin)-e.originPoint,(e.scale>=BD&&e.scale<=$D||isNaN(e.scale))&&(e.scale=1),(e.translate>=FD&&e.translate<=zD||isNaN(e.translate))&&(e.translate=0)}function Oa(e,t,n,r){Kx(e.x,t.x,n.x,r?r.originX:void 0),Kx(e.y,t.y,n.y,r?r.originY:void 0)}function qx(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function VD(e,t,n){qx(e.x,t.x,n.x),qx(e.y,t.y,n.y)}function Gx(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Ra(e,t,n){Gx(e.x,t.x,n.x),Gx(e.y,t.y,n.y)}function HD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Je(n,e,r.max):Math.min(e,n)),e}function Wx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function KD(e,{top:t,left:n,bottom:r,right:i}){return{x:Wx(e.x,n,i),y:Wx(e.y,t,r)}}function Yx(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=po(t.min,t.max-r,e.min):r>i&&(n=po(e.min,e.max-i,t.min)),Cr(0,1,n)}function WD(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Em=.35;function YD(e=Em){return e===!1?e=0:e===!0&&(e=Em),{x:Xx(e,"left","right"),y:Xx(e,"top","bottom")}}function Xx(e,t,n){return{min:Qx(e,t),max:Qx(e,n)}}function Qx(e,t){return typeof e=="number"?e:e[t]||0}const Zx=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fs=()=>({x:Zx(),y:Zx()}),Jx=()=>({min:0,max:0}),it=()=>({x:Jx(),y:Jx()});function xn(e){return[e("x"),e("y")]}function gN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function XD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function QD(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function yh(e){return e===void 0||e===1}function km({scale:e,scaleX:t,scaleY:n}){return!yh(e)||!yh(t)||!yh(n)}function ki(e){return km(e)||yN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function yN(e){return ew(e.x)||ew(e.y)}function ew(e){return e&&e!=="0%"}function od(e,t,n){const r=e-n,i=t*r;return n+i}function tw(e,t,n,r,i){return i!==void 0&&(e=od(e,i,r)),od(e,n,r)+t}function Sm(e,t=0,n=1,r,i){e.min=tw(e.min,t,n,r,i),e.max=tw(e.max,t,n,r,i)}function bN(e,{x:t,y:n}){Sm(e.x,t.translate,t.scale,t.originPoint),Sm(e.y,n.translate,n.scale,n.originPoint)}const nw=.999999999999,rw=1.0000000000001;function ZD(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;anw&&(t.x=1),t.ynw&&(t.y=1)}function zs(e,t){e.min=e.min+t,e.max=e.max+t}function iw(e,t,n,r,i=.5){const s=Je(e.min,e.max,i);Sm(e,t,n,s,r)}function Us(e,t){iw(e.x,t.x,t.scaleX,t.scale,t.originX),iw(e.y,t.y,t.scaleY,t.scale,t.originY)}function xN(e,t){return gN(QD(e.getBoundingClientRect(),t))}function JD(e,t,n){const r=xN(e,n),{scroll:i}=t;return i&&(zs(r.x,i.offset.x),zs(r.y,i.offset.y)),r}const wN=({current:e})=>e?e.ownerDocument.defaultView:null,ej=new WeakMap;class tj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=it(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=d=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor($l(d).point)},s=(d,u)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xn(w=>{let m=this.getAxisMotionValue(w).get()||0;if(ir.test(m)){const{projection:x}=this.visualElement;if(x&&x.layout){const y=x.layout.layoutBox[w];y&&(m=hn(y)*(parseFloat(m)/100))}}this.originPoint[w]=m}),g&&qe.postRender(()=>g(d,u)),hm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,u)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:w}=u;if(p&&this.currentDirection===null){this.currentDirection=nj(w),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",u.point,w),this.updateAxis("y",u.point,w),this.visualElement.render(),b&&b(d,u)},a=(d,u)=>this.stop(d,u),l=()=>xn(d=>{var u;return this.getAnimationState(d)==="paused"&&((u=this.getAxisMotionValue(d).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new fN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:wN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&qe.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Mc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=HD(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Bs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=KD(i.layoutBox,n):this.constraints=!1,this.elastic=YD(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=WD(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Bs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=JD(r,i.root,this.visualElement.getTransformPagePoint());let o=qD(i.layout.layoutBox,s);if(n){const a=n(XD(o));this.hasMutatedConstraints=!!a,a&&(o=gN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=xn(d=>{if(!Mc(d,n,this.currentDirection))return;let u=l&&l[d]||{};o&&(u={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...u};return this.startAxisValueAnimation(d,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return hm(this.visualElement,t),r.start(zy(t,r,0,n,this.visualElement,!1))}stopAnimation(){xn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xn(n=>{const{drag:r}=this.getProps();if(!Mc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Je(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Bs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=GD({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xn(o=>{if(!Mc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Je(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;ej.set(this.visualElement,this);const t=this.visualElement.current,n=Ia(t,"pointerdown",l=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Bs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),qe.read(r);const o=ul(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(xn(d=>{const u=this.getAxisMotionValue(d);u&&(this.originPoint[d]+=l[d].translate,u.set(u.get()+l[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Em,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function nj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class rj extends hi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new tj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const sw=e=>(t,n)=>{e&&qe.postRender(()=>e(t,n))};class ij extends hi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new fN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:wN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:sw(t),onStart:sw(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&qe.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ia(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ow(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ea={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(_e.test(e))e=parseFloat(e);else return e;const n=ow(e,t.target.x),r=ow(e,t.target.y);return`${n}% ${r}%`}},sj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ci.parse(e);if(i.length>5)return r;const s=ci.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Je(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class oj extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;OL(aj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),mu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||qe.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),gy.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function vN(e){const[t,n]=iS(),r=S.useContext(uy);return f.jsx(oj,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(hS),isPresent:t,safeToRemove:n})}const aj={borderRadius:{...ea,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ea,borderTopRightRadius:ea,borderBottomLeftRadius:ea,borderBottomRightRadius:ea,boxShadow:sj};function lj(e,t,n){const r=Rt(e)?e:ll(e);return r.start(zy("",r,t,n)),r.animation}function cj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const uj=(e,t)=>e.depth-t.depth;class dj{constructor(){this.children=[],this.isDirty=!1}add(t){Ty(this.children,t),this.isDirty=!0}remove(t){Ay(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(uj),this.isDirty=!1,this.children.forEach(t)}}function fj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(li(r),e(s-t))};return qe.read(r,!0),()=>li(r)}const _N=["TopLeft","TopRight","BottomLeft","BottomRight"],hj=_N.length,aw=e=>typeof e=="string"?parseFloat(e):e,lw=e=>typeof e=="number"||_e.test(e);function pj(e,t,n,r,i,s){i?(e.opacity=Je(0,n.opacity!==void 0?n.opacity:1,mj(r)),e.opacityExit=Je(t.opacity!==void 0?t.opacity:1,0,gj(r))):s&&(e.opacity=Je(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(po(e,t,r))}function uw(e,t){e.min=t.min,e.max=t.max}function bn(e,t){uw(e.x,t.x),uw(e.y,t.y)}function dw(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function fw(e,t,n,r,i){return e-=t,e=od(e,1/n,r),i!==void 0&&(e=od(e,1/i,r)),e}function yj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Je(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Je(s.min,s.max,r);e===s&&(a-=t),e.min=fw(e.min,t,n,a,i),e.max=fw(e.max,t,n,a,i)}function hw(e,t,[n,r,i],s,o){yj(e,t[n],t[r],t[i],t.scale,s,o)}const bj=["x","scaleX","originX"],xj=["y","scaleY","originY"];function pw(e,t,n,r){hw(e.x,t,bj,n?n.x:void 0,r?r.x:void 0),hw(e.y,t,xj,n?n.y:void 0,r?r.y:void 0)}function mw(e){return e.translate===0&&e.scale===1}function kN(e){return mw(e.x)&&mw(e.y)}function gw(e,t){return e.min===t.min&&e.max===t.max}function wj(e,t){return gw(e.x,t.x)&&gw(e.y,t.y)}function yw(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function SN(e,t){return yw(e.x,t.x)&&yw(e.y,t.y)}function bw(e){return hn(e.x)/hn(e.y)}function xw(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class vj{constructor(){this.members=[]}add(t){Ty(this.members,t),t.scheduleRender()}remove(t){if(Ay(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function _j(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:d,rotateX:u,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),d&&(r+=`rotate(${d}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ma=typeof window<"u"&&window.MotionDebug!==void 0,bh=["","X","Y","Z"],Ej={visibility:"hidden"},ww=1e3;let kj=0;function xh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function NN(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=CS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",qe,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&NN(r)}function TN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=kj++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ma&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(Tj),this.nodes.forEach(Oj),this.nodes.forEach(Rj),this.nodes.forEach(Aj),ma&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=fj(h,250),mu.hasAnimatedSinceResize&&(mu.hasAnimatedSinceResize=!1,this.nodes.forEach(_w))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||c)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||d.getDefaultTransition()||Bj,{onLayoutAnimationStart:w,onLayoutAnimationComplete:m}=d.getProps(),x=!this.targetLayout||!SN(this.targetLayout,g)||p,y=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,y);const v={...Ny(b,"layout"),onPlay:w,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||_w(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,li(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Lj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&NN(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const E=v/1e3;Ew(u.x,o.x,E),Ew(u.y,o.y,E),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Dj(this.relativeTarget,this.relativeTargetOrigin,h,E),y&&wj(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=it()),bn(y,this.relativeTarget)),b&&(this.animationValues=d,pj(d,c,this.latestValues,E,x,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(li(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=qe.update(()=>{mu.hasAnimatedSinceResize=!0,this.currentAnimation=lj(0,ww,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ww),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:d}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&AN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||it();const u=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+u;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Us(a,d),Oa(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new vj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&xh("z",o,c,this.animationValues);for(let d=0;d{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(vw),this.root.sharedNodes.clear()}}}function Sj(e){e.updateLayout()}function Nj(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(h);h.min=r[u].min,h.max=h.min+p}):AN(s,n.layoutBox,r)&&xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(r[u]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+p)});const a=Fs();Oa(a,r,n.layoutBox);const l=Fs();o?Oa(l,e.applyTransform(i,!0),n.measuredBox):Oa(l,r,n.layoutBox);const c=!kN(a);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:p}=u;if(h&&p){const g=it();Ra(g,n.layoutBox,h.layoutBox);const b=it();Ra(b,r,p.layoutBox),SN(g,b)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Tj(e){ma&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Aj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Cj(e){e.clearSnapshot()}function vw(e){e.clearMeasurements()}function Mj(e){e.isLayoutDirty=!1}function Ij(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _w(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Oj(e){e.resolveTargetDelta()}function Rj(e){e.calcProjection()}function Lj(e){e.resetSkewAndRotation()}function Pj(e){e.removeLeadSnapshot()}function Ew(e,t,n){e.translate=Je(t.translate,0,n),e.scale=Je(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function kw(e,t,n,r){e.min=Je(t.min,n.min,r),e.max=Je(t.max,n.max,r)}function Dj(e,t,n,r){kw(e.x,t.x,n.x,r),kw(e.y,t.y,n.y,r)}function jj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Bj={duration:.45,ease:[.4,0,.1,1]},Sw=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Nw=Sw("applewebkit/")&&!Sw("chrome/")?Math.round:un;function Tw(e){e.min=Nw(e.min),e.max=Nw(e.max)}function $j(e){Tw(e.x),Tw(e.y)}function AN(e,t,n){return e==="position"||e==="preserve-aspect"&&!UD(bw(t),bw(n),.2)}function Fj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const zj=TN({attachResizeListener:(e,t)=>ul(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wh={current:void 0},CN=TN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wh.current){const e=new zj({});e.mount(window),e.setOptions({layoutScroll:!0}),wh.current=e}return wh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Uj={pan:{Feature:ij},drag:{Feature:rj,ProjectionNode:CN,MeasureLayout:vN}};function Vj(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function MN(e,t){const n=Vj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Aw(e){return t=>{t.pointerType==="touch"||dN()||e(t)}}function Hj(e,t,n={}){const[r,i,s]=MN(e,n),o=Aw(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const d=Aw(u=>{c(u),l.removeEventListener("pointerleave",d)});l.addEventListener("pointerleave",d,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Cw(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&qe.postRender(()=>s(t,$l(t)))}class Kj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Hj(t,n=>(Cw(this.node,n,"Start"),r=>Cw(this.node,r,"End"))))}unmount(){}}class qj extends hi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(ul(this.node.current,"focus",()=>this.onFocus()),ul(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const IN=(e,t)=>t?e===t?!0:IN(e,t.parentElement):!1,Gj=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Wj(e){return Gj.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Mw(e){return t=>{t.key==="Enter"&&e(t)}}function vh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const Yj=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Mw(()=>{if(ga.has(n))return;vh(n,"down");const i=Mw(()=>{vh(n,"up")}),s=()=>vh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Iw(e){return Uy(e)&&!dN()}function Xj(e,t,n={}){const[r,i,s]=MN(e,n),o=a=>{const l=a.currentTarget;if(!Iw(a)||ga.has(l))return;ga.add(l);const c=t(a),d=(p,g)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),!(!Iw(p)||!ga.has(l))&&(ga.delete(l),typeof c=="function"&&c(p,{success:g}))},u=p=>{d(p,n.useGlobalTarget||IN(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",u,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!Wj(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>Yj(c,i),i)}),s}function Ow(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&qe.postRender(()=>s(t,$l(t)))}class Qj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Xj(t,n=>(Ow(this.node,n,"Start"),(r,{success:i})=>Ow(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Nm=new WeakMap,_h=new WeakMap,Zj=e=>{const t=Nm.get(e.target);t&&t(e)},Jj=e=>{e.forEach(Zj)};function eB({root:e,...t}){const n=e||document;_h.has(n)||_h.set(n,{});const r=_h.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Jj,{root:e,...t})),r[i]}function tB(e,t,n){const r=eB(t);return Nm.set(e,n),r.observe(e),()=>{Nm.delete(e),r.unobserve(e)}}const nB={some:0,all:1};class rB extends hi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:nB[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:d,onViewportLeave:u}=this.node.getProps(),h=c?d:u;h&&h(l)};return tB(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(iB(t,n))&&this.startObserver()}unmount(){}}function iB({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const sB={inView:{Feature:rB},tap:{Feature:Qj},focus:{Feature:qj},hover:{Feature:Kj}},oB={layout:{ProjectionNode:CN,MeasureLayout:vN}},Tm={current:null},ON={current:!1};function aB(){if(ON.current=!0,!!dy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Tm.current=e.matches;e.addListener(t),t()}else Tm.current=!1}const lB=[...JS,It,ci],cB=e=>lB.find(ZS(e)),Rw=new WeakMap;function uB(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,ll(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ll(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Lw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class dB{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=By,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),ON.current||aB(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Tm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Rw.delete(this.current),this.projection&&this.projection.unmount(),li(this.notifyUpdate),li(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=is.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&qe.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in ho){const n=ho[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):it()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ll(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(XS(i)||zS(i))?i=parseFloat(i):!cB(i)&&ci.test(n)&&(i=GS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=by(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Cy),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class RN extends dB{constructor(){super(...arguments),this.KeyframeResolver=eN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function fB(e){return window.getComputedStyle(e)}class hB extends RN{constructor(){super(...arguments),this.type="html",this.renderInstance=wS}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}else{const r=fB(t),i=(yS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return xN(t,n)}build(t,n,r){vy(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Sy(t,n,r)}}class pB extends RN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=it}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}return n=vS.has(n)?n:my(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return kS(t,n,r)}build(t,n,r){_y(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){_S(t,n,r,i)}mount(t){this.isSVGTag=ky(t.tagName),super.mount(t)}}const mB=(e,t)=>yy(e)?new pB(t):new hB(t,{allowProjection:e!==S.Fragment}),gB=zL({...OD,...sB,...Uj,...oB},mB),Dt=nL(gB);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yB=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),LN=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var bB={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xB=S.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:s,iconNode:o,...a},l)=>S.createElement("svg",{ref:l,...bB,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:LN("lucide",i),...a},[...o.map(([c,d])=>S.createElement(c,d)),...Array.isArray(s)?s:[s]]));/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const de=(e,t)=>{const n=S.forwardRef(({className:r,...i},s)=>S.createElement(xB,{ref:s,iconNode:t,className:LN(`lucide-${yB(e)}`,r),...i}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wB=de("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const PN=de("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vB=de("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const DN=de("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _B=de("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const EB=de("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const go=de("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vy=de("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kB=de("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const SB=de("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hy=de("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jN=de("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const NB=de("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gn=de("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const TB=de("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const AB=de("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const CB=de("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dl=de("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gu=de("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const MB=de("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const IB=de("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const OB=de("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const RB=de("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ky=de("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pw=de("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const LB=de("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qy=de("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const PB=de("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const DB=de("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jB=de("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const BB=de("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const BN=de("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $B=de("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xd=de("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const FB=de("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zB=de("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UB=de("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $N=de("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const VB=de("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const FN=de("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const HB=de("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const KB=de("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qB=de("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bt=de("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const GB=de("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WB=de("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const YB=de("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const XB=de("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const QB=de("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ZB=de("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const JB=de("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ss=de("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zN=de("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gy=de("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fl=de("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Am=de("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e$=de("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t$=de("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Dw=de("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qd=de("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UN=de("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Do=de("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const n$=de("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const r$=de("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const i$=de("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const s$=de("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wy=de("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Fl=de("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),jw="veadk_auth_qs";let ta=null;function o$(){if(ta!==null)return ta;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(jw,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),ta=e):ta=sessionStorage.getItem(jw)??"",ta}function Eh(e){const t=o$();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*VN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` + +`))!==-1;){const a=r.slice(0,o);r=r.slice(o+2);const l=a.split(` +`).filter(c=>c.startsWith("data:")).map(c=>c.slice(5).trimStart()).join(` +`);if(l)try{yield JSON.parse(l)}catch{}}}}const kh="",Yy=new Map;function a$(e,t){Yy.set(e,t)}function l$(){Yy.clear()}function os(e){const t=Yy.get(e);return t?{app:t.app,ep:{base:t.base,apiKey:t.apiKey,runtimeId:t.runtimeId,region:t.region}}:{app:e,ep:{}}}function jt(e,t={},n={}){if(n.runtimeId){const r=n.region?`${e.includes("?")?"&":"?"}region=${encodeURIComponent(n.region)}`:"";return fetch(Eh(`${kh}/web/runtime-proxy/${n.runtimeId}${e}${r}`),t)}if(n.base){const r={...t.headers};return r["X-AgentKit-Base"]=n.base,n.apiKey&&(r["X-AgentKit-Key"]=n.apiKey),fetch(Eh(`${kh}/agentkit-proxy${e}`),{...t,headers:r})}return fetch(Eh(`${kh}${e}`),t)}async function c$(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function HN(e,t,n){const r=await jt("/list-apps",{},n??{base:e,apiKey:t});if(!r.ok)throw new Error(`list-apps failed: ${r.status}`);return r.json()}async function Cm(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"},r);if(!i.ok)throw new Error(`create session failed: ${i.status}`);return(await i.json()).id}async function KN(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{},r);if(!i.ok)throw new Error(`list sessions failed: ${i.status}`);return i.json()}async function Mm(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{},i);if(!s.ok)throw new Error(`get session failed: ${s.status}`);return s.json()}async function u$(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{method:"DELETE"},i);if(!s.ok&&s.status!==404)throw new Error(`delete session failed: ${s.status}`)}async function d$(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function Xy(e){const{app:t,ep:n}=os(e),r=await jt(`/web/agent-info/${t}`,{},n);if(!r.ok)throw new Error(`agent-info failed: ${r.status}`);return r.json()}async function f$(e,t){const{app:n}=os(e),r=await jt(`/web/search?source=web&app_name=${encodeURIComponent(n)}&q=${encodeURIComponent(t)}`);if(!r.ok)throw new Error(`web search failed: ${r.status}`);return r.json()}async function*ad({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=os(e),c=[...i.map(u=>({inlineData:{mimeType:u.mimeType,data:u.data,displayName:u.name}})),...s.map(u=>({functionResponse:{id:u.id,name:u.name,response:u.response}})),...r.trim()?[{text:r}]:[]],d=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!d.ok)throw new Error(`run_sse failed: ${d.status}`);for await(const u of VN(d))yield u}async function qN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??"",im:r==null?void 0:r.im,envs:r==null?void 0:r.envs})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of VN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl,feishuChannel:s.feishuChannel}}async function h$(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Sh={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function p$(){try{const e=await jt("/web/ui-config");if(!e.ok)return Sh;const t=await e.json();return{studio:t.studio??!1,features:{...Sh.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Sh}}async function Nh(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function m$(e,t="cn-beijing"){try{return await HN("","",{runtimeId:e,region:t})}catch{return null}}async function g$(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function GN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const y$="send_a2ui_json_to_client",b$="validated_a2ui_json",Im="adk_request_credential";function x$(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Gr(){return{blocks:[],liveStart:0}}const Bw=e=>e.functionCall??e.function_call,Om=e=>e.functionResponse??e.function_response;function w$(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function v$(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:w$(r.data),name:r.displayName??r.display_name})}return t}function $w(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Th(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function hl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Bw(l)||Om(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&$w(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Bw(l),d=Om(l);if(typeof l.text=="string"&&l.text)$w(n,l.thought?"thinking":"text",l.text);else if(c)if(Th(n),c.name===Im){const u=c.args??{},h=u.authConfig??u.auth_config??u,g=String(u.functionCallId??u.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:x$(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(d){if(Th(n),d.name===Im)for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="tool"&&!h.done&&h.name===d.name){h.done=!0,h.response=d.response;break}}if(d.name===y$){const u=((a=d.response)==null?void 0:a[b$])??[];if(u.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...u):n.push({kind:"a2ui",messages:u})}}}}return Th(n),r=n.length,{blocks:n,liveStart:r}}function _$(e){var r;const t=[];let n=Gr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(d=>{var u;return((u=Om(d))==null?void 0:u.name)===Im})){for(let d=t.length-1;d>=0;d--)if(t[d].role==="assistant"){for(let u=t[d].blocks.length-1;u>=0;u--){const h=t[d].blocks[u];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(d=>d.text).filter(d=>!!d).join(""),l=v$(o);if(!a&&!l.length){n=Gr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Gr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Gr()),n=hl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function E$(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const Qy="veadk_local_user",k$=/^[A-Za-z0-9]{1,16}$/;function S$(){try{return localStorage.getItem(Qy)}catch{return null}}function N$(e){try{localStorage.setItem(Qy,e)}catch{}}function T$(){try{localStorage.removeItem(Qy)}catch{}}async function A$(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function C$(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function M$(){window.location.assign("/oauth2/logout")}async function I$(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=S$();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function O$(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const R$="https://findskill.com/";function L$(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function P$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(L$,{}),"技能中心"]})}function D$(){return f.jsx("iframe",{className:"skill-frame",src:R$,title:"技能中心"})}const j$=50,Fw=48;function B$(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function $$(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function F$(e,t,n){const r=Math.max(0,t-Fw),i=Math.min(e.length,t+n+Fw);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Mm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:d}of B$(a)){const u=l.toLowerCase().indexOf(r);if(u!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:$$(a),snippet:F$(l,u,r.length),role:c,ts:d??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,j$)}async function U$(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await f$(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function V$(e,t,n){return e==="session"?{results:await z$(n.userId,n.appId,t)}:e==="web"?U$(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function WN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function H$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(WN,{}),"智能搜索"]})}const zw=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function K$(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function q$({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var E;const[i,s]=S.useState("session"),[o,a]=S.useState(""),[l,c]=S.useState([]),[d,u]=S.useState(),[h,p]=S.useState(!1),[g,b]=S.useState(!1),w=S.useRef(0);async function m(_,C){const N=_.trim();if(!N)return;const I=++w.current;p(!0),b(!0);let A;try{A=await V$(C,N,{userId:e,appId:t})}catch(P){A={results:[],note:`搜索失败:${String(P)}`}}I===w.current&&(c(A.results),u(A.note),p(!1))}function x(_){s(_),g&&o.trim()&&m(o,_)}const y=(E=zw.find(_=>_.id===i))==null?void 0:E.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(WN,{}),f.jsx("input",{className:"search-input",value:o,onChange:_=>a(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(bt,{className:"icon spin"}):f.jsx(DN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:zw.map(_=>f.jsxs("button",{className:`search-tab ${i===_.id?"active":""}`,onClick:()=>x(_.id),disabled:!_.ready,title:_.ready?void 0:"即将支持",children:[_.label,!_.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},_.id))}),f.jsx("div",{className:"search-results",children:y?g?h?null:d?f.jsx("div",{className:"search-empty",children:d}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((_,C)=>f.jsx(G$,{result:_,agentLabel:n,onOpen:r},C)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function G$({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(YB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${K$(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Xd,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(OB,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const YN="veadk_agentkit_connections";function Wr(){try{const e=localStorage.getItem(YN);return e?JSON.parse(e):[]}catch{return[]}}function Zy(e){try{localStorage.setItem(YN,JSON.stringify(e))}catch{}}function Wi(e,t){return`agentkit:${e}:${t}`}function XN(e){try{return new URL(e).host}catch{return e}}function zl(e){l$();for(const t of e)for(const n of t.apps)a$(Wi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function QN(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Wr().filter(a=>a.runtimeId!==e),s];return Zy(o),zl(o),s}async function ZN(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await HN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||XN(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Wr().filter(l=>l.base!==i),o];return Zy(a),zl(a),o}function W$(e){const t=Wr().filter(n=>n.id!==e);return Zy(t),zl(t),t}function JN(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Wi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:XN(i.base??"")}}));return[...n,...r]}const Uw=Object.freeze(Object.defineProperty({__proto__:null,addConnection:ZN,addRuntimeConnection:QN,buildAgentEntries:JN,loadConnections:Wr,registerConnections:zl,remoteAppId:Wi,removeConnection:W$},Symbol.toStringTag,{value:"Module"})),Vw=15,Y$=1e4;function Ah(e,t=Y$){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function X$({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,d]=S.useState([]),[u,h]=S.useState([""]),[p,g]=S.useState(0),[b,w]=S.useState(!1),[m,x]=S.useState(null),[y,v]=S.useState(!1),[E,_]=S.useState(""),[C,N]=S.useState(""),[I,A]=S.useState(null),[P,R]=S.useState(new Set),[$,O]=S.useState(o),j=S.useRef(!1),M=S.useCallback(async T=>{if(c[T]){g(T);return}const U=u[T];if(U!==void 0){v(!0),_("");try{const X=await Ah(Nh(a,{nextToken:U,pageSize:Vw}));d(Z=>{const J=[...Z];return J[T]=X.runtimes,J}),h(Z=>{const J=[...Z];return X.nextToken&&(J[T+1]=X.nextToken),J}),g(T)}catch(X){_(X instanceof Error?X.message:String(X))}finally{v(!1)}}},[a,u,c]),B=S.useCallback(async()=>{v(!0),_("");try{const T=[];let U="";do{const X=await Ah(Nh(a,{scope:"mine",nextToken:U,pageSize:100}));T.push(...X.runtimes),U=X.nextToken}while(U&&T.length<2e3);x(T)}catch(T){_(T instanceof Error?T.message:String(T))}finally{v(!1)}},[a]);S.useEffect(()=>{e&&r==="cloud"&&!j.current&&(j.current=!0,M(0))},[e,r,M]),S.useEffect(()=>{b&&m===null&&r==="cloud"&&B()},[b,m,r,B]),S.useEffect(()=>{e&&O(o)},[e,o]);function L(){R(new Set),b?(x(null),B()):(d([]),h([""]),g(0),j.current=!0,v(!0),_(""),Ah(Nh(a,{nextToken:"",pageSize:Vw})).then(T=>{d([T.runtimes]),h(T.nextToken?["",T.nextToken]:[""])}).catch(T=>_(T instanceof Error?T.message:String(T))).finally(()=>v(!1)))}const D=!b&&(c[p+1]!==void 0||u[p+1]!==void 0);function k(T){A(T.runtimeId),m$(T.runtimeId,T.region).then(U=>{if(!U||U.length===0){R(J=>new Set(J).add(T.runtimeId));return}const X=Object.fromEntries(U.map(J=>[J,T.name])),Z=QN(T.runtimeId,T.name,T.region,U,X);l(Wi(Z.id,U[0])),O({runtimeId:T.runtimeId,name:T.name,region:T.region})}).catch(()=>R(U=>new Set(U).add(T.runtimeId))).finally(()=>A(null))}if(!e)return null;const H=(b?m??[]:c[p]??[]).filter(T=>C?T.name.toLowerCase().includes(C.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Vy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:L,title:"刷新",disabled:y,children:f.jsx(zN,{className:`icon ${y?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Fl,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(T=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${T===s?"active":""}`,onClick:()=>{l(T),t()},children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T})]})},T))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Am,{className:"icon"}),f.jsx("input",{value:C,onChange:T=>N(T.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:T=>w(T.target.checked)}),"只看我创建的"]})]}),E&&f.jsx("div",{className:"agentsel-error",children:E}),f.jsxs("div",{className:"agentsel-listwrap",children:[H.length===0&&!y?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:H.map(T=>{const U=P.has(T.runtimeId),X=I===T.runtimeId,Z=($==null?void 0:$.runtimeId)===T.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${Z?"active":""}`,onClick:()=>k(T),disabled:X,title:T.runtimeId,children:[X?f.jsx(bt,{className:"icon spin"}):f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T.name}),T.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),U?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${Z$(T.status)}`,children:T.status||"-"})]})},T.runtimeId)})}),y&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||D)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||y,onClick:()=>void M(p-1),"aria-label":"上一页",children:f.jsx(NB,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!D||y,onClick:()=>void M(p+1),"aria-label":"下一页",children:f.jsx(Gn,{className:"icon"})})]})]})]}),r==="cloud"&&$&&f.jsx(Q$,{runtime:$})]})]})}function Q$({runtime:e}){const[t,n]=S.useState(null),[r,i]=S.useState(!0),[s,o]=S.useState("");S.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),GN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function Z$(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const J$="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function eF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function tF({userInfo:e,onLogout:t}){const[n,r]=S.useState(!1);if(!e)return null;const i=O$(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(WB,{className:"icon"})," 退出登录"]})]})]})]})}function nF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:d,onNewChat:u,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:b,onManageAgents:w,onPickSession:m,onDeleteSession:x,userInfo:y,onLogout:v}){const E=j=>(n==null?void 0:n[j])!==!1,[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(0),R=S.useRef(null),$=()=>{R.current&&P(R.current.offsetTop),I(j=>!j)},O=[...e].sort((j,M)=>(M.lastUpdateTime??0)-(j.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:J$,alt:"","aria-hidden":!0}),"VeADK"]}),d&&(()=>{const j=i==="cloud"&&!o;return f.jsxs("button",{ref:R,className:`agent-row ${j?"agent-row--empty":""}`,onClick:$,title:"切换 Agent",children:[f.jsx(dl,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:j?"请选择 Agent":a||"选择 Agent"}),f.jsx(Gn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),d&&f.jsx(X$,{open:N,onClose:()=>I(!1),anchorTop:A,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:d}),E("newChat")&&f.jsxs("button",{className:"new-chat",onClick:u,children:[f.jsx(ss,{className:"icon"}),"新会话"]}),E("search")&&f.jsx(H$,{onClick:h}),E("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(eF,{}),"添加 Agent"]}),E("skillCenter")&&f.jsx(P$,{onClick:g}),E("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:w,children:[f.jsx(Vy,{className:"icon"}),"管理 Agent"]})]}),E("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[O.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),O.map(j=>f.jsxs("div",{className:`history-item ${j.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(j.id),title:j.id,children:[(r==null?void 0:r.has(j.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:E$(j.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>C(M=>M===j.id?null:j.id),children:f.jsx(IB,{className:"icon"})}),_===j.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>C(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{C(null),x(j.id)},children:[f.jsx(Do,{className:"icon"})," 删除"]})})]})]},j.id))]})]}),f.jsx(tF,{userInfo:y,onLogout:v})]})}function rF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(S.Fragment,{children:[a>0&&f.jsx(Gn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(iF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function iF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=S.useState(!1),[o,a]=S.useState(null),[l,c]=S.useState({}),[d,u]=S.useState(0),h=S.useRef({}),p=w=>r?r(w):w;function g(w){a(w);const m=h.current[w];if(m){const x=m.getBoundingClientRect(),y=m.closest(".agent-dd");if(y){const v=y.getBoundingClientRect();u(x.top-v.top)}}l[w]===void 0&&(c(x=>({...x,[w]:"loading"})),Xy(w).then(x=>c(y=>({...y,[w]:x}))).catch(()=>c(x=>({...x,[w]:"error"}))))}function b(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(w=>!w),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(jN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:b}),f.jsx("div",{className:"agent-dd-menu",children:e.map(w=>f.jsx("div",{ref:m=>h.current[w]=m,className:"agent-dd-row",onMouseEnter:()=>g(w),onMouseLeave:()=>a(m=>m===w?null:m),children:f.jsxs("button",{className:`agent-dd-item ${w===t?"active":""}`,onClick:()=>{n(w),b()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(w)}),w===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},w))}),o&&f.jsx(sF,{state:l[o],top:d})]})]})}function sF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(Wy,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Hw={llm:{icon:go,label:"LLM"},sequential:{icon:BN,label:"顺序"},parallel:{icon:UN,label:"并行"},loop:{icon:Gy,label:"循环"},a2a:{icon:Xd,label:"A2A"}};function eT(e){return 1+e.children.reduce((t,n)=>t+eT(n),0)}function tT({node:e,activeAgent:t,seen:n,path:r}){const i=Hw[e.type]??Hw.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((d,u)=>f.jsx(tT,{node:d,activeAgent:t,seen:n,path:r},`${d.name}-${u}`))})]})}function Kw({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=S.useState(null);if(S.useEffect(()=>{let a=!1;if(s(null),!!e)return Xy(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[eT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Gn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(tT,{node:i,activeAgent:t,seen:n,path:o})})]})}function oF({onAdded:e,onCancel:t}){const[n,r]=S.useState(""),[i,s]=S.useState(""),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),u("");try{const g=await ZN(o,n,i,o);if(g.apps.length===0){u("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Wi(g.id,g.apps[0]))}catch(g){u(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),d&&f.jsx("div",{className:"addagent-error",children:d}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(bt,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function aF({author:e}){const[t,n]=S.useState([]),[r,i]=S.useState(!0),[s,o]=S.useState(""),[a,l]=S.useState(null),[c,d]=S.useState(null),[u,h]=S.useState({}),p=S.useCallback(async()=>{i(!0),o("");try{n(await h$(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);S.useEffect(()=>{p()},[p]);async function g(m){h(y=>({...y,[m.runtimeId]:{loading:!0}}));const x={loading:!1};try{x.detail=await GN(m.runtimeId,m.region)}catch(y){x.error=y instanceof Error?y.message:String(y)}x.detail&&(x.graphs=[{name:x.detail.name,description:x.detail.description,type:"llm",model:x.detail.model,tools:[],children:[]}],x.graphNote="仅显示主 Agent(控制面信息)。"),h(y=>({...y,[m.runtimeId]:x}))}function b(m){const x=c===m.runtimeId;d(x?null:m.runtimeId),!x&&!u[m.runtimeId]&&g(m)}async function w(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await g$(m.runtimeId,m.region),n(x=>x.filter(y=>y.runtimeId!==m.runtimeId))}catch(x){o(x instanceof Error?x.message:String(x))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(zN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const x=c===m.runtimeId,y=u[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>b(m),"aria-expanded":x,children:[x?f.jsx(jN,{className:"icon"}):f.jsx(Gn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${uF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void w(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(bt,{className:"icon spin"}):f.jsx(Do,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:rT(m.createdAt)})]})]}),x&&f.jsx("div",{className:"manage-detail",children:!y||y.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[y.error&&f.jsx("div",{className:"manage-error",children:y.error}),y.detail&&f.jsx(lF,{detail:y.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),y.graphs&&y.graphs.length>0?y.graphs.map((v,E)=>f.jsx(nT,{node:v},E)):f.jsx("div",{className:"manage-tree-note",children:y.graphNote})]})})]},m.runtimeId)})})]})}function lF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",rT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const cF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function nT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:cF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(nT,{node:n,depth:t+1},r))]})}function uF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function rT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const dF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function fF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function hF(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function pF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function Jy(e,t){if(hF(e))return fF(t,e.path);if(pF(e)){const n=dF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=Jy(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function mF(e,t){const n=Jy(e,t);return n==null?"":typeof n=="string"?n:String(n)}const iT=new Map;function as(e,t){iT.set(e,t)}function gF(e){return iT.get(e)}function yF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sJy(r,e.dataModel),resolveString:r=>mF(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=gF(i.component)??bF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function oT(e){const t=S.useRef(null),n=S.useRef(!0),r=28,i=S.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function wF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const vF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_F=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,EF={};function qw(e,t){return(EF.jsx?_F:vF).test(e)}const kF=/[ \t\n\f\r]/g;function SF(e){return typeof e=="object"?e.type==="text"?Gw(e.value):!1:Gw(e)}function Gw(e){return e.replace(kF,"")===""}let Ul=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Ul.prototype.normal={};Ul.prototype.property={};Ul.prototype.space=void 0;function aT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Ul(n,r,t)}function Rm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let NF=0;const Se=ls(),ht=ls(),Lm=ls(),ie=ls(),Fe=ls(),eo=ls(),sn=ls();function ls(){return 2**++NF}const Pm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Se,booleanish:ht,commaOrSpaceSeparated:sn,commaSeparated:eo,number:ie,overloadedBoolean:Lm,spaceSeparated:Fe},Symbol.toStringTag,{value:"Module"})),Ch=Object.keys(Pm);class e0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),Ww(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&IF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Yw,LF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Yw.test(s)){let o=s.replace(MF,RF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=e0}return new i(r,t)}function RF(e){return"-"+e.toLowerCase()}function LF(e){return e.charAt(1).toUpperCase()}const PF=aT([lT,TF,dT,fT,hT],"html"),t0=aT([lT,AF,dT,fT,hT],"svg");function DF(e){return e.join(" ").trim()}var n0={},Xw=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,jF=/\n/g,BF=/^\s*/,$F=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,FF=/^:\s*/,zF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,UF=/^[;\s]*/,VF=/^\s+|\s+$/g,HF=` +`,Qw="/",Zw="*",Ai="",KF="comment",qF="declaration";function GF(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var b=g.match(jF);b&&(n+=b.length);var w=g.lastIndexOf(HF);r=~w?g.length-w:r+g.length}function s(){var g={line:n,column:r};return function(b){return b.position=new o(g),c(),b}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var b=new Error(t.source+":"+n+":"+r+": "+g);if(b.reason=g,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function l(g){var b=g.exec(e);if(b){var w=b[0];return i(w),e=e.slice(w.length),b}}function c(){l(BF)}function d(g){var b;for(g=g||[];b=u();)b!==!1&&g.push(b);return g}function u(){var g=s();if(!(Qw!=e.charAt(0)||Zw!=e.charAt(1))){for(var b=2;Ai!=e.charAt(b)&&(Zw!=e.charAt(b)||Qw!=e.charAt(b+1));)++b;if(b+=2,Ai===e.charAt(b-1))return a("End of comment missing");var w=e.slice(2,b-2);return r+=2,i(w),e=e.slice(b),r+=2,g({type:KF,comment:w})}}function h(){var g=s(),b=l($F);if(b){if(u(),!l(FF))return a("property missing ':'");var w=l(zF),m=g({type:qF,property:Jw(b[0].replace(Xw,Ai)),value:w?Jw(w[0].replace(Xw,Ai)):Ai});return l(UF),m}}function p(){var g=[];d(g);for(var b;b=h();)b!==!1&&(g.push(b),d(g));return g}return c(),p()}function Jw(e){return e?e.replace(VF,Ai):Ai}var WF=GF,YF=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n0,"__esModule",{value:!0});n0.default=QF;const XF=YF(WF);function QF(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,XF.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var Zd={};Object.defineProperty(Zd,"__esModule",{value:!0});Zd.camelCase=void 0;var ZF=/^--[a-zA-Z0-9_-]+$/,JF=/-([a-z])/g,e3=/^[^-]+$/,t3=/^-(webkit|moz|ms|o|khtml)-/,n3=/^-(ms)-/,r3=function(e){return!e||e3.test(e)||ZF.test(e)},i3=function(e,t){return t.toUpperCase()},ev=function(e,t){return"".concat(t,"-")},s3=function(e,t){return t===void 0&&(t={}),r3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(n3,ev):e=e.replace(t3,ev),e.replace(JF,i3))};Zd.camelCase=s3;var o3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},a3=o3(n0),l3=Zd;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,a3.default)(e,function(r,i){r&&i&&(n[(0,l3.camelCase)(r,t)]=i)}),n}Dm.default=Dm;var c3=Dm;const u3=Ml(c3),pT=mT("end"),r0=mT("start");function mT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function d3(e){const t=r0(e),n=pT(e);if(t&&n)return{start:t,end:n}}function La(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?tv(e.position):"start"in e||"end"in e?tv(e):"line"in e||"column"in e?jm(e):""}function jm(e){return nv(e&&e.line)+":"+nv(e&&e.column)}function tv(e){return jm(e&&e.start)+"-"+jm(e&&e.end)}function nv(e){return e&&typeof e=="number"?e:1}class Bt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=La(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Bt.prototype.file="";Bt.prototype.name="";Bt.prototype.reason="";Bt.prototype.message="";Bt.prototype.stack="";Bt.prototype.column=void 0;Bt.prototype.line=void 0;Bt.prototype.ancestors=void 0;Bt.prototype.cause=void 0;Bt.prototype.fatal=void 0;Bt.prototype.place=void 0;Bt.prototype.ruleId=void 0;Bt.prototype.source=void 0;const i0={}.hasOwnProperty,f3=new Map,h3=/[A-Z]/g,p3=new Set(["table","tbody","thead","tfoot","tr"]),m3=new Set(["td","th"]),gT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function g3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=k3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=E3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?t0:PF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=yT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function yT(e,t,n){if(t.type==="element")return y3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return b3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return w3(e,t,n);if(t.type==="mdxjsEsm")return x3(e,t);if(t.type==="root")return v3(e,t,n);if(t.type==="text")return _3(e,t)}function y3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=xT(e,t.tagName,!1),o=S3(e,t);let a=o0(e,t);return p3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!SF(l):!0})),bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function b3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}pl(e,t.position)}function x3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);pl(e,t.position)}function w3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:xT(e,t.name,!0),o=N3(e,t),a=o0(e,t);return bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function v3(e,t,n){const r={};return s0(r,o0(e,t)),e.create(t,e.Fragment,r,n)}function _3(e,t){return t.value}function bT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function E3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function k3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=r0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function S3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&i0.call(t.properties,i)){const s=T3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&m3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function N3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else pl(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else pl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function o0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:f3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const sv={}.hasOwnProperty;function vT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=pi(/[A-Za-z]/),Lt=pi(/[\dA-Za-z]/),D3=pi(/[#-'*+\--9=?A-Z^-~]/);function ld(e){return e!==null&&(e<32||e===127)}const Bm=pi(/\d/),j3=pi(/[\dA-Fa-f]/),B3=pi(/[!-/:-@[-`{-~]/);function we(e){return e!==null&&e<-2}function $e(e){return e!==null&&(e<0||e===32)}function Ne(e){return e===-2||e===-1||e===32}const Jd=pi(new RegExp("\\p{P}|\\p{S}","u")),Yi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Bo(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Me(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Ne(l)?(e.enter(n),a(l)):t(l)}function a(l){return Ne(l)&&s++o))return;const C=t.events.length;let N=C,I,A;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){A=t.events[N][1].end;break}I=!0}for(m(r),_=C;_y;){const E=n[v];t.containerState=E[1],E[0].exit.call(t,e)}n.length=y}function x(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function V3(e,t,n){return Me(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function yo(e){if(e===null||$e(e)||Yi(e))return 1;if(Jd(e))return 2}function ef(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};av(u,-l),av(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=_n(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=_n(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=_n(c,ef(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=_n(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=_n(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dn(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n0&&Ne(_)?Me(e,x,"linePrefix",s+1)(_):x(_)}function x(_){return _===null||we(_)?e.check(lv,b,v)(_):(e.enter("codeFlowValue"),y(_))}function y(_){return _===null||we(_)?(e.exit("codeFlowValue"),x(_)):(e.consume(_),y)}function v(_){return e.exit("codeFenced"),t(_)}function E(_,C,N){let I=0;return A;function A(j){return _.enter("lineEnding"),_.consume(j),_.exit("lineEnding"),P}function P(j){return _.enter("codeFencedFence"),Ne(j)?Me(_,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):R(j)}function R(j){return j===a?(_.enter("codeFencedFenceSequence"),$(j)):N(j)}function $(j){return j===a?(I++,_.consume(j),$):I>=o?(_.exit("codeFencedFenceSequence"),Ne(j)?Me(_,O,"whitespace")(j):O(j)):N(j)}function O(j){return j===null||we(j)?(_.exit("codeFencedFence"),C(j)):N(j)}}}function t4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Ih={name:"codeIndented",tokenize:r4},n4={partial:!0,tokenize:i4};function r4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Me(e,s,"linePrefix",5)(c)}function s(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):we(c)?e.attempt(n4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||we(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function i4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Me(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):we(o)?i(o):n(o)}}const s4={name:"codeText",previous:a4,resolve:o4,tokenize:l4};function o4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&na(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),na(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),na(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function TT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let d=0;return u;function u(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||ld(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||we(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function b(m){return!d&&(m===null||m===41||$e(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):d999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):we(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||we(p)||a++>999?(e.exit("chunkString"),d(p)):(e.consume(p),l||(l=!Ne(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function CT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):we(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Me(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||we(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:d)}function u(h){return h===o||h===92?(e.consume(h),d):d(h)}}function Pa(e,t){let n;return r;function r(i){return we(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Ne(i)?Me(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const g4={name:"definition",tokenize:b4},y4={partial:!0,tokenize:x4};function b4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return AT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return $e(p)?Pa(e,c)(p):c(p)}function c(p){return TT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(y4,u,u)(p)}function u(p){return Ne(p)?Me(e,h,"whitespace")(p):h(p)}function h(p){return p===null||we(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function x4(e,t,n){return r;function r(a){return $e(a)?Pa(e,i)(a):n(a)}function i(a){return CT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Ne(a)?Me(e,o,"whitespace")(a):o(a)}function o(a){return a===null||we(a)?t(a):n(a)}}const w4={name:"hardBreakEscape",tokenize:v4};function v4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return we(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const _4={name:"headingAtx",resolve:E4,tokenize:k4};function E4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function k4(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||$e(d)?(e.exit("atxHeadingSequence"),a(d)):n(d)}function a(d){return d===35?(e.enter("atxHeadingSequence"),l(d)):d===null||we(d)?(e.exit("atxHeading"),t(d)):Ne(d)?Me(e,a,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function l(d){return d===35?(e.consume(d),l):(e.exit("atxHeadingSequence"),a(d))}function c(d){return d===null||d===35||$e(d)?(e.exit("atxHeadingText"),a(d)):(e.consume(d),c)}}const S4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],uv=["pre","script","style","textarea"],N4={concrete:!0,name:"htmlFlow",resolveTo:C4,tokenize:M4},T4={partial:!0,tokenize:O4},A4={partial:!0,tokenize:I4};function C4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function M4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(T){return d(T)}function d(T){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(T),u}function u(T){return T===33?(e.consume(T),h):T===47?(e.consume(T),s=!0,b):T===63?(e.consume(T),i=3,r.interrupt?t:k):Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function h(T){return T===45?(e.consume(T),i=2,p):T===91?(e.consume(T),i=5,a=0,g):Vt(T)?(e.consume(T),i=4,r.interrupt?t:k):n(T)}function p(T){return T===45?(e.consume(T),r.interrupt?t:k):n(T)}function g(T){const U="CDATA[";return T===U.charCodeAt(a++)?(e.consume(T),a===U.length?r.interrupt?t:R:g):n(T)}function b(T){return Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function w(T){if(T===null||T===47||T===62||$e(T)){const U=T===47,X=o.toLowerCase();return!U&&!s&&uv.includes(X)?(i=1,r.interrupt?t(T):R(T)):S4.includes(o.toLowerCase())?(i=6,U?(e.consume(T),m):r.interrupt?t(T):R(T)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(T):s?x(T):y(T))}return T===45||Lt(T)?(e.consume(T),o+=String.fromCharCode(T),w):n(T)}function m(T){return T===62?(e.consume(T),r.interrupt?t:R):n(T)}function x(T){return Ne(T)?(e.consume(T),x):A(T)}function y(T){return T===47?(e.consume(T),A):T===58||T===95||Vt(T)?(e.consume(T),v):Ne(T)?(e.consume(T),y):A(T)}function v(T){return T===45||T===46||T===58||T===95||Lt(T)?(e.consume(T),v):E(T)}function E(T){return T===61?(e.consume(T),_):Ne(T)?(e.consume(T),E):y(T)}function _(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),l=T,C):Ne(T)?(e.consume(T),_):N(T)}function C(T){return T===l?(e.consume(T),l=null,I):T===null||we(T)?n(T):(e.consume(T),C)}function N(T){return T===null||T===34||T===39||T===47||T===60||T===61||T===62||T===96||$e(T)?E(T):(e.consume(T),N)}function I(T){return T===47||T===62||Ne(T)?y(T):n(T)}function A(T){return T===62?(e.consume(T),P):n(T)}function P(T){return T===null||we(T)?R(T):Ne(T)?(e.consume(T),P):n(T)}function R(T){return T===45&&i===2?(e.consume(T),M):T===60&&i===1?(e.consume(T),B):T===62&&i===4?(e.consume(T),V):T===63&&i===3?(e.consume(T),k):T===93&&i===5?(e.consume(T),D):we(T)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(T4,H,$)(T)):T===null||we(T)?(e.exit("htmlFlowData"),$(T)):(e.consume(T),R)}function $(T){return e.check(A4,O,H)(T)}function O(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return T===null||we(T)?$(T):(e.enter("htmlFlowData"),R(T))}function M(T){return T===45?(e.consume(T),k):R(T)}function B(T){return T===47?(e.consume(T),o="",L):R(T)}function L(T){if(T===62){const U=o.toLowerCase();return uv.includes(U)?(e.consume(T),V):R(T)}return Vt(T)&&o.length<8?(e.consume(T),o+=String.fromCharCode(T),L):R(T)}function D(T){return T===93?(e.consume(T),k):R(T)}function k(T){return T===62?(e.consume(T),V):T===45&&i===2?(e.consume(T),k):R(T)}function V(T){return T===null||we(T)?(e.exit("htmlFlowData"),H(T)):(e.consume(T),V)}function H(T){return e.exit("htmlFlow"),t(T)}}function I4(e,t,n){const r=this;return i;function i(o){return we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function O4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Vl,t,n)}}const R4={name:"htmlText",tokenize:L4};function L4(e,t,n){const r=this;let i,s,o;return a;function a(k){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(k),l}function l(k){return k===33?(e.consume(k),c):k===47?(e.consume(k),E):k===63?(e.consume(k),y):Vt(k)?(e.consume(k),N):n(k)}function c(k){return k===45?(e.consume(k),d):k===91?(e.consume(k),s=0,g):Vt(k)?(e.consume(k),x):n(k)}function d(k){return k===45?(e.consume(k),p):n(k)}function u(k){return k===null?n(k):k===45?(e.consume(k),h):we(k)?(o=u,B(k)):(e.consume(k),u)}function h(k){return k===45?(e.consume(k),p):u(k)}function p(k){return k===62?M(k):k===45?h(k):u(k)}function g(k){const V="CDATA[";return k===V.charCodeAt(s++)?(e.consume(k),s===V.length?b:g):n(k)}function b(k){return k===null?n(k):k===93?(e.consume(k),w):we(k)?(o=b,B(k)):(e.consume(k),b)}function w(k){return k===93?(e.consume(k),m):b(k)}function m(k){return k===62?M(k):k===93?(e.consume(k),m):b(k)}function x(k){return k===null||k===62?M(k):we(k)?(o=x,B(k)):(e.consume(k),x)}function y(k){return k===null?n(k):k===63?(e.consume(k),v):we(k)?(o=y,B(k)):(e.consume(k),y)}function v(k){return k===62?M(k):y(k)}function E(k){return Vt(k)?(e.consume(k),_):n(k)}function _(k){return k===45||Lt(k)?(e.consume(k),_):C(k)}function C(k){return we(k)?(o=C,B(k)):Ne(k)?(e.consume(k),C):M(k)}function N(k){return k===45||Lt(k)?(e.consume(k),N):k===47||k===62||$e(k)?I(k):n(k)}function I(k){return k===47?(e.consume(k),M):k===58||k===95||Vt(k)?(e.consume(k),A):we(k)?(o=I,B(k)):Ne(k)?(e.consume(k),I):M(k)}function A(k){return k===45||k===46||k===58||k===95||Lt(k)?(e.consume(k),A):P(k)}function P(k){return k===61?(e.consume(k),R):we(k)?(o=P,B(k)):Ne(k)?(e.consume(k),P):I(k)}function R(k){return k===null||k===60||k===61||k===62||k===96?n(k):k===34||k===39?(e.consume(k),i=k,$):we(k)?(o=R,B(k)):Ne(k)?(e.consume(k),R):(e.consume(k),O)}function $(k){return k===i?(e.consume(k),i=void 0,j):k===null?n(k):we(k)?(o=$,B(k)):(e.consume(k),$)}function O(k){return k===null||k===34||k===39||k===60||k===61||k===96?n(k):k===47||k===62||$e(k)?I(k):(e.consume(k),O)}function j(k){return k===47||k===62||$e(k)?I(k):n(k)}function M(k){return k===62?(e.consume(k),e.exit("htmlTextData"),e.exit("htmlText"),t):n(k)}function B(k){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),L}function L(k){return Ne(k)?Me(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(k):D(k)}function D(k){return e.enter("htmlTextData"),o(k)}}const c0={name:"labelEnd",resolveAll:B4,resolveTo:$4,tokenize:F4},P4={tokenize:z4},D4={tokenize:U4},j4={tokenize:V4};function B4(e){let t=-1;const n=[];for(;++t=3&&(c===null||we(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Ne(c)?Me(e,a,"whitespace")(c):a(c))}}const Wt={continuation:{tokenize:J4},exit:tz,name:"list",tokenize:Z4},X4={partial:!0,tokenize:nz},Q4={partial:!0,tokenize:ez};function Z4(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Bm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(yu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Bm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Vl,r.interrupt?n:d,e.attempt(X4,h,u))}function d(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function u(p){return Ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function J4(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Vl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Me(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Ne(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Q4,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Me(e,e.attempt(Wt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function ez(e,t,n){const r=this;return Me(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function tz(e){e.exit(this.containerState.type)}function nz(e,t,n){const r=this;return Me(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Ne(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const dv={name:"setextUnderline",resolveTo:rz,tokenize:iz};function rz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function iz(e,t,n){const r=this;let i;return s;function s(c){let d=r.events.length,u;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){u=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Ne(c)?Me(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||we(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const sz={tokenize:oz};function oz(e){const t=this,n=e.attempt(Vl,r,e.attempt(this.parser.constructs.flowInitial,i,Me(e,e.attempt(this.parser.constructs.flow,i,e.attempt(d4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const az={resolveAll:IT()},lz=MT("string"),cz=MT("text");function MT(e){return{resolveAll:IT(e==="text"?uz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(d){return c(d)?s(d):a(d)}function a(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),l}function l(d){return c(d)?(n.exit("data"),s(d)):(n.consume(d),l)}function c(d){if(d===null)return!0;const u=i[d];let h=-1;if(u)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function Ez(e,t){let n=-1;const r=[];let i;for(;++n0){const Re=te.tokenStack[te.tokenStack.length-1];(Re[1]||hv).call(te,void 0,Re[0])}for(K.position={start:Pr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Pr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},ve=-1;++ve0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function jz(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Bz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $z(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Bo(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,a+=1,e.footnoteCounts.set(r,a);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function Fz(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function LT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function Uz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={src:Bo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function Vz(e,t){const n={src:Bo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Hz(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Kz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={href:Bo(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function qz(e,t){const n={href:Bo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Gz(e,t,n){const r=e.all(t),i=n?Wz(n):PT(t),s={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let u;d&&d.type==="element"&&d.tagName==="p"?u=d:(u={type:"element",tagName:"p",properties:{},children:[]},r.unshift(u)),u.children.length>0&&u.children.unshift({type:"text",value:" "}),u.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let a=-1;for(;++a1}function Yz(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=r0(t.children[1]),l=pT(t.children[t.children.length-1]);a&&l&&(o.position={start:a,end:l}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function e5(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,a=o?o.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(gv(t.slice(i),i>0,!1)),s.join("")}function gv(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===pv||s===mv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===pv||s===mv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function r5(e,t){const n={type:"text",value:n5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function i5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const s5={blockquote:Lz,break:Pz,code:Dz,delete:jz,emphasis:Bz,footnoteReference:$z,heading:Fz,html:zz,imageReference:Uz,image:Vz,inlineCode:Hz,linkReference:Kz,link:qz,listItem:Gz,list:Yz,paragraph:Xz,root:Qz,strong:Zz,table:Jz,tableCell:t5,tableRow:e5,text:r5,thematicBreak:i5,toml:Ic,yaml:Ic,definition:Ic,footnoteDefinition:Ic};function Ic(){}const DT=-1,tf=0,Da=1,cd=2,u0=3,d0=4,f0=5,h0=6,jT=7,BT=8,o5=typeof self=="object"?self:globalThis,yv=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new o5[e](t)},a5=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case tf:case DT:return n(o,i);case Da:{const a=n([],i);for(const l of o)a.push(r(l));return a}case cd:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case u0:return n(new Date(o),i);case d0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case f0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case h0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case jT:{const{name:a,message:l}=o;return n(yv(a,l),i)}case BT:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:a}=new Uint8Array(o);return n(new DataView(a),o)}}return n(yv(s,o),i)};return r},bv=e=>a5(new Map,e)(0),ys="",{toString:l5}={},{keys:c5}=Object,ra=e=>{const t=typeof e;if(t!=="object"||!e)return[tf,t];const n=l5.call(e).slice(8,-1);switch(n){case"Array":return[Da,ys];case"Object":return[cd,ys];case"Date":return[u0,ys];case"RegExp":return[d0,ys];case"Map":return[f0,ys];case"Set":return[h0,ys];case"DataView":return[Da,n]}return n.includes("Array")?[Da,n]:n.includes("Error")?[jT,n]:[cd,n]},Oc=([e,t])=>e===tf&&(t==="function"||t==="symbol"),u5=(e,t,n,r)=>{const i=(o,a)=>{const l=r.push(o)-1;return n.set(a,l),l},s=o=>{if(n.has(o))return n.get(o);let[a,l]=ra(o);switch(a){case tf:{let d=o;switch(l){case"bigint":a=BT,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);d=null;break;case"undefined":return i([DT],o)}return i([a,d],o)}case Da:{if(l){let h=o;return l==="DataView"?h=new Uint8Array(o.buffer):l==="ArrayBuffer"&&(h=new Uint8Array(o)),i([l,[...h]],o)}const d=[],u=i([a,d],o);for(const h of o)d.push(s(h));return u}case cd:{if(l)switch(l){case"BigInt":return i([l,o.toString()],o);case"Boolean":case"Number":case"String":return i([l,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const d=[],u=i([a,d],o);for(const h of c5(o))(e||!Oc(ra(o[h])))&&d.push([s(h),s(o[h])]);return u}case u0:return i([a,o.toISOString()],o);case d0:{const{source:d,flags:u}=o;return i([a,{source:d,flags:u}],o)}case f0:{const d=[],u=i([a,d],o);for(const[h,p]of o)(e||!(Oc(ra(h))||Oc(ra(p))))&&d.push([s(h),s(p)]);return u}case h0:{const d=[],u=i([a,d],o);for(const h of o)(e||!Oc(ra(h)))&&d.push(s(h));return u}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},xv=(e,{json:t,lossy:n}={})=>{const r=[];return u5(!(t||n),!!t,new Map,r)(e),r},ud=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?bv(xv(e,t)):structuredClone(e):(e,t)=>bv(xv(e,t));function d5(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function f5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function h5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||d5,r=e.options.footnoteBackLabel||f5,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&g.push({type:"text",value:" "});let x=typeof n=="string"?n:n(l,p);typeof x=="string"&&(x={type:"text",value:x}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,p),className:["data-footnote-backref"]},children:Array.isArray(x)?x:[x]})}const w=d[d.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const x=w.children[w.children.length-1];x&&x.type==="text"?x.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...g)}else d.push(...g);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(d,!0)};e.patch(c,m),a.push(m)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...ud(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` +`}]}}const Hl=function(e){if(e==null)return y5;if(typeof e=="function")return nf(e);if(typeof e=="object")return Array.isArray(e)?p5(e):m5(e);if(typeof e=="string")return g5(e);throw new Error("Expected function, string, or object as test")};function p5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=$T,g,b,w;if((!t||s(l,c,d[d.length-1]||void 0))&&(p=v5(n(l,d)),p[0]===Fm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==w5)for(b=(r?m.children.length:-1)+o,w=d.concat(m);b>-1&&b0&&n.push({type:"text",value:` +`}),n}function wv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function vv(e,t){const n=E5(e,t),r=n.one(e,void 0),i=h5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` +`},i),s}function A5(e,t){return e&&"run"in e?async function(n,r){const i=vv(n,{file:r,...t});await e.run(i,r)}:function(n,r){return vv(n,{file:r,...e||t})}}function _v(e){if(e)throw e}var bu=Object.prototype.hasOwnProperty,zT=Object.prototype.toString,Ev=Object.defineProperty,kv=Object.getOwnPropertyDescriptor,Sv=function(t){return typeof Array.isArray=="function"?Array.isArray(t):zT.call(t)==="[object Array]"},Nv=function(t){if(!t||zT.call(t)!=="[object Object]")return!1;var n=bu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&bu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||bu.call(t,i)},Tv=function(t,n){Ev&&n.name==="__proto__"?Ev(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Av=function(t,n){if(n==="__proto__")if(bu.call(t,n)){if(kv)return kv(t,n).value}else return;return t[n]},C5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,d=!1;for(typeof a=="boolean"&&(d=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const d=c;if(a&&n)throw d;return i(d)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:O5,dirname:R5,extname:L5,join:P5,sep:"/"};function O5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Kl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function R5(e){if(Kl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function L5(e){Kl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function P5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function j5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Kl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const B5={cwd:$5};function $5(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function F5(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return z5(e)}function z5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=d;const b=r[h][1];Um(b)&&Um(p)&&(p=Rh(!0,b,p)),r[h]=[c,p,...g]}}}}const K5=new p0().freeze();function jh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Bh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function $h(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Mv(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Iv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Rc(e){return q5(e)?e:new UT(e)}function q5(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function G5(e){return typeof e=="string"||W5(e)}function W5(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y5="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ov=[],Rv={allowDangerousHtml:!0},X5=/^(https?|ircs?|mailto|xmpp)$/i,Q5=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Z5(e){const t=J5(e),n=eU(e);return tU(t.runSync(t.parse(n),n),e)}function J5(e){const t=e.rehypePlugins||Ov,n=e.remarkPlugins||Ov,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Rv}:Rv;return K5().use(Rz).use(n).use(A5,r).use(t)}function eU(e){const t=e.children||"",n=new UT;return typeof t=="string"&&(n.value=t),n}function tU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||nU;for(const d of Q5)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Y5+d.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),rf(e,c),g3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(d,u,h){if(d.type==="raw"&&h&&typeof u=="number")return o?h.children.splice(u,1):h.children[u]={type:"text",value:d.value},u;if(d.type==="element"){let p;for(p in Mh)if(Object.hasOwn(Mh,p)&&Object.hasOwn(d.properties,p)){const g=d.properties[p],b=Mh[p];(b===null||b.includes(d.tagName))&&(d.properties[p]=l(String(g||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!p&&r&&typeof u=="number"&&(p=!r(d,u,h)),p&&h&&typeof u=="number")return a&&d.children?h.children.splice(u,1,...d.children):h.children.splice(u,1),u}}}function nU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X5.test(e.slice(0,t))?e:""}function Lv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function rU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function iU(e,t,n){const i=Hl((n||{}).ignore||[]),s=sU(t);let o=-1;for(;++o0?{type:"text",value:_}:void 0),_===!1?h.lastIndex=v+1:(g!==v&&x.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(_)?x.push(..._):_&&x.push(_),g=v+y[0].length,m=!0),!h.global)break;y=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Lv(e,"(");let s=Lv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function VT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Yi(n)||Jd(n))&&(!t||n!==47)}HT.peek=AU;function wU(){this.buffer()}function vU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _U(){this.buffer()}function EU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function kU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function SU(e){this.exit(e)}function NU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function AU(){return"["}function HT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function CU(){return{enter:{gfmFootnoteCallString:wU,gfmFootnoteCall:vU,gfmFootnoteDefinitionLabelString:_U,gfmFootnoteDefinition:EU},exit:{gfmFootnoteCallString:kU,gfmFootnoteCall:SU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:TU}}}function MU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),d=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),d(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` +`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?KT:IU))),c(),l}}function IU(e,t,n){return t===0?e:KT(e,t,n)}function KT(e,t,n){return(n?"":" ")+e}const OU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];qT.peek=jU;function RU(){return{canContainEols:["delete"],enter:{strikethrough:PU},exit:{strikethrough:DU}}}function LU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:OU}],handlers:{delete:qT}}}function PU(e){this.enter({type:"delete",children:[]},e)}function DU(e){this.exit(e)}function qT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function jU(){return"~"}function BU(e){return e.length}function $U(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||BU,s=[],o=[],a=[],l=[];let c=0,d=-1;for(;++dc&&(c=e[d].length);++ml[m])&&(l[m]=y)}b.push(x)}o[d]=b,a[d]=w}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=x),p[u]=x),h[u]=y}o.splice(1,0,h),a.splice(1,0,p),d=-1;const g=[];for(;++d "),s.shift(2);const o=n.indentLines(n.containerFlow(e,s.current()),UU);return i(),o}function UU(e,t,n){return">"+(n?"":" ")+e}function VU(e,t){return Dv(e,t.inConstruct,!0)&&!Dv(e,t.notInConstruct,!1)}function Dv(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=s):s=1,i=r+t.length,r=n.indexOf(t,i);return o}function KU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function qU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function GU(e,t,n,r){const i=qU(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(KU(e,n)){const u=n.enter("codeIndented"),h=n.indentLines(s,WU);return u(),h}const a=n.createTracker(r),l=i.repeat(Math.max(HU(s,i)+1,3)),c=n.enter("codeFenced");let d=a.move(l);if(e.lang){const u=n.enter(`codeFencedLang${o}`);d+=a.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...a.current()})),u()}if(e.lang&&e.meta){const u=n.enter(`codeFencedMeta${o}`);d+=a.move(" "),d+=a.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...a.current()})),u()}return d+=a.move(` +`),s&&(d+=a.move(s+` +`)),d+=a.move(l),c(),d}function WU(e,t,n){return(n?"":" ")+e}function m0(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function YU(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("definition");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");return c+=l.move(n.safe(n.associationId(e),{before:c,after:"]",...l.current()})),c+=l.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":` +`,...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),o(),c}function XU(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function ml(e){return"&#x"+e.toString(16).toUpperCase()+";"}function dd(e,t,n){const r=yo(e),i=yo(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GT.peek=QU;function GT(e,t,n,r){const i=XU(n),s=n.enter("emphasis"),o=n.createTracker(r),a=o.move(i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function QU(e,t,n){return n.options.emphasis||"*"}function ZU(e,t){let n=!1;return rf(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&a0(e)&&(t.options.setext||n))}function JU(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),s=n.createTracker(r);if(ZU(e,n)){const d=n.enter("headingSetext"),u=n.enter("phrasing"),h=n.containerPhrasing(e,{...s.current(),before:` +`,after:` +`});return u(),d(),h+` +`+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` +`))+1))}const o="#".repeat(i),a=n.enter("headingAtx"),l=n.enter("phrasing");s.move(o+" ");let c=n.containerPhrasing(e,{before:"# ",after:` +`,...s.current()});return/^[\t ]/.test(c)&&(c=ml(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}WT.peek=e6;function WT(e){return e.value||""}function e6(){return"<"}YT.peek=t6;function YT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function t6(){return"!"}XT.peek=n6;function XT(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function n6(){return"!"}QT.peek=r6;function QT(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}JT.peek=i6;function JT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(ZT(e,n)){const d=n.stack;n.stack=[],a=n.enter("autolink");let u=o.move("<");return u+=o.move(n.containerPhrasing(e,{before:u,after:">",...o.current()})),u+=o.move(">"),a(),n.stack=d,u}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function i6(e,t,n){return ZT(e,n)?"<":"["}eA.peek=s6;function eA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function s6(){return"["}function g0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function o6(e){const t=g0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function a6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function l6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?a6(n):g0(n);const a=e.ordered?o==="."?")":".":o6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),tA(n)===o&&d){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),d);return l(),c;function d(u,h,p){return h?(p?"":" ".repeat(o))+u:(p?s:s+" ".repeat(o-s.length))+u}}function d6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const f6=Hl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function h6(e,t,n,r){return(e.children.some(function(o){return f6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function p6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nA.peek=m6;function nA(e,t,n,r){const i=p6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function m6(e,t,n){return n.options.strong||"*"}function g6(e,t,n,r){return n.safe(e.value,r)}function y6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function b6(e,t,n){const r=(tA(n)+(n.options.ruleSpaces?" ":"")).repeat(y6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rA={blockquote:zU,break:jv,code:GU,definition:YU,emphasis:GT,hardBreak:jv,heading:JU,html:WT,image:YT,imageReference:XT,inlineCode:QT,link:JT,linkReference:eA,list:l6,listItem:u6,paragraph:d6,root:h6,strong:nA,text:g6,thematicBreak:b6};function x6(){return{enter:{table:w6,tableData:Bv,tableHeader:Bv,tableRow:_6},exit:{codeText:E6,table:v6,tableData:Vh,tableHeader:Vh,tableRow:Vh}}}function w6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function v6(e){this.exit(e),this.data.inTable=void 0}function _6(e){this.enter({type:"tableRow",children:[]},e)}function Vh(e){this.exit(e)}function Bv(e){this.enter({type:"tableCell",children:[]},e)}function E6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,k6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function k6(e,t){return t==="|"?t:e}function S6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:o,tableCell:l,tableRow:a}};function o(p,g,b,w){return c(d(p,b,w),p.align)}function a(p,g,b,w){const m=u(p,b,w),x=c([m]);return x.slice(0,x.indexOf(` +`))}function l(p,g,b,w){const m=b.enter("tableCell"),x=b.enter("phrasing"),y=b.containerPhrasing(p,{...w,before:s,after:s});return x(),m(),y}function c(p,g){return $U(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function d(p,g,b){const w=p.children;let m=-1;const x=[],y=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const V6={tokenize:Q6,partial:!0};function H6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W6,continuation:{tokenize:Y6},exit:X6}},text:{91:{name:"gfmFootnoteCall",tokenize:G6},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:K6,resolveTo:q6}}}}function K6(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function q6(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function G6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),l}function l(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(s>999||u===93&&!o||u===null||u===91||$e(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return $e(u)||(o=!0),s++,e.consume(u),u===92?d:c}function d(u){return u===91||u===92||u===93?(e.consume(u),s++,c):c(u)}}function W6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||$e(g))return n(g);if(g===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return $e(g)||(a=!0),o++,e.consume(g),g===92?u:d}function u(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Me(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function Y6(e,t,n){return e.check(Vl,t,e.attempt(V6,t,n))}function X6(e){e.exit("gfmFootnoteDefinition")}function Q6(e,t,n){const r=this;return Me(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function Z6(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),u++,p);if(u<2&&!n)return l(g);const w=o.exit("strikethroughSequenceTemporary"),m=yo(g);return w._open=!m||m===2&&!!b,w._close=!b||b===2&&!!m,a(g)}}}class J6{constructor(){this.map=[]}add(t,n,r){eV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function eV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const O=r.events[P][1].type;if(O==="lineEnding"||O==="linePrefix")P--;else break}const R=P>-1?r.events[P][1].type:null,$=R==="tableHead"||R==="tableRow"?_:l;return $===_&&r.parser.lazy[r.now().line]?n(A):$(A)}function l(A){return e.enter("tableHead"),e.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,s+=1),d(A)}function d(A){return A===null?n(A):we(A)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),p):n(A):Ne(A)?Me(e,d,"whitespace")(A):(s+=1,o&&(o=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),u(A)))}function u(A){return A===null||A===124||$e(A)?(e.exit("data"),d(A)):(e.consume(A),A===92?h:u)}function h(A){return A===92||A===124?(e.consume(A),u):u(A)}function p(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),o=!1,Ne(A)?Me(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?w(A):A===124?(o=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),b):E(A)}function b(A){return Ne(A)?Me(e,w,"whitespace")(A):w(A)}function w(A){return A===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),m):A===45?(s+=1,m(A)):A===null||we(A)?v(A):E(A)}function m(A){return A===45?(e.enter("tableDelimiterFiller"),x(A)):E(A)}function x(A){return A===45?(e.consume(A),x):A===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(A))}function y(A){return Ne(A)?Me(e,v,"whitespace")(A):v(A)}function v(A){return A===124?g(A):A===null||we(A)?!o||i!==s?E(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):E(A)}function E(A){return n(A)}function _(A){return e.enter("tableRow"),C(A)}function C(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),C):A===null||we(A)?(e.exit("tableRow"),t(A)):Ne(A)?Me(e,C,"whitespace")(A):(e.enter("data"),N(A))}function N(A){return A===null||A===124||$e(A)?(e.exit("data"),C(A)):(e.consume(A),A===92?I:N)}function I(A){return A===92||A===124?(e.consume(A),N):N(A)}}function iV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,u;const h=new J6;for(;++nn[2]+1){const g=n[2]+1,b=n[3]-n[2]-1;e.add(g,b,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Fv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const sV={name:"tasklistCheck",tokenize:aV};function oV(){return{text:{91:sV}}}function aV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return $e(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return we(l)?t(l):Ne(l)?e.check({tokenize:lV},t,n)(l):n(l)}}function lV(e,t,n){return Me(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function cV(e){return vT([L6(),H6(),Z6(e),nV(),oV()])}const uV={};function dV(e){const t=this,n=e||uV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(cV(n)),s.push(M6()),o.push(I6(n))}const zv=function(e,t,n){const r=Hl(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=d):d&&(c!==void 0&&c>-1&&l.push(` +`.repeat(c)||" "),c=-1,l.push(d))}return l.join("")}function hA(e,t,n){return e.type==="element"?xV(e,t,n):e.type==="text"?n.whitespace==="normal"?pA(e,n):wV(e):[]}function xV(e,t,n){const r=mA(e,n),i=e.children||[];let s=-1,o=[];if(yV(e))return o;let a,l;for(Km(e)||Kv(e)&&zv(t,e,Kv)?l=` +`:gV(e)?(a=2,l=2):fA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[E,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function TV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=NV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function gA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],m={match:/(\/[a-z._-]+)+/},x=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],y=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],E=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:w,built_in:[...x,...y,"set","shopt",...v,...E]},contains:[p,e.SHEBANG(),g,u,s,o,m,a,l,c,d,n]}}function AV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",w={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:m.concat([{begin:/\(/,end:/\)/,keywords:w,contains:m.concat(["self"]),relevance:0}]),relevance:0},y={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:w,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:w}}}function CV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[E,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function MV(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},d={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(d,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},b={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},w=e.inherit(b,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},y=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+y+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,x],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const IV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),OV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],RV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],LV=[...OV,...RV],PV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),DV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),jV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),BV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function $V(e){const t=e.regex,n=IV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+DV.join("|")+")"},{begin:":(:)?("+jV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+BV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:PV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+LV.join("|")+")\\b"}]}}function FV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function zV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"bA(e,t,n-1))}function VV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+bA("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},d={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,qv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},qv,c]}}const Gv="[A-Za-z$_][0-9A-Za-z$_]*",HV=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],KV=["true","false","null","undefined","NaN","Infinity"],xA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],wA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],vA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],qV=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],GV=[].concat(vA,xA,wA);function _A(e){const t=e.regex,n=(L,{after:D})=>{const k="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const k=L[0].length+L.index,V=L.input[k];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:k})||D.ignoreMatch());let H;const T=L.input.substring(k);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:Gv,keyword:HV,literal:KV,built_in:GV,"variable.language":qV},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xA,...wA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const $={match:t.concat(/\b/,R([...vA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},$,P,C,j,{match:/\$[(.]/}]}}function EA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var ks="[0-9](_*[0-9])*",jc=`\\.(${ks})`,Bc="[0-9a-fA-F](_*[0-9a-fA-F])*",WV={className:"number",variants:[{begin:`(\\b(${ks})((${jc})|\\.)?|(${jc}))[eE][+-]?(${ks})[fFdD]?\\b`},{begin:`\\b(${ks})((${jc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${jc})[fFdD]?\\b`},{begin:`\\b(${ks})[fFdD]\\b`},{begin:`\\b0[xX]((${Bc})\\.?|(${Bc})?\\.(${Bc}))[pP][+-]?(${ks})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Bc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function YV(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=WV,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=u;return h.variants[1].contains=[u],u.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,a,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},c]}}const XV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),QV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ZV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JV=[...QV,...ZV],e9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),kA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),SA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),t9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),n9=kA.concat(SA).sort().reverse();function r9(e){const t=XV(e),n=n9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(y){return{className:"string",begin:"~?"+y+".*?"+y}},c=function(y,v,E){return{className:y,begin:v,relevance:E}},d={$pattern:/[a-z-]+/,keyword:r,attribute:e9.join(" ")},u={begin:"\\(",end:"\\)",contains:a,keywords:d,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+t9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:d,returnEnd:!0,contains:a,relevance:0}},w={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+JV.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+kA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},x={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,w,x,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function i9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function NA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),h=e.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[n,l];return[c,d,u,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function s9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function o9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},d=[e.BACKSLASH_ESCAPE,s,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(b,w,m="\\1")=>{const x=m==="\\1"?m:t.concat(m,w);return t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,x,/(?:\\.|[^\\\/])*?/,m,r)},p=(b,w,m)=>t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:d,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...u,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function a9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),u={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(O,j)=>{j.data._beginMatch=O[1]||O[2]},"on:end":(O,j)=>{j.data._beginMatch!==O[1]&&j.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ +]`,g={scope:"string",variants:[d,c,u,h]},b={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],x=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(O=>{const j=[];return O.forEach(M=>{j.push(M),M.toLowerCase()===M?j.push(M.toUpperCase()):j.push(M.toLowerCase())}),j})(w),built_in:x},E=O=>O.map(j=>j.replace(/\|\d+$/,"")),_={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",E(x).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},C=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,_]},P={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",E(m).join("\\b|"),"|",E(x).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(P);const R=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,_],$={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...R]},...R,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[$,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,P,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},_,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",$,o,N,e.C_BLOCK_COMMENT_MODE,g,b]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,b]}}function l9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function c9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function AA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},w={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,u,e.HASH_COMMENT_MODE]}]};return c.contains=[u,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,w,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,m,u]}]}}function u9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function d9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function f9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},_=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);d.contains=_,b.contains=_;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:_}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(c).concat(_)}}function h9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:""},s]}}const p9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),m9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],y9=[...m9,...g9],b9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),x9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),w9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),v9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function _9(e){const t=p9(e),n=w9,r=x9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+y9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+v9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:b9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function E9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function k9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,g=[...c,...l].filter(E=>!d.includes(E)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function x(E){return t.concat(/\b/,t.either(...E.map(_=>_.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:x(h),relevance:0};function v(E,{exceptions:_,when:C}={}){const N=C;return _=_||[],E.map(I=>I.match(/\|\d+$/)||_.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:E=>E.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:x(o)},y,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,w]}}function CA(e){return e?typeof e=="string"?e:e.source:null}function ia(e){return je("(?=",e,")")}function je(...e){return e.map(n=>CA(n)).join("")}function S9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(S9(e).capture?"":"?:")+e.map(r=>CA(r)).join("|")+")"}const x0=e=>je(/\b/,e,/\w$/.test(e)?/\b/:/\B/),N9=["Protocol","Type"].map(x0),Wv=["init","self"].map(x0),T9=["Any","Self"],Hh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Yv=["false","nil","true"],A9=["assignment","associativity","higherThan","left","lowerThan","none","right"],C9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Xv=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],MA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),IA=Ft(MA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Kh=je(MA,IA,"*"),OA=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),fd=Ft(OA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=je(OA,fd,"*"),$c=je(/[A-Z]/,fd,"*"),M9=["attached","autoclosure",je(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",je(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],I9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function O9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...N9,...Wv)],className:{2:"keyword"}},s={match:je(/\./,Ft(...Hh)),relevance:0},o=Hh.filter(W=>typeof W=="string").concat(["_|0"]),a=Hh.filter(W=>typeof W!="string").concat(T9).map(x0),l={variants:[{className:"keyword",match:Ft(...a,...Wv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(C9),literal:Yv},d=[i,s,l],u={match:je(/\./,Ft(...Xv)),relevance:0},h={className:"built_in",match:je(/\b/,Ft(...Xv),/(?=\()/)},p=[u,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Kh},{match:`\\.(\\.|${IA})+`}]},w=[g,b],m="([0-9]_*)+",x="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(W="")=>({className:"subst",variants:[{match:je(/\\/,W,/[0\\tnr"']/)},{match:je(/\\/,W,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(W="")=>({className:"subst",match:je(/\\/,W,/[\t ]*(?:[\r\n]|\r\n)/)}),_=(W="")=>({className:"subst",label:"interpol",begin:je(/\\/,W,/\(/),end:/\)/}),C=(W="")=>({begin:je(W,/"""/),end:je(/"""/,W),contains:[v(W),E(W),_(W)]}),N=(W="")=>({begin:je(W,/"/),end:je(/"/,W),contains:[v(W),_(W)]}),I={className:"string",variants:[C(),C("#"),C("##"),C("###"),N(),N("#"),N("##"),N("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],P={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},R=W=>{const F=je(W,/\//),G=je(/\//,W);return{begin:F,end:G,contains:[...A,{scope:"comment",begin:`#(?!.*${G})`,end:/$/}]}},$={scope:"regexp",variants:[R("###"),R("##"),R("#"),P]},O={match:je(/`/,Qn,/`/)},j={className:"variable",match:/\$\d+/},M={className:"variable",match:`\\$${fd}+`},B=[O,j,M],L={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:I9,contains:[...w,y,I]}]}},D={scope:"keyword",match:je(/@/,Ft(...M9),ia(Ft(/\(/,/\s+/)))},k={scope:"meta",match:je(/@/,Qn)},V=[L,D,k],H={match:ia(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:je(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,fd,"+")},{className:"type",match:$c,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:je(/\s+&\s+/,ia($c)),relevance:0}]},T={begin://,keywords:c,contains:[...r,...d,...V,g,H]};H.contains.push(T);const U={match:je(Qn,/\s*:/),keywords:"_|0",relevance:0},X={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",U,...r,$,...d,...p,...w,y,I,...B,...V,H]},Z={begin://,keywords:"repeat each",contains:[...r,H]},J={begin:Ft(ia(je(Qn,/\s*:/)),ia(je(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},q={begin:/\(/,end:/\)/,keywords:c,contains:[J,...r,...d,...w,y,I,...V,H,X],endsParent:!0,illegal:/["']/},ee={match:[/(func|macro)/,/\s+/,Ft(O.match,Qn,Kh)],className:{1:"keyword",3:"title.function"},contains:[Z,q,t],illegal:[/\[/,/%/]},ce={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,q,t],illegal:/\[|%/},ue={match:[/operator/,/\s+/,Kh],className:{1:"keyword",3:"title"}},ae={begin:[/precedencegroup/,/\s+/,$c],className:{1:"keyword",3:"title"},contains:[H],keywords:[...A9,...Yv],end:/}/},se={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},ye={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Y={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[Z,...d,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:$c},...d],relevance:0}]};for(const W of I.variants){const F=W.contains.find(le=>le.label==="interpol");F.keywords=c;const G=[...d,...p,...w,y,I,...B];F.contains=[...G,{begin:/\(/,end:/\)/,contains:["self",...G]}]}return{name:"Swift",keywords:c,contains:[...r,ee,ce,se,ye,Y,ue,ae,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},$,...d,...p,...w,y,I,...B,...V,H,X]}}const hd="[A-Za-z$_][0-9A-Za-z$_]*",RA=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],LA=["true","false","null","undefined","NaN","Infinity"],PA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],DA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],jA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],BA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$A=[].concat(jA,PA,DA);function R9(e){const t=e.regex,n=(L,{after:D})=>{const k="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const k=L[0].length+L.index,V=L.input[k];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:k})||D.ignoreMatch());let H;const T=L.input.substring(k);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:hd,keyword:RA,literal:LA,built_in:$A,"variable.language":BA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...PA,...DA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const $={match:t.concat(/\b/,R([...jA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},$,P,C,j,{match:/\$[(.]/}]}}function FA(e){const t=e.regex,n=R9(e),r=hd,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:hd,keyword:RA.concat(l),literal:LA,built_in:$A.concat(i),"variable.language":BA},d={className:"meta",begin:"@"+r},u=(b,w,m)=>{const x=b.contains.findIndex(y=>y.label===w);if(x===-1)throw new Error("can not find mode to replace");b.contains.splice(x,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(d);const h=n.contains.find(b=>b.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([d,s,o,p]),u(n,"shebang",e.SHEBANG()),u(n,"use_strict",a);const g=n.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function L9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},d={className:"label",begin:/^\w+:/},u=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,d,u,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function P9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function D9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function zA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},w=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,b,s,o],m=[...w];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}const j9={arduino:TV,bash:gA,c:AV,cpp:CV,csharp:MV,css:$V,diff:FV,go:zV,graphql:UV,ini:yA,java:VV,javascript:_A,json:EA,kotlin:YV,less:r9,lua:i9,makefile:NA,markdown:TA,objectivec:s9,perl:o9,php:a9,"php-template":l9,plaintext:c9,python:AA,"python-repl":u9,r:d9,ruby:f9,rust:h9,scss:_9,shell:E9,sql:k9,swift:O9,typescript:FA,vbnet:L9,wasm:P9,xml:D9,yaml:zA};function UA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&UA(n)}),e}let Qv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function VA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const B9="",Zv=e=>!!e.scope,$9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class F9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=VA(t)}openNode(t){if(!Zv(t))return;const n=$9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Zv(t)&&(this.buffer+=B9)}value(){return this.buffer}span(t){this.buffer+=``}}const Jv=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class w0{constructor(){this.rootNode=Jv(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Jv({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{w0._collapse(n)}))}}class z9 extends w0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new F9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function gl(e){return e?typeof e=="string"?e:e.source:null}function HA(e){return us("(?=",e,")")}function U9(e){return us("(?:",e,")*")}function V9(e){return us("(?:",e,")?")}function us(...e){return e.map(n=>gl(n)).join("")}function H9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function v0(...e){return"("+(H9(e).capture?"":"?:")+e.map(r=>gl(r)).join("|")+")"}function KA(e){return new RegExp(e.toString()+"|").exec("").length-1}function K9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const q9=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=gl(r),o="";for(;s.length>0;){const a=q9.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const G9=/\b\B/,qA="[a-zA-Z]\\w*",E0="[a-zA-Z_]\\w*",GA="\\b\\d+(\\.\\d+)?",WA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",YA="\\b(0b[01]+)",W9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=us(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yl={begin:"\\\\[\\s\\S]",relevance:0},X9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yl]},Q9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yl]},Z9={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},sf=function(e,t,n={}){const r=Yr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=v0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:us(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},J9=sf("//","$"),e8=sf("/\\*","\\*/"),t8=sf("#","$"),n8={scope:"number",begin:GA,relevance:0},r8={scope:"number",begin:WA,relevance:0},i8={scope:"number",begin:YA,relevance:0},s8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yl,{begin:/\[/,end:/\]/,relevance:0,contains:[yl]}]},o8={scope:"title",begin:qA,relevance:0},a8={scope:"title",begin:E0,relevance:0},l8={begin:"\\.\\s*"+E0,relevance:0},c8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Fc=Object.freeze({__proto__:null,APOS_STRING_MODE:X9,BACKSLASH_ESCAPE:yl,BINARY_NUMBER_MODE:i8,BINARY_NUMBER_RE:YA,COMMENT:sf,C_BLOCK_COMMENT_MODE:e8,C_LINE_COMMENT_MODE:J9,C_NUMBER_MODE:r8,C_NUMBER_RE:WA,END_SAME_AS_BEGIN:c8,HASH_COMMENT_MODE:t8,IDENT_RE:qA,MATCH_NOTHING_RE:G9,METHOD_GUARD:l8,NUMBER_MODE:n8,NUMBER_RE:GA,PHRASAL_WORDS_MODE:Z9,QUOTE_STRING_MODE:Q9,REGEXP_MODE:s8,RE_STARTERS_RE:W9,SHEBANG:Y9,TITLE_MODE:o8,UNDERSCORE_IDENT_RE:E0,UNDERSCORE_TITLE_MODE:a8});function u8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function d8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function f8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=u8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function h8(e,t){Array.isArray(e.illegal)&&(e.illegal=v0(...e.illegal))}function p8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function m8(e,t){e.relevance===void 0&&(e.relevance=1)}const g8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=us(n.beforeMatch,HA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},y8=["of","and","for","in","not","or","if","then","parent","list","value"],b8="keyword";function XA(e,t,n=b8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,XA(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,x8(l[0],l[1])]})}}function x8(e,t){return t?Number(t):w8(e)?0:1}function w8(e){return y8.includes(e.toLowerCase())}const e1={},$i=e=>{console.error(e)},t1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},bs=(e,t)=>{e1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),e1[`${e}/${t}`]=!0)},pd=new Error;function QA(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=KA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function v8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pd;if(typeof e.beginScope!="object"||e.beginScope===null)throw $i("beginScope must be object"),pd;QA(e,e.begin,{key:"beginScope"}),e.begin=_0(e.begin,{joinWith:""})}}function _8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pd;if(typeof e.endScope!="object"||e.endScope===null)throw $i("endScope must be object"),pd;QA(e,e.end,{key:"endScope"}),e.end=_0(e.end,{joinWith:""})}}function E8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function k8(e){E8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),v8(e),_8(e)}function S8(e){function t(o,a){return new RegExp(gl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=KA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(_0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[d8,p8,k8,g8].forEach(d=>d(o,a)),e.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[f8,h8,m8].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=XA(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=gl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return N8(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yr(e.classNameAliases||{}),s(e)}function ZA(e){return e?e.endsWithParent||ZA(e.starts):!1}function N8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ZA(e)?Yr(e,{starts:e.starts?Yr(e.starts):null}):Object.isFrozen(e)?Yr(e):e}var T8="11.11.1";class A8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const qh=VA,n1=Yr,r1=Symbol("nomatch"),C8=7,JA=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:z9};function l(M){return a.noHighlightRe.test(M)}function c(M){let B=M.className+" ";B+=M.parentNode?M.parentNode.className:"";const L=a.languageDetectRe.exec(B);if(L){const D=N(L[1]);return D||(t1(s.replace("{}",L[1])),t1("Falling back to no-highlight mode for this block.",M)),D?L[1]:"no-highlight"}return B.split(/\s+/).find(D=>l(D)||N(D))}function d(M,B,L){let D="",k="";typeof B=="object"?(D=M,L=B.ignoreIllegals,k=B.language):(bs("10.7.0","highlight(lang, code, ...args) has been deprecated."),bs("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),k=M,D=B),L===void 0&&(L=!0);const V={code:D,language:k};O("before:highlight",V);const H=V.result?V.result:u(V.language,V.code,L);return H.code=V.code,O("after:highlight",H),H}function u(M,B,L,D){const k=Object.create(null);function V(z,K){return z.keywords[K]}function H(){if(!G.keywords){me.addText(pe);return}let z=0;G.keywordPatternRe.lastIndex=0;let K=G.keywordPatternRe.exec(pe),te="";for(;K;){te+=pe.substring(z,K.index);const oe=Y.case_insensitive?K[0].toLowerCase():K[0],ve=V(G,oe);if(ve){const[Re,$t]=ve;if(me.addText(te),te="",k[oe]=(k[oe]||0)+1,k[oe]<=C8&&(Le+=$t),Re.startsWith("_"))te+=K[0];else{const _t=Y.classNameAliases[Re]||Re;X(K[0],_t)}}else te+=K[0];z=G.keywordPatternRe.lastIndex,K=G.keywordPatternRe.exec(pe)}te+=pe.substring(z),me.addText(te)}function T(){if(pe==="")return;let z=null;if(typeof G.subLanguage=="string"){if(!t[G.subLanguage]){me.addText(pe);return}z=u(G.subLanguage,pe,!0,le[G.subLanguage]),le[G.subLanguage]=z._top}else z=p(pe,G.subLanguage.length?G.subLanguage:null);G.relevance>0&&(Le+=z.relevance),me.__addSublanguage(z._emitter,z.language)}function U(){G.subLanguage!=null?T():H(),pe=""}function X(z,K){z!==""&&(me.startScope(K),me.addText(z),me.endScope())}function Z(z,K){let te=1;const oe=K.length-1;for(;te<=oe;){if(!z._emit[te]){te++;continue}const ve=Y.classNameAliases[z[te]]||z[te],Re=K[te];ve?X(Re,ve):(pe=Re,H(),pe=""),te++}}function J(z,K){return z.scope&&typeof z.scope=="string"&&me.openNode(Y.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(X(pe,Y.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),pe=""):z.beginScope._multi&&(Z(z.beginScope,K),pe="")),G=Object.create(z,{parent:{value:G}}),G}function q(z,K,te){let oe=K9(z.endRe,te);if(oe){if(z["on:end"]){const ve=new Qv(z);z["on:end"](K,ve),ve.isMatchIgnored&&(oe=!1)}if(oe){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return q(z.parent,K,te)}function ee(z){return G.matcher.regexIndex===0?(pe+=z[0],1):(Pe=!0,0)}function ce(z){const K=z[0],te=z.rule,oe=new Qv(te),ve=[te.__beforeBegin,te["on:begin"]];for(const Re of ve)if(Re&&(Re(z,oe),oe.isMatchIgnored))return ee(K);return te.skip?pe+=K:(te.excludeBegin&&(pe+=K),U(),!te.returnBegin&&!te.excludeBegin&&(pe=K)),J(te,z),te.returnBegin?0:K.length}function ue(z){const K=z[0],te=B.substring(z.index),oe=q(G,z,te);if(!oe)return r1;const ve=G;G.endScope&&G.endScope._wrap?(U(),X(K,G.endScope._wrap)):G.endScope&&G.endScope._multi?(U(),Z(G.endScope,z)):ve.skip?pe+=K:(ve.returnEnd||ve.excludeEnd||(pe+=K),U(),ve.excludeEnd&&(pe=K));do G.scope&&me.closeNode(),!G.skip&&!G.subLanguage&&(Le+=G.relevance),G=G.parent;while(G!==oe.parent);return oe.starts&&J(oe.starts,z),ve.returnEnd?0:K.length}function ae(){const z=[];for(let K=G;K!==Y;K=K.parent)K.scope&&z.unshift(K.scope);z.forEach(K=>me.openNode(K))}let se={};function ye(z,K){const te=K&&K[0];if(pe+=z,te==null)return U(),0;if(se.type==="begin"&&K.type==="end"&&se.index===K.index&&te===""){if(pe+=B.slice(K.index,K.index+1),!i){const oe=new Error(`0 width match regex (${M})`);throw oe.languageName=M,oe.badRule=se.rule,oe}return 1}if(se=K,K.type==="begin")return ce(K);if(K.type==="illegal"&&!L){const oe=new Error('Illegal lexeme "'+te+'" for mode "'+(G.scope||"")+'"');throw oe.mode=G,oe}else if(K.type==="end"){const oe=ue(K);if(oe!==r1)return oe}if(K.type==="illegal"&&te==="")return pe+=` +`,1;if(Be>1e5&&Be>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return pe+=te,te.length}const Y=N(M);if(!Y)throw $i(s.replace("{}",M)),new Error('Unknown language: "'+M+'"');const W=S8(Y);let F="",G=D||W;const le={},me=new a.__emitter(a);ae();let pe="",Le=0,be=0,Be=0,Pe=!1;try{if(Y.__emitTokens)Y.__emitTokens(B,me);else{for(G.matcher.considerAll();;){Be++,Pe?Pe=!1:G.matcher.considerAll(),G.matcher.lastIndex=be;const z=G.matcher.exec(B);if(!z)break;const K=B.substring(be,z.index),te=ye(K,z);be=z.index+te}ye(B.substring(be))}return me.finalize(),F=me.toHTML(),{language:M,value:F,relevance:Le,illegal:!1,_emitter:me,_top:G}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:M,value:qh(B),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:be,context:B.slice(be-100,be+100),mode:z.mode,resultSoFar:F},_emitter:me};if(i)return{language:M,value:qh(B),illegal:!1,relevance:0,errorRaised:z,_emitter:me,_top:G};throw z}}function h(M){const B={value:qh(M),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return B._emitter.addText(M),B}function p(M,B){B=B||a.languages||Object.keys(t);const L=h(M),D=B.filter(N).filter(A).map(U=>u(U,M,!1));D.unshift(L);const k=D.sort((U,X)=>{if(U.relevance!==X.relevance)return X.relevance-U.relevance;if(U.language&&X.language){if(N(U.language).supersetOf===X.language)return 1;if(N(X.language).supersetOf===U.language)return-1}return 0}),[V,H]=k,T=V;return T.secondBest=H,T}function g(M,B,L){const D=B&&n[B]||L;M.classList.add("hljs"),M.classList.add(`language-${D}`)}function b(M){let B=null;const L=c(M);if(l(L))return;if(O("before:highlightElement",{el:M,language:L}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),a.throwUnescapedHTML))throw new A8("One of your code blocks includes unescaped HTML.",M.innerHTML);B=M;const D=B.textContent,k=L?d(D,{language:L,ignoreIllegals:!0}):p(D);M.innerHTML=k.value,M.dataset.highlighted="yes",g(M,L,k.language),M.result={language:k.language,re:k.relevance,relevance:k.relevance},k.secondBest&&(M.secondBest={language:k.secondBest.language,relevance:k.secondBest.relevance}),O("after:highlightElement",{el:M,result:k,text:D})}function w(M){a=n1(a,M)}const m=()=>{v(),bs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){v(),bs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function v(){function M(){v()}if(document.readyState==="loading"){y||window.addEventListener("DOMContentLoaded",M,!1),y=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function E(M,B){let L=null;try{L=B(e)}catch(D){if($i("Language definition for '{}' could not be registered.".replace("{}",M)),i)$i(D);else throw D;L=o}L.name||(L.name=M),t[M]=L,L.rawDefinition=B.bind(null,e),L.aliases&&I(L.aliases,{languageName:M})}function _(M){delete t[M];for(const B of Object.keys(n))n[B]===M&&delete n[B]}function C(){return Object.keys(t)}function N(M){return M=(M||"").toLowerCase(),t[M]||t[n[M]]}function I(M,{languageName:B}){typeof M=="string"&&(M=[M]),M.forEach(L=>{n[L.toLowerCase()]=B})}function A(M){const B=N(M);return B&&!B.disableAutodetect}function P(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=B=>{M["before:highlightBlock"](Object.assign({block:B.el},B))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=B=>{M["after:highlightBlock"](Object.assign({block:B.el},B))})}function R(M){P(M),r.push(M)}function $(M){const B=r.indexOf(M);B!==-1&&r.splice(B,1)}function O(M,B){const L=M;r.forEach(function(D){D[L]&&D[L](B)})}function j(M){return bs("10.7.0","highlightBlock will be removed entirely in v12.0"),bs("10.7.0","Please use highlightElement now."),b(M)}Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:j,configure:w,initHighlighting:m,initHighlightingOnLoad:x,registerLanguage:E,unregisterLanguage:_,listLanguages:C,getLanguage:N,registerAliases:I,autoDetection:A,inherit:n1,addPlugin:R,removePlugin:$}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=T8,e.regex={concat:us,lookahead:HA,either:v0,optional:V9,anyNumberOfTimes:U9};for(const M in Fc)typeof Fc[M]=="object"&&UA(Fc[M]);return Object.assign(e,Fc),e},bo=JA({});bo.newInstance=()=>JA({});var M8=bo;bo.HighlightJS=bo;bo.default=bo;const tn=Ml(M8),i1={},I8="hljs-";function O8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,d){const u=d||i1,h=typeof u.prefix=="string"?u.prefix:I8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:R8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,b=g.data;return b.language=p.language,b.relevance=p.relevance,g}function r(l,c){const u=(c||i1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=w.data.relevance,g=w)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let d;for(d in l)Object.hasOwn(l,d)&&t.registerLanguage(d,l[d])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let d;for(d in l)if(Object.hasOwn(l,d)){const u=l[d];t.registerAliases(typeof u=="string"?u:[...u],{languageName:d})}}}function a(l){return!!t.getLanguage(l)}}class R8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const L8={};function P8(e){const t=e||L8,n=t.aliases,r=t.detect||!1,i=t.languages||j9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=O8(i);if(n&&c.registerAlias(n),o){const d=o.indexOf("-");l=d===-1?o:o.slice(0,d)}return function(d,u){rf(d,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=D8(h);if(b===!1||!b&&!r||b&&s&&s.includes(b))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const w=bV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,w,{prefix:o}):c.highlightAuto(w,{prefix:o,subset:a})}catch(x){const y=x;if(b&&/Unknown language/.test(y.message)){u.message("Cannot highlight as `"+b+"`, it’s not registered",{ancestors:[g,h],cause:y,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw y}!b&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function D8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const k0=S.memo(j8),eC="send_a2ui_json_to_client";function B8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function tC({text:e,done:t}){const[n,r]=S.useState(!t),i=S.useRef(!1);S.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=oT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(B8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Gn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function $8(){return f.jsx(tC,{text:"",done:!1})}function F8({name:e,args:t,response:n,done:r}){const[i,s]=S.useState(!1),o=e===eC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` +…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Gn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function z8({block:e,onAuth:t}){const[n,r]=S.useState(e.done?"done":"idle"),[i,s]=S.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(d){s(d instanceof Error?d.message:String(d)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(Dw,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(Dw,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function U8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(tC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(k0,{text:s})},i):null}case"tool":return r.name===eC&&r.done?null:f.jsx(F8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(z8,{block:r,onAuth:n},i);case"a2ui":return sT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(xF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function V8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=S.useRef(null),c=S.useRef(null),d=S.useRef(null),[u,h]=S.useState(!1);S.useLayoutEffect(()=>{const w=l.current;w&&(w.style.height="auto",w.style.height=`${Math.min(w.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(w){var m;h(!1),(m=w.current)==null||m.click()}function b(w){w.target.files&&w.target.files.length&&o(w.target.files),w.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((w,m)=>f.jsx(H8,{mimeType:w.mimeType,data:w.data,name:w.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(w=>!w),children:f.jsx(ss,{className:"icon"})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(UB,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(d),children:[f.jsx(qy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:w=>t(w.target.value),onKeyDown:w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(bt,{className:"icon spin"}):f.jsx(_B,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:d,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function H8({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(Fl,{className:"icon"})})]})}function nC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Gn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const S0=Symbol.for("yaml.alias"),qm=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),rC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),$o=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Fo=e=>!!e&&typeof e=="object"&&e[Cn]===S0,ql=e=>!!e&&typeof e=="object"&&e[Cn]===qm,Gl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,ct=e=>!!e&&typeof e=="object"&&e[Cn]===rC,Ue=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Wl=e=>!!e&&typeof e=="object"&&e[Cn]===$o;function at(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case $o:return!0}return!1}function lt(e){if(e&&typeof e=="object")switch(e[Cn]){case S0:case ii:case ar:case $o:return!0}return!1}const iC=e=>(Ue(e)||at(e))&&!!e.anchor,Ni=Symbol("break visit"),K8=Symbol("skip children"),ja=Symbol("remove node");function zo(e,t){const n=q8(t);ql(e)?Vs(null,e.contents,n,Object.freeze([e]))===ja&&(e.contents=null):Vs(null,e,n,Object.freeze([]))}zo.BREAK=Ni;zo.SKIP=K8;zo.REMOVE=ja;function Vs(e,t,n,r){const i=G8(e,t,n,r);if(lt(i)||ct(i))return W8(e,r,i),Vs(e,i,n,r);if(typeof i!="symbol"){if(at(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>Y8[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+X8(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&<(t.contents)){const s={};zo(t.contents,(o,a)=>{lt(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` +`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function sC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function oC(e){const t=new Set;return zo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function aC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function Q8(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=oC(e));const o=aC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(Ue(o.node)||at(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function Hs(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!iC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class N0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!ql(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?Hs(s,{"":a},"",a):a}}class T0 extends N0{constructor(t){super(S0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],zo(t,{Node:(s,o)=>{(Fo(o)||iC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=xu(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(sC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function xu(e,t,n){if(Fo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(at(t)){let r=0;for(const i of t.items){const s=xu(e,i,n);s>r&&(r=s)}return r}else if(ct(t)){const r=xu(e,t.key,n),i=xu(e,t.value,n);return Math.max(r,i)}return 1}const lC=e=>!e||typeof e!="function"&&typeof e!="object";class ke extends N0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}ke.BLOCK_FOLDED="BLOCK_FOLDED";ke.BLOCK_LITERAL="BLOCK_LITERAL";ke.PLAIN="PLAIN";ke.QUOTE_DOUBLE="QUOTE_DOUBLE";ke.QUOTE_SINGLE="QUOTE_SINGLE";const Z8="tag:yaml.org,2002:";function J8(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function bl(e,t,n){var u,h,p;if(ql(e)&&(e=e.contents),lt(e))return e;if(ct(e)){const g=(h=(u=n.schema[ii]).createNode)==null?void 0:h.call(u,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new T0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=Z8+t.slice(2));let c=J8(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new ke(e);return l&&(l.node=g),g}c=e instanceof Map?o[ii]:Symbol.iterator in Object(e)?o[$o]:o[ii]}s&&(s(c),delete n.onTagObj);const d=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new ke(e);return t?d.tag=t:c.default||(d.tag=c.tag),l&&(l.node=d),d}function md(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return bl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ya=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class cC extends N0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>lt(r)||ct(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ya(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(at(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(at(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&Ue(s)?s.value:s:at(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!ct(n))return!1;const r=n.value;return r==null||t&&Ue(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return at(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(at(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const eH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Ri=(e,t,n)=>e.endsWith(` +`)?xr(n,t):n.includes(` +`)?` +`+xr(n,t):(e.endsWith(" ")?"":" ")+n,uC="flow",Gm="block",wu="quoted";function of(e,t,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,s)?c.push(0):u=i-r);let h,p,g=!1,b=-1,w=-1,m=-1;n===Gm&&(b=s1(e,b,t.length),b!==-1&&(u=b+l));for(let y;y=e[b+=1];){if(n===wu&&y==="\\"){switch(w=b,e[b+1]){case"x":b+=3;break;case"u":b+=5;break;case"U":b+=9;break;default:b+=1}m=b}if(y===` +`)n===Gm&&(b=s1(e,b,t.length)),u=b+t.length+l,h=void 0;else{if(y===" "&&p&&p!==" "&&p!==` +`&&p!==" "){const v=e[b+1];v&&v!==" "&&v!==` +`&&v!==" "&&(h=b)}if(b>=u)if(h)c.push(h),u=h+l,h=void 0;else if(n===wu){for(;p===" "||p===" ";)p=y,y=e[b+=1],g=!0;const v=b>m+1?b-2:w-1;if(d[v])return e;c.push(v),d[v]=!0,u=v+l,h=void 0}else g=!0}p=y}if(g&&a&&a(),c.length===0)return e;o&&o();let x=e.slice(0,c[0]);for(let y=0;y({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),lf=e=>/^(%|---|\.\.\.)/m.test(e);function tH(e,t,n){if(!t||t<0)return!1;const r=t-n,i=e.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function Ba(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(lf(e)?" ":"");let o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);const d=n.substr(l+2,4);switch(d){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||n[l+2]==='"'||n.length +`;let u,h;for(h=n.length;h>0;--h){const E=n[h-1];if(E!==` +`&&E!==" "&&E!==" ")break}let p=n.substring(h);const g=p.indexOf(` +`);g===-1?u="-":n===p||g!==p.length-1?(u="+",s&&s()):u="",p&&(n=n.slice(0,-p.length),p[p.length-1]===` +`&&(p=p.slice(0,-1)),p=p.replace(Ym,`$&${c}`));let b=!1,w,m=-1;for(w=0;w{_=!0});const N=of(`${x}${E}${p}`,c,Gm,C);if(!_)return`>${v} +${c}${N}`}return n=n.replace(/\n+/g,`$&${c}`),`|${v} +${c}${x}${n}${p}`}function nH(e,t,n,r){const{type:i,value:s}=e,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=t;if(a&&s.includes(` +`)||d&&/[[\]{},]/.test(s))return Ks(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||d||!s.includes(` +`)?Ks(s,t):vu(e,t,n,r);if(!a&&!d&&i!==ke.PLAIN&&s.includes(` +`))return vu(e,t,n,r);if(lf(s)){if(l==="")return t.forceBlockIndent=!0,vu(e,t,n,r);if(a&&l===c)return Ks(s,t)}const u=s.replace(/\n+/g,`$& +${l}`);if(o){const h=b=>{var w;return b.default&&b.tag!=="tag:yaml.org,2002:str"&&((w=b.test)==null?void 0:w.test(u))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ks(s,t)}return a?u:of(u,l,uC,af(t,!1))}function A0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==ke.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ke.QUOTE_DOUBLE);const l=d=>{switch(d){case ke.BLOCK_FOLDED:case ke.BLOCK_LITERAL:return i||s?Ks(o.value,t):vu(o,t,n,r);case ke.QUOTE_DOUBLE:return Ba(o.value,t);case ke.QUOTE_SINGLE:return Wm(o.value,t);case ke.PLAIN:return nH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:d,defaultStringType:u}=t.options,h=i&&d||u;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function dC(e,t){const n=Object.assign({blockQuote:!0,commentString:eH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function rH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(Ue(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function iH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(Ue(e)||at(e))&&e.anchor;s&&sC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(ct(e))return e.toString(t,n,r);if(Fo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=lt(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=rH(t.doc.schema.tags,s));const o=iH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):Ue(s)?A0(s,t,n,r):s.toString(t,n,r);return o?Ue(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} +${t.indent}${a}`:a}function sH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n;let h=lt(e)&&e.comment||null;if(u){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(at(e)||!lt(e)&&typeof e=="object"){const C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!e||h&&t==null&&!n.inFlow||at(e)||(Ue(e)?e.type===ke.BLOCK_FOLDED||e.type===ke.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!s),indent:a+l});let g=!1,b=!1,w=xo(e,n,()=>g=!0,()=>b=!0);if(!p&&!n.inFlow&&w.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),w===""?"?":p?`? ${w}`:w}else if(s&&!u||t==null&&p)return w=`? ${w}`,h&&!g?w+=Ri(w,n.indent,c(h)):b&&i&&i(),w;g&&(h=null),p?(h&&(w+=Ri(w,n.indent,c(h))),w=`? ${w} +${a}:`):(w=`${w}:`,h&&(w+=Ri(w,n.indent,c(h))));let m,x,y;lt(t)?(m=!!t.spaceBefore,x=t.commentBefore,y=t.comment):(m=!1,x=null,y=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&Ue(t)&&(n.indentAtStart=w.length+1),b=!1,!d&&l.length>=2&&!n.inFlow&&!p&&Wl(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const E=xo(t,n,()=>v=!0,()=>b=!0);let _=" ";if(h||m||x){if(_=m?` +`:"",x){const C=c(x);_+=` +${xr(C,n.indent)}`}E===""&&!n.inFlow?_===` +`&&y&&(_=` + +`):_+=` +${n.indent}`}else if(!p&&at(t)){const C=E[0],N=E.indexOf(` +`),I=N!==-1,A=n.inFlow??t.flow??t.items.length===0;if(I||!A){let P=!1;if(I&&(C==="&"||C==="!")){let R=E.indexOf(" ");C==="&"&&R!==-1&&Re===zc||typeof e=="symbol"&&e.description===zc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ke(Symbol(zc)),{addToJSMap:hC}),stringify:()=>zc},oH=(e,t)=>(kr.identify(t)||Ue(t)&&(!t.type||t.type===ke.PLAIN)&&kr.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===kr.tag&&n.default));function hC(e,t,n){const r=pC(e,n);if(Wl(r))for(const i of r.items)Gh(e,t,i);else if(Array.isArray(r))for(const i of r)Gh(e,t,i);else Gh(e,t,r)}function Gh(e,t,n){const r=pC(e,n);if(!Gl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function pC(e,t){return e&&Fo(t)?t.resolve(e.doc,e):t}function mC(e,t,{key:n,value:r}){if(lt(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(oH(e,n))hC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=aH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function aH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(lt(e)&&(n!=null&&n.doc)){const r=dC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),fC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function C0(e,t,n){const r=bl(e,void 0,n),i=bl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:rC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return lt(n)&&(n=n.clone(t)),lt(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return mC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?sH(this,t,n,r):JSON.stringify(this)}}function gC(e,t,n){return(t.inFlow??e.flow?cH:lH)(e,t,n)}function lH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:s,type:null});let u=!1;const h=[];for(let g=0;gw=null,()=>u=!0);w&&(m+=Ri(m,s,c(w))),u&&w&&(u=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;gw=null);c||(c=u.length>d||m.includes(` +`)),g0&&(c||(c=u.reduce((x,y)=>x+y.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),w&&(m+=Ri(m,r,a(w))),u.push(m),d=u.length}const{start:h,end:p}=n;if(u.length===0)return h+p;if(!c){const g=u.reduce((b,w)=>b+w.length+2,2);c=t.options.lineWidth>0&&g>t.options.lineWidth}if(c){let g=h;for(const b of u)g+=b?` +${s}${i}${b}`:` +`;return`${g} +${i}${p}`}else return`${h}${o}${u.join(" ")}${o}${p}`}function gd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=xr(t(r),e);n.push(s.trimStart())}}function Li(e,t){const n=Ue(t)?t.value:t;for(const r of e)if(ct(r)&&(r.key===t||r.key===n||Ue(r.key)&&r.key.value===n))return r}class En extends cC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ii,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(C0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;ct(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Li(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);Ue(i.value)&&lC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Li(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Li(this.items,t),i=r==null?void 0:r.value;return(!n&&Ue(i)?i.value:i)??void 0}has(t){return!!Li(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)mC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!ct(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),gC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Uo={collection:"map",default:!0,nodeClass:En,tag:"tag:yaml.org,2002:map",resolve(e,t){return Gl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>En.from(e,t,n)};class Xi extends cC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super($o,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=Uc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=Uc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&Ue(i)?i.value:i}has(t){const n=Uc(t);return typeof n=="number"&&n=0?t:null}const Vo={collection:"seq",default:!0,nodeClass:Xi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Wl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Xi.from(e,t,n)},cf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),A0(e,t,n,r)}},uf={identify:e=>e==null,createNode:()=>new ke(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new ke(null),stringify:({source:e},t)=>typeof e=="string"&&uf.test.test(e)?e:t.options.nullStr},M0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new ke(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&M0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Wn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const yC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},bC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},xC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new ke(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Wn},df=e=>typeof e=="bigint"||Number.isInteger(e),I0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function wC(e,t,n){const{value:r}=e;return df(r)&&r>=0?n+r.toString(t):Wn(e)}const vC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>I0(e,2,8,n),stringify:e=>wC(e,8,"0o")},_C={identify:df,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>I0(e,0,10,n),stringify:Wn},EC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>I0(e,2,16,n),stringify:e=>wC(e,16,"0x")},uH=[Uo,Vo,cf,uf,M0,vC,_C,EC,yC,bC,xC];function o1(e){return typeof e=="bigint"||Number.isInteger(e)}const Vc=({value:e})=>JSON.stringify(e),dH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Vc},{identify:e=>e==null,createNode:()=>new ke(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Vc},{identify:o1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>o1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Vc}],fH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},hH=[Uo,Vo].concat(dH,fH),O0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new ke(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} +${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} +${s.comment}`:r.comment}r=i}e.items[n]=ct(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function SC(e,t,n){const{replacer:r}=n,i=new Xi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(C0(a,l,n))}return i}const R0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kC,createNode:SC};class to extends Xi{constructor(){super(),this.add=En.prototype.add.bind(this),this.delete=En.prototype.delete.bind(this),this.get=En.prototype.get.bind(this),this.has=En.prototype.has.bind(this),this.set=En.prototype.set.bind(this),this.tag=to.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(ct(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=SC(t,n,r),s=new this;return s.items=i.items,s}}to.tag="tag:yaml.org,2002:omap";const L0={collection:"seq",identify:e=>e instanceof Map,nodeClass:to,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=kC(e,t),r=[];for(const{key:i}of n.items)Ue(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new to,n)},createNode:(e,t,n)=>to.from(e,t,n)};function NC({value:e,source:t},n){return t&&(e?TC:AC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const TC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new ke(!0),stringify:NC},AC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new ke(!1),stringify:NC},pH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},mH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},gH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new ke(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Wn},Yl=e=>typeof e=="bigint"||Number.isInteger(e);function ff(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function P0(e,t,n){const{value:r}=e;if(Yl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Wn(e)}const yH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ff(e,2,2,n),stringify:e=>P0(e,2,"0b")},bH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ff(e,1,8,n),stringify:e=>P0(e,8,"0")},xH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ff(e,0,10,n),stringify:Wn},wH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ff(e,2,16,n),stringify:e=>P0(e,16,"0x")};class no extends En{constructor(t){super(t),this.tag=no.tag}add(t){let n;ct(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Li(this.items,n.key)||this.items.push(n)}get(t,n){const r=Li(this.items,t);return!n&&ct(r)?Ue(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Li(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(C0(o,null,r));return s}}no.tag="tag:yaml.org,2002:set";const D0={collection:"map",identify:e=>e instanceof Set,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>no.from(e,t,n),resolve(e,t){if(Gl(e)){if(e.hasAllNullValues(!0))return Object.assign(new no,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function j0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function CC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Wn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const MC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>j0(e,n),stringify:CC},IC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>j0(e,!1),stringify:CC},hf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(hf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const d=t[8];if(d&&d!=="Z"){let u=j0(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},a1=[Uo,Vo,cf,uf,TC,AC,yH,bH,xH,wH,pH,mH,gH,O0,kr,L0,R0,D0,MC,IC,hf],l1=new Map([["core",uH],["failsafe",[Uo,Vo,cf]],["json",hH],["yaml11",a1],["yaml-1.1",a1]]),c1={binary:O0,bool:M0,float:xC,floatExp:bC,floatNaN:yC,floatTime:IC,int:_C,intHex:EC,intOct:vC,intTime:MC,map:Uo,merge:kr,null:uf,omap:L0,pairs:R0,seq:Vo,set:D0,timestamp:hf},vH={"tag:yaml.org,2002:binary":O0,"tag:yaml.org,2002:merge":kr,"tag:yaml.org,2002:omap":L0,"tag:yaml.org,2002:pairs":R0,"tag:yaml.org,2002:set":D0,"tag:yaml.org,2002:timestamp":hf};function Wh(e,t,n){const r=l1.get(t);if(r&&!e)return n&&!r.includes(kr)?r.concat(kr):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(l1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(kr)),i.reduce((s,o)=>{const a=typeof o=="string"?c1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(c1).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const _H=(e,t)=>e.keyt.key?1:0;class B0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Wh(t,"compat"):t?Wh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?vH:{},this.tags=Wh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:Uo}),Object.defineProperty(this,ar,{value:cf}),Object.defineProperty(this,$o,{value:Vo}),this.sortMapEntries=typeof o=="function"?o:o===!0?_H:null}clone(){const t=Object.create(B0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function EH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=dC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(xr(c,""))}let o=!1,a=null;if(e.contents){if(lt(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(xr(u,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let d=xo(e.contents,i,()=>a=null,c);a&&(d+=Ri(d,"",s(a))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` +`)?(n.push("..."),n.push(xr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(xr(s(c),"")))}return n.join(` +`)+` +`}class Xl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:qm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Xl.prototype,{[Cn]:{value:qm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=lt(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){xs(this.contents)&&this.contents.add(t)}addIn(t,n){xs(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=oC(this);t.anchor=!n||r.has(n)?aC(n||"a",r):n}return new T0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const w=x=>typeof x=="number"||x instanceof String||x instanceof Number,m=n.filter(w).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:h,sourceObjects:p}=Q8(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=bl(t,d,g);return a&&at(b)&&(b.flow=!0),h(),b}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return xs(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ya(t)?this.contents==null?!1:(this.contents=null,!0):xs(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return at(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ya(t)?!n&&Ue(this.contents)?this.contents.value:this.contents:at(this.contents)?this.contents.getIn(t,n):void 0}has(t){return at(this.contents)?this.contents.has(t):!1}hasIn(t){return ya(t)?this.contents!==void 0:at(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=md(this.schema,[t],n):xs(this.contents)&&this.contents.set(t,n)}setIn(t,n){ya(t)?this.contents=n:this.contents==null?this.contents=md(this.schema,Array.from(t),n):xs(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new B0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:d}of a.anchors.values())s(d,c);return typeof o=="function"?Hs(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return EH(this,t)}}function xs(e){if(at(e))return!0;throw new Error("Expected a YAML collection as document contents")}class OC extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class ba extends OC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class kH extends OC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const u1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… +`),o=a+o}if(/[^ ]/.test(o)){let a=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: + +${o} +${c} +`}};function wo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",h="",p=!1,g=!1,b=null,w=null,m=null,x=null,y=null,v=null,E=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),b&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),b=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(b=N),d=!0;break;case"comment":{d||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";u?u+=h+I:u=I,h="",c=!1;break}case"newline":c?u?u+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(w||m)&&(x=N),d=!0;break;case"anchor":w&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),w=N,E??(E=N.offset),c=!1,d=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,E??(E=N.offset),c=!1,d=!1,g=!0;break}case n:(w||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(t){y&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),y=N,c=!1,d=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,d=!1}const _=e[e.length-1],C=_?_.offset+_.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b&&(c&&b.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:y,found:v,spaceBefore:l,comment:u,hasNewline:p,anchor:w,tag:m,newlineAfterProp:x,end:C,start:E??C}}function xl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` +`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(xl(t.key)||xl(t.value))return!0}return!1;default:return!0}}function Xm(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&xl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function RC(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||Ue(s)&&Ue(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const d1="All mapping items must start at the same column";function SH({composeNode:e,composeEmptyNode:t},n,r,i,s){var d;const o=(s==null?void 0:s.nodeClass)??En,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const u of r.items){const{start:h,key:p,sep:g,value:b}=u,w=wo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!w.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",d1)),!w.anchor&&!w.tag&&!g){c=w.end,w.comment&&(a.comment?a.comment+=` +`+w.comment:a.comment=w.comment);continue}(w.newlineAfterProp||xl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=w.found)==null?void 0:d.indent)!==r.indent&&i(l,"BAD_INDENT",d1);n.atKey=!0;const x=w.end,y=p?e(n,p,w,i):t(n,x,h,null,w,i);n.schema.compat&&Xm(r.indent,p,i),n.atKey=!1,RC(n,a.items,y)&&i(x,"DUPLICATE_KEY","Map keys must be unique");const v=wo(g??[],{indicator:"map-value-ind",next:b,offset:y.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((b==null?void 0:b.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&w.starte&&(e.type==="block-map"||e.type==="block-seq");function TH({composeNode:e,composeEmptyNode:t},n,r,i,s){var w;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?En:Xi),c=new l(n.schema);c.flow=!0;const d=n.atRoot;d&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let m=0;m0){const m=Ql(g,b,n.options.strict,i);m.comment&&(c.comment?c.comment+=` +`+m.comment:c.comment=m.comment),c.range=[r.offset,b,m.offset]}else c.range=[r.offset,b,b];return c}function Qh(e,t,n,r,i,s){const o=n.type==="block-map"?SH(e,t,n,r,s):n.type==="block-seq"?NH(e,t,n,r,s):TH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function AH(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,b=p&&s?p.offset>s.offset?p:s:p??s;b&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qh(e,t,n,i,o)}const c=Qh(e,t,n,i,o,l),d=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,u=lt(d)?d:new ke(d);return u.range=c.range,u.tag=o,l!=null&&l.format&&(u.format=l.format),u}function CH(e,t,n){const r=t.offset,i=MH(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?ke.BLOCK_FOLDED:ke.BLOCK_LITERAL,o=t.source?IH(t.source):[];let a=o.length;for(let b=o.length-1;b>=0;--b){const w=o[b][1];if(w===""||w==="\r")a=b;else break}if(a===0){const b=i.chomp==="+"&&o.length>0?` +`.repeat(Math.max(1,o.length-1)):"";let w=r+i.length;return t.source&&(w+=t.source.length),{value:b,type:s,comment:i.comment,range:[r,w,w]}}let l=t.indent+i.indent,c=t.offset+i.length,d=0;for(let b=0;bl&&(l=w.length);else{w.length=a;--b)o[b][0].length>l&&(a=b+1);let u="",h="",p=!1;for(let b=0;bl||m[0]===" "?(h===" "?h=` +`:!p&&h===` +`&&(h=` + +`),u+=h+w.slice(l)+m,h=` +`,p=!0):m===""?h===` +`?u+=` +`:h=` +`:(u+=h+m,h=" ",p=!1)}switch(i.chomp){case"-":break;case"+":for(let b=a;bn(r+h,p,g);switch(i){case"scalar":a=ke.PLAIN,l=RH(s,c);break;case"single-quoted-scalar":a=ke.QUOTE_SINGLE,l=LH(s,c);break;case"double-quoted-scalar":a=ke.QUOTE_DOUBLE,l=PH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const d=r+s.length,u=Ql(o,d,t,n);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function RH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),LC(e)}function LH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),LC(e.slice(1,-1)).replace(/''/g,"'")}function LC(e){let t,n;try{t=new RegExp(`(.*?)(?s?e.slice(s,r+1):i)}else n+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function DH(e,t){let n="",r=e[t+1];for(;(r===" "||r===" "||r===` +`||r==="\r")&&!(r==="\r"&&e[t+2]!==` +`);)r===` +`&&(n+=` +`),t+=1,r=e[t+1];return n||(n=" "),{fold:n,offset:t}}const jH={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` +`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function BH(e,t,n,r){const i=e.substr(t,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{const a=e.substr(t-2,n+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function PC(e,t,n,r){const{value:i,type:s,comment:o,range:a}=t.type==="block-scalar"?CH(e,t,r):OH(t,e.options.strict,r),l=n?e.directives.tagName(n.source,u=>r(n,"TAG_RESOLVE_FAILED",u)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=$H(e.schema,i,l,n,r):t.type==="scalar"?c=FH(e,i,t,r):c=e.schema[ar];let d;try{const u=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);d=Ue(u)?u:new ke(u)}catch(u){const h=u instanceof Error?u.message:String(u);r(n??t,"TAG_RESOLVE_FAILED",h),d=new ke(i)}return d.range=a,d.source=i,s&&(d.type=s),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function $H(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function FH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}function zH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const UH={composeNode:DC,composeEmptyNode:$0};function DC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,d=!0;switch(t.type){case"alias":c=VH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=PC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=AH(UH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(u){const h=u instanceof Error?u.message:String(u);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const u=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=$0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!Ue(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&d&&(c.srcToken=t),c}function $0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const d={type:"scalar",offset:zH(t,n,r),indent:-1,source:""},u=PC(e,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),s&&(u.comment=s,u.range[2]=l),u}function VH({options:e},{offset:t,source:n,end:r},i){const s=new T0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=Ql(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function HH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Xl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=wo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?DC(c,i,d,o):$0(c,d.end,r,null,d,o);const u=l.contents.range[2],h=Ql(s,u,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,u,h.offset],l}function sa(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function f1(e){var i;let t="",n=!1,r=!1;for(let s=0;s{const o=sa(n);s?this.warnings.push(new kH(o,r,i)):this.errors.push(new ba(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=f1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} +${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(at(s)&&!s.flow&&s.items.length>0){let o=s.items[0];ct(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} +${a}`:r}else{const o=s.commentBefore;s.commentBefore=o?`${r} +${o}`:r}}if(n){for(let s=0;s{const s=sa(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=HH(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new ba(sa(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=Ql(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} +${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const r=Object.assign({_directives:this.directives},this.options),i=new Xl(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const jC="\uFEFF",BC="",$C="",Qm="";function qH(e){switch(e){case jC:return"byte-order-mark";case BC:return"doc-mode";case $C:return"flow-error-end";case Qm:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +`:case`\r +`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Rn(e){switch(e){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}const h1=new Set("0123456789ABCDEFabcdef"),GH=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Hc=new Set(",[]{}"),WH=new Set(` ,[]{} +\r `),Zh=e=>!e||WH.has(e);class YH{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,n=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!n;let r=this.next??"stream";for(;r&&(n||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let t=this.pos,n=this.buffer[t];for(;n===" "||n===" ";)n=this.buffer[++t];return!n||n==="#"||n===` +`?!0:n==="\r"?this.buffer[t+1]===` +`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let n=this.buffer[t];if(this.indentNext>0){let r=0;for(;n===" ";)n=this.buffer[++r+t];if(n==="\r"){const i=this.buffer[r+t+1];if(i===` +`||!i&&!this.atEnd)return t+r+1}return n===` +`||r>=this.indentNext||!n&&!this.atEnd?t+r:-1}if(n==="-"||n==="."){const r=this.buffer.substr(t,3);if((r==="---"||r==="...")&&Rn(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&tthis.indentValue&&!Rn(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[t,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&Rn(n)){const r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const t=this.getLine();if(t===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(t[n]){case"#":yield*this.pushCount(t.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Zh),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,n,r=-1;do t=yield*this.pushNewline(),t>0?(n=yield*this.pushSpaces(!1),this.indentValue=r=n):n=0,n+=yield*this.pushSpaces(!0);while(t+n>0);const i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Rn(n)||n==="#")}*parseBlockScalar(){let t=this.pos-1,n=0,r;e:for(let s=this.pos;r=this.buffer[s];++s)switch(r){case" ":n+=1;break;case` +`:t=s,n=0;break;case"\r":{const o=this.buffer[s+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===` +`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(t+1);if(s===-1)break;t=this.buffer.indexOf(` +`,s)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(r=this.buffer[i];r===" ";)r=this.buffer[++i];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===` +`;)r=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let s=t-1,o=this.buffer[s];o==="\r"&&(o=this.buffer[--s]);const a=s;for(;o===" ";)o=this.buffer[--s];if(o===` +`&&s>=this.pos&&s+1+n>a)t=s;else break}while(!0);return yield Qm,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let n=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){const s=this.buffer[r+1];if(Rn(s)||t&&Hc.has(s))break;n=r}else if(Rn(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` +`?(r+=1,i=` +`,s=this.buffer[r+1]):n=r),s==="#"||t&&Hc.has(s))break;if(i===` +`){const o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&Hc.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Qm,yield*this.pushToIndex(n+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,n){const r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(n&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(Zh),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,r=this.charAt(1);if(Rn(r)||n&&Hc.has(r)){n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,n=this.buffer[t];for(;!Rn(n)&&n!==">";)n=this.buffer[++t];return yield*this.pushToIndex(n===">"?t+1:t,!1)}else{let t=this.pos+1,n=this.buffer[t];for(;n;)if(GH.has(n))n=this.buffer[++t];else if(n==="%"&&h1.has(this.buffer[t+1])&&h1.has(this.buffer[t+2]))n=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===` +`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===` +`?yield*this.pushCount(2):0}*pushSpaces(t){let n=this.pos-1,r;do r=this.buffer[++n];while(r===" "||t&&r===" ");const i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(t){let n=this.pos,r=this.buffer[n];for(;!t(r);)r=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class XH{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let n=0,r=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((n=e[++t])==null?void 0:n.type)==="space";);return e.splice(t,e.length)}function yd(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&(t==null?void 0:t.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const n=t??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const r=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in r?r.indent:0:n.type==="flow-collection"&&r.type==="document"&&(n.indent=0),n.type==="flow-collection"&&m1(n),r.type){case"document":r.value=n;break;case"block-scalar":r.props.push(n);break;case"block-map":{const i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{const i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{const i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&p1(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&n.sep&&!n.value){const a=[];for(let l=0;lt.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=n.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zr(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(FC(n.key)&&!zr(n.sep,"newline")){const a=ws(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:c}]})}else o.length>0?n.sep=n.sep.concat(o,this.sourceToken):n.sep.push(this.sourceToken);else if(zr(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const a=ws(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):zr(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||n.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(a):(Object.assign(n,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!n.explicitKey&&n.sep&&!zr(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){yd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||zr(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=Kc(r),s=ws(i);m1(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` +`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` +`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function ZH(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new XH||null,prettyErrors:t}}function JH(e,t={}){const{lineCounter:n,prettyErrors:r}=ZH(t),i=new QH(n==null?void 0:n.addNewLine),s=new KH(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ba(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(u1(e,n)),o.warnings.forEach(u1(e,n))),o}function eK(e,t,n){let r;const i=JH(e,n);if(!i)return null;if(i.warnings.forEach(s=>fC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function tK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return ql(e)&&!r?e.toString(n):new Xl(e,r,n).toString(n)}function ds(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[],deployment:{feishuEnabled:!1}}}const zC="https://ark.cn-beijing.volces.com/api/v3/",nK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:zC}],$a=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:zC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],vo=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],UC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:vo},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:vo},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],VC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],HC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:vo},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],KC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:vo},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...vo,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],qC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...vo,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],rK=e=>UC.find(t=>t.id===e),iK=e=>VC.find(t=>t.id===e),sK=e=>HC.find(t=>t.id===e),oK=e=>KC.find(t=>t.id===e),aK=e=>qC.find(t=>t.id===e);function Fi(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function GC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function ft(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Zm(e,t,n){const r=Fi(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function oa(e,t){for(const n of t)e.env.push(n)}function g1(e,t,n){const r=Zm(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: + ${GC(i)} + # TODO: 实现「${t}」的逻辑。 + return {"result": f"${r} 尚未实现: {query}"}`),r}function lK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;F0(e,a,c),s.push(c)});const o=[`name=${ft(Fi(t.name,n))}`,`description=${ft(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( + ${o.join(`, + `)}, +)`),n}function cK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${ft(Fi(t.name,n))}`,`url=${ft((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( + ${r.join(`, + `)}, +)`),n}function F0(e,t,n){var a,l,c,d,u,h,p,g,b,w;const r=t.agentType??"llm";if(r==="a2a")return cK(e,t,n);if(r!=="llm")return lK(e,t,n);const i=[];for(const m of t.builtinTools??[]){const x=rK(m);x&&(e.imports.includes(x.importLine)||e.imports.push(x.importLine),i.push(...x.toolNames),oa(e,x.env),x.pipExtra&&e.extras.add(x.pipExtra))}for(const m of t.customTools??[])(a=m.name)!=null&&a.trim()&&i.push(g1(e,m.name,m.description));for(const m of t.mcpTools??[])if(m.transport==="http"&&((l=m.url)!=null&&l.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=(c=m.authToken)!=null&&c.trim()?`, headers={"Authorization": ${ft(`Bearer ${m.authToken.trim()}`)}}`:"";e.preLines.push(`${x} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${ft(m.url.trim())}${y}))`),i.push(x)}else if(m.transport==="stdio"&&((d=m.command)!=null&&d.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=`[${(m.args??[]).filter(v=>v==null?void 0:v.trim()).map(v=>ft(v)).join(", ")}]`;e.preLines.push(`${x} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${ft(m.command.trim())}, args=${y}), timeout=30))`),i.push(x)}for(const m of t.tools??[])m!=null&&m.trim()&&i.push(g1(e,m,""));const s=[`name=${ft(Fi(t.name,n))}`,`description=${ft(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${GC(t.instruction||"You are a helpful assistant.")}`),i.length&&s.push(`tools=[${i.join(", ")}]`),(u=t.modelName)!=null&&u.trim()&&s.push(`model_name=${ft(t.modelName.trim())}`),(h=t.modelProvider)!=null&&h.trim()&&s.push(`model_provider=${ft(t.modelProvider.trim())}`),(p=t.modelApiBase)!=null&&p.trim()&&s.push(`model_api_base=${ft(t.modelApiBase.trim())}`),(g=t.memory)!=null&&g.shortTerm){const m=iK(t.shortTermBackend||"local");if(m){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const x=[`backend=${ft(m.id)}`];m.extraArgs&&x.push(m.extraArgs);const y=`stm_${n}`;e.preLines.push(`${y} = ShortTermMemory(${x.join(", ")})`),s.push(`short_term_memory=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if((b=t.memory)!=null&&b.longTerm){const m=sK(t.longTermBackend||"local");if(m){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const x=Fi(t.name,n),y=`ltm_${n}`;e.preLines.push(`${y} = LongTermMemory(backend=${ft(m.id)}, index=${ft(x)}, app_name=${ft(x)})`),s.push(`long_term_memory=${y}`),t.autoSaveSession&&s.push("auto_save_session=True"),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.knowledgebase){const m=oK(t.knowledgebaseBackend||"local");if(m){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const x=Fi(t.name+"_kb",n+"_kb"),y=`kb_${n}`;e.preLines.push(`${y} = KnowledgeBase(backend=${ft(m.id)}, index=${ft(x)}, app_name=${ft(x)})`),s.push(`knowledgebase=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.tracing&&(((w=t.tracingExporters)==null?void 0:w.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const m=`tracer_${n}`;e.preLines.push(`${m} = OpentelemetryTracer()`),s.push(`tracers=[${m}]`);for(const x of t.tracingExporters??[]){const y=aK(x);y&&(e.env.push({key:y.enableFlag,required:!0,placeholder:"true",comment:`${y.label} 开关`}),oa(e,y.env))}}t.enableA2ui&&(s.push("enable_a2ui=True"),e.extras.add("a2ui"));const o=[];return(t.subAgents??[]).forEach((m,x)=>{const y=`${n}_sub_${x+1}`;F0(e,m,y),o.push(y)}),o.length&&s.push(`sub_agents=[${o.join(", ")}]`),e.preLines.push(`${n} = Agent( + ${s.join(`, + `)}, +)`),n}function uK(e){const t=new Map;for(const n of e){const r=t.get(n.key);r?n.required&&!r.required&&(r.required=!0):t.set(n.key,{...n})}return[...t.values()]}function dK(e){const t=["# 复制为 .env 并填入真实值(或改用 config.yaml)。","# 标记 [必填] 的变量缺失时 Agent 无法启动。",""];for(const n of e)(n.comment||n.required)&&t.push(`# ${n.required?"[必填] ":""}${n.comment??""}`.trimEnd()),t.push(`${n.key}=${n.placeholder??""}`);return t.join(` +`)+` +`}function fK(e,t){const n=[...e];t&&n.push("extensions");const r=[...new Set(n)].sort(),i=t?">=0.5.33":"",s=r.length?`veadk-python[${r.join(",")}]${i}`:`veadk-python${i}`;return`${(t?[s,"lark-channel-sdk","agentkit-sdk-python","google-adk>=1.32.0,<2.0.0","starlette<1.0.0"]:[s,"agentkit-sdk-python","google-adk>=1.32.0,<2.0.0","starlette<1.0.0"]).join(` +`)} +`}function hK(e,t){return[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。","","## 飞书机器人","","在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。",""].join(` +`)}function WC(e){var d;const t=Fi(e.name,"my_agent"),n={imports:[],preLines:[],env:[...nK],extras:new Set,usedNames:new Set},r=!!((d=e.deployment)!=null&&d.feishuEnabled);r&&n.env.push({key:"FEISHU_APP_ID",required:!1,placeholder:"cli_xxx",comment:"飞书机器人 App ID(前端部署时填写)"},{key:"FEISHU_APP_SECRET",required:!1,placeholder:"your-feishu-app-secret",comment:"飞书机器人 App Secret(前端部署时填写)"}),F0(n,e,"agent");const i=["from veadk import Agent",...pK(n.imports)].join(` +`),s=["import asyncio","import inspect","import os","import threading","import traceback","from contextlib import asynccontextmanager","from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` +`),o=n.preLines.join(` + +`)+` + +# ADK 加载器要求:顶层 agent 必须命名为 root_agent +root_agent = agent +`,a=i+` + +`+o,c=[{path:"app.py",content:`${s} + +# Deployment configuration +HOST = os.getenv("HOST", "0.0.0.0") +PORT = int(os.getenv("PORT", "8000")) +FEISHU_CHANNEL_ENABLED = ${r?"True":"False"} + +def _env_bool(name: str, default: bool = False) -> bool: + raw = os.getenv(name) + if raw is None: + return default + return raw.strip().lower() in {"1", "true", "yes", "y", "on"} + +def _coalesce(*values): + for value in values: + if value: + return value + return "" + +def _read_attr(obj, *path): + cur = obj + for part in path: + if cur is None: + return None + cur = getattr(cur, part, None) + return cur + +async def _maybe_await(value): + if inspect.isawaitable(value): + return await value + return value + +def _call_in_event_loop(loop, method): + result = method() + if inspect.isawaitable(result): + return loop.run_until_complete(result) + return result + +class _FallbackFeishuChannelExtension: + """Minimal Feishu bridge used when the installed veadk package lacks extensions.""" + + def __init__(self, runner, *, app_id, app_secret, channel_kwargs=None, **_kwargs): + try: + from lark_channel import FeishuChannel + except ImportError: + from lark_oapi.channel import FeishuChannel + + self.runner = runner + self.channel = FeishuChannel( + app_id=app_id, + app_secret=app_secret, + **dict(channel_kwargs or {}), + ) + self.channel.on("message", self._on_message) + + async def connect(self): + connect = getattr(self.channel, "start", None) or self.channel.connect + return await _maybe_await(connect()) + + async def disconnect(self): + disconnect = getattr(self.channel, "stop", None) or getattr(self.channel, "disconnect", None) + if disconnect is None: + return None + return await _maybe_await(disconnect()) + + async def _on_message(self, message) -> None: + text = str(getattr(message, "content_text", "") or "").strip() + if not text: + return + sender = getattr(message, "sender", None) + user_id = _coalesce( + getattr(sender, "union_id", None), + getattr(sender, "open_id", None), + getattr(sender, "user_id", None), + getattr(message, "sender_id", None), + "feishu_user", + ) + session_id = _coalesce( + _read_attr(message, "conversation", "thread_id"), + getattr(message, "thread_id", None), + getattr(message, "reply_to_message_id", None), + getattr(message, "chat_id", None), + _read_attr(message, "conversation", "chat_id"), + getattr(message, "message_id", None), + "feishu_session", + ) + chat_id = _coalesce( + getattr(message, "chat_id", None), + _read_attr(message, "conversation", "chat_id"), + ) + if not chat_id: + print("feishu channel fallback ignored message without chat_id", flush=True) + return + response_text = await self.runner.run( + messages=text, + user_id=user_id, + session_id=session_id, + ) + if response_text: + options = {} + message_id = _coalesce(getattr(message, "message_id", None), getattr(message, "id", None)) + if message_id: + options["reply_to"] = message_id + await _maybe_await(self.channel.send(chat_id, {"text": str(response_text)}, options)) + +def _get_feishu_channel_method(channel, names): + raw_channel = getattr(channel, "channel", None) + for name in names: + method = getattr(channel, name, None) + if method is not None: + return method + method = getattr(raw_channel, name, None) + if method is not None: + return method + return None + +def _connect_feishu_channel(loop, channel) -> None: + connect = _get_feishu_channel_method(channel, ("start", "connect")) + if connect is None: + raise AttributeError("Feishu channel has no start/connect method") + return _call_in_event_loop(loop, connect) + +def _disconnect_feishu_channel(loop, channel) -> None: + disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) + if disconnect is None: + return None + return _call_in_event_loop(loop, disconnect) + +def _stop_feishu_channel_from_lifespan(channel) -> None: + stop = _get_feishu_channel_method(channel, ("stop", "disconnect")) + if stop is None: + return None + return stop() + +def _build_feishu_channel(runner, app_id, app_secret): + FeishuChannelExtension = _FallbackFeishuChannelExtension + try: + from veadk.extensions import FeishuChannelExtension as _VeadkFeishuChannelExtension + except ImportError as exc: + print( + "veadk.extensions is not installed; using generated Feishu Channel fallback: " + f"{type(exc).__name__}: {exc}", + flush=True, + ) + else: + if getattr(_VeadkFeishuChannelExtension, "CHANNEL_SDK_COMPAT", False): + FeishuChannelExtension = _VeadkFeishuChannelExtension + else: + print( + "installed veadk FeishuChannelExtension lacks channel-sdk compatibility; " + "using generated Feishu Channel fallback", + flush=True, + ) + + return FeishuChannelExtension( + runner=runner, + app_id=app_id, + app_secret=app_secret, + channel_kwargs={ + "transport": os.getenv("TOOL_FEISHU_CHANNEL_TRANSPORT", "ws"), + }, + streaming=_env_bool("TOOL_FEISHU_CHANNEL_STREAMING"), + reactions=_env_bool("TOOL_FEISHU_CHANNEL_REACTIONS"), + ) + +def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: + loop = asyncio.new_event_loop() + state["loop"] = loop + asyncio.set_event_loop(loop) + try: + while not stop_event.is_set(): + channel = None + try: + channel = _build_feishu_channel(runner, app_id, app_secret) + state["channel"] = channel + print("feishu channel connecting in dedicated thread", flush=True) + _connect_feishu_channel(loop, channel) + print("feishu channel disconnected; reconnecting in 5s", flush=True) + except Exception as exc: + if channel is None: + print( + f"feishu channel initialization failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + print(traceback.format_exc(), flush=True) + else: + print( + f"feishu channel connect failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + finally: + if channel is not None: + try: + _disconnect_feishu_channel(loop, channel) + except Exception as exc: + print( + f"feishu channel disconnect failed: {type(exc).__name__}: {exc}", + flush=True, + ) + finally: + if state.get("channel") is channel: + state["channel"] = None + stop_event.wait(5) + finally: + asyncio.set_event_loop(None) + state["loop"] = None + loop.close() + +async def _start_feishu_channel(app, runner) -> None: + if not _env_bool("TOOL_FEISHU_CHANNEL_ENABLED", FEISHU_CHANNEL_ENABLED): + return + + app_id = os.getenv("TOOL_FEISHU_CHANNEL_APP_ID") or os.getenv("FEISHU_APP_ID") + app_secret = os.getenv("TOOL_FEISHU_CHANNEL_APP_SECRET") or os.getenv("FEISHU_APP_SECRET") + if not app_id or not app_secret: + print( + "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", + flush=True, + ) + return + + app.state.feishu_channel_state = {"channel": None, "loop": None} + app.state.feishu_channel_stop_event = threading.Event() + app.state.feishu_channel_thread = threading.Thread( + target=_run_feishu_channel, + args=( + runner, + app_id, + app_secret, + app.state.feishu_channel_stop_event, + app.state.feishu_channel_state, + ), + name="feishu-channel", + daemon=True, + ) + app.state.feishu_channel_thread.start() + print("feishu channel background thread started", flush=True) + +async def _stop_feishu_channel(app) -> None: + stop_event = getattr(app.state, "feishu_channel_stop_event", None) + if stop_event is not None: + stop_event.set() + state = getattr(app.state, "feishu_channel_state", None) or {} + channel = state.get("channel") + if channel is not None: + await asyncio.to_thread(_stop_feishu_channel_from_lifespan, channel) + thread = getattr(app.state, "feishu_channel_thread", None) + if thread is not None: + await asyncio.to_thread(thread.join, 2) + if thread.is_alive(): + print( + "feishu channel background thread did not stop within 2s", + flush=True, + ) + +def build_app(): + """Build AgentKit AgentServerApp for deployment.""" + import veadk + from veadk import Runner + + WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" + + # AgentKit's AgentServerApp exposes the ADK-compatible API surface + # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. + short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( + backend="local" + ) + runner = Runner( + agent=root_agent, + app_name=getattr(root_agent, "name", "") or "agent", + short_term_memory=short_term_memory, + ) + agent_server_app = AgentkitAgentServerApp( + agent=root_agent, + short_term_memory=short_term_memory, + ) + app = agent_server_app.app + + original_lifespan = app.router.lifespan_context + + @asynccontextmanager + async def lifespan(fastapi_app): + async with original_lifespan(fastapi_app): + await _start_feishu_channel(fastapi_app, runner) + try: + yield + finally: + await _stop_feishu_channel(fastapi_app) + + app.router.lifespan_context = lifespan + + # Add health check endpoint + @app.get("/ping") + def ping() -> dict[str, str]: + return {"status": "ok"} + + # Agent-structure introspection (data plane), consumed by the VeADK web + # UI's "管理 Agent" view to show this runtime's agent name + sub-agent tree. + from fastapi import HTTPException as _HTTPException + + def _agent_type(a: object) -> str: + try: + from google.adk.agents import LoopAgent, ParallelAgent, SequentialAgent + + if isinstance(a, LoopAgent): + return "loop" + if isinstance(a, SequentialAgent): + return "sequential" + if isinstance(a, ParallelAgent): + return "parallel" + except Exception: + pass + try: + from google.adk.agents.remote_a2a_agent import RemoteA2aAgent + + if isinstance(a, RemoteA2aAgent): + return "a2a" + except Exception: + pass + return "llm" + + def _model_name(m: object) -> str: + if isinstance(m, str): + return m + return str(getattr(m, "model", None) or type(m).__name__) + + def _tool_label(t: object) -> str: + name = getattr(t, "name", None) or getattr(t, "__name__", None) + return str(name or type(t).__name__) + + def _agent_node(a: object, depth: int = 0) -> dict: + children = [] + if depth < 8: + children = [_agent_node(s, depth + 1) for s in getattr(a, "sub_agents", []) or []] + return { + "name": getattr(a, "name", "") or "", + "description": getattr(a, "description", "") or "", + "type": _agent_type(a), + "model": _model_name(getattr(a, "model", "")), + "tools": [_tool_label(t) for t in getattr(a, "tools", []) or []], + "children": children, + } + + @app.get("/web/agent-info/{app_name}") + def agent_info(app_name: str) -> dict: + expected_name = getattr(root_agent, "name", "") or "" + if app_name != expected_name: + raise _HTTPException(status_code=404, detail="unknown agent: " + app_name) + return { + "name": expected_name or app_name, + "description": getattr(root_agent, "description", "") or "", + "type": _agent_type(root_agent), + "model": _model_name(getattr(root_agent, "model", "")), + "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], + "subAgents": [getattr(s, "name", "") for s in getattr(root_agent, "sub_agents", []) or []], + "graph": _agent_node(root_agent), + } + + @app.get("/web/agent-graph") + def agent_graph() -> dict: + # Single introspection endpoint on the main agent: returns this runtime's + # root agent + recursive sub-agent tree, with no /list-apps discovery + # needed. Used by the VeADK "管理 Agent" view. + return { + "name": getattr(root_agent, "name", "") or "", + "description": getattr(root_agent, "description", "") or "", + "type": _agent_type(root_agent), + "model": _model_name(getattr(root_agent, "model", "")), + "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], + "graph": _agent_node(root_agent), + } + + # Serve the bundled VeADK web UI without taking over "/", which is reserved + # by AgentServerApp for the A2A protocol surface. + if (WEBUI_DIR / "index.html").is_file(): + if (WEBUI_DIR / "assets").is_dir(): + app.mount( + "/assets", + StaticFiles(directory=str(WEBUI_DIR / "assets")), + name="webui-assets", + ) + + from fastapi.responses import FileResponse as _FileResponse + + @app.get("/") + @app.get("/webui") + @app.get("/webui/{path:path}") + def webui(path: str = ""): + return _FileResponse(WEBUI_DIR / "index.html") + + # AgentServerApp mounts A2A at "/", so routes added after construction must + # be moved before that root mount or they will be shadowed. + _priority_paths = { + "/", + "/ping", + "/web/agent-info/{app_name}", + "/web/agent-graph", + "/assets", + "/webui", + "/webui/{path:path}", + } + _priority_routes = [ + r for r in app.router.routes if getattr(r, "path", None) in _priority_paths + ] + if _priority_routes: + app.router.routes[:] = _priority_routes + [ + r for r in app.router.routes if r not in _priority_routes + ] + + return agent_server_app, app + +agent_server_app, app = build_app() + +if __name__ == "__main__": + agent_server_app.run(host=HOST, port=PORT) +`},{path:`agents/${t}/agent.py`,content:a},{path:`agents/${t}/__init__.py`,content:`from .agent import root_agent + +__all__ = ["root_agent"] +`},{path:".env.example",content:dK(uK(n.env))},{path:"requirements.txt",content:fK(n.extras,r)},{path:"README.md",content:hK(t,e)}];return{name:t,files:c}}function pK(e){return[...new Set(e)]}const mK=new Set(["local","sqlite","mysql","postgresql"]),gK=new Set(["local","opensearch","redis","viking","mem0"]),yK=new Set(["local","opensearch","viking","context_search"]),bK=new Set(["apmplus","cozeloop","tls"]),YC=new Set(xK());function xK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function st(e,t=""){return typeof e=="string"?e:t}function xi(e){return e===!0}function _u(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function XC(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:st(t.name),description:st(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function Jh(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const wK=new Set(["llm","sequential","parallel","loop","a2a"]);function QC(e){return typeof e=="string"&&wK.has(e)?e:"llm"}function ZC(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function JC(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...ds(),name:st(n.name),description:st(n.description),instruction:st(n.instruction),agentType:QC(n.agentType),maxIterations:ZC(n.maxIterations),a2aUrl:st(n.a2aUrl),builtinTools:_u(n.builtinTools).filter(r=>YC.has(r)),customTools:XC(n.customTools),subAgents:JC(n.subAgents)}}):[]}function e2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=t.deployment&&typeof t.deployment=="object"?t.deployment:{},i=JC(t.subAgents),s=Array.isArray(t.mcpTools)?t.mcpTools.map(o=>{const a=o&&typeof o=="object"?o:{},l=a.transport==="stdio"?"stdio":"http";return{name:st(a.name),transport:l,url:st(a.url),authToken:st(a.authToken),command:st(a.command),args:_u(a.args)}}).filter(o=>o.transport==="http"?!!o.url:!!o.command):[];return{...ds(),name:st(t.name)||"my_agent",description:st(t.description),instruction:st(t.instruction)||"You are a helpful assistant.",agentType:QC(t.agentType),maxIterations:ZC(t.maxIterations),a2aUrl:st(t.a2aUrl),modelName:st(t.modelName),modelProvider:st(t.modelProvider),modelApiBase:st(t.modelApiBase),builtinTools:_u(t.builtinTools).filter(o=>YC.has(o)),customTools:XC(t.customTools),mcpTools:s,memory:{shortTerm:xi(n.shortTerm),longTerm:xi(n.longTerm)},shortTermBackend:Jh(t.shortTermBackend,mK,"local"),longTermBackend:Jh(t.longTermBackend,gK,"local"),autoSaveSession:xi(t.autoSaveSession),knowledgebase:xi(t.knowledgebase),knowledgebaseBackend:Jh(t.knowledgebaseBackend,yK,"local"),tracing:xi(t.tracing),tracingExporters:_u(t.tracingExporters).filter(o=>bK.has(o)),enableA2ui:xi(t.enableA2ui),deployment:{feishuEnabled:xi(r.feishuEnabled)},subAgents:i,selectedSkills:Array.isArray(t.selectedSkills)?t.selectedSkills.map(o=>{const a=o&&typeof o=="object"?o:{};return{slug:st(a.slug),name:st(a.name)||st(a.slug),namespace:st(a.namespace)||"public"}}).filter(o=>!!o.slug):[]}}function vK(e){var n,r,i,s,o,a,l,c,d,u,h,p;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(g=>({name:g.name,description:g.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(g=>{var w,m,x,y;const b={name:g.name,transport:g.transport};return(w=g.url)!=null&&w.trim()&&(b.url=g.url.trim()),(m=g.authToken)!=null&&m.trim()&&(b.authToken=g.authToken.trim()),(x=g.command)!=null&&x.trim()&&(b.command=g.command.trim()),(y=g.args)!=null&&y.length&&(b.args=g.args),b})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((d=e.tracingExporters)!=null&&d.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(u=e.deployment)!=null&&u.feishuEnabled&&(t.deployment={feishuEnabled:!0}),(h=e.selectedSkills)!=null&&h.length&&(t.selectedSkills=e.selectedSkills.map(g=>({slug:g.slug,name:g.name,namespace:g.namespace}))),(p=e.subAgents)!=null&&p.length&&(t.subAgents=e.subAgents.map(g=>{var w,m;const b={name:g.name,description:g.description,instruction:g.instruction};return(w=g.builtinTools)!=null&&w.length&&(b.builtinTools=[...g.builtinTools]),(m=g.customTools)!=null&&m.length&&(b.customTools=g.customTools.map(x=>({name:x.name,description:x.description}))),b})),t}function y1(e){return`# VeADK Agent 结构配置 +# 可在「创建 Agent」页通过「导入 YAML」重新载入。 +`+tK(vK(e))}function t2(e){const t=eK(e);return e2(t)}const _K=[{kind:"intelligent",icon:XB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:i$,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:KB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:s$,title:"工作流",desc:"敬请期待",disabled:!0}];function EK({onSelect:e,onImport:t}){const n=S.useRef(null),[r,i]=S.useState(""),s=_K.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const d=await l.text();t(t2(d))}catch(d){i(`导入失败:${d instanceof Error?d.message:String(d)}`)}};return f.jsx(nC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(n$,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const kK="modulepreload",SK=function(e){return"/"+e},b1={},x1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=SK(l),l in b1)return;b1[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const u=document.createElement("link");if(u.rel=c?"stylesheet":kK,c||(u.as="script"),u.crossOrigin="",u.href=l,a&&u.setAttribute("nonce",a),document.head.appendChild(u),c)return new Promise((h,p)=>{u.addEventListener("load",h),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},NK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function TK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Qe(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const w1=2048,ep=20,v1=0;function AK(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),b=t.encode(p.content),w=TK(b),m=b.length,x=[];rn(x,67324752),Qe(x,ep),Qe(x,w1),Qe(x,v1),Qe(x,0),Qe(x,0),rn(x,w),rn(x,m),rn(x,m),Qe(x,g.length),Qe(x,0);const y=Uint8Array.from(x);n.push(y,g,b),r.push({nameBytes:g,dataBytes:b,crc:w,size:m,offset:i}),i+=y.length+g.length+b.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Qe(g,ep),Qe(g,ep),Qe(g,w1),Qe(g,v1),Qe(g,0),Qe(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Qe(g,p.nameBytes.length),Qe(g,0),Qe(g,0),Qe(g,0),Qe(g,0),rn(g,0),rn(g,p.offset);const b=Uint8Array.from(g);o.push(b,p.nameBytes),a+=b.length+p.nameBytes.length}const l=[];rn(l,101010256),Qe(l,0),Qe(l,0),Qe(l,r.length),Qe(l,r.length),rn(l,a),rn(l,s),Qe(l,0);const c=[...n,...o,Uint8Array.from(l)],d=c.reduce((p,g)=>p+g.length,0),u=new Uint8Array(d);let h=0;for(const p of c)u.set(p,h),h+=p.length;return new Blob([u],{type:"application/zip"})}tn.registerLanguage("python",AA);tn.registerLanguage("typescript",FA);tn.registerLanguage("javascript",_A);tn.registerLanguage("json",EA);tn.registerLanguage("yaml",zA);tn.registerLanguage("markdown",TA);tn.registerLanguage("bash",gA);tn.registerLanguage("ini",yA);tn.registerLanguage("dockerfile",SV);tn.registerLanguage("makefile",NA);const CK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},_1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function E1(e){return e.replace(/&/g,"&").replace(//g,">")}function MK(e){const n=(e.split("/").pop()??e).toLowerCase();if(_1[n])return _1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return CK[i]??null}function k1(e,t){try{const n=MK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:E1(e)}catch{return E1(e)}}const tp=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function IK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function OK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function Jm(e="",t=""){return{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,key:e,value:t}}const S1=new Set(["FEISHU_APP_ID","FEISHU_APP_SECRET"]);function N1(e){return e?[Jm("FEISHU_APP_ID",""),Jm("FEISHU_APP_SECRET","")]:[]}function z0({project:e,onChange:t,onDeploy:n,onAgentAdded:r,feishuEnabled:i=!1}){var ue,ae,se,ye;const s=typeof t=="function",[o,a]=S.useState(((ae=(ue=e==null?void 0:e.files)==null?void 0:ue[0])==null?void 0:ae.path)??null),[l,c]=S.useState(new Set),[d,u]=S.useState(!1),[h,p]=S.useState(""),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,E]=S.useState({}),[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(()=>N1(i)),[R,$]=S.useState(!1),O=S.useRef(null);S.useEffect(()=>{if(!i){P(Y=>Y.filter(W=>!W.key.startsWith("TOOL_FEISHU_CHANNEL_")&&!S1.has(W.key)));return}P(Y=>{const W=new Map(Y.map(le=>[le.key,le])),F=N1(!0),G=[...Y];for(const le of F)W.has(le.key)||G.push(le);return G})},[i]);const j=S.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:IK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const M=e.files.find(Y=>Y.path===o)??null;function B(Y){c(W=>{const F=new Set(W);return F.has(Y)?F.delete(Y):F.add(Y),F})}function L(Y,W){t&&(t({...e,files:Y}),W!==void 0&&a(W))}function D(Y){M&&L(e.files.map(W=>W.path===M.path?{...W,content:Y}:W))}function k(){const Y=h.trim();if(u(!1),p(""),!!Y){if(e.files.some(W=>W.path===Y)){a(Y);return}L([...e.files,{path:Y,content:""}],Y)}}function V(){if(!M)return;const Y=window.prompt("重命名文件",M.path),W=Y==null?void 0:Y.trim();!W||W===M.path||e.files.some(F=>F.path===W)||L(e.files.map(F=>F.path===M.path?{...F,path:W}:F),W)}function H(){var W;if(!M)return;const Y=e.files.filter(F=>F.path!==M.path);L(Y,((W=Y[0])==null?void 0:W.path)??null)}function T(Y,W){P(F=>F.map(G=>G.id===Y?{...G,...W}:G))}function U(Y){P(W=>W.filter(F=>F.id!==Y))}function X(){P(Y=>[...Y,Jm()])}function Z(){return A.map(Y=>({key:Y.key.trim(),value:Y.value})).filter(Y=>Y.key.length>0)}async function J(){if(!n||g)return;const Y=Z();if(i){const W=new Map(Y.map(F=>[F.key,F.value.trim()]));if(!W.get("TOOL_FEISHU_CHANNEL_APP_ID")&&!W.get("FEISHU_APP_ID")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。");return}if(!W.get("TOOL_FEISHU_CHANNEL_APP_SECRET")&&!W.get("FEISHU_APP_SECRET")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。");return}}m(null),y(null),E({}),C(null),b(!0);try{const W=await n(e,F=>{E(G=>({...G,[F.phase]:F})),C(F.phase)},i?{im:{feishu:{enabled:!0}},envs:Y}:{envs:Y});y(W),C(null)}catch(W){m(W instanceof Error?W.message:String(W))}finally{b(!1)}}async function q(){if(!(!x||N)){I(!0),m(null);try{const{addConnection:Y,remoteAppId:W,loadConnections:F}=await x1(async()=>{const{addConnection:le,remoteAppId:me,loadConnections:pe}=await Promise.resolve().then(()=>Uw);return{addConnection:le,remoteAppId:me,loadConnections:pe}},void 0),G=await Y(x.agentName,x.url,x.apikey,"");if(G.apps.length===0)m("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const le={...G,appLabels:{[G.apps[0]]:x.agentName}},pe=F().map(be=>be.id===G.id?le:be);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(pe));const{registerConnections:Le}=await x1(async()=>{const{registerConnections:be}=await Promise.resolve().then(()=>Uw);return{registerConnections:be}},void 0);if(Le(pe),r){const be=W(G.id,G.apps[0]);r(be,x.agentName)}else alert(`🎉 Agent "${x.agentName}" 已添加到左上角下拉列表!`)}}catch(Y){m(`添加 Agent 失败:${Y instanceof Error?Y.message:String(Y)}`)}finally{I(!1)}}}function ee(){const Y=AK(e.files),W=URL.createObjectURL(Y),F=document.createElement("a");F.href=W,F.download=`${e.name||"project"}.zip`,document.body.appendChild(F),F.click(),document.body.removeChild(F),URL.revokeObjectURL(W)}function ce(Y,W,F){return OK(Y).map(G=>{const le=F?`${F}/${G.name}`:G.name,me=G.path!==void 0,pe={paddingLeft:8+W*14};if(me){const be=G.path===o;return f.jsxs("button",{type:"button",className:`pp-row pp-file${be?" pp-active":""}`,style:pe,onClick:()=>a(G.path),title:G.path,children:[f.jsx(DB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:G.name})]},le)}const Le=l.has(le);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:pe,onClick:()=>B(le),children:[f.jsx(Gn,{className:`pp-ic pp-chevron${Le?"":" pp-open"}`}),f.jsx(BB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:G.name})]}),!Le&&ce(G,W+1,le)]},le)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),s&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),p("")},children:f.jsx(LB,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[d&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:h,onChange:Y=>p(Y.target.value),onBlur:k,onKeyDown:Y=>{Y.key==="Enter"&&k(),Y.key==="Escape"&&(u(!1),p(""))}}),e.files.length===0&&!d?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):ce(j,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:M==null?void 0:M.path,children:(M==null?void 0:M.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[s&&M&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:V,children:f.jsx(JB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:H,children:f.jsx(Do,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:ee,children:[f.jsx(MB,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:J,disabled:g,children:[g?f.jsx(bt,{className:"pp-ic spin"}):f.jsx(fl,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(g||x||Object.keys(v).length>0)&&f.jsx("ol",{className:"pp-steps",children:tp.map((Y,W)=>{const F=_?tp.findIndex(pe=>pe.phase===_):-1,G=!!w&&(F===-1?W===0:W===F);let le;x?le="done":G?le="failed":F===-1?le=g?"active":"pending":WY.phase===_))==null?void 0:se.label)??_}阶段):`:"",w]}),x&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:x.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:x.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:x.apikey})]}),((ye=x.feishuChannel)==null?void 0:ye.enabled)&&f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"飞书 Channel"}),f.jsxs("code",{children:["runtime 内启用 (",x.feishuChannel.transport,")"]})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:q,disabled:N,children:[N?f.jsx(bt,{className:"pp-ic spin"}):null,N?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:M==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):s?f.jsxs("div",{className:"pp-editor-wrap",children:[f.jsx("pre",{className:"pp-hl hljs","aria-hidden":"true",ref:O,children:f.jsx("code",{dangerouslySetInnerHTML:{__html:k1(M.content,M.path)}})}),f.jsx("textarea",{className:"pp-input",spellCheck:!1,value:M.content,onChange:Y=>D(Y.target.value),onScroll:Y=>{const W=O.current;W&&(W.scrollTop=Y.currentTarget.scrollTop,W.scrollLeft=Y.currentTarget.scrollLeft)}})]}):f.jsx("pre",{className:"pp-pre hljs",children:f.jsx("code",{dangerouslySetInnerHTML:{__html:k1(M.content,M.path)}})})})]}),n&&f.jsxs("aside",{className:"pp-env-panel","aria-label":"环境变量",children:[f.jsxs("div",{className:"pp-env-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"pp-env-title",children:"环境变量"}),i&&f.jsx("div",{className:"pp-env-sub",children:"飞书 Channel 已开启,只需要填写 FEISHU_APP_ID 和 FEISHU_APP_SECRET。"})]}),f.jsx("button",{type:"button",className:"pp-icon-btn",title:R?"隐藏值":"显示值",onClick:()=>$(Y=>!Y),children:R?f.jsx(RB,{className:"pp-ic"}):f.jsx(Ky,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-env-table",children:[f.jsxs("div",{className:"pp-env-row pp-env-row-head",children:[f.jsx("span",{children:"Key"}),f.jsx("span",{children:"Value"}),f.jsx("span",{})]}),A.length===0?f.jsx("div",{className:"pp-env-empty",children:"暂无环境变量"}):A.map(Y=>{const W=i&&S1.has(Y.key),F=Y.key==="FEISHU_APP_ID"?"cli_xxx":Y.key==="FEISHU_APP_SECRET"?"输入 App Secret":"VALUE";return f.jsxs("div",{className:"pp-env-row",children:[f.jsx("input",{className:W?"pp-env-key-fixed":void 0,value:Y.key,placeholder:"KEY",readOnly:W,disabled:g,autoComplete:"off",title:W?"飞书必填变量":void 0,onChange:G=>T(Y.id,{key:G.currentTarget.value})}),f.jsx("input",{type:R?"text":"password",value:Y.value,placeholder:F,disabled:g,autoComplete:"off",onChange:G=>T(Y.id,{value:G.currentTarget.value})}),W?f.jsx("span",{className:"pp-env-remove-placeholder"}):f.jsx("button",{type:"button",className:"pp-icon-btn pp-env-remove",title:"删除变量",disabled:g,onClick:()=>U(Y.id),children:f.jsx(Fl,{className:"pp-ic"})})]},Y.id)})]}),f.jsxs("button",{type:"button",className:"pp-env-add",onClick:X,disabled:g,children:[f.jsx(ss,{className:"pp-ic"}),"添加变量"]})]})]})}const T1="dogfooding",np="dogfooding",rp="dogfooding_b";let RK=0;const ip=()=>++RK;function A1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function LK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function C1(e){const t=[],n=LK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return WC(e2(o))}catch{}return null}function PK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=S.useState([{id:ip(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(null),[h,p]=S.useState(null),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,E]=S.useState(!1),[_,C]=S.useState(!1),[N,I]=S.useState({}),A=S.useRef(null),P=S.useRef(null),R=S.useRef(null),$=S.useRef(null),O=S.useRef(null);S.useEffect(()=>{const U=$.current;U&&U.scrollTo({top:U.scrollHeight,behavior:"smooth"})},[i,l]),S.useEffect(()=>{const U=O.current;U&&(U.style.height="auto",U.style.height=Math.min(U.scrollHeight,160)+"px")},[o]);const j=U=>s(X=>[...X,{id:ip(),role:"assistant",text:U}]);async function M(){if(A.current)return A.current;const U=await Cm(T1,e);return A.current=U,U}async function B(U,X){if(X.current)return X.current;const Z=await Cm(U,e);return X.current=Z,Z}async function L(U,X){if(!N[U])try{const Z=await Xy(X);I(J=>({...J,[U]:Z.model||X}))}catch{I(Z=>({...Z,[U]:X}))}}async function D(U,X,Z){const J=await B(U,X);let q=Gr();for await(const ce of ad({appName:U,userId:e,sessionId:J,text:Z}))q=hl(q,ce);const ee=A1(q).trim();return{project:C1(ee),finalText:ee}}const k=async(U,X,Z)=>qN(U.name,U.files,{region:"cn-beijing",projectName:"default"},{...Z,onStage:X}),V=async()=>{const U=o.trim();if(!(!U||l)){if(s(X=>[...X,{id:ip(),role:"user",text:U}]),a(""),u(null),c(!0),g){m(null),y(null),E(!0),C(!0),L("a",np),L("b",rp);const X=D(np,P,U).then(({project:J})=>(m(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>E(!1)),Z=D(rp,R,U).then(({project:J})=>(y(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>C(!1));try{const[J,q]=await Promise.all([X,Z]),ee=[J?`方案 A:${J.name}`:null,q?`方案 B:${q.name}`:null].filter(Boolean);ee.length?j(`已生成两个方案(${ee.join(",")}),请在右侧对比后采用其一。`):j("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const X=await M();let Z=Gr();for await(const ee of ad({appName:T1,userId:e,sessionId:X,text:U}))Z=hl(Z,ee);const J=A1(Z).trim(),q=C1(J);q?(p(q),j(`已生成项目:${q.name}(${q.files.length} 个文件),可在右侧预览和编辑。`)):j(J||"(助手没有返回内容,请再描述一下你的需求。)")}catch(X){const Z=X instanceof Error?X.message:String(X);u(Z),j(`抱歉,调用智能构建助手失败:${Z}`)}finally{c(!1)}}},H=U=>{const X=U==="a"?w:x;if(!X)return;p(X),b(!1),m(null),y(null),E(!1),C(!1);const Z=U==="a"?"A":"B",J=U==="a"?N.a:N.b;j(`已采用方案 ${Z}(${J??(U==="a"?np:rp)}),可继续编辑。`)},T=U=>{U.key==="Enter"&&!U.shiftKey&&!U.nativeEvent.isComposing&&(U.preventDefault(),V())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:$,children:[f.jsx(fy,{initial:!1,children:i.map(U=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${U.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[U.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:U.role==="assistant"?f.jsx(k0,{text:U.text}):U.text})]},U.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),d&&f.jsxs("div",{className:"ic-error",children:[f.jsx(TB,{className:"ic-error-icon"}),d]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:O,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:U=>a(U.target.value),onKeyDown:T,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void V(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(e$,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:U=>b(U.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(M1,{side:"a",project:w,loading:v,model:N.a,onAdopt:()=>H("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(M1,{side:"b",project:x,loading:_,model:N.b,onAdopt:()=>H("b")})]}):h?f.jsx(z0,{project:h,onChange:p,onDeploy:k,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(jB,{className:"ic-preview-empty-glyph"}),f.jsx(Qd,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function M1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(bt,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(z0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}const n2="/skillhub/v1/skills";async function DK(e,t="public"){const n=e.trim(),r=`${n2}?query=${encodeURIComponent(n)}&namespace=${encodeURIComponent(t)}`,i=await fetch(r,{headers:{accept:"application/json"}});if(!i.ok)throw new Error(`搜索失败 (${i.status})`);return((await i.json()).Skills??[]).map(o=>{var a;return{id:o.Id??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function jK(e,t="public"){const n=`${n2}/download/${e}?namespace=${encodeURIComponent(t)}`,r=await fetch(n);if(!r.ok)throw new Error(`下载技能失败 (${r.status})`);const i=new Uint8Array(await r.arrayBuffer()),s=await $K(i),o=`skills/${e.split("/").pop()||"skill"}`;return s.filter(a=>!a.name.endsWith("/")).map(a=>({path:`${o}/${a.name}`,content:a.text}))}function wi(e,t){return e[t]|e[t+1]<<8}function aa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function BK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function $K(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(aa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=wi(e,n+10);let i=aa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;ae==="sequential"||e==="parallel"||e==="loop",U0=e=>e==="a2a";function R1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx(Hy,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function sp({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function zK({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(fy,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(ss,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function UK({selected:e,onChange:t}){const[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(!1),[l,c]=S.useState(null),[d,u]=S.useState(!1),h=w=>e.some(m=>m.slug===w),p=w=>{h(w.slug)?t(e.filter(m=>m.slug!==w.slug)):t([...e,{slug:w.slug,name:w.name,namespace:w.namespace}])},g=w=>t(e.filter(m=>m.slug!==w)),b=async w=>{a(!0),c(null),u(!0);try{const m=await DK(w);s(m)}catch(m){c(m instanceof Error?m.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return S.useEffect(()=>{const w=n.trim();if(!w){s([]),u(!1),c(null);return}const m=setTimeout(()=>b(w),300);return()=>clearTimeout(m)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Am,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:w=>r(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),n.trim()&&b(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&b(n),disabled:!n.trim()||o,children:[o?f.jsx(bt,{className:"cw-i cw-spin"}):f.jsx(Am,{className:"cw-i"}),"搜索"]})]}),e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(fy,{initial:!1,children:e.map(w=>f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(Qd,{className:"cw-i cw-i-sm"}),w.name,f.jsx("button",{type:"button",className:"cw-pill-x",onClick:()=>g(w.slug),"aria-label":`移除 ${w.name}`,children:f.jsx(Fl,{className:"cw-i cw-i-sm"})})]},w.slug))})})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx($N,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(w=>{const m=h(w.slug);return f.jsxs("button",{type:"button",className:`cw-skill-result ${m?"is-on":""}`,onClick:()=>p(w),"aria-pressed":m,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:m?f.jsx(Hy,{className:"cw-i cw-i-sm"}):f.jsx(ss,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:w.name}),w.description&&f.jsx("span",{className:"cw-skill-result-desc",children:w.description}),w.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:w.sourceRepo})]})]},w.id||w.slug)})}):d&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!d&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}function vi({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const L1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function VK(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function Eu(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Zl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Zl(s[r],i,n),{...e,subAgents:s}}function HK(e,t){return Zl(e,t,n=>({...n,subAgents:[...n.subAgents,ds()]}))}function KK(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Zl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function qK(e,t,n,r){return Zl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const GK=e=>e==="sequential"||e==="loop",i2=e=>!U0(e.agentType),WK=3,YK=e=>eg.find(t=>t.id===(e??"llm"))??eg[0];function s2(e){return e.name.trim().length===0?"缺少名称":U0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:r2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function o2(e,t=[]){const n=[],r=s2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),i2(e)&&e.subAgents.forEach((i,s)=>n.push(...o2(i,[...t,s]))),n}function a2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=Eu(e,t),o=YK(s.agentType),a=o.icon,l=t.length===0,c=L1(t,n),d=i2(s),u=d&&t.length{const y=HK(e,t),v=Eu(y,t).subAgents.length-1;i(y,[...t,v])},p=()=>i(KK(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&GK(Eu(e,g).agentType),[w,m]=S.useState(!1),x=y=>{y.preventDefault(),y.stopPropagation(),m(!1);const v=y.dataTransfer.getData("application/x-agent-path");if(!v)return;let E;try{E=JSON.parse(v)}catch{return}if(!L1(E.slice(0,-1),g))return;const _=E[E.length-1],C=t[t.length-1];_!==C&&i(qK(e,g,_,C),[...g,C])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${b?"is-draggable":""} ${w?"is-dragover":""} ${s2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:b,onDragStart:b?y=>{y.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),y.dataTransfer.effectAllowed="move",y.stopPropagation()}:void 0,onDragOver:b?y=>{y.preventDefault(),m(!0)}:void 0,onDragLeave:b?()=>m(!1):void 0,onDrop:b?x:void 0,onClick:()=>r(t),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[u&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:y=>{y.stopPropagation(),h()},children:f.jsx(ss,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:y=>{y.stopPropagation(),p()},children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]})]}),d&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((y,v)=>f.jsx(a2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function XK({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){var ye,Y,W;const[s,o]=S.useState(()=>r??ds()),[a,l]=S.useState(!1),[c,d]=S.useState(null),[u,h]=S.useState(!1),[p,g]=S.useState("type"),b=S.useRef(null),[w,m]=S.useState(""),x=async F=>{var le;const G=(le=F.target.files)==null?void 0:le[0];if(F.target.value="",!!G){m("");try{const me=await G.text();o(t2(me)),v([]),l(!1)}catch(me){m(`导入失败:${me instanceof Error?me.message:String(me)}`)}}},[y,v]=S.useState([]),E=S.useRef(null),_=S.useRef({}),C=S.useRef(null);C.current||(C.current=({meta:F,children:G})=>f.jsxs("section",{ref:le=>{_.current[F.id]=le},id:`cw-sec-${F.id}`,"data-step-id":F.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[F.label,F.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),G]}));const N=VK(s,y)?y:[],I=Eu(s,N),A=F=>o(G=>Zl(G,N,le=>({...le,...F}))),P=(F,G)=>{o(F),G&&v(G)},R=I.builtinTools??[],$=I.mcpTools??[],O=I.tracingExporters??[],j=I.selectedSkills??[],M=F=>A({builtinTools:R.includes(F)?R.filter(G=>G!==F):[...R,F]}),B=F=>{const G=O.includes(F)?O.filter(le=>le!==F):[...O,F];A({tracingExporters:G,tracing:G.length>0?!0:I.tracing})},L=F=>o(G=>({...G,deployment:{...G.deployment??{feishuEnabled:!1},...F}})),D=r2(I.agentType),k=U0(I.agentType),V=I.name.trim().length===0,H=I.instruction.trim().length===0,T=(I.a2aUrl??"").trim().length===0,U=S.useMemo(()=>o2(s),[s]),X=U.length===0,Z=S.useMemo(()=>{var F,G,le,me;return{type:!0,basic:!V&&(D||k||!H),model:!!((F=I.modelName)!=null&&F.trim()||(G=I.modelProvider)!=null&&G.trim()||(le=I.modelApiBase)!=null&&le.trim()),tools:R.length>0||$.length>0,skills:j.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,deploy:!0,subagents:(((me=I.subAgents)==null?void 0:me.length)??0)>0,review:X}},[I,V,H,D,k,X,R,$,j]),J=D||k?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing",...N.length===0?["deploy"]:[]],q=O1.filter(F=>J.includes(F.id)),ee=q.findIndex(F=>F.id===p),ce=F=>{var G;(G=_.current[F])==null||G.scrollIntoView({behavior:"smooth",block:"start"})};S.useEffect(()=>{if(c)return;const F=E.current;if(!F)return;const G=new IntersectionObserver(le=>{var Le,be;const pe=(be=(Le=le.filter(Be=>Be.isIntersecting).sort((Be,Pe)=>Be.boundingClientRect.top-Pe.boundingClientRect.top)[0])==null?void 0:Le.target)==null?void 0:be.dataset.stepId;pe&&g(pe)},{root:F,rootMargin:"0px 0px -65% 0px",threshold:0});for(const le of Object.values(_.current))le&&G.observe(le);return()=>G.disconnect()},[c]);const ue=async()=>{if(!X){l(!0),U[0]&&v(U[0].path);return}const F=WC(s),G=[],le=new Set,me=pe=>{for(const Le of pe.selectedSkills??[]){const be=`${Le.namespace}/${Le.slug}`;le.has(be)||(le.add(be),G.push(Le))}(pe.subAgents??[]).forEach(me)};if(me(s),G.length>0){h(!0);try{const pe=await Promise.all(G.map(be=>jK(be.slug,be.namespace).catch(Be=>(console.warn(`下载技能失败:${be.name}`,Be),[])))),Le=new Set(F.files.map(be=>be.path));for(const be of pe)for(const Be of be)Le.has(Be.path)||(F.files.push(Be),Le.add(Be.path))}finally{h(!1)}}d(F)};if(c){const F=async(G,le,me)=>qN(G.name,G.files,{region:"cn-beijing",projectName:"default"},{...me,author:i,onStage:le});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>d(null),children:[f.jsx(PN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(fl,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(z0,{project:c,onChange:d,onDeploy:F,onAgentAdded:n,feishuEnabled:!!((ye=s.deployment)!=null&&ye.feishuEnabled)})})]})}const ae=C.current,se=F=>O1.find(G=>G.id===F);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(a2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:P})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:eg.map(F=>{const G=(I.agentType??"llm")===F.id,le=F.icon;return f.jsxs("label",{className:`cw-typeradio-item ${G?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:G,onChange:()=>A({agentType:F.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(le,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:F.label})]})})]},F.id)})}),U.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",U.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:U.map(F=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v(F.path)},children:[F.name," · ",F.problem]},F.path.join(".")+F.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:E,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(ae,{meta:se("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&V?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:F=>A({name:F.target.value})}),a&&V&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:F=>A({description:F.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),D?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:F=>A({maxIterations:Math.max(1,Number(F.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):k?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&T?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:F=>A({a2aUrl:F.target.value})}),a&&T?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&H?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… + +你的目标是…… + +约束: +- ……`,onChange:F=>A({instruction:F.target.value})}),a&&H?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!D&&!k&&f.jsxs(f.Fragment,{children:[f.jsx(ae,{meta:se("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:F=>A({modelName:F.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:F=>A({modelProvider:F.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:F=>A({modelApiBase:F.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(ae,{meta:se("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(R1,{items:UC,selected:R,onToggle:M})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(zK,{tools:$,onChange:F=>A({mcpTools:F})})]})]})}),f.jsx(ae,{meta:se("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 skills/ 目录。"}),f.jsx(UK,{selected:j,onChange:F=>A({selectedSkills:F})})]})}),f.jsx(ae,{meta:se("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.memory.shortTerm,onChange:F=>A({memory:{...I.memory,shortTerm:F}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:FN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(sp,{options:VC,value:I.shortTermBackend,onChange:F=>A({shortTermBackend:F})})]}),f.jsx(vi,{checked:I.memory.longTerm,onChange:F=>A({memory:{...I.memory,longTerm:F}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:gu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(sp,{options:HC,value:I.longTermBackend,onChange:F=>A({longTermBackend:F})}),f.jsx(vi,{checked:!!I.autoSaveSession,onChange:F=>A({autoSaveSession:F}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:gu})]})]})}),f.jsx(ae,{meta:se("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.knowledgebase,onChange:F=>A({knowledgebase:F}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:gu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(sp,{options:KC,value:I.knowledgebaseBackend,onChange:F=>A({knowledgebaseBackend:F})})]})]})}),f.jsx(ae,{meta:se("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.tracing,onChange:F=>A({tracing:F}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:Ky}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(R1,{items:qC,selected:O,onToggle:B})]}),f.jsx(vi,{checked:I.enableA2ui,onChange:F=>A({enableA2ui:F}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:HB})]})}),N.length===0&&f.jsx(ae,{meta:se("deploy"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:!!((Y=s.deployment)!=null&&Y.feishuEnabled),onChange:F=>L({feishuEnabled:F}),title:"连接飞书",desc:"部署后在同一个 AgentKit runtime 内启动飞书 Channel,用飞书消息触发当前 Agent。",icon:Xd}),((W=s.deployment)==null?void 0:W.feishuEnabled)&&f.jsx("div",{className:"cw-field cw-subfield",children:f.jsx("span",{className:"cw-help",children:"App ID、App Secret 等运行时变量请在生成项目后的预览页右侧“环境变量”面板中填写。"})})]})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(ee,0)/Math.max(q.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),q.map(F=>{const G=F.id===p,le=Z[F.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${G?"is-active":""} ${le?"is-done":""}`,onClick:()=>ce(F.id),"aria-current":G?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:F.label}),F.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:F.hint})]})]})},F.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:X?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),U[0]&&v(U[0].path)},children:["待补全(",U.length,"):",U[0].name," · ",U[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[w&&f.jsx("span",{className:"cw-footer-importerr",children:w}),f.jsx("input",{ref:b,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:x}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var F;return(F=b.current)==null?void 0:F.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(PB,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:ue,disabled:!X||u,children:u?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(fl,{className:"cw-i"}),"生成项目"]})})]})]})]})}function hr(e){return{...ds(),...e}}const QK=[{id:"support",icon:zB,draft:hr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:SB,draft:hr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:VB,draft:hr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:AB,draft:hr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:QB,draft:hr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:r$,draft:hr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[hr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),hr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),hr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function ZK(e){const t=[];return e.tools.length&&t.push({icon:Wy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:kB,label:"记忆"}),e.knowledgebase&&t.push({icon:EB,label:"知识库"}),e.tracing&&t.push({icon:wB,label:"观测"}),e.subAgents.length&&t.push({icon:ZB,label:`子Agent ${e.subAgents.length}`}),t}function JK({onBack:e,onCreate:t}){const[n,r]=S.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(t7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(e7,{onPick:r})})}function e7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:QK.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function t7({template:e,onBack:t,onCreate:n}){const[r,i]=S.useState(e.draft.name),s=e.icon,o=ZK(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(PN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:n7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Gn,{className:"icon"})]})]})]})}function n7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function mt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function pf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}ku.prototype=pf.prototype={constructor:ku,on:function(e,t){var n=this._,r=i7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),D1.hasOwnProperty(t)?{space:D1[t],local:e}:e}function o7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tg&&t.documentElement.namespaceURI===tg?t.createElement(e):t.createElementNS(n,e)}}function a7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function l2(e){var t=mf(e);return(t.local?a7:o7)(t)}function l7(){}function V0(e){return e==null?l7:function(){return this.querySelector(e)}}function c7(e){typeof e!="function"&&(e=V0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=y&&(y=x+1);!(E=w[y])&&++y=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function L7(e){e||(e=P7);function t(u,h){return u&&h?e(u.__data__,h.__data__):!u-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function D7(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function j7(){return Array.from(this)}function B7(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Y7:typeof t=="function"?Q7:X7)(e,t,n??"")):_o(this.node(),e)}function _o(e,t){return e.style.getPropertyValue(t)||h2(e).getComputedStyle(e,null).getPropertyValue(t)}function J7(e){return function(){delete this[e]}}function eq(e,t){return function(){this[e]=t}}function tq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function nq(e,t){return arguments.length>1?this.each((t==null?J7:typeof t=="function"?tq:eq)(e,t)):this.node()[e]}function p2(e){return e.trim().split(/^|\s+/)}function H0(e){return e.classList||new m2(e)}function m2(e){this._node=e,this._names=p2(e.getAttribute("class")||"")}m2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function g2(e,t){for(var n=H0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function ng(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}ng.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fq(e){return!e.ctrlKey&&!e.button}function zq(){return this.parentNode}function Uq(e,t){return t??{x:e.x,y:e.y}}function Vq(){return navigator.maxTouchPoints||"ontouchstart"in this}function _2(){var e=Fq,t=zq,n=Uq,r=Vq,i={},s=pf("start","drag","end"),o=0,a,l,c,d,u=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",w).on("touchmove.drag",m,$q).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,E){if(!(d||!e.call(this,v,E))){var _=y(this,t.call(this,v,E),v,E,"mouse");_&&(an(v.view).on("mousemove.drag",g,wl).on("mouseup.drag",b,wl),w2(v.view),op(v),c=!1,a=v.clientX,l=v.clientY,_("start",v))}}function g(v){if(ro(v),!c){var E=v.clientX-a,_=v.clientY-l;c=E*E+_*_>u}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),v2(v.view,c),ro(v),i.mouse("end",v)}function w(v,E){if(e.call(this,v,E)){var _=v.changedTouches,C=t.call(this,v,E),N=_.length,I,A;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Gc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Gc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Kq.exec(e))?new Qt(t[1],t[2],t[3],1):(t=qq.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Gq.exec(e))?Gc(t[1],t[2],t[3],t[4]):(t=Wq.exec(e))?Gc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Yq.exec(e))?V1(t[1],t[2]/100,t[3]/100,1):(t=Xq.exec(e))?V1(t[1],t[2]/100,t[3]/100,t[4]):j1.hasOwnProperty(e)?F1(j1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function F1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Gc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function Jq(e){return e instanceof ec||(e=Qi(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function rg(e,t,n,r){return arguments.length===1?Jq(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}K0(Qt,rg,E2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(zi(this.r),zi(this.g),zi(this.b),wd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:z1,formatHex:z1,formatHex8:eG,formatRgb:U1,toString:U1}));function z1(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}`}function eG(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}${Pi((isNaN(this.opacity)?1:this.opacity)*255)}`}function U1(){const e=wd(this.opacity);return`${e===1?"rgb(":"rgba("}${zi(this.r)}, ${zi(this.g)}, ${zi(this.b)}${e===1?")":`, ${e})`}`}function wd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pi(e){return e=zi(e),(e<16?"0":"")+e.toString(16)}function V1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $n(e,t,n,r)}function k2(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof ec||(e=Qi(e)),!e)return new $n;if(e instanceof $n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new $n(o,a,l,e.opacity)}function tG(e,t,n,r){return arguments.length===1?k2(e):new $n(e,t,n,r??1)}function $n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}K0($n,tG,E2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new $n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(ap(e>=240?e-240:e+120,i,r),ap(e,i,r),ap(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n(H1(this.h),Wc(this.s),Wc(this.l),wd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wd(this.opacity);return`${e===1?"hsl(":"hsla("}${H1(this.h)}, ${Wc(this.s)*100}%, ${Wc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function H1(e){return e=(e||0)%360,e<0?e+360:e}function Wc(e){return Math.max(0,Math.min(1,e||0))}function ap(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const q0=e=>()=>e;function nG(e,t){return function(n){return e+n*t}}function rG(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function iG(e){return(e=+e)==1?S2:function(t,n){return n-t?rG(t,n,e):q0(isNaN(t)?n:t)}}function S2(e,t){var n=t-e;return n?nG(e,n):q0(isNaN(e)?t:e)}const vd=function e(t){var n=iG(t);function r(i,s){var o=n((i=rg(i)).r,(s=rg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=S2(i.opacity,s.opacity);return function(d){return i.r=o(d),i.g=a(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r}(1);function sG(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=lp.lastIndex;return n180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(i(u)+"rotate(",null,r)-2,x:er(c,d)})):d&&u.push(i(u)+"rotate("+d+r)}function a(c,d,u,h){c!==d?h.push({i:u.push(i(u)+"skewX(",null,r)-2,x:er(c,d)}):d&&u.push(i(u)+"skewX("+d+r)}function l(c,d,u,h,p,g){if(c!==u||d!==h){var b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,u)},{i:b-2,x:er(d,h)})}else(u!==1||h!==1)&&p.push(i(p)+"scale("+u+","+h+")")}return function(c,d){var u=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,h),o(c.rotate,d.rotate,u,h),a(c.skewX,d.skewX,u,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(p){for(var g=-1,b=h.length,w;++g=0&&e._call.call(void 0,t),e=e._next;--Eo}function G1(){Zi=(Ed=El.now())+gf,Eo=xa=0;try{wG()}finally{Eo=0,_G(),Zi=0}}function vG(){var e=El.now(),t=e-Ed;t>C2&&(gf-=t,Ed=e)}function _G(){for(var e,t=_d,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_d=n);wa=e,og(r)}function og(e){if(!Eo){xa&&(xa=clearTimeout(xa));var t=e-Zi;t>24?(e<1/0&&(xa=setTimeout(G1,e-El.now()-gf)),la&&(la=clearInterval(la))):(la||(Ed=El.now(),la=setInterval(vG,C2)),Eo=1,M2(G1))}}function W1(e,t,n){var r=new kd;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var EG=pf("start","end","cancel","interrupt"),kG=[],O2=0,Y1=1,ag=2,Nu=3,X1=4,lg=5,Tu=6;function yf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;SG(e,n,{name:t,index:r,group:i,on:EG,tween:kG,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:O2})}function W0(e,t){var n=Yn(e,t);if(n.state>O2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Nu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function SG(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=I2(s,0,n.time);function s(c){n.state=Y1,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var d,u,h,p;if(n.state!==Y1)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Nu)return W1(o);p.state===X1?(p.state=Tu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+dag&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function tW(e,t,n){var r,i,s=eW(t)?W0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function nW(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(tW(n,e,t))}function rW(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function iW(){return this.on("end.remove",rW(this._id))}function sW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=V0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function MW(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function wr(e,t,n){this.k=e,this.x=t,this.y=n}wr.prototype={constructor:wr,scale:function(e){return e===1?this:new wr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var bf=new wr(1,0,0);D2.prototype=wr.prototype;function D2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return bf;return e.__zoom}function cp(e){e.stopImmediatePropagation()}function ca(e){e.preventDefault(),e.stopImmediatePropagation()}function IW(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function OW(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Q1(){return this.__zoom||bf}function RW(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function LW(){return navigator.maxTouchPoints||"ontouchstart"in this}function PW(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function j2(){var e=IW,t=OW,n=PW,r=RW,i=LW,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Su,c=pf("start","zoom","end"),d,u,h,p=500,g=150,b=0,w=10;function m(O){O.property("__zoom",Q1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",P).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(O,j,M,B){var L=O.selection?O.selection():O;L.property("__zoom",Q1),O!==L?E(O,j,M,B):L.interrupt().each(function(){_(this,arguments).event(B).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},m.scaleBy=function(O,j,M,B){m.scaleTo(O,function(){var L=this.__zoom.k,D=typeof j=="function"?j.apply(this,arguments):j;return L*D},M,B)},m.scaleTo=function(O,j,M,B){m.transform(O,function(){var L=t.apply(this,arguments),D=this.__zoom,k=M==null?v(L):typeof M=="function"?M.apply(this,arguments):M,V=D.invert(k),H=typeof j=="function"?j.apply(this,arguments):j;return n(y(x(D,H),k,V),L,o)},M,B)},m.translateBy=function(O,j,M,B){m.transform(O,function(){return n(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,B)},m.translateTo=function(O,j,M,B,L){m.transform(O,function(){var D=t.apply(this,arguments),k=this.__zoom,V=B==null?v(D):typeof B=="function"?B.apply(this,arguments):B;return n(bf.translate(V[0],V[1]).scale(k.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof M=="function"?-M.apply(this,arguments):-M),D,o)},B,L)};function x(O,j){return j=Math.max(s[0],Math.min(s[1],j)),j===O.k?O:new wr(j,O.x,O.y)}function y(O,j,M){var B=j[0]-M[0]*O.k,L=j[1]-M[1]*O.k;return B===O.x&&L===O.y?O:new wr(O.k,B,L)}function v(O){return[(+O[0][0]+ +O[1][0])/2,(+O[0][1]+ +O[1][1])/2]}function E(O,j,M,B){O.on("start.zoom",function(){_(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(B).end()}).tween("zoom",function(){var L=this,D=arguments,k=_(L,D).event(B),V=t.apply(L,D),H=M==null?v(V):typeof M=="function"?M.apply(L,D):M,T=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),U=L.__zoom,X=typeof j=="function"?j.apply(L,D):j,Z=l(U.invert(H).concat(T/U.k),X.invert(H).concat(T/X.k));return function(J){if(J===1)J=X;else{var q=Z(J),ee=T/q[2];J=new wr(ee,H[0]-q[0]*ee,H[1]-q[1]*ee)}k.zoom(null,J)}})}function _(O,j,M){return!M&&O.__zooming||new C(O,j)}function C(O,j){this.that=O,this.args=j,this.active=0,this.sourceEvent=null,this.extent=t.apply(O,j),this.taps=0}C.prototype={event:function(O){return O&&(this.sourceEvent=O),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(O,j){return this.mouse&&O!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&O!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&O!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(O){var j=an(this.that).datum();c.call(O,this.that,new MW(O,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),j)}};function N(O,...j){if(!e.apply(this,arguments))return;var M=_(this,j).event(O),B=this.__zoom,L=Math.max(s[0],Math.min(s[1],B.k*Math.pow(2,r.apply(this,arguments)))),D=jn(O);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=B.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(B.k===L)return;M.mouse=[D,B.invert(D)],Au(this),M.start()}ca(O),M.wheel=setTimeout(k,g),M.zoom("mouse",n(y(x(B,L),M.mouse[0],M.mouse[1]),M.extent,o));function k(){M.wheel=null,M.end()}}function I(O,...j){if(h||!e.apply(this,arguments))return;var M=O.currentTarget,B=_(this,j,!0).event(O),L=an(O.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",T,!0),D=jn(O,M),k=O.clientX,V=O.clientY;w2(O.view),cp(O),B.mouse=[D,this.__zoom.invert(D)],Au(this),B.start();function H(U){if(ca(U),!B.moved){var X=U.clientX-k,Z=U.clientY-V;B.moved=X*X+Z*Z>b}B.event(U).zoom("mouse",n(y(B.that.__zoom,B.mouse[0]=jn(U,M),B.mouse[1]),B.extent,o))}function T(U){L.on("mousemove.zoom mouseup.zoom",null),v2(U.view,B.moved),ca(U),B.event(U).end()}}function A(O,...j){if(e.apply(this,arguments)){var M=this.__zoom,B=jn(O.changedTouches?O.changedTouches[0]:O,this),L=M.invert(B),D=M.k*(O.shiftKey?.5:2),k=n(y(x(M,D),B,L),t.apply(this,j),o);ca(O),a>0?an(this).transition().duration(a).call(E,k,B,O):an(this).call(m.transform,k,B,O)}}function P(O,...j){if(e.apply(this,arguments)){var M=O.touches,B=M.length,L=_(this,j,O.changedTouches.length===B).event(O),D,k,V,H;for(cp(O),k=0;k`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},kl=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],B2=["Enter"," ","Escape"],$2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ko;(function(e){e.Strict="strict",e.Loose="loose"})(ko||(ko={}));var Ui;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ui||(Ui={}));var Sl;(function(e){e.Partial="partial",e.Full="full"})(Sl||(Sl={}));const F2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Hr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Hr||(Hr={}));var Nl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Nl||(Nl={}));var ge;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ge||(ge={}));const Z1={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top};function z2(e){return e===null?null:e?"valid":"invalid"}const U2=e=>"id"in e&&"source"in e&&"target"in e,DW=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),X0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tc=(e,t=[0,0])=>{const{width:n,height:r}=Rr(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},jW=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):X0(i)?i:t.nodeLookup.get(i.id));const a=o?Sd(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return xf(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return wf(n)},nc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=xf(n,Sd(i)),r=!0)}),r?wf(n):{x:0,y:0,width:0,height:0}},Q0=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...Ho(t,[n,r,i]),width:t.width/i,height:t.height/i},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:h=!1}=c;if(o&&!u||h)continue;const p=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,b=Tl(a,No(c)),w=(p??0)*(g??0),m=s&&b>0;(!c.internals.handleBounds||m||b>=w||c.dragging)&&l.push(c)}return l},BW=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function $W(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function FW({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=$W(e,o),l=nc(a),c=J0(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function V2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let u=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(u=[[l,c],[l+p,c+g]])}else a&&es(o.extent)&&(u=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=es(u)?Ji(t,u,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*d[0],y:h.y-c+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function zW({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(b=>b.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=BW(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!i)return{edges:d,nodes:o};const u=await i({nodes:o,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:o}:{edges:[],nodes:[]}:u}const So=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ji=(e={x:0,y:0},t,n)=>({x:So(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:So(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function H2(e,t,n){const{width:r,height:i}=Rr(n),{x:s,y:o}=n.internals.positionAbsolute;return Ji(e,[[s,o],[s+r,o+i]],t)}const J1=(e,t,n)=>en?-So(Math.abs(e-n),1,t)/t:0,Z0=(e,t,n=15,r=40)=>{const i=J1(e.x,r,t.width-r)*n,s=J1(e.y,r,t.height-r)*n;return[i,s]},xf=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),cg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),wf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),No=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Sd=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},K2=(e,t)=>wf(xf(cg(e),cg(t))),Tl=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},e_=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),q2=(e,t)=>(n,r)=>{},rc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ho=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?rc(a,o):a},To=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function vs(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function UW(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=vs(e,n),i=vs(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=vs(e.top??e.y??0,n),i=vs(e.bottom??e.y??0,n),s=vs(e.left??e.x??0,t),o=vs(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function VW(e,t,n,r,i,s){const{x:o,y:a}=To(e,[t,n,r]),{x:l,y:c}=To({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-l,u=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const J0=(e,t,n,r,i,s)=>{const o=UW(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),d=So(c,r,i),u=e.x+e.width/2,h=e.y+e.height/2,p=t/2-u*d,g=n/2-h*d,b=VW(e,p,g,d,t,n),w={left:Math.min(b.left-o.left,0),top:Math.min(b.top-o.top,0),right:Math.min(b.right-o.right,0),bottom:Math.min(b.bottom-o.bottom,0)};return{x:p-w.left+w.right,y:g-w.top+w.bottom,zoom:d}},Al=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function es(e){return e!=null&&e!=="parent"}function Rr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function G2(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function W2(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function t_(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function HW(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function KW(e){return{...$2,...e||{}}}function za(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=Ho({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?rc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const eb=e=>({width:e.offsetWidth,height:e.offsetHeight}),Y2=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qW=["INPUT","SELECT","TEXTAREA"];function X2(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:qW.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Q2=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=Q2(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},n_=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...eb(o)}})};function Z2({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function Qc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function r_({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case ge.Left:return[t-Qc(t-r,s),n];case ge.Right:return[t+Qc(r-t,s),n];case ge.Top:return[t,n-Qc(n-i,s)];case ge.Bottom:return[t,n+Qc(i-n,s)]}}function J2({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top,curvature:o=.25}){const[a,l]=r_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,d]=r_({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[u,h,p,g]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${i}`,u,h,p,g]}function eM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const YW=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,XW=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),QW=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||YW;let i;return U2(e)?i={...e}:i={...e,id:r(e)},XW(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function tM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=eM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const i_={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}},ZW=({source:e,sourcePosition:t=ge.Bottom,target:n})=>t===ge.Left||t===ge.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function JW({source:e,sourcePosition:t=ge.Bottom,target:n,targetPosition:r=ge.Top,center:i,offset:s,stepPosition:o}){const a=i_[t],l=i_[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=ZW({source:c,sourcePosition:t,target:d}),h=u.x!==0?"x":"y",p=u[h];let g=[],b,w;const m={x:0,y:0},x={x:0,y:0},[,,y,v]=eM({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(b=i.x??c.x+(d.x-c.x)*o,w=i.y??(c.y+d.y)/2):(b=i.x??(c.x+d.x)/2,w=i.y??c.y+(d.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,y:d.y}],I=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:d.y}],I=[{x:d.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const O=Math.abs(e[h]-n[h]);if(O<=s){const j=Math.min(s-1,s-O);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*j:x[h]=(d[h]>n[h]?-1:1)*j}}if(t!==r){const O=h==="x"?"y":"x",j=a[h]===l[O],M=c[O]>d[O],B=c[O]=$?(b=(A.x+P.x)/2,w=g[0].y):(b=g[0].x,w=(A.y+P.y)/2)}const E={x:c.x+m.x,y:c.y+m.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],b,w,y,v]}function eY(e,t,n,r){const i=Math.min(s_(e,t)/2,s_(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function dg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function nY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=dg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const nM=1e3,rY=10,tb={nodeOrigin:[0,0],nodeExtent:kl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},iY={...tb,checkEquality:!0};function nb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function sY(e,t,n){const r=nb(tb,n);for(const i of e.values())if(i.parentId)ib(i,e,t,r);else{const s=tc(i,r.nodeOrigin),o=es(i.extent)?i.extent:r.nodeExtent,a=Ji(s,o,Rr(i));i.internals.positionAbsolute=a}}function oY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function rb(e){return e==="manual"}function fg(e,t,n,r={}){var d,u;const i=nb(iY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!rb(i.zIndexMode)?nM:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=tc(h,i.nodeOrigin),b=es(h.extent)?h.extent:i.nodeExtent,w=Ji(g,b,Rr(h));p={...i.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(u=h.measured)==null?void 0:u.height},internals:{positionAbsolute:w,handleBounds:oY(h,p),z:rM(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&ib(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function aY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ib(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=nb(tb,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aY(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*rY),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const u=s&&!rb(l)?nM:0,{x:h,y:p,z:g}=lY(e,d,o,a,u,l),{positionAbsolute:b}=e.internals,w=h!==b.x||p!==b.y;(w||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:p}:b,z:g}})}function rM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return rb(n)?r:r+(e.selected?t:0)}function lY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=Rr(e),c=tc(e,n),d=es(e.extent)?Ji(c,e.extent,l):c;let u=Ji({x:o+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=H2(u,l,t));const h=rM(e,i,s),p=t.internals.z??0;return{x:u.x,y:u.y,z:p>=h?p+1:h}}function sb(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??No(l),d=K2(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var y;const d=l.internals.positionAbsolute,u=Rr(l),h=l.origin??r,p=a.x0||g>0||m||x)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+x}}),(y=n.get(c))==null||y.forEach(v=>{e.some(E=>E.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(u.width0){const p=sb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function uY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function c_(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function iM(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,d=`${s}-${a}--${i}-${o}`;c_("source",l,d,e,i,o),c_("target",l,c,e,s,a),t.set(r.id,r)}}function sM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:sM(n,t):!1}function u_(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function dY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!sM(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function up({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,d]of t){const u=(o=n.get(c))==null?void 0:o.internals.userNode;u&&i.push({...u,position:d.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function fY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=rc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function hY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,h=null,p=!1,g=!1,b=null;function w({noDragClassName:x,handleSelector:y,domNode:v,isSelectable:E,nodeId:_,nodeClickDistance:C=0}){h=an(v);function N({x:R,y:$}){const{nodeLookup:O,nodeExtent:j,snapGrid:M,snapToGrid:B,nodeOrigin:L,onNodeDrag:D,onSelectionDrag:k,onError:V,updateNodePositions:H}=t();s={x:R,y:$};let T=!1;const U=a.size>1,X=U&&j?cg(nc(a)):null,Z=U&&B?fY({dragItems:a,snapGrid:M,x:R,y:$}):null;for(const[J,q]of a){if(!O.has(J))continue;let ee={x:R-q.distance.x,y:$-q.distance.y};B&&(ee=Z?{x:Math.round(ee.x+Z.x),y:Math.round(ee.y+Z.y)}:rc(ee,M));let ce=null;if(U&&j&&!q.extent&&X){const{positionAbsolute:se}=q.internals,ye=se.x-X.x+j[0][0],Y=se.x+q.measured.width-X.x2+j[1][0],W=se.y-X.y+j[0][1],F=se.y+q.measured.height-X.y2+j[1][1];ce=[[ye,W],[Y,F]]}const{position:ue,positionAbsolute:ae}=V2({nodeId:J,nextPosition:ee,nodeLookup:O,nodeExtent:ce||j,nodeOrigin:L,onError:V});T=T||q.position.x!==ue.x||q.position.y!==ue.y,q.position=ue,q.internals.positionAbsolute=ae}if(g=g||T,!!T&&(H(a,!0),b&&(r||D||!_&&k))){const[J,q]=up({nodeId:_,dragItems:a,nodeLookup:O});r==null||r(b,a,J,q),D==null||D(b,J,q),_||k==null||k(b,q)}}async function I(){if(!d)return;const{transform:R,panBy:$,autoPanSpeed:O,autoPanOnNodeDrag:j}=t();if(!j){l=!1,cancelAnimationFrame(o);return}const[M,B]=Z0(c,d,O);(M!==0||B!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-B/R[2],await $({x:M,y:B})&&N(s)),o=requestAnimationFrame(I)}function A(R){var U;const{nodeLookup:$,multiSelectionActive:O,nodesDraggable:j,transform:M,snapGrid:B,snapToGrid:L,selectNodesOnDrag:D,onNodeDragStart:k,onSelectionDragStart:V,unselectNodesAndEdges:H}=t();u=!0,(!D||!E)&&!O&&_&&((U=$.get(_))!=null&&U.selected||H()),E&&D&&_&&(e==null||e(_));const T=za(R.sourceEvent,{transform:M,snapGrid:B,snapToGrid:L,containerBounds:d});if(s=T,a=dY($,j,T,_),a.size>0&&(n||k||!_&&V)){const[X,Z]=up({nodeId:_,dragItems:a,nodeLookup:$});n==null||n(R.sourceEvent,a,X,Z),k==null||k(R.sourceEvent,X,Z),_||V==null||V(R.sourceEvent,Z)}}const P=_2().clickDistance(C).on("start",R=>{const{domNode:$,nodeDragThreshold:O,transform:j,snapGrid:M,snapToGrid:B}=t();d=($==null?void 0:$.getBoundingClientRect())||null,p=!1,g=!1,b=R.sourceEvent,O===0&&A(R),s=za(R.sourceEvent,{transform:j,snapGrid:M,snapToGrid:B,containerBounds:d}),c=zn(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:$,transform:O,snapGrid:j,snapToGrid:M,nodeDragThreshold:B,nodeLookup:L}=t(),D=za(R.sourceEvent,{transform:O,snapGrid:j,snapToGrid:M,containerBounds:d});if(b=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||_&&!L.has(_))&&(p=!0),!p){if(!l&&$&&u&&(l=!0,I()),!u){const k=zn(R.sourceEvent,d),V=k.x-c.x,H=k.y-c.y;Math.sqrt(V*V+H*H)>B&&A(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&u&&(c=zn(R.sourceEvent,d),N(D))}}).on("end",R=>{if(!u||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:$,updateNodePositions:O,onNodeDragStop:j,onSelectionDragStop:M}=t();if(g&&(O(a,!1),g=!1),i||j||!_&&M){const[B,L]=up({nodeId:_,dragItems:a,nodeLookup:$,dragging:!1});i==null||i(R.sourceEvent,a,B,L),j==null||j(R.sourceEvent,B,L),_||M==null||M(R.sourceEvent,L)}}}).filter(R=>{const $=R.target;return!R.button&&(!x||!u_($,`.${x}`,v))&&(!y||u_($,y,v))});h.call(P)}function m(){h==null||h.on(".drag",null)}return{update:w,destroy:m}}function pY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Tl(i,No(s))>0&&r.push(s);return r}const mY=250;function gY(e,t,n,r){var a,l;let i=[],s=1/0;const o=pY(e,n,t+mY);for(const c of o){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:h,y:p}=ts(c,u,u.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(d=>d.type===c)??i[0]}return i[0]}function oM(e,t,n,r,i,s=!1){var c,d,u;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((u=o.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ts(o,l,l.position,!0)}:l}function aM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function yY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const lM=()=>!0;function bY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:b,onConnectEnd:w,isValidConnection:m=lM,onReconnectEnd:x,updateConnection:y,getTransform:v,getFromHandle:E,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:N}){const I=Y2(e.target);let A=0,P;const{x:R,y:$}=zn(e),O=aM(s,N),j=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!j||!O)return;const B=oM(i,O,r,l,t);if(!B)return;let L=zn(e,j),D=!1,k=null,V=!1,H=null;function T(){if(!d||!j)return;const[ue,ae]=Z0(L,j,_);h({x:ue,y:ae}),A=requestAnimationFrame(T)}const U={...B,nodeId:i,type:O,position:B.position},X=l.get(i);let J={inProgress:!0,isValid:null,from:ts(X,U,ge.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:X,to:L,toHandle:null,toPosition:Z1[U.position],toNode:null,pointer:L};function q(){M=!0,y(J),g==null||g(e,{nodeId:i,handleId:r,handleType:O})}C===0&&q();function ee(ue){if(!M){const{x:F,y:G}=zn(ue),le=F-R,me=G-$;if(!(le*le+me*me>C*C))return;q()}if(!E()||!U){ce(ue);return}const ae=v();L=zn(ue,j),P=gY(Ho(L,ae,!1,[1,1]),n,l,U),D||(T(),D=!0);const se=cM(ue,{handle:P,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:u,nodeLookup:l});H=se.handleDomNode,k=se.connection,V=yY(!!P,se.isValid);const ye=l.get(i),Y=ye?ts(ye,U,ge.Left,!0):J.from,W={...J,from:Y,isValid:V,to:se.toHandle&&V?To({x:se.toHandle.x,y:se.toHandle.y},ae):L,toHandle:se.toHandle,toPosition:V&&se.toHandle?se.toHandle.position:Z1[U.position],toNode:se.toHandle?l.get(se.toHandle.nodeId):null,pointer:L};y(W),J=W}function ce(ue){if(!("touches"in ue&&ue.touches.length>0)){if(M){(P||H)&&k&&V&&(b==null||b(k));const{inProgress:ae,...se}=J,ye={...se,toPosition:J.toHandle?J.toPosition:null};w==null||w(ue,ye),s&&(x==null||x(ue,ye))}p(),cancelAnimationFrame(A),D=!1,V=!1,k=null,H=null,I.removeEventListener("mousemove",ee),I.removeEventListener("mouseup",ce),I.removeEventListener("touchmove",ee),I.removeEventListener("touchend",ce)}}I.addEventListener("mousemove",ee),I.addEventListener("mouseup",ce),I.addEventListener("touchmove",ee),I.addEventListener("touchend",ce)}function cM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=lM,nodeLookup:d}){const u=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),b=o.elementFromPoint(p,g),w=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:h,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const x=aM(void 0,w),y=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),E=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!x)return m;const C={source:u?y:r,sourceHandle:u?v:i,target:u?r:y,targetHandle:u?i:v};m.connection=C;const I=E&&_&&(n===ko.Strict?u&&x==="source"||!u&&x==="target":y!==r||v!==i);m.isValid=I&&c(C),m.toHandle=oM(y,x,v,d,n,!0)}return m}const hg={onPointerDown:bY,isValid:cM};function xY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:h=!0,inversePan:p=!1}){const g=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const v=n(),E=y.sourceEvent.ctrlKey&&Al()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,C=v[2]*Math.pow(2,_*E);t.scaleTo(C)};let b=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(b=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},m=y=>{const v=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const E=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[E[0]-b[0],E[1]-b[1]];b=E;const C=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-_[0]*C,y:v[1]-_[1]*C},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},x=j2().on("start",w).on("zoom",u?m:null).on("zoom.wheel",h?g:null);i.call(x,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const vf=e=>({x:e.x,y:e.y,zoom:e.k}),dp=({x:e,y:t,zoom:n})=>bf.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),uM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),wY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,fp=(e,t=0,n=wY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},dM=e=>{const t=e.ctrlKey&&Al()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function vY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(qs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&o){const w=jn(d),m=dM(d),x=u*Math.pow(2,m);r.scaleTo(n,x,w,d);return}const h=d.deltaMode===1?20:1;let p=i===Ui.Vertical?0:d.deltaX*h,g=i===Ui.Horizontal?0:d.deltaY*h;!Al()&&d.shiftKey&&i!==Ui.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/u)*s,-(g/u)*s,{internal:!0});const b=vf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,b),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,b))}}function _Y({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=qs(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function EY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=vf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function kY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&uM(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,vf(s.transform)))}}function SY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&uM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=vf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function NY({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var w;const h=e||t,p=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(qs(u,`${c}-flow__node`)||qs(u,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||d&&!g||qs(u,a)&&g||qs(u,l)&&(!g||i&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((w=u.touches)==null?void 0:w.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const b=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&b}}function TY({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=j2().scaleExtent([t,n]).translateExtent(r),h=an(e).call(u);x({x:i.x,y:i.y,zoom:So(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),g=h.on("dblclick.zoom");u.wheelDelta(dM);async function b(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).transform(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}function w({noWheelClassName:P,noPanClassName:R,onPaneContextMenu:$,userSelectionActive:O,panOnScroll:j,panOnDrag:M,panOnScrollMode:B,panOnScrollSpeed:L,preventScrolling:D,zoomOnPinch:k,zoomOnScroll:V,zoomOnDoubleClick:H,zoomActivationKeyPressed:T,lib:U,onTransformChange:X,connectionInProgress:Z,paneClickDistance:J,selectionOnDrag:q}){O&&!c.isZoomingOrPanning&&m();const ee=j&&!T&&!O;u.clickDistance(q?1/0:!Fn(J)||J<0?0:J);const ce=ee?vY({zoomPanValues:c,noWheelClassName:P,d3Selection:h,d3Zoom:u,panOnScrollMode:B,panOnScrollSpeed:L,zoomOnPinch:k,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):_Y({noWheelClassName:P,preventScrolling:D,d3ZoomHandler:p});h.on("wheel.zoom",ce,{passive:!1});const ue=EY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});u.on("start",ue);const ae=kY({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!$,onPanZoom:s,onTransformChange:X});u.on("zoom",ae);const se=SY({zoomPanValues:c,panOnDrag:M,panOnScroll:j,onPaneContextMenu:$,onPanZoomEnd:a,onDraggingChange:l});u.on("end",se);const ye=NY({zoomActivationKeyPressed:T,panOnDrag:M,zoomOnScroll:V,panOnScroll:j,zoomOnDoubleClick:H,zoomOnPinch:k,userSelectionActive:O,noPanClassName:R,noWheelClassName:P,lib:U,connectionInProgress:Z});u.filter(ye),H?h.on("dblclick.zoom",g):h.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function x(P,R,$){const O=dp(P),j=u==null?void 0:u.constrain()(O,R,$);return j&&await b(j),j}async function y(P,R){const $=dp(P);return await b($,R),$}function v(P){if(h){const R=dp(P),$=h.property("__zoom");($.k!==P.zoom||$.x!==P.x||$.y!==P.y)&&(u==null||u.transform(h,R,null,{sync:!0}))}}function E(){const P=h?D2(h.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function _(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleTo(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}async function C(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleBy(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}function N(P){u==null||u.scaleExtent(P)}function I(P){u==null||u.translateExtent(P)}function A(P){const R=!Fn(P)||P<0?0:P;u==null||u.clickDistance(R)}return{update:w,destroy:m,setViewport:y,setViewportConstrained:x,getViewport:E,scaleTo:_,scaleBy:C,setScaleExtent:N,setTranslateExtent:I,syncViewport:v,setClickDistance:A}}var Ao;(function(e){e.Line="line",e.Handle="handle"})(Ao||(Ao={}));function AY({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function d_(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Dr(e,t){return Math.max(0,t-e)}function jr(e,t){return Math.max(0,e-t)}function Zc(e,t,n){return Math.max(0,t-e,e-n)}function f_(e,t){return e?!t:t}function CY(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,h=d&&u,{xSnapped:p,ySnapped:g}=n,{minWidth:b,maxWidth:w,minHeight:m,maxHeight:x}=r,{x:y,y:v,width:E,height:_,aspectRatio:C}=e;let N=Math.floor(d?p-e.pointerX:0),I=Math.floor(u?g-e.pointerY:0);const A=E+(l?-N:N),P=_+(c?-I:I),R=-s[0]*E,$=-s[1]*_;let O=Zc(A,b,w),j=Zc(P,m,x);if(o){let L=0,D=0;l&&N<0?L=Dr(y+N+R,o[0][0]):!l&&N>0&&(L=jr(y+A+R,o[1][0])),c&&I<0?D=Dr(v+I+$,o[0][1]):!c&&I>0&&(D=jr(v+P+$,o[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(a){let L=0,D=0;l&&N>0?L=jr(y+N,a[0][0]):!l&&N<0&&(L=Dr(y+A,a[1][0])),c&&I>0?D=jr(v+I,a[0][1]):!c&&I<0&&(D=Dr(v+P,a[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(i){if(d){const L=Zc(A/C,m,x)*C;if(O=Math.max(O,L),o){let D=0;!l&&!c||l&&!c&&h?D=jr(v+$+A/C,o[1][1])*C:D=Dr(v+$+(l?N:-N)/C,o[0][1])*C,O=Math.max(O,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=Dr(v+A/C,a[1][1])*C:D=jr(v+(l?N:-N)/C,a[0][1])*C,O=Math.max(O,D)}}if(u){const L=Zc(P*C,b,w)/C;if(j=Math.max(j,L),o){let D=0;!l&&!c||c&&!l&&h?D=jr(y+P*C+R,o[1][0])/C:D=Dr(y+(c?I:-I)*C+R,o[0][0])/C,j=Math.max(j,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=Dr(y+P*C,a[1][0])/C:D=jr(y+(c?I:-I)*C,a[0][0])/C,j=Math.max(j,D)}}}I=I+(I<0?j:-j),N=N+(N<0?O:-O),i&&(h?A>P*C?I=(f_(l,c)?-N:N)/C:N=(f_(l,c)?-I:I)*C:d?(I=N/C,c=l):(N=I*C,l=c));const M=l?y+N:y,B=c?v+I:v;return{width:E+(l?-N:N),height:_+(c?-I:I),x:s[0]*N*(l?-1:1)+M,y:s[1]*I*(c?-1:1)+B}}const fM={width:0,height:0,x:0,y:0},MY={...fM,pointerX:0,pointerY:0,aspectRatio:1};function IY(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function OY({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:d_("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:b,shouldResize:w}){let m={...fM},x={...MY};o={boundaries:d,resizeDirection:h,keepAspectRatio:u,controlDirection:d_(c)};let y,v=null,E=[],_,C,N,I=!1;const A=_2().on("start",P=>{const{nodeLookup:R,transform:$,snapGrid:O,snapToGrid:j,nodeOrigin:M,paneDomNode:B}=n();if(y=R.get(t),!y)return;v=(B==null?void 0:B.getBoundingClientRect())??null;const{xSnapped:L,ySnapped:D}=za(P.sourceEvent,{transform:$,snapGrid:O,snapToGrid:j,containerBounds:v});m={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},x={...m,pointerX:L,pointerY:D,aspectRatio:m.width/m.height},_=void 0,C=es(y.extent)?y.extent:void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=R.get(y.parentId)),_&&y.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),E=[],N=void 0;for(const[k,V]of R)if(V.parentId===t&&(E.push({id:k,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const H=IY(V,y,V.origin??M);N?N=[[Math.min(H[0][0],N[0][0]),Math.min(H[0][1],N[0][1])],[Math.max(H[1][0],N[1][0]),Math.max(H[1][1],N[1][1])]]:N=H}p==null||p(P,{...m})}).on("drag",P=>{const{transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j}=n(),M=za(P.sourceEvent,{transform:R,snapGrid:$,snapToGrid:O,containerBounds:v}),B=[];if(!y)return;const{x:L,y:D,width:k,height:V}=m,H={},T=y.origin??j,{width:U,height:X,x:Z,y:J}=CY(x,o.controlDirection,M,o.boundaries,o.keepAspectRatio,T,C,N),q=U!==k,ee=X!==V,ce=Z!==L&&q,ue=J!==D&ⅇif(!ce&&!ue&&!q&&!ee)return;if((ce||ue||T[0]===1||T[1]===1)&&(H.x=ce?Z:m.x,H.y=ue?J:m.y,m.x=H.x,m.y=H.y,E.length>0)){const Y=Z-L,W=J-D;for(const F of E)F.position={x:F.position.x-Y+T[0]*(U-k),y:F.position.y-W+T[1]*(X-V)},B.push(F)}if((q||ee)&&(H.width=q&&(!o.resizeDirection||o.resizeDirection==="horizontal")?U:m.width,H.height=ee&&(!o.resizeDirection||o.resizeDirection==="vertical")?X:m.height,m.width=H.width,m.height=H.height),_&&y.expandParent){const Y=T[0]*(H.width??0);H.x&&H.x{I&&(b==null||b(P,{...m}),i==null||i({...m}),I=!1)});s.call(A)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var hM={exports:{}},pM={},mM={exports:{}},gM={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Co=S;function RY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var LY=typeof Object.is=="function"?Object.is:RY,PY=Co.useState,DY=Co.useEffect,jY=Co.useLayoutEffect,BY=Co.useDebugValue;function $Y(e,t){var n=t(),r=PY({inst:{value:n,getSnapshot:t}}),i=r[0].inst,s=r[1];return jY(function(){i.value=n,i.getSnapshot=t,hp(i)&&s({inst:i})},[e,n,t]),DY(function(){return hp(i)&&s({inst:i}),e(function(){hp(i)&&s({inst:i})})},[e]),BY(n),n}function hp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!LY(e,n)}catch{return!0}}function FY(e,t){return t()}var zY=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?FY:$Y;gM.useSyncExternalStore=Co.useSyncExternalStore!==void 0?Co.useSyncExternalStore:zY;mM.exports=gM;var UY=mM.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _f=S,VY=UY;function HY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var KY=typeof Object.is=="function"?Object.is:HY,qY=VY.useSyncExternalStore,GY=_f.useRef,WY=_f.useEffect,YY=_f.useMemo,XY=_f.useDebugValue;pM.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=GY(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=YY(function(){function l(p){if(!c){if(c=!0,d=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return u=g}return u=p}if(g=u,KY(d,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(d=p,g):(d=p,u=b)}var c=!1,d,u,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=qY(e,s[0],s[1]);return WY(function(){o.hasValue=!0,o.value=a},[a]),XY(a),a};hM.exports=pM;var QY=hM.exports;const ZY=Ml(QY),JY={},h_=e=>{let t;const n=new Set,r=(d,u)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=u??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(JY?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},eX=e=>e?h_(e):h_,{useDebugValue:tX}=tE,{useSyncExternalStoreWithSelector:nX}=ZY,rX=e=>e;function yM(e,t=rX,n){const r=nX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tX(r),r}const p_=(e,t)=>{const n=eX(e),r=(i,s=t)=>yM(n,i,s);return Object.assign(r,n),r},iX=(e,t)=>e?p_(e,t):p_;function Ye(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Ef=S.createContext(null),sX=Ef.Provider,bM=qn.error001("react");function Ie(e,t){const n=S.useContext(Ef);if(n===null)throw new Error(bM);return yM(n,e,t)}function Xe(){const e=S.useContext(Ef);if(e===null)throw new Error(bM);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const m_={display:"none"},oX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},xM="react-flow__node-desc",wM="react-flow__edge-desc",aX="react-flow__aria-live",lX=e=>e.ariaLiveMessage,cX=e=>e.ariaLabelConfig;function uX({rfId:e}){const t=Ie(lX);return f.jsx("div",{id:`${aX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:oX,children:t})}function dX({rfId:e,disableKeyboardA11y:t}){const n=Ie(cX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${xM}-${e}`,style:m_,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${wM}-${e}`,style:m_,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(uX,{rfId:e})]})}const kf=S.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:mt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});kf.displayName="Panel";function fX({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(kf,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:f.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Jc=e=>e.id;function pX(e,t){return Ye(e.selectedNodes.map(Jc),t.selectedNodes.map(Jc))&&Ye(e.selectedEdges.map(Jc),t.selectedEdges.map(Jc))}function mX({onSelectionChange:e}){const t=Xe(),{selectedNodes:n,selectedEdges:r}=Ie(hX,pX);return S.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const gX=e=>!!e.onSelectionChangeHandlers;function yX({onSelectionChange:e}){const t=Ie(gX);return e||t?f.jsx(mX,{onSelectionChange:e}):null}const vM=[0,0],bX={x:0,y:0,zoom:1},xX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],g_=[...xX,"rfId"],wX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),y_={translateExtent:kl,nodeOrigin:vM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function vX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Ie(wX,Ye),c=Xe();S.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=y_,a()}),[]);const d=S.useRef(y_);return S.useEffect(()=>{for(const u of g_){const h=e[u],p=d.current[u];h!==p&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?r(h):u==="maxZoom"?i(h):u==="translateExtent"?s(h):u==="nodeExtent"?o(h):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:KW(h)}):u==="fitView"?c.setState({fitViewQueued:h}):u==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[u]:h})))}d.current=e},g_.map(u=>e[u])),null}function b_(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function _X(e){var r;const[t,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const i=b_(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=b_())!=null&&r.matches?"dark":"light"}const x_=typeof document<"u"?document:null;function Cl(e=null,t={target:x_,actInsideInputWithModifier:!0}){const[n,r]=S.useState(!1),i=S.useRef(!1),s=S.useRef(new Set([])),[o,a]=S.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),d=c.reduce((u,h)=>u.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return S.useEffect(()=>{const l=(t==null?void 0:t.target)??x_,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var w,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&X2(p))return!1;const b=v_(p.code,a);if(s.current.add(p[b]),w_(o,s.current,!1)){const x=((m=(w=p.composedPath)==null?void 0:w.call(p))==null?void 0:m[0])||p.target,y=(x==null?void 0:x.nodeName)==="BUTTON"||(x==null?void 0:x.nodeName)==="A";t.preventDefault!==!1&&(i.current||!y)&&p.preventDefault(),r(!0)}},u=p=>{const g=v_(p.code,a);w_(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function w_(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function v_(e,t){return t.includes(e)?"code":"key"}const EX=()=>{const e=Xe();return S.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=J0(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??i,u=n.snapToGrid??s;return Ho(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=To(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function _M(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)kX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function kX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function EM(e,t){return _M(e,t)}function kM(e,t){return _M(e,t)}function Ti(e,t){return{id:e,type:"select",selected:t}}function Gs(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ti(s.id,o)))}return r}function __({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function E_(e){return{id:e.id,type:"remove"}}const SX=q2();function SM(e,t,n={}){return QW(e,t,{...n,onError:n.onError??SX})}const k_=e=>DW(e),NX=e=>U2(e);function NM(e){return S.forwardRef(e)}const TX=typeof window<"u"?S.useLayoutEffect:S.useEffect;function S_(e){const[t,n]=S.useState(BigInt(0)),[r]=S.useState(()=>AX(()=>n(i=>i+BigInt(1))));return TX(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function AX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const TM=S.createContext(null);function CX({children:e}){const t=Xe(),n=S.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let b=l;for(const m of a)b=typeof m=="function"?m(b):m;let w=__({items:b,lookup:h});for(const m of g.values())w=m(w);d&&c(b),w.length>0?u==null||u(w):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:x,setNodes:y}=t.getState();m&&y(x)})},[]),r=S_(n),i=S.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?c(p):u&&u(__({items:p,lookup:h}))},[]),s=S_(i),o=S.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(TM.Provider,{value:o,children:e})}function MX(){const e=S.useContext(TM);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const IX=e=>!!e.panZoom;function ob(){const e=EX(),t=Xe(),n=MX(),r=Ie(IX),i=S.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),o=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,x;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=k_(u)?u:h.get(u.id),b=g.parentId?W2(g.position,g.measured,g.parentId,h,p):g.position,w={...g,position:b,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((x=g.measured)==null?void 0:x.height)??g.height};return No(w)},c=(u,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&k_(w)?w:{...b,...w}}return b}))},d=(u,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&NX(w)?w:{...b,...w}}return b}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var h;return(h=s(u))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(h=>({...h}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:o,setEdges:a,addNodes:u=>{const h=Array.isArray(u)?u:[u];n.nodeQueue.push(p=>[...p,...h])},addEdges:u=>{const h=Array.isArray(u)?u:[u];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:u=[],edges:h=[],transform:p}=t.getState(),[g,b,w]=p;return{nodes:u.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:w}}},deleteElements:async({nodes:u=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:x,onDelete:y,onBeforeDelete:v}=t.getState(),{nodes:E,edges:_}=await zW({nodesToRemove:u,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),C=_.length>0,N=E.length>0;if(C){const I=_.map(E_);w==null||w(_),x(I)}if(N){const I=E.map(E_);b==null||b(E),m(I)}return(N||C)&&(y==null||y({nodes:E,edges:_})),{deletedNodes:E,deletedEdges:_}},getIntersectingNodes:(u,h=!0,p)=>{const g=e_(u),b=g?u:l(u),w=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const x=t.getState().nodeLookup.get(m.id);if(x&&!g&&(m.id===u.id||!x.internals.positionAbsolute))return!1;const y=No(w?m:x),v=Tl(y,b);return h&&v>0||v>=y.width*y.height||v>=b.width*b.height}):[]},isNodeIntersecting:(u,h,p=!0)=>{const b=e_(u)?u:l(u);if(!b)return!1;const w=Tl(b,h);return p&&w>0||w>=h.width*h.height||w>=b.width*b.height},updateNode:c,updateNodeData:(u,h,p={replace:!1})=>{c(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:d,updateEdgeData:(u,h,p={replace:!1})=>{d(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:u=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return jW(u,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:u,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${u}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${u?h?`-${u}-${h}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const h=t.getState().fitViewResolver??HW();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const N_=e=>e.selected,OX=typeof window<"u"?window:void 0;function RX({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Xe(),{deleteElements:r}=ob(),i=Cl(e,{actInsideInputWithModifier:!1}),s=Cl(t,{target:OX});S.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(N_),edges:o.filter(N_)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function LX(e){const t=Xe();S.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=eb(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Sf={position:"absolute",width:"100%",height:"100%",top:0,left:0},PX=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function DX({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Ui.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:w,onViewportChange:m,isControlledViewport:x,paneClickDistance:y,selectionOnDrag:v}){const E=Xe(),_=S.useRef(null),{userSelectionActive:C,lib:N,connectionInProgress:I}=Ie(PX,Ye),A=Cl(h),P=S.useRef();LX(_);const R=S.useCallback($=>{m==null||m({x:$[0],y:$[1],zoom:$[2]}),x||E.setState({transform:$})},[m,x]);return S.useEffect(()=>{if(_.current){P.current=TY({domNode:_.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>E.setState(B=>B.paneDragging===M?B:{paneDragging:M}),onPanZoomStart:(M,B)=>{const{onViewportChangeStart:L,onMoveStart:D}=E.getState();D==null||D(M,B),L==null||L(B)},onPanZoom:(M,B)=>{const{onViewportChange:L,onMove:D}=E.getState();D==null||D(M,B),L==null||L(B)},onPanZoomEnd:(M,B)=>{const{onViewportChangeEnd:L,onMoveEnd:D}=E.getState();D==null||D(M,B),L==null||L(B)}});const{x:$,y:O,zoom:j}=P.current.getViewport();return E.setState({panZoom:P.current,transform:[$,O,j],domNode:_.current.closest(".react-flow")}),()=>{var M;(M=P.current)==null||M.destroy()}}},[]),S.useEffect(()=>{var $;($=P.current)==null||$.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:A,preventScrolling:p,noPanClassName:w,userSelectionActive:C,noWheelClassName:b,lib:N,onTransformChange:R,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:y})},[e,t,n,r,i,s,o,a,A,p,w,C,b,N,R,I,v,y]),f.jsx("div",{className:"react-flow__renderer",ref:_,style:Sf,children:g})}const jX=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function BX(){const{userSelectionActive:e,userSelectionRect:t}=Ie(jX,Ye);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const pp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},$X=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function FX({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Sl.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:b}){const w=S.useRef(0),m=Xe(),{userSelectionActive:x,elementsSelectable:y,dragging:v,connectionInProgress:E,panBy:_,autoPanSpeed:C}=Ie($X,Ye),N=y&&(e||x),I=S.useRef(null),A=S.useRef(),P=S.useRef(new Set),R=S.useRef(new Set),$=S.useRef(!1),O=S.useRef({x:0,y:0}),j=S.useRef(!1),M=q=>{if($.current||E){$.current=!1;return}c==null||c(q),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},B=q=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){q.preventDefault();return}d==null||d(q)},L=u?q=>u(q):void 0,D=q=>{$.current&&(q.stopPropagation(),$.current=!1)},k=q=>{var F,G;const{domNode:ee,transform:ce}=m.getState();if(A.current=ee==null?void 0:ee.getBoundingClientRect(),!A.current)return;const ue=q.target===I.current;if(!ue&&!!q.target.closest(".nokey")||!e||!(o&&ue||t)||q.button!==0||!q.isPrimary)return;(G=(F=q.target)==null?void 0:F.setPointerCapture)==null||G.call(F,q.pointerId),$.current=!1;const{x:ye,y:Y}=zn(q.nativeEvent,A.current),W=Ho({x:ye,y:Y},ce);m.setState({userSelectionRect:{width:0,height:0,startX:W.x,startY:W.y,x:ye,y:Y}}),ue||(q.stopPropagation(),q.preventDefault())};function V(q,ee){const{userSelectionRect:ce}=m.getState();if(!ce)return;const{transform:ue,nodeLookup:ae,edgeLookup:se,connectionLookup:ye,triggerNodeChanges:Y,triggerEdgeChanges:W,defaultEdgeOptions:F}=m.getState(),G={x:ce.startX,y:ce.startY},{x:le,y:me}=To(G,ue),pe={startX:G.x,startY:G.y,x:qPe.id)),R.current=new Set;const Be=(F==null?void 0:F.selectable)??!0;for(const Pe of P.current){const z=ye.get(Pe);if(z)for(const{edgeId:K}of z.values()){const te=se.get(K);te&&(te.selectable??Be)&&R.current.add(K)}}if(!t_(Le,P.current)){const Pe=Gs(ae,P.current,!0);Y(Pe)}if(!t_(be,R.current)){const Pe=Gs(se,R.current);W(Pe)}m.setState({userSelectionRect:pe,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!i||!A.current)return;const[q,ee]=Z0(O.current,A.current,C);_({x:q,y:ee}).then(ce=>{if(!$.current||!ce){w.current=requestAnimationFrame(H);return}const{x:ue,y:ae}=O.current;V(ue,ae),w.current=requestAnimationFrame(H)})}const T=()=>{cancelAnimationFrame(w.current),w.current=0,j.current=!1};S.useEffect(()=>()=>T(),[]);const U=q=>{const{userSelectionRect:ee,transform:ce,resetSelectedElements:ue}=m.getState();if(!A.current||!ee)return;const{x:ae,y:se}=zn(q.nativeEvent,A.current);O.current={x:ae,y:se};const ye=To({x:ee.startX,y:ee.startY},ce);if(!$.current){const Y=t?0:s;if(Math.hypot(ae-ye.x,se-ye.y)<=Y)return;ue(),a==null||a(q)}$.current=!0,j.current||(H(),j.current=!0),V(ae,se)},X=q=>{var ee,ce;q.button===0&&((ce=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||ce.call(ee,q.pointerId),!x&&q.target===I.current&&m.getState().userSelectionRect&&(M==null||M(q)),m.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(l==null||l(q),m.setState({nodesSelectionActive:P.current.size>0})),T())},Z=q=>{var ee,ce;(ce=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||ce.call(ee,q.pointerId),T()},J=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:mt(["react-flow__pane",{draggable:J,dragging:v,selection:e}]),onClick:N?void 0:pp(M,I),onContextMenu:pp(B,I),onWheel:pp(L,I),onPointerEnter:N?void 0:h,onPointerMove:N?U:p,onPointerUp:N?X:void 0,onPointerCancel:N?Z:void 0,onPointerDownCapture:N?k:void 0,onClickCapture:N?D:void 0,onPointerLeave:g,ref:I,style:Sf,children:[b,f.jsx(BX,{})]})}function pg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):i([e])}function AM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Xe(),[l,c]=S.useState(!1),d=S.useRef();return S.useEffect(()=>{d.current=hY({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{pg({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),S.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,i,o]),l}const zX=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function CM(){const e=Xe();return S.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,h=zX(o),p=i?s[0]:5,g=i?s[1]:5,b=n.direction.x*p*n.factor,w=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let x={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+w};i&&(x=rc(x,s));const{position:y,positionAbsolute:v}=V2({nodeId:m.id,nextPosition:x,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});m.position=y,m.internals.positionAbsolute=v,u.set(m.id,m)}l(u)},[])}const ab=S.createContext(null),UX=ab.Provider;ab.Consumer;const MM=()=>S.useContext(ab),VX=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),HX=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===ko.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:d&&c}};function KX({type:e="source",position:t=ge.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...h},p){var j,M;const g=o||null,b=e==="target",w=Xe(),m=MM(),{connectOnClick:x,noPanClassName:y,rfId:v}=Ie(VX,Ye),{connectingFrom:E,connectingTo:_,clickConnecting:C,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:A,valid:P}=Ie(HX(m,g,e),Ye);m||(M=(j=w.getState()).onError)==null||M.call(j,"010",qn.error010());const R=B=>{const{defaultEdgeOptions:L,onConnect:D,hasDefaultEdges:k}=w.getState(),V={...L,...B};if(k){const{edges:H,setEdges:T,onError:U}=w.getState();T(SM(V,H,{onError:U}))}D==null||D(V),a==null||a(V)},$=B=>{if(!m)return;const L=Q2(B.nativeEvent);if(i&&(L&&B.button===0||!L)){const D=w.getState();hg.onPointerDown(B.nativeEvent,{handleDomNode:B.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:b,handleId:g,nodeId:m,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...k)=>{var V,H;return(H=(V=w.getState()).onConnectEnd)==null?void 0:H.call(V,...k)},updateConnection:D.updateConnection,onConnect:R,isValidConnection:n||((...k)=>{var V,H;return((H=(V=w.getState()).isValidConnection)==null?void 0:H.call(V,...k))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}L?d==null||d(B):u==null||u(B)},O=B=>{const{onClickConnectStart:L,onClickConnectEnd:D,connectionClickStartHandle:k,connectionMode:V,isValidConnection:H,lib:T,rfId:U,nodeLookup:X,connection:Z}=w.getState();if(!m||!k&&!i)return;if(!k){L==null||L(B.nativeEvent,{nodeId:m,handleId:g,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const J=Y2(B.target),q=n||H,{connection:ee,isValid:ce}=hg.isValid(B.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:V,fromNodeId:k.nodeId,fromHandleId:k.id||null,fromType:k.type,isValidConnection:q,flowId:U,doc:J,lib:T,nodeLookup:X});ce&&ee&&R(ee);const ue=structuredClone(Z);delete ue.inProgress,ue.toPosition=ue.toHandle?ue.toHandle.position:null,D==null||D(B,ue),w.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:mt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,c,{source:!b,target:b,connectable:r,connectablestart:i,connectableend:s,clickconnecting:C,connectingfrom:E,connectingto:_,valid:P,connectionindicator:r&&(!I||N)&&(I||A?s:i)}]),onMouseDown:$,onTouchStart:$,onClick:x?O:void 0,ref:p,...h,children:l})}const Mo=S.memo(NM(KX));function qX({data:e,isConnectable:t,sourcePosition:n=ge.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function GX({data:e,isConnectable:t,targetPosition:n=ge.Top,sourcePosition:r=ge.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function WX(){return null}function YX({data:e,isConnectable:t,targetPosition:n=ge.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Nd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},T_={input:qX,default:GX,output:YX,group:WX};function XX(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const QX=e=>{const{width:t,height:n,x:r,y:i}=nc(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function ZX({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Xe(),{width:i,height:s,transformString:o,userSelectionActive:a}=Ie(QX,Ye),l=CM(),c=S.useRef(null);S.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const d=!a&&i!==null&&s!==null;if(AM({nodeRef:c,disabled:!d}),!d)return null;const u=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Nd,p.key)&&(p.preventDefault(),l({direction:Nd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:mt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const A_=typeof window<"u"?window:void 0,JX=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function IM({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:v,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:N,autoPanOnSelection:I,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:$,preventScrolling:O,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:B,disableKeyboardA11y:L,onViewportChange:D,isControlledViewport:k}){const{nodesSelectionActive:V,userSelectionActive:H}=Ie(JX,Ye),T=Cl(c,{target:A_}),U=Cl(b,{target:A_}),X=U||N,Z=U||v,J=d&&X!==!0,q=T||H||J;return RX({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(DX,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:Z,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!T&&X,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:$,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:M,noPanClassName:B,onViewportChange:D,isControlledViewport:k,paneClickDistance:a,selectionOnDrag:J,children:f.jsxs(FX,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:X,autoPanOnSelection:I,isSelecting:!!q,selectionMode:u,selectionKeyPressed:T,paneClickDistance:a,selectionOnDrag:J,children:[e,V&&f.jsx(ZX,{onSelectionContextMenu:j,noPanClassName:B,disableKeyboardA11y:L})]})})}IM.displayName="FlowRenderer";const eQ=S.memo(IM),tQ=e=>t=>e?Q0(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function nQ(e){return Ie(S.useCallback(tQ(e),[e]),Ye)}const rQ=e=>e.updateNodeInternals;function iQ(){const e=Ie(rQ),[t]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return S.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function sQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Xe(),s=S.useRef(null),o=S.useRef(null),a=S.useRef(e.sourcePosition),l=S.useRef(e.targetPosition),c=S.useRef(t),d=n&&!!e.internals.handleBounds;return S.useEffect(()=>{s.current&&!e.hidden&&(!d||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[d,e.hidden]),S.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),S.useEffect(()=>{if(s.current){const u=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(u||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function oQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:b,nodeTypes:w,nodeClickDistance:m,onError:x}){const{node:y,internals:v,isParent:E}=Ie(q=>{const ee=q.nodeLookup.get(e),ce=q.parentLookup.has(e);return{node:ee,internals:ee.internals,isParent:ce}},Ye);let _=y.type||"default",C=(w==null?void 0:w[_])||T_[_];C===void 0&&(x==null||x("003",qn.error003(_)),_="default",C=(w==null?void 0:w.default)||T_.default);const N=!!(y.draggable||a&&typeof y.draggable>"u"),I=!!(y.selectable||l&&typeof y.selectable>"u"),A=!!(y.connectable||c&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),R=Xe(),$=G2(y),O=sQ({node:y,nodeType:_,hasDimensions:$,resizeObserver:u}),j=AM({nodeRef:O,disabled:y.hidden||!N,noDragClassName:h,handleSelector:y.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),M=CM();if(y.hidden)return null;const B=Rr(y),L=XX(y),D=I||N||t||n||r||i,k=n?q=>n(q,{...v.userNode}):void 0,V=r?q=>r(q,{...v.userNode}):void 0,H=i?q=>i(q,{...v.userNode}):void 0,T=s?q=>s(q,{...v.userNode}):void 0,U=o?q=>o(q,{...v.userNode}):void 0,X=q=>{const{selectNodesOnDrag:ee,nodeDragThreshold:ce}=R.getState();I&&(!ee||!N||ce>0)&&pg({id:e,store:R,nodeRef:O}),t&&t(q,{...v.userNode})},Z=q=>{if(!(X2(q.nativeEvent)||g)){if(B2.includes(q.key)&&I){const ee=q.key==="Escape";pg({id:e,store:R,unselect:ee,nodeRef:O})}else if(N&&y.selected&&Object.prototype.hasOwnProperty.call(Nd,q.key)){q.preventDefault();const{ariaLabelConfig:ee}=R.getState();R.setState({ariaLiveMessage:ee["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:Nd[q.key],factor:q.shiftKey?4:1})}}},J=()=>{var ye;if(g||!((ye=O.current)!=null&&ye.matches(":focus-visible")))return;const{transform:q,width:ee,height:ce,autoPanOnNodeFocus:ue,setCenter:ae}=R.getState();if(!ue)return;Q0(new Map([[e,y]]),{x:0,y:0,width:ee,height:ce},q,!0).length>0||ae(y.position.x+B.width/2,y.position.y+B.height/2,{zoom:q[2]})};return f.jsx("div",{className:mt(["react-flow__node",`react-flow__node-${_}`,{[p]:N},y.className,{selected:y.selected,selectable:I,parent:E,draggable:N,dragging:j}]),ref:O,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:$?"visible":"hidden",...y.style,...L},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:k,onMouseMove:V,onMouseLeave:H,onContextMenu:T,onClick:X,onDoubleClick:U,onKeyDown:P?Z:void 0,tabIndex:P?0:void 0,onFocus:P?J:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${xM}-${b}`,"aria-label":y.ariaLabel,...y.domAttributes,children:f.jsx(UX,{value:e,children:f.jsx(C,{id:e,data:y.data,type:_,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:y.selected??!1,selectable:I,draggable:N,deletable:y.deletable??!0,isConnectable:A,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:v.z,parentId:y.parentId,...B})})})}var aQ=S.memo(oQ);const lQ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OM(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=Ie(lQ,Ye),o=nQ(e.onlyRenderVisibleElements),a=iQ();return f.jsx("div",{className:"react-flow__nodes",style:Sf,children:o.map(l=>f.jsx(aQ,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}OM.displayName="NodeRenderer";const cQ=S.memo(OM);function uQ(e){return Ie(S.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&WW({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),Ye)}const dQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},fQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},C_={[Nl.Arrow]:dQ,[Nl.ArrowClosed]:fQ};function hQ(e){const t=Xe();return S.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(C_,e)?C_[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const pQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=hQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},RM=({defaultColor:e,rfId:t})=>{const n=Ie(s=>s.edges),r=Ie(s=>s.defaultEdgeOptions),i=S.useMemo(()=>nY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(pQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};RM.displayName="MarkerDefinitions";var mQ=S.memo(RM);function LM({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,h]=S.useState({x:1,y:0,width:0,height:0}),p=mt(["react-flow__edge-textwrapper",c]),g=S.useRef(null);return S.useEffect(()=>{if(g.current){const b=g.current.getBBox();h({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:p,visibility:u.width?"visible":"hidden",...d,children:[i&&f.jsx("rect",{width:u.width+2*o[0],x:-o[0],y:-o[1],height:u.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}LM.displayName="EdgeText";const gQ=S.memo(LM);function Nf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...d,d:e,fill:"none",className:mt(["react-flow__edge-path",d.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(gQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function M_({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===ge.Left||e===ge.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function PM({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top}){const[o,a]=M_({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=M_({pos:s,x1:r,y1:i,x2:e,y2:t}),[d,u,h,p]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,d,u,h,p]}function DM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})=>{const[x,y,v]=PM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),E=e.isInternal?void 0:t;return f.jsx(Nf,{id:E,path:x,labelX:y,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})})}const yQ=DM({isInternal:!1}),jM=DM({isInternal:!0});yQ.displayName="SimpleBezierEdge";jM.displayName="SimpleBezierEdgeInternal";function BM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,sourcePosition:p=ge.Bottom,targetPosition:g=ge.Top,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,E]=ug({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:E,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:b,markerStart:w,interactionWidth:x})})}const $M=BM({isInternal:!1}),FM=BM({isInternal:!0});$M.displayName="SmoothStepEdge";FM.displayName="SmoothStepEdgeInternal";function zM(e){return S.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx($M,{...n,id:r,pathOptions:S.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const bQ=zM({isInternal:!1}),UM=zM({isInternal:!0});bQ.displayName="StepEdge";UM.displayName="StepEdgeInternal";function VM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})=>{const[w,m,x]=tM({sourceX:n,sourceY:r,targetX:i,targetY:s}),y=e.isInternal?void 0:t;return f.jsx(Nf,{id:y,path:w,labelX:m,labelY:x,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const xQ=VM({isInternal:!1}),HM=VM({isInternal:!0});xQ.displayName="StraightEdge";HM.displayName="StraightEdgeInternal";function KM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=ge.Bottom,targetPosition:a=ge.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,E]=J2({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:E,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:x})})}const wQ=KM({isInternal:!1}),qM=KM({isInternal:!0});wQ.displayName="BezierEdge";qM.displayName="BezierEdgeInternal";const I_={default:qM,straight:HM,step:UM,smoothstep:FM,simplebezier:jM},O_={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},vQ=(e,t,n)=>n===ge.Left?e-t:n===ge.Right?e+t:e,_Q=(e,t,n)=>n===ge.Top?e-t:n===ge.Bottom?e+t:e,R_="react-flow__edgeupdater";function L_({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:mt([R_,`${R_}-${a}`]),cx:vQ(t,r,e),cy:_Q(n,r,e),r,stroke:"transparent",fill:"transparent"})}function EQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:h,setUpdateHover:p}){const g=Xe(),b=(v,E)=>{if(v.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:N,connectionRadius:I,lib:A,onConnectStart:P,cancelConnection:R,nodeLookup:$,rfId:O,panBy:j,updateConnection:M}=g.getState(),B=E.type==="target",L=(V,H)=>{h(!1),u==null||u(V,n,E.type,H)},D=V=>c==null?void 0:c(n,V),k=(V,H)=>{h(!0),d==null||d(v,n,E.type),P==null||P(V,H)};hg.onPointerDown(v.nativeEvent,{autoPanOnConnect:_,connectionMode:N,connectionRadius:I,domNode:C,handleId:E.id,nodeId:E.nodeId,nodeLookup:$,isTarget:B,edgeUpdaterType:E.type,lib:A,flowId:O,cancelConnection:R,panBy:j,isValidConnection:(...V)=>{var H,T;return((T=(H=g.getState()).isValidConnection)==null?void 0:T.call(H,...V))??!0},onConnect:D,onConnectStart:k,onConnectEnd:(...V)=>{var H,T;return(T=(H=g.getState()).onConnectEnd)==null?void 0:T.call(H,...V)},onReconnectEnd:L,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),x=()=>p(!0),y=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(L_,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:w,onMouseEnter:x,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&f.jsx(L_,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:x,onMouseOut:y,type:"target"})]})}function kQ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:b,noPanClassName:w,onError:m,disableKeyboardA11y:x}){let y=Ie(ae=>ae.edgeLookup.get(e));const v=Ie(ae=>ae.defaultEdgeOptions);y=v?{...v,...y}:y;let E=y.type||"default",_=(b==null?void 0:b[E])||I_[E];_===void 0&&(m==null||m("011",qn.error011(E)),E="default",_=(b==null?void 0:b.default)||I_.default);const C=!!(y.focusable||t&&typeof y.focusable>"u"),N=typeof u<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),I=!!(y.selectable||r&&typeof y.selectable>"u"),A=S.useRef(null),[P,R]=S.useState(!1),[$,O]=S.useState(!1),j=Xe(),{zIndex:M,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H}=Ie(S.useCallback(ae=>{const se=ae.nodeLookup.get(y.source),ye=ae.nodeLookup.get(y.target);if(!se||!ye)return{zIndex:y.zIndex,...O_};const Y=tY({id:e,sourceNode:se,targetNode:ye,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:ae.connectionMode,onError:m});return{zIndex:GW({selected:y.selected,zIndex:y.zIndex,sourceNode:se,targetNode:ye,elevateOnSelect:ae.elevateEdgesOnSelect,zIndexMode:ae.zIndexMode}),...Y||O_}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Ye),T=S.useMemo(()=>y.markerStart?`url('#${dg(y.markerStart,g)}')`:void 0,[y.markerStart,g]),U=S.useMemo(()=>y.markerEnd?`url('#${dg(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||B===null||L===null||D===null||k===null)return null;const X=ae=>{var W;const{addSelectedEdges:se,unselectNodesAndEdges:ye,multiSelectionActive:Y}=j.getState();I&&(j.setState({nodesSelectionActive:!1}),y.selected&&Y?(ye({nodes:[],edges:[y]}),(W=A.current)==null||W.blur()):se([e])),i&&i(ae,y)},Z=s?ae=>{s(ae,{...y})}:void 0,J=o?ae=>{o(ae,{...y})}:void 0,q=a?ae=>{a(ae,{...y})}:void 0,ee=l?ae=>{l(ae,{...y})}:void 0,ce=c?ae=>{c(ae,{...y})}:void 0,ue=ae=>{var se;if(!x&&B2.includes(ae.key)&&I){const{unselectNodesAndEdges:ye,addSelectedEdges:Y}=j.getState();ae.key==="Escape"?((se=A.current)==null||se.blur(),ye({edges:[y]})):Y([e])}};return f.jsx("svg",{style:{zIndex:M},children:f.jsxs("g",{className:mt(["react-flow__edge",`react-flow__edge-${E}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!I&&!i,updating:P,selectable:I}]),onClick:X,onDoubleClick:Z,onContextMenu:J,onMouseEnter:q,onMouseMove:ee,onMouseLeave:ce,onKeyDown:C?ue:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${wM}-${g}`:void 0,ref:A,...y.domAttributes,children:[!$&&f.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:I,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:T,markerEnd:U,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),N&&f.jsx(EQ,{edge:y,isReconnectable:N,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H,setUpdateHover:R,setReconnecting:O})]})})}var SQ=S.memo(kQ);const NQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function GM({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:b}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,onError:y}=Ie(NQ,Ye),v=uQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(mQ,{defaultColor:e,rfId:n}),v.map(E=>f.jsx(SQ,{id:E,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:b},E))]})}GM.displayName="EdgeRenderer";const TQ=S.memo(GM),AQ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function CQ({children:e}){const t=Ie(AQ);return f.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function MQ(e){const t=ob(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const IQ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function OQ(e){const t=Ie(IQ),n=Xe();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function RQ(e){return e.connection.inProgress?{...e.connection,to:Ho(e.connection.to,e.transform)}:{...e.connection}}function LQ(e){return RQ}function PQ(e){const t=LQ();return Ie(t,Ye)}const DQ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jQ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Ie(DQ,Ye);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:mt(["react-flow__connection",z2(a)]),children:f.jsx(WM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const WM=({style:e,type:t=Hr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:h,pointer:p}=PQ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:z2(r),toNode:d,toHandle:u,pointer:p});let g="";const b={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Hr.Bezier:[g]=J2(b);break;case Hr.SimpleBezier:[g]=PM(b);break;case Hr.Step:[g]=ug({...b,borderRadius:0});break;case Hr.SmoothStep:[g]=ug(b);break;default:[g]=tM(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};WM.displayName="ConnectionLine";const BQ={};function P_(e=BQ){S.useRef(e),Xe(),S.useEffect(()=>{},[e])}function $Q(){Xe(),S.useRef(!1),S.useEffect(()=>{},[])}function YM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:A,defaultViewport:P,translateExtent:R,minZoom:$,maxZoom:O,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:B,zoomOnPinch:L,panOnScroll:D,panOnScrollSpeed:k,panOnScrollMode:V,zoomOnDoubleClick:H,panOnDrag:T,autoPanOnSelection:U,onPaneClick:X,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneScroll:ee,onPaneContextMenu:ce,paneClickDistance:ue,nodeClickDistance:ae,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:Y,onEdgeMouseLeave:W,reconnectRadius:F,onReconnect:G,onReconnectStart:le,onReconnectEnd:me,noDragClassName:pe,noWheelClassName:Le,noPanClassName:be,disableKeyboardA11y:Be,nodeExtent:Pe,rfId:z,viewport:K,onViewportChange:te}){return P_(e),P_(t),$Q(),MQ(n),OQ(K),f.jsx(eQ,{onPaneClick:X,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneContextMenu:ce,onPaneScroll:ee,paneClickDistance:ue,deleteKeyCode:N,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:A,zoomOnScroll:B,zoomOnPinch:L,zoomOnDoubleClick:H,panOnScroll:D,panOnScrollSpeed:k,panOnScrollMode:V,panOnDrag:T,autoPanOnSelection:U,defaultViewport:P,translateExtent:R,minZoom:$,maxZoom:O,onSelectionContextMenu:u,preventScrolling:j,noDragClassName:pe,noWheelClassName:Le,noPanClassName:be,disableKeyboardA11y:Be,onViewportChange:te,isControlledViewport:!!K,children:f.jsxs(CQ,{children:[f.jsx(TQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:G,onReconnectStart:le,onReconnectEnd:me,onlyRenderVisibleElements:I,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:Y,onEdgeMouseLeave:W,reconnectRadius:F,defaultMarkerColor:M,noPanClassName:be,disableKeyboardA11y:Be,rfId:z}),f.jsx(jQ,{style:b,type:g,component:w,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(cQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:ae,onlyRenderVisibleElements:I,noPanClassName:be,noDragClassName:pe,disableKeyboardA11y:Be,nodeExtent:Pe,rfId:z}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}YM.displayName="GraphView";const FQ=S.memo(YM),zQ=q2(),D_=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,b=new Map,w=new Map,m=r??t??[],x=n??e??[],y=d??[0,0],v=u??kl;iM(b,w,m);const{nodesInitialized:E}=fg(x,p,g,{nodeOrigin:y,nodeExtent:v,zIndexMode:h});let _=[0,0,1];if(o&&i&&s){const C=nc(p,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:N,y:I,zoom:A}=J0(C,i,s,l,c,(a==null?void 0:a.padding)??.1);_=[N,I,A]}return{rfId:"1",width:i??0,height:s??0,transform:_,nodes:x,nodesInitialized:E,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:w,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:kl,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ko.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...F2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:zQ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:$2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},UQ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h})=>iX((p,g)=>{async function b(){const{nodeLookup:w,panZoom:m,fitViewOptions:x,fitViewResolver:y,width:v,height:E,minZoom:_,maxZoom:C}=g();m&&(await FW({nodes:w,width:v,height:E,panZoom:m,minZoom:_,maxZoom:C},x),y==null||y.resolve(!0),p({fitViewResolver:null}))}return{...D_({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:w=>{const{nodeLookup:m,parentLookup:x,nodeOrigin:y,elevateNodesOnSelect:v,fitViewQueued:E,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:N,hasSelectedNodes:I}=fg(w,m,x,{nodeOrigin:y,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:_}),A=C&&I;E&&N?(b(),p({nodes:w,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):p({nodes:w,nodesInitialized:N,nodesSelectionActive:A})},setEdges:w=>{const{connectionLookup:m,edgeLookup:x}=g();iM(m,x,w),p({edges:w})},setDefaultNodesAndEdges:(w,m)=>{if(w){const{setNodes:x}=g();x(w),p({hasDefaultNodes:!0})}if(m){const{setEdges:x}=g();x(m),p({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:m,nodeLookup:x,parentLookup:y,domNode:v,nodeOrigin:E,nodeExtent:_,debug:C,fitViewQueued:N,zIndexMode:I}=g(),{changes:A,updatedInternals:P}=cY(w,x,y,v,E,_,I);P&&(sY(x,y,{nodeOrigin:E,nodeExtent:_,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(A==null?void 0:A.length)>0&&(C&&console.log("React Flow: trigger node changes",A),m==null||m(A)))},updateNodePositions:(w,m=!1)=>{const x=[];let y=[];const{nodeLookup:v,triggerNodeChanges:E,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:N}=g();for(const[I,A]of w){const P=v.get(I),R=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(A!=null&&A.position)),$={id:I,type:"position",position:R?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:m};if(P&&_.inProgress&&_.fromNode.id===P.id){const O=ts(P,_.fromHandle,ge.Left,!0);C({..._,from:O})}R&&P.parentId&&x.push({id:I,parentId:P.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),y.push($)}if(x.length>0){const{parentLookup:I,nodeOrigin:A}=g(),P=sb(x,v,I,A);y.push(...P)}for(const I of N.values())y=I(y);E(y)},triggerNodeChanges:w=>{const{onNodesChange:m,setNodes:x,nodes:y,hasDefaultNodes:v,debug:E}=g();if(w!=null&&w.length){if(v){const _=EM(w,y);x(_)}E&&console.log("React Flow: trigger node changes",w),m==null||m(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:m,setEdges:x,edges:y,hasDefaultEdges:v,debug:E}=g();if(w!=null&&w.length){if(v){const _=kM(w,y);x(_)}E&&console.log("React Flow: trigger edge changes",w),m==null||m(w)}},addSelectedNodes:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const _=w.map(C=>Ti(C,!0));v(_);return}v(Gs(y,new Set([...w]),!0)),E(Gs(x))},addSelectedEdges:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const _=w.map(C=>Ti(C,!0));E(_);return}E(Gs(x,new Set([...w]))),v(Gs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:m}={})=>{const{edges:x,nodes:y,nodeLookup:v,triggerNodeChanges:E,triggerEdgeChanges:_}=g(),C=w||y,N=m||x,I=[];for(const P of C){if(!P.selected)continue;const R=v.get(P.id);R&&(R.selected=!1),I.push(Ti(P.id,!1))}const A=[];for(const P of N)P.selected&&A.push(Ti(P.id,!1));E(I),_(A)},setMinZoom:w=>{const{panZoom:m,maxZoom:x}=g();m==null||m.setScaleExtent([w,x]),p({minZoom:w})},setMaxZoom:w=>{const{panZoom:m,minZoom:x}=g();m==null||m.setScaleExtent([x,w]),p({maxZoom:w})},setTranslateExtent:w=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(w),p({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:m,triggerNodeChanges:x,triggerEdgeChanges:y,elementsSelectable:v}=g();if(!v)return;const E=m.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]),_=w.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]);x(E),y(_)},setNodeExtent:w=>{const{nodes:m,nodeLookup:x,parentLookup:y,nodeOrigin:v,elevateNodesOnSelect:E,nodeExtent:_,zIndexMode:C}=g();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(fg(m,x,y,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:C}),p({nodeExtent:w}))},panBy:w=>{const{transform:m,width:x,height:y,panZoom:v,translateExtent:E}=g();return uY({delta:w,panZoom:v,transform:m,translateExtent:E,width:x,height:y})},setCenter:async(w,m,x)=>{const{width:y,height:v,maxZoom:E,panZoom:_}=g();if(!_)return!1;const C=typeof(x==null?void 0:x.zoom)<"u"?x.zoom:E;return await _.setViewport({x:y/2-w*C,y:v/2-m*C,zoom:C},{duration:x==null?void 0:x.duration,ease:x==null?void 0:x.ease,interpolate:x==null?void 0:x.interpolate}),!0},cancelConnection:()=>{p({connection:{...F2}})},updateConnection:w=>{p({connection:w})},reset:()=>p({...D_()})}},Object.is);function XM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:p}){const[g]=S.useState(()=>UQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:h}));return f.jsx(sX,{value:g,children:f.jsx(CX,{children:p})})}function VQ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p}){return S.useContext(Ef)?f.jsx(f.Fragment,{children:e}):f.jsx(XM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p,children:e})}const HQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function KQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onSelectionChange:$,onSelectionDragStart:O,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onBeforeDelete:k,connectionMode:V,connectionLineType:H=Hr.Bezier,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:X,deleteKeyCode:Z="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:q=!1,selectionMode:ee=Sl.Full,panActivationKeyCode:ce="Space",multiSelectionKeyCode:ue=Al()?"Meta":"Control",zoomActivationKeyCode:ae=Al()?"Meta":"Control",snapToGrid:se,snapGrid:ye,onlyRenderVisibleElements:Y=!1,selectNodesOnDrag:W,nodesDraggable:F,autoPanOnNodeFocus:G,nodesConnectable:le,nodesFocusable:me,nodeOrigin:pe=vM,edgesFocusable:Le,edgesReconnectable:be,elementsSelectable:Be=!0,defaultViewport:Pe=bX,minZoom:z=.5,maxZoom:K=2,translateExtent:te=kl,preventScrolling:oe=!0,nodeExtent:ve,defaultMarkerColor:Re="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:_t=!0,panOnScroll:Mn=!1,panOnScrollSpeed:ur=.5,panOnScrollMode:ut=Ui.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs=1,nodeClickDistance:hs=0,children:Of,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df=10,onNodesChange:ac,onEdgesChange:Q,noDragClassName:ne="nodrag",noWheelClassName:fe="nowheel",noPanClassName:Ce="nopan",fitView:Ge,fitViewOptions:xe,connectOnClick:Et,attributionPosition:xt,proOptions:Ee,defaultEdgeOptions:Ve,elevateNodesOnSelect:Ae=!0,elevateEdgesOnSelect:dt=!1,disableKeyboardA11y:dr=!1,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanOnSelection:yn=!0,autoPanSpeed:gi,connectionRadius:lc,isValidConnection:rI,onError:iI,style:sI,id:lb,nodeDragThreshold:oI,connectionDragThreshold:aI,viewport:lI,onViewportChange:cI,width:uI,height:dI,colorMode:fI="light",debug:hI,onScroll:cc,ariaLabelConfig:pI,zIndexMode:cb="basic",...mI},gI){const jf=lb||"1",yI=_X(fI),bI=S.useCallback(ub=>{ub.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),cc==null||cc(ub)},[cc]);return f.jsx("div",{"data-testid":"rf__wrapper",...mI,onScroll:bI,style:{...sI,...HQ},ref:gI,className:mt(["react-flow",i,yI]),id:lb,role:"application",children:f.jsxs(VQ,{nodes:e,edges:t,width:uI,height:dI,fitView:Ge,fitViewOptions:xe,minZoom:z,maxZoom:K,nodeOrigin:pe,nodeExtent:ve,zIndexMode:cb,children:[f.jsx(vX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:F,autoPanOnNodeFocus:G,nodesConnectable:le,nodesFocusable:me,edgesFocusable:Le,edgesReconnectable:be,elementsSelectable:Be,elevateNodesOnSelect:Ae,elevateEdgesOnSelect:dt,minZoom:z,maxZoom:K,nodeExtent:ve,onNodesChange:ac,onEdgesChange:Q,snapToGrid:se,snapGrid:ye,connectionMode:V,translateExtent:te,connectOnClick:Et,defaultEdgeOptions:Ve,fitView:Ge,fitViewOptions:xe,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:j,onSelectionDragStart:O,onSelectionDragStop:M,onMove:d,onMoveStart:u,onMoveEnd:h,noPanClassName:Ce,nodeOrigin:pe,rfId:jf,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanSpeed:gi,onError:iI,connectionRadius:lc,isValidConnection:rI,selectNodesOnDrag:W,nodeDragThreshold:oI,connectionDragThreshold:aI,onBeforeDelete:k,debug:hI,ariaLabelConfig:pI,zIndexMode:cb}),f.jsx(FQ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:o,connectionLineType:H,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:X,selectionKeyCode:J,selectionOnDrag:q,selectionMode:ee,deleteKeyCode:Z,multiSelectionKeyCode:ue,panActivationKeyCode:ce,zoomActivationKeyCode:ae,onlyRenderVisibleElements:Y,defaultViewport:Pe,translateExtent:te,minZoom:z,maxZoom:K,preventScrolling:oe,zoomOnScroll:$t,zoomOnPinch:_t,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:ur,panOnScrollMode:ut,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs,nodeClickDistance:hs,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df,defaultMarkerColor:Re,noDragClassName:ne,noWheelClassName:fe,noPanClassName:Ce,rfId:jf,disableKeyboardA11y:dr,nodeExtent:ve,viewport:lI,onViewportChange:cI}),f.jsx(yX,{onSelectionChange:$}),Of,f.jsx(fX,{proOptions:Ee,position:xt}),f.jsx(dX,{rfId:jf,disableKeyboardA11y:dr})]})})}var qQ=NM(KQ);function GQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>EM(i,s)),[]);return[t,n,r]}function WQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>kM(i,s)),[]);return[t,n,r]}function YQ({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:mt(["react-flow__background-pattern",n,r])})}function XQ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:mt(["react-flow__background-pattern","dots",t])})}var si;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(si||(si={}));const QQ={[si.Dots]:1,[si.Lines]:1,[si.Cross]:6},ZQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function QM({id:e,variant:t=si.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:d}){const u=S.useRef(null),{transform:h,patternId:p}=Ie(ZQ,Ye),g=r||QQ[t],b=t===si.Dots,w=t===si.Cross,m=Array.isArray(n)?n:[n,n],x=[m[0]*h[2]||1,m[1]*h[2]||1],y=g*h[2],v=Array.isArray(s)?s:[s,s],E=w?[y,y]:x,_=[v[0]*h[2]||1+E[0]/2,v[1]*h[2]||1+E[1]/2],C=`${p}${e||""}`;return f.jsxs("svg",{className:mt(["react-flow__background",c]),style:{...l,...Sf,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:u,"data-testid":"rf__background",children:[f.jsx("pattern",{id:C,x:h[0]%x[0],y:h[1]%x[1],width:x[0],height:x[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:b?f.jsx(XQ,{radius:y/2,className:d}):f.jsx(YQ,{dimensions:E,lineWidth:i,variant:t,className:d})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}QM.displayName="Background";const JQ=S.memo(QM);function eZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function tZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function nZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function iZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function eu({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:mt(["react-flow__controls-button",t]),...n,children:e})}const sZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ZM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:h="vertical","aria-label":p}){const g=Xe(),{isInteractive:b,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:x}=Ie(sZ,Ye),{zoomIn:y,zoomOut:v,fitView:E}=ob(),_=()=>{y(),s==null||s()},C=()=>{v(),o==null||o()},N=()=>{E(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),l==null||l(!b)},A=h==="horizontal"?"horizontal":"vertical";return f.jsxs(kf,{className:mt(["react-flow__controls",A,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":p??x["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(eu,{onClick:_,className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(eZ,{})}),f.jsx(eu,{onClick:C,className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:w,children:f.jsx(tZ,{})})]}),n&&f.jsx(eu,{className:"react-flow__controls-fitview",onClick:N,title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:f.jsx(nZ,{})}),r&&f.jsx(eu,{className:"react-flow__controls-interactive",onClick:I,title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:b?f.jsx(iZ,{}):f.jsx(rZ,{})}),d]})}ZM.displayName="Controls";const oZ=S.memo(ZM);function aZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:h,onClick:p}){const{background:g,backgroundColor:b}=s||{},w=o||g||b;return f.jsx("rect",{className:mt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:r,height:i,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:u,onClick:p?m=>p(m,e):void 0})}const lZ=S.memo(aZ),cZ=e=>e.nodes.map(t=>t.id),mp=e=>e instanceof Function?e:()=>e;function uZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=lZ,onClick:o}){const a=Ie(cZ,Ye),l=mp(t),c=mp(e),d=mp(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(fZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:u},h))})}function dZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:h,height:p}=Ie(g=>{const b=g.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const w=b.internals.userNode,{x:m,y:x}=b.internals.positionAbsolute,{width:y,height:v}=Rr(w);return{node:w,x:m,y:x,width:y,height:v}},Ye);return!c||c.hidden||!G2(c)?null:f.jsx(a,{x:d,y:u,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const fZ=S.memo(dZ);var hZ=S.memo(uZ);const pZ=200,mZ=150,gZ=e=>!e.hidden,yZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?K2(nc(e.nodeLookup,{filter:gZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},bZ="react-flow__minimap-desc";function JM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:b=!1,zoomable:w=!1,ariaLabel:m,inversePan:x,zoomStep:y=1,offsetScale:v=5}){const E=Xe(),_=S.useRef(null),{boundingRect:C,viewBB:N,rfId:I,panZoom:A,translateExtent:P,flowWidth:R,flowHeight:$,ariaLabelConfig:O}=Ie(yZ,Ye),j=(e==null?void 0:e.width)??pZ,M=(e==null?void 0:e.height)??mZ,B=C.width/j,L=C.height/M,D=Math.max(B,L),k=D*j,V=D*M,H=v*D,T=C.x-(k-C.width)/2-H,U=C.y-(V-C.height)/2-H,X=k+H*2,Z=V+H*2,J=`${bZ}-${I}`,q=S.useRef(0),ee=S.useRef();q.current=D,S.useEffect(()=>{if(_.current&&A)return ee.current=xY({domNode:_.current,panZoom:A,getTransform:()=>E.getState().transform,getViewScale:()=>q.current}),()=>{var se;(se=ee.current)==null||se.destroy()}},[A]),S.useEffect(()=>{var se;(se=ee.current)==null||se.update({translateExtent:P,width:R,height:$,inversePan:x,pannable:b,zoomStep:y,zoomable:w})},[b,w,x,y,P,R,$]);const ce=p?se=>{var W;const[ye,Y]=((W=ee.current)==null?void 0:W.pointer(se))||[0,0];p(se,{x:ye,y:Y})}:void 0,ue=g?S.useCallback((se,ye)=>{const Y=E.getState().nodeLookup.get(ye).internals.userNode;g(se,Y)},[]):void 0,ae=m??O["minimap.ariaLabel"];return f.jsx(kf,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*D:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:mt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:j,height:M,viewBox:`${T} ${U} ${X} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:_,onClick:ce,children:[ae&&f.jsx("title",{id:J,children:ae}),f.jsx(hZ,{onClick:ue,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${T-H},${U-H}h${X+H*2}v${Z+H*2}h${-X-H*2}z + M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}JM.displayName="MiniMap";const xZ=S.memo(JM),wZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vZ={[Ao.Line]:"right",[Ao.Handle]:"bottom-right"};function _Z({nodeId:e,position:t,variant:n=Ao.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:b,onResize:w,onResizeEnd:m}){const x=MM(),y=typeof e=="string"?e:x,v=Xe(),E=S.useRef(null),_=n===Ao.Handle,C=Ie(S.useCallback(wZ(_&&p),[_,p]),Ye),N=S.useRef(null),I=t??vZ[n];S.useEffect(()=>{if(!(!E.current||!y))return N.current||(N.current=OY({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j,domNode:M}=v.getState();return{nodeLookup:P,transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j,paneDomNode:M}},onChange:(P,R)=>{const{triggerNodeChanges:$,nodeLookup:O,parentLookup:j,nodeOrigin:M}=v.getState(),B=[],L={x:P.x,y:P.y},D=O.get(y);if(D&&D.expandParent&&D.parentId){const k=D.origin??M,V=P.width??D.measured.width??0,H=P.height??D.measured.height??0,T={id:D.id,parentId:D.parentId,rect:{width:V,height:H,...W2({x:P.x??D.position.x,y:P.y??D.position.y},{width:V,height:H},D.parentId,O,k)}},U=sb([T],O,j,M);B.push(...U),L.x=P.x?Math.max(k[0]*V,P.x):void 0,L.y=P.y?Math.max(k[1]*H,P.y):void 0}if(L.x!==void 0&&L.y!==void 0){const k={id:y,type:"position",position:{...L}};B.push(k)}if(P.width!==void 0&&P.height!==void 0){const V={id:y,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};B.push(V)}for(const k of R){const V={...k,type:"position"};B.push(V)}$(B)},onEnd:({width:P,height:R})=>{const $={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:R}};v.getState().triggerNodeChanges([$])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:h,onResizeStart:b,onResize:w,onResizeEnd:m,shouldResize:g}),()=>{var P;(P=N.current)==null||P.destroy()}},[I,a,l,c,d,u,b,w,m,g]);const A=I.split("-");return f.jsx("div",{className:mt(["react-flow__resize-control","nodrag",...A,n,r]),ref:E,style:{...i,scale:C,...o&&{[_?"backgroundColor":"borderColor"]:o}},children:s})}S.memo(_Z);const EZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:qB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:vB},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Gy}];let mg=0;function gp(){return mg+=1,`node_${mg}`}function yp(e,t,n){const r=ds();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function kZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:ge.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(go,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:ge.Right,className:"wfb-handle"})]})}const SZ={agentNode:kZ},j_={type:"smoothstep",markerEnd:{type:Nl.ArrowClosed,width:16,height:16}};function NZ({onBack:e,onCreate:t}){const n=S.useRef(null),[r,i]=S.useState(""),[s,o]=S.useState(""),[a,l]=S.useState("sequential"),c=S.useMemo(()=>{mg=0;const R=gp();return yp(R,{x:80,y:120},{name:"agent_1"})},[]),[d,u,h]=GQ([c]),[p,g,b]=WQ([]),[w,m]=S.useState(c.id),x=d.find(R=>R.id===w)??null,y=S.useCallback(R=>g($=>SM({...R,...j_},$)),[g]),v=S.useCallback(()=>{const R=gp(),$=d.length*28,O=yp(R,{x:80+$,y:120+$});u(j=>j.concat(O)),m(R)},[d.length,u]),E=R=>{R.dataTransfer.setData("application/wfb-node","agentNode"),R.dataTransfer.effectAllowed="move"},_=S.useCallback(R=>{R.preventDefault(),R.dataTransfer.dropEffect="move"},[]),C=S.useCallback(R=>{if(R.preventDefault(),R.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const O=n.current.screenToFlowPosition({x:R.clientX,y:R.clientY}),j=gp(),M=yp(j,O);u(B=>B.concat(M)),m(j)},[u]),N=S.useCallback(R=>{w&&u($=>$.map(O=>O.id===w?{...O,data:{...O.data,agent:{...O.data.agent,...R}}}:O))},[w,u]),I=S.useCallback(()=>{w&&(u(R=>R.filter($=>$.id!==w)),g(R=>R.filter($=>$.source!==w&&$.target!==w)),m(null))},[w,u,g]),A=S.useCallback(()=>{const R=d.map(O=>O.data.agent),$={...ds(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:R,workflow:{type:a,nodes:d.map(O=>({id:O.id,agent:O.data.agent})),edges:p.map(O=>({from:O.source,to:O.target}))}};t($)},[d,p,r,s,a,t]),P=d.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:R=>i(R.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:R=>o(R.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:EZ.map(({type:R,label:$,desc:O,Icon:j})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===R?"wfb-type--active":""}`,onClick:()=>l(R),children:[f.jsx(j,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:$}),f.jsx("span",{className:"wfb-type-desc",children:O})]})]},R))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:E,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(FB,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(go,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(ss,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:A,disabled:!P,type:"button",children:[f.jsx(Qd,{className:"icon"}),"创建工作流"]}),f.jsxs(qQ,{nodes:d,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:y,onInit:R=>n.current=R,nodeTypes:SZ,defaultEdgeOptions:j_,onDrop:C,onDragOver:_,onNodeClick:(R,$)=>m($.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(JQ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(oZ,{showInteractive:!1}),f.jsx(xZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:x?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(Do,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.name,onChange:R=>N({name:R.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.description,onChange:R=>N({description:R.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:x.data.agent.instruction,onChange:R=>N({instruction:R.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.tools.join(", "),onChange:R=>N({tools:R.target.value.split(",").map($=>$.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:x.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(go,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",d.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function TZ(e){return f.jsx(XM,{children:f.jsx(NZ,{...e})})}const B_=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function bp(e){let t=0;for(let n=0;n>>0;return B_[t%B_.length]}function AZ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,d)=>c.start_time-d.start_time,s=(c,d)=>({span:c,depth:d,children:(n.get(c.span_id)??[]).sort(i).map(u=>s(u,d+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function CZ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function $_(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const MZ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function F_(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:MZ(t),value:r,long:r.length>80||r.includes(` +`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function IZ({sessionId:e,onClose:t}){const[n,r]=S.useState(null),[i,s]=S.useState(""),[o,a]=S.useState(new Set),[l,c]=S.useState(null);S.useEffect(()=>{r(null),s(""),d$(e).then(m=>{r(m),c(m.length?m.reduce((x,y)=>x.start_time<=y.start_time?x:y).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:d,min:u,total:h}=S.useMemo(()=>AZ(n??[]),[n]),p=S.useMemo(()=>CZ(d,o),[d,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,w=m=>a(x=>{const y=new Set(x);return y.has(m)?y.delete(m):y.add(m),y});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${b.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(Fl,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const x=m.span,y=(x.start_time-u)/h*100,v=Math.max((x.end_time-x.start_time)/h*100,.6),E=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===x.span_id?"active":""}`,onClick:()=>c(x.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${E?"":"hidden"} ${o.has(x.span_id)?"":"open"}`,onClick:_=>{_.stopPropagation(),E&&w(x.span_id)},children:f.jsx(Gn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:bp(x.name)}}),f.jsx("span",{className:"trace-name",title:x.name,children:x.name})]}),f.jsx("span",{className:"trace-dur",children:$_(x.end_time-x.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${y}%`,width:`${v}%`,background:bp(x.name)}})})]},x.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:bp(g.name)}}),$_(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:F_(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),F_(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function OZ(e){return e.toLowerCase()==="github"?f.jsx($B,{className:"icon"}):f.jsx(GB,{className:"icon"})}function RZ({onUsername:e}){const[t,n]=S.useState(null),[r,i]=S.useState("");S.useEffect(()=>{A$().then(n)},[]);const s=k$.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>C$(a.loginUrl),children:[OZ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(DN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function LZ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}as("Button",LZ);function PZ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}as("Card",PZ);const DZ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},jZ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function eI(e){return DZ[e]??"flex-start"}function tI(e){return jZ[e]??"stretch"}function BZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:eI(e.justify),alignItems:tI(e.align)},children:n.map(r=>t.render(r))})}as("Column",BZ);function $Z({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}as("Divider",$Z);const FZ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function zZ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:FZ[t]??"•"})}as("Icon",zZ);function UZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:eI(e.justify),alignItems:tI(e.align??"center")},children:n.map(r=>t.render(r))})}as("Row",UZ);const VZ=new Set(["h1","h2","h3","h4","h5"]);function HZ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=VZ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}as("Text",HZ);const KZ="创建 Agent",qZ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ss={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},GZ=new Set,WZ=[];function z_(){const e=typeof localStorage<"u"?localStorage.getItem(Ss.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function YZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function XZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function QZ(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function nI(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function ZZ(e){if(!e)return"";const t=[];return e.ts&&t.push(nI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function JZ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const eJ="send_a2ui_json_to_client";function tJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===eJ&&t.done):t.kind==="a2ui"?sT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function nJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function rJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const d=c.data;d&&d.veadkOAuth&&typeof d.url=="string"&&o(d.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function iJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function U_({text:e}){const[t,n]=S.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx(Hy,{className:"icon"}):f.jsx(CB,{className:"icon"})})}const V_=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],H_=()=>V_[Math.floor(Math.random()*V_.length)],sJ=20*1024*1024;function oJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function aJ(){const[e,t]=S.useState([]),[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(""),[l,c]=S.useState({}),d=l[o]??[],u=(Q,ne)=>c(fe=>({...fe,[Q]:typeof ne=="function"?ne(fe[Q]??[]):ne})),[h,p]=S.useState(""),[g,b]=S.useState([]),[w,m]=S.useState(()=>new Set),x=S.useRef(new Map),y=(Q,ne)=>m(fe=>{const Ce=new Set(fe);return ne?Ce.add(Q):Ce.delete(Q),Ce}),v=S.useRef(""),[E,_]=S.useState(""),[C,N]=S.useState(!1),[I,A]=S.useState(H_),[P,R]=S.useState(null),[$,O]=S.useState(""),[j,M]=S.useState(),[B,L]=S.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[D,k]=S.useState("local"),[V,H]=S.useState(!1),[T,U]=S.useState(!1),[X,Z]=S.useState({}),[J,q]=S.useState({}),[ee,ce]=S.useState({}),ue=w.has(o),ae=X[o]??"",se=J[o]??GZ,ye=ee[o]??WZ,Y=(Q,ne)=>{var xe,Et,xt,Ee,Ve;const fe=ne.author&&ne.author!=="user"?ne.author:void 0;fe&&(Z(Ae=>({...Ae,[Q]:fe})),q(Ae=>({...Ae,[Q]:new Set(Ae[Q]??[]).add(fe)})),ce(Ae=>{var dt;return(dt=Ae[Q])!=null&&dt.length?Ae:{...Ae,[Q]:[fe]}}));const Ce=((xe=ne.actions)==null?void 0:xe.transferToAgent)??((Et=ne.actions)==null?void 0:Et.transfer_to_agent);Ce&&ce(Ae=>{const dt=Ae[Q]??[];return dt[dt.length-1]===Ce?Ae:{...Ae,[Q]:[...dt,Ce]}}),(((xt=ne.actions)==null?void 0:xt.endOfAgent)??((Ee=ne.actions)==null?void 0:Ee.end_of_agent)??((Ve=ne.actions)==null?void 0:Ve.escalate))&&ce(Ae=>{const dt=Ae[Q]??[];return dt.length<=1?Ae:{...Ae,[Q]:dt.slice(0,-1)}})},[W,F]=S.useState(z_),[G,le]=S.useState(!0),[me,pe]=S.useState(!1),[Le,be]=S.useState(!1),[Be,Pe]=S.useState(!1),[z,K]=S.useState(null),[te,oe]=S.useState(!1),[ve,Re]=S.useState(!1),$t=S.useRef(null),[_t,Mn]=S.useState(()=>{const Q=Wr();return zl(Q),Q}),[ur,ut]=S.useState(!1),In=S.useRef(!1);function At(Q){console.log("create agent draft:",Q),F(null),hs()}function ic(Q,ne){console.log("Agent added, navigating to:",Q,ne),Mn(Wr()),F(null),r(Q)}const{ref:Tf,onScroll:Af}=oT(d);S.useEffect(()=>{I$().then(Q=>{O(Q.userId),M(Q.info),H(!!Q.local),R(Q.status)})},[]),S.useEffect(()=>{p$().then(Q=>{L(Q.features),k(Q.agentsSource),Q.defaultView==="addAgent"&&(F(null),pe(!1),oe(!1),Re(!1),be(!1),Pe(!0))})},[]),S.useEffect(()=>{fetch("/web/runtime-config").then(Q=>Q.ok?Q.json():null).then(Q=>{Q&&le(!!Q.credentials)}).catch(()=>{})},[]);function Cf(Q){N$(Q),O(Q),M({name:Q}),H(!0),R("authenticated")}function Mf(){V?(T$(),O(""),M(void 0),R("unauthenticated")):M$()}S.useEffect(()=>{P!=="unauthenticated"&&c$().then(Q=>{if(t(Q),D==="cloud"){r("");return}const ne=localStorage.getItem(Ss.app),fe=_t.flatMap(xe=>xe.apps.map(Et=>Wi(xe.id,Et))),Ce=ne&&(Q.includes(ne)||fe.includes(ne)),Ge=["web_search_agent","web_demo"].find(xe=>Q.includes(xe))??Q.find(xe=>!/^\d/.test(xe))??Q[0];r(Ce?ne:Ge||"")}).catch(Q=>_(String(Q)))},[P,D]),S.useEffect(()=>{n&&localStorage.setItem(Ss.app,n)},[n]),S.useEffect(()=>{localStorage.setItem(Ss.view,W??"chat")},[W]),S.useEffect(()=>{localStorage.setItem(Ss.session,o),v.current=o},[o]),S.useEffect(()=>()=>x.current.forEach(Q=>Q.abort()),[]),S.useEffect(()=>{!n||!$||(async()=>{const Q=await fs(n);if(!In.current){In.current=!0;const ne=localStorage.getItem(Ss.session)||"";if(z_()===null&&ne&&Q.some(fe=>fe.id===ne)){ps(ne);return}}hs()})()},[n,$]),S.useEffect(()=>{const Q=$t.current;Q&&Q.app===n&&($t.current=null,ps(Q.sid))},[n]);function If(Q,ne){oe(!1),Q===n?ps(ne):($t.current={app:Q,sid:ne},r(Q))}async function fs(Q){try{const ne=await KN(Q,$),fe=await Promise.all(ne.map(Ce=>{var Ge;return(Ge=Ce.events)!=null&&Ge.length?Promise.resolve(Ce):Mm(Q,$,Ce.id)}));return s(fe),fe}catch(ne){return _(String(ne)),[]}}function hs(){_(""),A(H_()),v.current="",a("")}async function Of(Q){var ne;try{(ne=x.current.get(Q))==null||ne.abort(),await u$(n,$,Q),c(fe=>{const{[Q]:Ce,...Ge}=fe;return Ge}),Q===o&&hs(),await fs(n)}catch(fe){_(String(fe))}}async function ps(Q){if(Q!==o&&(v.current=Q,_(""),a(Q),l[Q]===void 0)){U(!0);try{const ne=await Mm(n,$,Q);u(Q,_$(ne.events??[]))}catch(ne){_(String(ne))}finally{U(!1)}}}async function Rf(Q){const ne=[];for(const fe of Array.from(Q)){if(fe.size>sJ){_(`文件过大(>20MB):${fe.name}`);continue}const Ce=await oJ(fe);ne.push({mimeType:fe.type||"application/octet-stream",data:Ce,name:fe.name})}ne.length&&b(fe=>[...fe,...ne])}async function sc(Q,ne=[]){if(!Q.trim()&&ne.length===0||ue||!n||!$)return;_("");let fe=o;if(!fe)try{fe=await Cm(n,$),a(fe);const xe=Date.now()/1e3,Et={id:fe,lastUpdateTime:xe,events:[{author:"user",timestamp:xe,content:{role:"user",parts:[{text:Q}]}}]};s(xt=>[Et,...xt.filter(Ee=>Ee.id!==fe)])}catch(xe){_(String(xe));return}const Ce=new AbortController;x.current.set(fe,Ce),y(fe,!0),v.current=fe;const Ge=[];ne.length&&Ge.push({kind:"attachment",files:ne.map(xe=>({mimeType:xe.mimeType,data:xe.data,name:xe.name}))}),Q.trim()&&Ge.push({kind:"text",text:Q}),u(fe,xe=>[...xe,{role:"user",blocks:Ge,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),Z(xe=>({...xe,[fe]:""})),q(xe=>({...xe,[fe]:new Set})),ce(xe=>({...xe,[fe]:[]}));try{let xe=Gr(),Et=0,xt=Date.now()/1e3;for await(const Ee of ad({appName:n,userId:$,sessionId:fe,text:Q,attachments:ne,signal:Ce.signal})){if(Ce.signal.aborted)break;const Ve=Ee.error??Ee.errorMessage??Ee.error_message;if(typeof Ve=="string"&&Ve){v.current===fe&&_(Ve);break}Y(fe,Ee),xe=hl(xe,Ee);const Ae=Ee.usageMetadata??Ee.usage_metadata;Ae!=null&&Ae.totalTokenCount&&(Et=Ae.totalTokenCount),Ee.timestamp&&(xt=Ee.timestamp);const dt=xe.blocks,dr={tokens:Et||void 0,ts:xt};u(fe,Ko=>{const fr=Ko.slice(),yn=fr[fr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(fr[fr.length-1]={...yn,blocks:dt,meta:dr}),fr})}fs(n)}catch(xe){(xe==null?void 0:xe.name)!=="AbortError"&&!Ce.signal.aborted&&v.current===fe&&_(String(xe))}finally{x.current.get(fe)===Ce&&x.current.delete(fe),y(fe,!1),Z(xe=>({...xe,[fe]:""})),ce(xe=>({...xe,[fe]:[]}))}}function Lf(Q,ne){var Ge,xe;const fe=((Ge=Q==null?void 0:Q.event)==null?void 0:Ge.name)??ne.id,Ce=((xe=Q==null?void 0:Q.event)==null?void 0:xe.context)??{};sc(`[ui-action] ${fe}: ${JSON.stringify(Ce)}`)}async function Pf(Q){if(!Q.authUri)throw new Error("事件中没有授权地址。");if(!n||!$||!o)throw new Error("会话尚未就绪。");const ne=o,fe=await rJ(Q.authUri),Ce=iJ(Q.authConfig,fe),Ge=Ee=>Ee.map(Ve=>Ve.kind==="auth"&&!Ve.done?{...Ve,done:!0}:Ve);u(ne,Ee=>{const Ve=Ee.slice(),Ae=Ve[Ve.length-1];return(Ae==null?void 0:Ae.role)==="assistant"&&(Ve[Ve.length-1]={...Ae,blocks:Ge(Ae.blocks)}),Ve});const xe=d[d.length-1],Et=Ge(xe&&xe.role==="assistant"?xe.blocks:[]),xt=new AbortController;x.current.set(ne,xt),y(ne,!0);try{let Ee=Gr(),Ve=0,Ae=Date.now()/1e3;for await(const dt of ad({appName:n,userId:$,sessionId:o,text:"",functionResponses:[{id:Q.callId,name:"adk_request_credential",response:Ce}],signal:xt.signal})){if(xt.signal.aborted)break;Y(ne,dt),Ee=hl(Ee,dt);const dr=dt.usageMetadata??dt.usage_metadata;dr!=null&&dr.totalTokenCount&&(Ve=dr.totalTokenCount),dt.timestamp&&(Ae=dt.timestamp);const Ko=[...Et,...Ee.blocks];u(ne,fr=>{var lc;const yn=fr.slice(),gi=yn[yn.length-1];return(gi==null?void 0:gi.role)==="assistant"&&(yn[yn.length-1]={...gi,blocks:Ko,meta:{tokens:Ve||((lc=gi.meta)==null?void 0:lc.tokens),ts:Ae}}),yn})}fs(n)}catch(Ee){(Ee==null?void 0:Ee.name)!=="AbortError"&&!xt.signal.aborted&&v.current===ne&&_(String(Ee))}finally{x.current.get(ne)===xt&&x.current.delete(ne),y(ne,!1),Z(Ee=>({...Ee,[ne]:""})),ce(Ee=>({...Ee,[ne]:[]}))}}if(P===null)return f.jsx("div",{className:"boot"});if(P==="unauthenticated")return f.jsx(RZ,{onUsername:Cf});const oc=JN(e,_t),ms=Q=>{var ne;return((ne=oc.find(fe=>fe.id===Q))==null?void 0:ne.label)??Q},mi=_t.find(Q=>Q.runtimeId&&Q.apps.some(ne=>Wi(Q.id,ne)===n)),Df=mi&&mi.runtimeId?{runtimeId:mi.runtimeId,name:mi.name,region:mi.region??"cn-beijing"}:void 0,ac=Q=>{Mn(Wr()),v.current="",a(""),r(Q)};return f.jsxs("div",{className:"layout",children:[f.jsx(nF,{agentsSource:D,localApps:e,currentAgentId:n,currentAgentLabel:n?ms(n):"",currentRuntime:Df,author:String((j==null?void 0:j.email)??$??""),onSelectAgent:ac,features:B,sessions:i,currentSessionId:o,streamingSids:w,onNewChat:()=>{F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!1),hs()},onSearch:()=>{F(null),pe(!1),be(!1),Pe(!1),Re(!1),oe(!0),_("")},onQuickCreate:()=>{v.current="",a(""),pe(!1),be(!1),oe(!1),Re(!1),F(null),K(null),Pe(!0),_("")},onSkillCenter:()=>{F(null),be(!1),Pe(!1),oe(!1),Re(!1),pe(!0),_("")},onAddAgent:()=>{v.current="",F(null),pe(!1),oe(!1),Re(!1),a(""),Pe(!1),be(!0),_("")},onManageAgents:()=>{v.current="",a(""),F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!0),_("")},onPickSession:Q=>{F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!1),_(""),ps(Q)},onDeleteSession:Of,userInfo:j,onLogout:Mf}),(()=>{const Q=f.jsx(V8,{value:h,onChange:p,onSubmit:()=>{const ne=h,fe=g;p(""),b([]),sc(ne,fe)},disabled:!n||!$,busy:ue,attachments:g,onAddFiles:Rf,onRemoveAttachment:ne=>b(fe=>fe.filter((Ce,Ge)=>Ge!==ne))});return f.jsxs("main",{className:"main",children:[f.jsx(rF,{apps:oc.map(ne=>ne.id),appName:n,onAppChange:ac,agentLabel:ms,title:Be?"添加 Agent":Le?"添加 AgentKit 智能体":me?"技能中心":te?"搜索":ve?"管理 Agent":W?void 0:n?ms(n):"选择 Agent",crumbs:te||Le||me||Be||!W?void 0:W==="menu"?[{label:KZ,onClick:()=>{F(null),K(null),Pe(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ut(!0)},{label:qZ[W]}]}),E&&f.jsx("div",{className:"error",children:E}),T&&f.jsxs("div",{className:"session-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载会话…"]}),ve?f.jsx(aF,{author:String((j==null?void 0:j.email)??$??"")}):Be?f.jsx(nC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...B.addAgentkit?[{key:"agentkit",icon:YZ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Pe(!1),be(!0)}}]:[],{key:"scratch",icon:XZ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Pe(!1),K(null),F("menu")}}]}):te?f.jsx(q$,{userId:$,appId:n,agentLabel:ms,onOpenSession:If}):Le?f.jsx(oF,{onAdded:ne=>{Mn(Wr()),be(!1),r(ne)},onCancel:()=>be(!1)}):me?f.jsx(D$,{}):W!==null&&!G?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):W==="menu"?f.jsx(EK,{onSelect:ne=>{K(null),F(ne)},onImport:ne=>{K(ne),F("custom")}}):W==="intelligent"?f.jsx(PK,{userId:$,onBack:()=>F("menu"),onCreate:At,onAgentAdded:ic}):W==="custom"?f.jsx(XK,{initialDraft:z??void 0,onBack:()=>F("menu"),onCreate:At,onAgentAdded:ic,author:String((j==null?void 0:j.email)??$??"")}):W==="template"?f.jsx(JK,{onBack:()=>F("menu"),onCreate:At}):W==="workflow"?f.jsx(TZ,{onBack:()=>F("menu"),onCreate:At}):d.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),Q]}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Tf,onScroll:Af,children:d.map((ne,fe)=>{var xe;const Ce=fe===d.length-1;if(ne.role==="user"){const Et=ne.blocks.map(Ee=>Ee.kind==="text"?Ee.text:"").join(""),xt=ne.blocks.flatMap(Ee=>Ee.kind==="attachment"?Ee.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[xt.length>0&&f.jsx("div",{className:"msg-attachments",children:xt.map((Ee,Ve)=>{var Ae;return(Ae=Ee.mimeType)!=null&&Ae.startsWith("image/")&&Ee.data?f.jsx("img",{className:"attachment-thumb",src:`data:${Ee.mimeType};base64,${Ee.data}`,alt:Ee.name??"image"},Ve):f.jsxs("div",{className:"attachment-file",children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:Ee.name??"文件"})]},Ve)})}),Et&&f.jsx("div",{className:"bubble",children:f.jsx(k0,{text:Et})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((xe=ne.meta)==null?void 0:xe.ts)&&f.jsx("span",{className:"meta-text",children:nI(ne.meta.ts)}),f.jsx(U_,{text:Et})]})]},fe)}const Ge=ne.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:Ge?Ce&&ue?f.jsx($8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(U8,{blocks:ne.blocks,onAction:Lf,onAuth:Pf}),!(Ce&&ue)&&!tJ(ne)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Ce&&ue)&&!nJ(ne)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(QZ,{})}),f.jsx(U_,{text:JZ(ne)})]}),ne.meta&&f.jsx("span",{className:"meta-text",children:ZZ(ne.meta)})]})]})},fe)})}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye}),Q]})]})})(),C&&o&&f.jsx(IZ,{sessionId:o,onClose:()=>N(!1)}),ur&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ut(!1),children:f.jsxs("div",{className:"confirm-box",onClick:Q=>Q.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ut(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{K(null),F("menu"),ut(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||xp.createRoot(document.getElementById("root")).render(f.jsx(tE.StrictMode,{children:f.jsx(tL,{reducedMotion:"user",children:f.jsx(aJ,{})})})); diff --git a/veadk/webui/index.html b/veadk/webui/index.html index 7beb77b5..05334208 100644 --- a/veadk/webui/index.html +++ b/veadk/webui/index.html @@ -4,8 +4,8 @@ VeADK Web - - + +
From 63f4efc1759ce31d666f235c7f21fb617f50f284 Mon Sep 17 00:00:00 2001 From: zhengchuyi Date: Fri, 17 Jul 2026 14:28:32 +0800 Subject: [PATCH 2/5] feat: use veadk extension for feishu --- frontend/src/create/CustomCreate.tsx | 9 +- frontend/src/create/codegen.ts | 225 +++------ frontend/src/ui/ProjectPreview.css | 38 +- veadk/cli/cli_frontend.py | 56 +-- veadk/webui/assets/index-C2cC86E6.css | 10 - .../{index-CmGE8RHW.js => index-CKv78sD7.js} | 464 +++++++----------- veadk/webui/assets/index-WghPsgMg.css | 10 + veadk/webui/index.html | 4 +- 8 files changed, 295 insertions(+), 521 deletions(-) delete mode 100644 veadk/webui/assets/index-C2cC86E6.css rename veadk/webui/assets/{index-CmGE8RHW.js => index-CKv78sD7.js} (74%) create mode 100644 veadk/webui/assets/index-WghPsgMg.css diff --git a/frontend/src/create/CustomCreate.tsx b/frontend/src/create/CustomCreate.tsx index 278da4cd..0d0a4ec2 100644 --- a/frontend/src/create/CustomCreate.tsx +++ b/frontend/src/create/CustomCreate.tsx @@ -1543,16 +1543,9 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut checked={!!draft.deployment?.feishuEnabled} onChange={(v) => patchDeployment({ feishuEnabled: v })} title="连接飞书" - desc="部署后在同一个 AgentKit runtime 内启动飞书 Channel,用飞书消息触发当前 Agent。" + desc="部署后可通过飞书消息触发当前 Agent。" icon={Globe} /> - {draft.deployment?.feishuEnabled && ( -
- - App ID、App Secret 等运行时变量请在生成项目后的预览页右侧“环境变量”面板中填写。 - -
- )} )} diff --git a/frontend/src/create/codegen.ts b/frontend/src/create/codegen.ts index 864b4675..bfcab180 100644 --- a/frontend/src/create/codegen.ts +++ b/frontend/src/create/codegen.ts @@ -321,18 +321,18 @@ function renderRequirements(extras: Set, includeFeishuChannel: boolean): list.push("extensions"); } const uniqueExtras = [...new Set(list)].sort(); - const versionSpec = includeFeishuChannel ? ">=0.5.33" : ""; const pkg = uniqueExtras.length - ? `veadk-python[${uniqueExtras.join(",")}]${versionSpec}` - : `veadk-python${versionSpec}`; - const packages = includeFeishuChannel - ? [pkg, "lark-channel-sdk", "agentkit-sdk-python", "google-adk>=1.32.0,<2.0.0", "starlette<1.0.0"] - : [pkg, "agentkit-sdk-python", "google-adk>=1.32.0,<2.0.0", "starlette<1.0.0"]; + ? `veadk-python[${uniqueExtras.join(",")}]${includeFeishuChannel ? ">=0.5.34" : ""}` + : "veadk-python"; + const packages = [pkg, "agentkit-sdk-python", "google-adk"]; + if (includeFeishuChannel) { + packages.push("starlette<1.0.0"); + } return `${packages.join("\n")}\n`; } function renderReadme(name: string, draft: AgentDraft): string { - return [ + const lines = [ `# ${name}`, "", draft.description || "由 VeADK Web UI「自定义模式」生成的 Agent 项目。", @@ -347,11 +347,16 @@ function renderReadme(name: string, draft: AgentDraft): string { "", "`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。", "", - "## 飞书机器人", - "", - "在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。", - "", - ].join("\n"); + ]; + if (draft.deployment?.feishuEnabled) { + lines.push( + "## 飞书机器人", + "", + "在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。", + "", + ); + } + return lines.join("\n"); } /** Main entry: AgentDraft -> AgentProject. */ @@ -373,12 +378,17 @@ export function generateProject(draft: AgentDraft): AgentProject { // Add deployment-specific imports const deploymentImports = [ - "import asyncio", - "import inspect", "import os", - "import threading", - "import traceback", - "from contextlib import asynccontextmanager", + ...(feishuChannelEnabled + ? [ + "import asyncio", + "import inspect", + "import threading", + "import traceback", + "from contextlib import asynccontextmanager", + "from veadk.extensions import FeishuChannelExtension", + ] + : []), "from pathlib import Path", "from agentkit.apps import AgentkitAgentServerApp", "from fastapi.staticfiles import StaticFiles", @@ -397,164 +407,56 @@ export function generateProject(draft: AgentDraft): AgentProject { # Deployment configuration HOST = os.getenv("HOST", "0.0.0.0") PORT = int(os.getenv("PORT", "8000")) -FEISHU_CHANNEL_ENABLED = ${feishuChannelEnabled ? "True" : "False"} - -def _env_bool(name: str, default: bool = False) -> bool: - raw = os.getenv(name) - if raw is None: - return default - return raw.strip().lower() in {"1", "true", "yes", "y", "on"} - -def _coalesce(*values): - for value in values: - if value: - return value - return "" - -def _read_attr(obj, *path): - cur = obj - for part in path: - if cur is None: - return None - cur = getattr(cur, part, None) - return cur - -async def _maybe_await(value): - if inspect.isawaitable(value): - return await value - return value - -def _call_in_event_loop(loop, method): - result = method() - if inspect.isawaitable(result): - return loop.run_until_complete(result) - return result - -class _FallbackFeishuChannelExtension: - """Minimal Feishu bridge used when the installed veadk package lacks extensions.""" - - def __init__(self, runner, *, app_id, app_secret, channel_kwargs=None, **_kwargs): - try: - from lark_channel import FeishuChannel - except ImportError: - from lark_oapi.channel import FeishuChannel - - self.runner = runner - self.channel = FeishuChannel( - app_id=app_id, - app_secret=app_secret, - **dict(channel_kwargs or {}), - ) - self.channel.on("message", self._on_message) - - async def connect(self): - connect = getattr(self.channel, "start", None) or self.channel.connect - return await _maybe_await(connect()) - - async def disconnect(self): - disconnect = getattr(self.channel, "stop", None) or getattr(self.channel, "disconnect", None) - if disconnect is None: - return None - return await _maybe_await(disconnect()) - - async def _on_message(self, message) -> None: - text = str(getattr(message, "content_text", "") or "").strip() - if not text: - return - sender = getattr(message, "sender", None) - user_id = _coalesce( - getattr(sender, "union_id", None), - getattr(sender, "open_id", None), - getattr(sender, "user_id", None), - getattr(message, "sender_id", None), - "feishu_user", - ) - session_id = _coalesce( - _read_attr(message, "conversation", "thread_id"), - getattr(message, "thread_id", None), - getattr(message, "reply_to_message_id", None), - getattr(message, "chat_id", None), - _read_attr(message, "conversation", "chat_id"), - getattr(message, "message_id", None), - "feishu_session", - ) - chat_id = _coalesce( - getattr(message, "chat_id", None), - _read_attr(message, "conversation", "chat_id"), - ) - if not chat_id: - print("feishu channel fallback ignored message without chat_id", flush=True) - return - response_text = await self.runner.run( - messages=text, - user_id=user_id, - session_id=session_id, - ) - if response_text: - options = {} - message_id = _coalesce(getattr(message, "message_id", None), getattr(message, "id", None)) - if message_id: - options["reply_to"] = message_id - await _maybe_await(self.channel.send(chat_id, {"text": str(response_text)}, options)) +${feishuChannelEnabled ? `FEISHU_CHANNEL_ENABLED = True def _get_feishu_channel_method(channel, names): raw_channel = getattr(channel, "channel", None) - for name in names: - method = getattr(channel, name, None) - if method is not None: - return method - method = getattr(raw_channel, name, None) - if method is not None: - return method + for target in (raw_channel, channel): + if target is None: + continue + for name in names: + method = getattr(target, name, None) + if method is not None: + return method return None +def _call_feishu_channel_method(loop, method): + result = method() + if inspect.isawaitable(result): + return loop.run_until_complete(result) + return result + def _connect_feishu_channel(loop, channel) -> None: connect = _get_feishu_channel_method(channel, ("start", "connect")) if connect is None: raise AttributeError("Feishu channel has no start/connect method") - return _call_in_event_loop(loop, connect) + return _call_feishu_channel_method(loop, connect) def _disconnect_feishu_channel(loop, channel) -> None: disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) if disconnect is None: return None - return _call_in_event_loop(loop, disconnect) + return _call_feishu_channel_method(loop, disconnect) def _stop_feishu_channel_from_lifespan(channel) -> None: - stop = _get_feishu_channel_method(channel, ("stop", "disconnect")) - if stop is None: - return None - return stop() - -def _build_feishu_channel(runner, app_id, app_secret): - FeishuChannelExtension = _FallbackFeishuChannelExtension + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) try: - from veadk.extensions import FeishuChannelExtension as _VeadkFeishuChannelExtension - except ImportError as exc: - print( - "veadk.extensions is not installed; using generated Feishu Channel fallback: " - f"{type(exc).__name__}: {exc}", - flush=True, - ) - else: - if getattr(_VeadkFeishuChannelExtension, "CHANNEL_SDK_COMPAT", False): - FeishuChannelExtension = _VeadkFeishuChannelExtension - else: - print( - "installed veadk FeishuChannelExtension lacks channel-sdk compatibility; " - "using generated Feishu Channel fallback", - flush=True, - ) + return _disconnect_feishu_channel(loop, channel) + finally: + asyncio.set_event_loop(None) + loop.close() +def _build_feishu_channel(runner, app_id, app_secret): return FeishuChannelExtension( runner=runner, app_id=app_id, app_secret=app_secret, channel_kwargs={ - "transport": os.getenv("TOOL_FEISHU_CHANNEL_TRANSPORT", "ws"), + "transport": "ws", }, - streaming=_env_bool("TOOL_FEISHU_CHANNEL_STREAMING"), - reactions=_env_bool("TOOL_FEISHU_CHANNEL_REACTIONS"), + streaming=False, + reactions=False, ) def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: @@ -601,11 +503,11 @@ def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: loop.close() async def _start_feishu_channel(app, runner) -> None: - if not _env_bool("TOOL_FEISHU_CHANNEL_ENABLED", FEISHU_CHANNEL_ENABLED): + if not FEISHU_CHANNEL_ENABLED: return - app_id = os.getenv("TOOL_FEISHU_CHANNEL_APP_ID") or os.getenv("FEISHU_APP_ID") - app_secret = os.getenv("TOOL_FEISHU_CHANNEL_APP_SECRET") or os.getenv("FEISHU_APP_SECRET") + app_id = os.getenv("FEISHU_APP_ID") + app_secret = os.getenv("FEISHU_APP_SECRET") if not app_id or not app_secret: print( "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", @@ -646,31 +548,29 @@ async def _stop_feishu_channel(app) -> None: "feishu channel background thread did not stop within 2s", flush=True, ) - +` : ""} def build_app(): """Build AgentKit AgentServerApp for deployment.""" import veadk - from veadk import Runner - - WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" +${feishuChannelEnabled ? " from veadk import Runner\n" : ""} WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" # AgentKit's AgentServerApp exposes the ADK-compatible API surface # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( backend="local" ) - runner = Runner( +${feishuChannelEnabled ? ` runner = Runner( agent=root_agent, app_name=getattr(root_agent, "name", "") or "agent", short_term_memory=short_term_memory, ) - agent_server_app = AgentkitAgentServerApp( +` : ""} agent_server_app = AgentkitAgentServerApp( agent=root_agent, short_term_memory=short_term_memory, ) app = agent_server_app.app - original_lifespan = app.router.lifespan_context +${feishuChannelEnabled ? ` original_lifespan = app.router.lifespan_context @asynccontextmanager async def lifespan(fastapi_app): @@ -682,8 +582,7 @@ def build_app(): await _stop_feishu_channel(fastapi_app) app.router.lifespan_context = lifespan - - # Add health check endpoint +` : ""} # Add health check endpoint @app.get("/ping") def ping() -> dict[str, str]: return {"status": "ok"} diff --git a/frontend/src/ui/ProjectPreview.css b/frontend/src/ui/ProjectPreview.css index 280bf9ee..ae934b4e 100644 --- a/frontend/src/ui/ProjectPreview.css +++ b/frontend/src/ui/ProjectPreview.css @@ -310,41 +310,41 @@ overflow: auto; display: flex; flex-direction: column; - gap: 8px; - padding: 12px; + gap: 0; + padding: 10px 16px 12px; } .pp-env-row { display: grid; grid-template-columns: minmax(142px, 1.08fr) minmax(120px, 1fr) 30px; align-items: center; - gap: 8px; - padding: 8px; - border: 1px solid hsl(var(--border)); - border-radius: calc(var(--radius) - 1px); - background: hsl(var(--card)); + gap: 10px; + padding: 8px 0; + border-bottom: 1px solid hsl(var(--border) / 0.72); } .pp-env-row-head { position: sticky; top: 0; z-index: 1; - padding: 0 8px 2px; + padding: 0 0 6px; border: none; - background: hsl(var(--secondary) / 0.95); + background: hsl(var(--secondary) / 0.28); color: hsl(var(--muted-foreground)); - font-size: 12px; + font-size: 11px; font-weight: 700; + letter-spacing: 0; + text-transform: uppercase; } .pp-env-row input { width: 100%; min-width: 0; - height: 34px; - padding: 0 10px; + height: 36px; + padding: 0 11px; border: 1px solid hsl(var(--border)); - border-radius: calc(var(--radius) - 2px); - background: hsl(var(--background)); + border-radius: 6px; + background: hsl(var(--card)); color: hsl(var(--foreground)); font: inherit; font-size: 12px; @@ -356,8 +356,8 @@ } .pp-env-key-fixed { - border-color: hsl(var(--primary) / 0.22) !important; - background: hsl(var(--primary) / 0.06) !important; + border-color: hsl(var(--border)) !important; + background: hsl(var(--card)) !important; color: hsl(var(--foreground)) !important; cursor: default; } @@ -381,7 +381,7 @@ font-size: 12px; text-align: center; border: 1px dashed hsl(var(--border)); - border-radius: calc(var(--radius) - 1px); + border-radius: 6px; background: hsl(var(--card)); } @@ -390,10 +390,10 @@ align-items: center; justify-content: center; gap: 6px; - margin: 0 12px 12px; + margin: 0 16px 14px; height: 38px; border: 1px dashed hsl(var(--border)); - border-radius: calc(var(--radius) - 1px); + border-radius: 6px; background: hsl(var(--card)); color: hsl(var(--foreground)); font: inherit; diff --git a/veadk/cli/cli_frontend.py b/veadk/cli/cli_frontend.py index 5648263e..f077a96f 100644 --- a/veadk/cli/cli_frontend.py +++ b/veadk/cli/cli_frontend.py @@ -843,7 +843,7 @@ async def _deploy_to_agentkit(request: Request): ) feishu_enabled = bool(feishu_config.get("enabled")) requested_envs = data.get("envs") if isinstance(data.get("envs"), list) else [] - extra_runtime_envs: dict[str, str] = {} + requested_runtime_envs: dict[str, str] = {} for item in requested_envs: if not isinstance(item, dict): continue @@ -855,15 +855,20 @@ async def _deploy_to_agentkit(request: Request): status_code=400, detail=f"Invalid environment variable name: {key}", ) - extra_runtime_envs[key] = str(item.get("value") or "") + requested_runtime_envs[key] = str(item.get("value") or "") + extra_runtime_envs = { + key: value + for key, value in requested_runtime_envs.items() + if not key.startswith("TOOL_FEISHU_CHANNEL_") + } feishu_app_id = ( - extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_ID", "").strip() - or extra_runtime_envs.get("FEISHU_APP_ID", "").strip() + requested_runtime_envs.get("FEISHU_APP_ID", "").strip() + or requested_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_ID", "").strip() or os.getenv("FEISHU_APP_ID", "").strip() ) feishu_app_secret = ( - extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_SECRET", "").strip() - or extra_runtime_envs.get("FEISHU_APP_SECRET", "").strip() + requested_runtime_envs.get("FEISHU_APP_SECRET", "").strip() + or requested_runtime_envs.get("TOOL_FEISHU_CHANNEL_APP_SECRET", "").strip() or os.getenv("FEISHU_APP_SECRET", "").strip() ) if feishu_enabled and (not feishu_app_id or not feishu_app_secret): @@ -903,24 +908,20 @@ async def _deploy_to_agentkit(request: Request): if feishu_enabled: runtime_envs.update( { - "TOOL_FEISHU_CHANNEL_ENABLED": "true", - "TOOL_FEISHU_CHANNEL_APP_ID": feishu_app_id, - "TOOL_FEISHU_CHANNEL_APP_SECRET": feishu_app_secret, - "TOOL_FEISHU_CHANNEL_TRANSPORT": str( - extra_runtime_envs.get("TOOL_FEISHU_CHANNEL_TRANSPORT") - or feishu_config.get("transport") - or "ws" - ).strip() - or "ws", - "TOOL_FEISHU_CHANNEL_STREAMING": str( - feishu_config.get("streaming") or "false" - ).lower(), - "TOOL_FEISHU_CHANNEL_REACTIONS": str( - feishu_config.get("reactions") or "false" - ).lower(), + "FEISHU_APP_ID": feishu_app_id, + "FEISHU_APP_SECRET": feishu_app_secret, } ) + cloud_config = { + "region": region, + "project_name": project_name, + "image_tag": "latest", + "runtime_envs": runtime_envs, + } + if feishu_enabled: + cloud_config["min_instance"] = 1 + agentkit_config = { "common": { "agent_name": agent_name, @@ -928,14 +929,7 @@ async def _deploy_to_agentkit(request: Request): "python_version": "3.11", "launch_type": "cloud", }, - "launch_types": { - "cloud": { - "region": region, - "project_name": project_name, - "image_tag": "latest", - "runtime_envs": runtime_envs, - } - }, + "launch_types": {"cloud": cloud_config}, } (base / "agentkit.yaml").write_text( _yaml.dump(agentkit_config, allow_unicode=True), encoding="utf-8" @@ -1165,9 +1159,7 @@ async def _stream(): "runtimeId": meta.get("runtime_id", ""), "feishuChannel": { "enabled": True, - "transport": runtime_envs.get( - "TOOL_FEISHU_CHANNEL_TRANSPORT", "ws" - ), + "transport": "ws", "runtimeId": meta.get("runtime_id", ""), } if feishu_enabled diff --git a/veadk/webui/assets/index-C2cC86E6.css b/veadk/webui/assets/index-C2cC86E6.css deleted file mode 100644 index 23552cfb..00000000 --- a/veadk/webui/assets/index-C2cC86E6.css +++ /dev/null @@ -1,10 +0,0 @@ -.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub - Description: Light theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-light - Current colors taken from GitHub's CSS -*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-env-panel{flex:0 0 400px;width:400px;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--secondary) / .28)}.pp-env-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.pp-env-title{font-size:15px;font-weight:700;color:hsl(var(--foreground))}.pp-env-sub{margin-top:5px;max-width:292px;font-size:12px;line-height:1.45;color:hsl(var(--muted-foreground))}.pp-env-table{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px}.pp-env-row{display:grid;grid-template-columns:minmax(142px,1.08fr) minmax(120px,1fr) 30px;align-items:center;gap:8px;padding:8px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card))}.pp-env-row-head{position:sticky;top:0;z-index:1;padding:0 8px 2px;border:none;background:hsl(var(--secondary) / .95);color:hsl(var(--muted-foreground));font-size:12px;font-weight:700}.pp-env-row input{width:100%;min-width:0;height:34px;padding:0 10px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:12px}.pp-env-row input:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px}.pp-env-key-fixed{border-color:hsl(var(--primary) / .22)!important;background:hsl(var(--primary) / .06)!important;color:hsl(var(--foreground))!important;cursor:default}.pp-env-row input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 2px hsl(var(--ring) / .1)}.pp-env-row input:disabled,.pp-env-row button:disabled,.pp-env-add:disabled{opacity:.55;cursor:default}.pp-env-empty{padding:26px 12px;color:hsl(var(--muted-foreground));font-size:12px;text-align:center;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card))}.pp-env-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 12px 12px;height:38px;border:1px dashed hsl(var(--border));border-radius:calc(var(--radius) - 1px);background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pp-env-add:hover:not(:disabled){background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .22)}.pp-env-remove{width:30px;height:30px}.pp-env-remove-placeholder{display:block;width:30px;height:30px}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-hl,.pp-input{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55;white-space:pre;-moz-tab-size:2;tab-size:2;box-sizing:border-box;border:none}.pp-pre code,.pp-hl code,.pp-input{font:inherit;-moz-tab-size:inherit;tab-size:inherit}.pp-pre{flex:1;width:100%;height:100%;overflow:auto}.pp-pre code{background:none;padding:0}.pp-editor-wrap{position:relative;flex:1;min-width:0;min-height:0;width:100%;height:100%}.pp-hl{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;pointer-events:none}.pp-hl code{background:none;padding:0}.pp-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;resize:none;outline:none;background:transparent;color:transparent;caret-color:hsl(var(--foreground))}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/assets/index-CmGE8RHW.js b/veadk/webui/assets/index-CKv78sD7.js similarity index 74% rename from veadk/webui/assets/index-CmGE8RHW.js rename to veadk/webui/assets/index-CKv78sD7.js index 3fbf6a8e..cafd3062 100644 --- a/veadk/webui/assets/index-CmGE8RHW.js +++ b/veadk/webui/assets/index-CKv78sD7.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Il=Symbol.for("react.element"),xI=Symbol.for("react.portal"),wI=Symbol.for("react.fragment"),vI=Symbol.for("react.strict_mode"),_I=Symbol.for("react.profiler"),EI=Symbol.for("react.provider"),kI=Symbol.for("react.context"),SI=Symbol.for("react.forward_ref"),NI=Symbol.for("react.suspense"),TI=Symbol.for("react.memo"),AI=Symbol.for("react.lazy"),db=Symbol.iterator;function CI(e){return e===null||typeof e!="object"?null:(e=db&&e[db]||e["@@iterator"],typeof e=="function"?e:null)}var G_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},W_=Object.assign,Y_={};function Io(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}Io.prototype.isReactComponent={};Io.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Io.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function X_(){}X_.prototype=Io.prototype;function gg(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}var yg=gg.prototype=new X_;yg.constructor=gg;W_(yg,Io.prototype);yg.isPureReactComponent=!0;var fb=Array.isArray,Q_=Object.prototype.hasOwnProperty,bg={current:null},Z_={key:!0,ref:!0,__self:!0,__source:!0};function J_(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)Q_.call(t,r)&&!Z_.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,H=L[V];if(0>>1;Vi(X,k))Zi(J,X)?(L[V]=J,L[Z]=k,V=Z):(L[V]=X,L[U]=k,V=U);else if(Zi(J,k))L[V]=J,L[Z]=k,V=Z;else break e}}return D}function i(L,D){var k=L.sortIndex-D.sortIndex;return k!==0?k:L.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],d=1,u=null,h=3,p=!1,g=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(L){for(var D=n(c);D!==null;){if(D.callback===null)r(c);else if(D.startTime<=L)r(c),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(c)}}function v(L){if(b=!1,y(L),!g)if(n(l)!==null)g=!0,M(E);else{var D=n(c);D!==null&&B(v,D.startTime-L)}}function E(L,D){g=!1,b&&(b=!1,m(N),N=-1),p=!0;var k=h;try{for(y(D),u=n(l);u!==null&&(!(u.expirationTime>D)||L&&!P());){var V=u.callback;if(typeof V=="function"){u.callback=null,h=u.priorityLevel;var H=V(u.expirationTime<=D);D=e.unstable_now(),typeof H=="function"?u.callback=H:u===n(l)&&r(l),y(D)}else r(l);u=n(l)}if(u!==null)var T=!0;else{var U=n(c);U!==null&&B(v,U.startTime-D),T=!1}return T}finally{u=null,h=k,p=!1}}var _=!1,C=null,N=-1,I=5,A=-1;function P(){return!(e.unstable_now()-AL||125V?(L.sortIndex=k,t(c,L),n(l)===null&&L===n(c)&&(b?(m(N),N=-1):b=!0,B(v,k-V))):(L.sortIndex=H,t(l,L),g||p||(g=!0,M(E))),L},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(L){var D=h;return function(){var k=h;h=D;try{return L.apply(this,arguments)}finally{h=k}}}})(sE);iE.exports=sE;var FI=iE.exports;/** + */(function(e){function t(L,D){var E=L.length;L.push(D);e:for(;0>>1,H=L[V];if(0>>1;Vi(Y,E))Zi(J,Y)?(L[V]=J,L[Z]=E,V=Z):(L[V]=Y,L[U]=E,V=U);else if(Zi(J,E))L[V]=J,L[Z]=E,V=Z;else break e}}return D}function i(L,D){var E=L.sortIndex-D.sortIndex;return E!==0?E:L.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],d=1,u=null,h=3,p=!1,g=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(L){for(var D=n(c);D!==null;){if(D.callback===null)r(c);else if(D.startTime<=L)r(c),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(c)}}function v(L){if(b=!1,y(L),!g)if(n(l)!==null)g=!0,M(k);else{var D=n(c);D!==null&&B(v,D.startTime-L)}}function k(L,D){g=!1,b&&(b=!1,m(N),N=-1),p=!0;var E=h;try{for(y(D),u=n(l);u!==null&&(!(u.expirationTime>D)||L&&!P());){var V=u.callback;if(typeof V=="function"){u.callback=null,h=u.priorityLevel;var H=V(u.expirationTime<=D);D=e.unstable_now(),typeof H=="function"?u.callback=H:u===n(l)&&r(l),y(D)}else r(l);u=n(l)}if(u!==null)var T=!0;else{var U=n(c);U!==null&&B(v,U.startTime-D),T=!1}return T}finally{u=null,h=E,p=!1}}var _=!1,C=null,N=-1,I=5,A=-1;function P(){return!(e.unstable_now()-AL||125V?(L.sortIndex=E,t(c,L),n(l)===null&&L===n(c)&&(b?(m(N),N=-1):b=!0,B(v,E-V))):(L.sortIndex=H,t(l,L),g||p||(g=!0,M(k))),L},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(L){var D=h;return function(){var E=h;h=D;try{return L.apply(this,arguments)}finally{h=E}}}})(sk);ik.exports=sk;var FI=ik.exports;/** * @license React * react-dom.production.min.js * @@ -30,14 +30,14 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var zI=S,fn=FI;function re(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wp=Object.prototype.hasOwnProperty,UI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pb={},mb={};function VI(e){return wp.call(mb,e)?!0:wp.call(pb,e)?!1:UI.test(e)?mb[e]=!0:(pb[e]=!0,!1)}function HI(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function KI(e,t,n,r){if(t===null||typeof t>"u"||HI(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Gt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Gt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Gt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Gt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Gt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Gt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Gt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Gt(e,5,!1,e.toLowerCase(),null,!1,!1)});var wg=/[\-:]([a-z])/g;function vg(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Gt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!0,!0)});function _g(e,t,n,r){var i=Tt.hasOwnProperty(t)?Tt[t]:null;(i!==null?i.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wp=Object.prototype.hasOwnProperty,UI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pb={},mb={};function VI(e){return wp.call(mb,e)?!0:wp.call(pb,e)?!1:UI.test(e)?mb[e]=!0:(pb[e]=!0,!1)}function HI(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function KI(e,t,n,r){if(t===null||typeof t>"u"||HI(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Gt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Gt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Gt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Gt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Gt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Gt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Gt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Gt(e,5,!1,e.toLowerCase(),null,!1,!1)});var wg=/[\-:]([a-z])/g;function vg(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Gt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!0,!0)});function _g(e,t,n,r){var i=Tt.hasOwnProperty(t)?Tt[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Ff=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ua(e):""}function qI(e){switch(e.tag){case 5:return ua(e.type);case 16:return ua("Lazy");case 13:return ua("Suspense");case 19:return ua("SuspenseList");case 0:case 2:case 15:return e=zf(e.type,!1),e;case 11:return e=zf(e.type.render,!1),e;case 1:return e=zf(e.type,!0),e;default:return""}}function kp(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 Ts:return"Fragment";case Ns:return"Portal";case vp:return"Profiler";case Eg:return"StrictMode";case _p:return"Suspense";case Ep:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lE:return(e.displayName||"Context")+".Consumer";case aE:return(e._context.displayName||"Context")+".Provider";case kg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Sg:return t=e.displayName||null,t!==null?t:kp(e.type)||"Memo";case $r:t=e._payload,e=e._init;try{return kp(e(t))}catch{}}return null}function GI(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 kp(t);case 8:return t===Eg?"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 oi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function uE(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function WI(e){var t=uE(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fc(e){e._valueTracker||(e._valueTracker=WI(e))}function dE(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=uE(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Mu(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 Sp(e,t){var n=t.checked;return tt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=oi(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 fE(e,t){t=t.checked,t!=null&&_g(e,"checked",t,!1)}function Np(e,t){fE(e,t);var n=oi(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")?Tp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tp(e,t.type,oi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bb(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 Tp(e,t,n){(t!=="number"||Mu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var da=Array.isArray;function Ws(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=hc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Va(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},YI=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){YI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function gE(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function yE(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=gE(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var XI=tt({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 Mp(e,t){if(t){if(XI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(re(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(re(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(re(61))}if(t.style!=null&&typeof t.style!="object")throw Error(re(62))}}function Ip(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 Op=null;function Ng(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rp=null,Ys=null,Xs=null;function vb(e){if(e=Ll(e)){if(typeof Rp!="function")throw Error(re(280));var t=e.stateNode;t&&(t=Od(t),Rp(e.stateNode,e.type,t))}}function bE(e){Ys?Xs?Xs.push(e):Xs=[e]:Ys=e}function xE(){if(Ys){var e=Ys,t=Xs;if(Xs=Ys=null,vb(e),t)for(e=0;e>>=0,e===0?32:31-(aO(e)/lO|0)|0}var pc=64,mc=4194304;function fa(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 Lu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=fa(a):(s&=o,s!==0&&(r=fa(s)))}else o=n&~i,o!==0?r=fa(o):s!==0&&(r=fa(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ol(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function fO(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=Ea),Mb=" ",Ib=!1;function $E(e,t){switch(e){case"keyup":return FO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function FE(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var As=!1;function UO(e,t){switch(e){case"compositionend":return FE(t);case"keypress":return t.which!==32?null:(Ib=!0,Mb);case"textInput":return e=t.data,e===Mb&&Ib?null:e;default:return null}}function VO(e,t){if(As)return e==="compositionend"||!Lg&&$E(e,t)?(e=jE(),iu=Ig=Kr=null,As=!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)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=Pb(n)}}function HE(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?HE(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function KE(){for(var e=window,t=Mu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mu(e.document)}return t}function Pg(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 ZO(e){var t=KE(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&HE(n.ownerDocument.documentElement,n)){if(r!==null&&Pg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Db(n,s);var o=Db(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Cs=null,$p=null,Sa=null,Fp=!1;function jb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fp||Cs==null||Cs!==Mu(r)||(r=Cs,"selectionStart"in r&&Pg(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}),Sa&&Ya(Sa,r)||(Sa=r,r=ju($p,"onSelect"),0Os||(e.current=qp[Os],qp[Os]=null,Os--)}function ze(e,t){Os++,qp[Os]=e.current,e.current=t}var ai={},Pt=di(ai),Zt=di(!1),Vi=ai;function oo(e,t){var n=e.type.contextTypes;if(!n)return ai;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function $u(){Ke(Zt),Ke(Pt)}function Hb(e,t,n){if(Pt.current!==ai)throw Error(re(168));ze(Pt,t),ze(Zt,n)}function ek(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(re(108,GI(e)||"Unknown",i));return tt({},n,r)}function Fu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ai,Vi=Pt.current,ze(Pt,e),ze(Zt,Zt.current),!0}function Kb(e,t,n){var r=e.stateNode;if(!r)throw Error(re(169));n?(e=ek(e,t,Vi),r.__reactInternalMemoizedMergedChildContext=e,Ke(Zt),Ke(Pt),ze(Pt,e)):Ke(Zt),ze(Zt,n)}var gr=null,Rd=!1,th=!1;function tk(e){gr===null?gr=[e]:gr.push(e)}function uR(e){Rd=!0,tk(e)}function fi(){if(!th&&gr!==null){th=!0;var e=0,t=De;try{var n=gr;for(De=1;e>=o,i-=o,yr=1<<32-Un(t)+i|n<N?(I=C,C=null):I=C.sibling;var A=h(m,C,y[N],v);if(A===null){C===null&&(C=I);break}e&&C&&A.alternate===null&&t(m,C),x=s(A,x,N),_===null?E=A:_.sibling=A,_=A,C=I}if(N===y.length)return n(m,C),We&&_i(m,N),E;if(C===null){for(;NN?(I=C,C=null):I=C.sibling;var P=h(m,C,A.value,v);if(P===null){C===null&&(C=I);break}e&&C&&P.alternate===null&&t(m,C),x=s(P,x,N),_===null?E=P:_.sibling=P,_=P,C=I}if(A.done)return n(m,C),We&&_i(m,N),E;if(C===null){for(;!A.done;N++,A=y.next())A=u(m,A.value,v),A!==null&&(x=s(A,x,N),_===null?E=A:_.sibling=A,_=A);return We&&_i(m,N),E}for(C=r(m,C);!A.done;N++,A=y.next())A=p(C,m,N,A.value,v),A!==null&&(e&&A.alternate!==null&&C.delete(A.key===null?N:A.key),x=s(A,x,N),_===null?E=A:_.sibling=A,_=A);return e&&C.forEach(function(R){return t(m,R)}),We&&_i(m,N),E}function w(m,x,y,v){if(typeof y=="object"&&y!==null&&y.type===Ts&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case dc:e:{for(var E=y.key,_=x;_!==null;){if(_.key===E){if(E=y.type,E===Ts){if(_.tag===7){n(m,_.sibling),x=i(_,y.props.children),x.return=m,m=x;break e}}else if(_.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===$r&&Wb(E)===_.type){n(m,_.sibling),x=i(_,y.props),x.ref=Qo(m,_,y),x.return=m,m=x;break e}n(m,_);break}else t(m,_);_=_.sibling}y.type===Ts?(x=ji(y.props.children,m.mode,v,y.key),x.return=m,m=x):(v=fu(y.type,y.key,y.props,null,m.mode,v),v.ref=Qo(m,x,y),v.return=m,m=v)}return o(m);case Ns:e:{for(_=y.key;x!==null;){if(x.key===_)if(x.tag===4&&x.stateNode.containerInfo===y.containerInfo&&x.stateNode.implementation===y.implementation){n(m,x.sibling),x=i(x,y.children||[]),x.return=m,m=x;break e}else{n(m,x);break}else t(m,x);x=x.sibling}x=ch(y,m.mode,v),x.return=m,m=x}return o(m);case $r:return _=y._init,w(m,x,_(y._payload),v)}if(da(y))return g(m,x,y,v);if(qo(y))return b(m,x,y,v);_c(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,x!==null&&x.tag===6?(n(m,x.sibling),x=i(x,y),x.return=m,m=x):(n(m,x),x=lh(y,m.mode,v),x.return=m,m=x),o(m)):n(m,x)}return w}var lo=sk(!0),ok=sk(!1),Vu=di(null),Hu=null,Ps=null,$g=null;function Fg(){$g=Ps=Hu=null}function zg(e){var t=Vu.current;Ke(Vu),e._currentValue=t}function Yp(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 Zs(e,t){Hu=e,$g=Ps=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if($g!==e)if(e={context:e,memoizedValue:t,next:null},Ps===null){if(Hu===null)throw Error(re(308));Ps=e,Hu.dependencies={lanes:0,firstContext:e}}else Ps=Ps.next=e;return t}var Mi=null;function Ug(e){Mi===null?Mi=[e]:Mi.push(e)}function ak(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ug(t)):(n.next=i.next,i.next=n),t.interleaved=n,Tr(e,r)}function Tr(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 Fr=!1;function Vg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lk(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 vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ei(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Oe&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Tr(e,n)}return i=r.interleaved,i===null?(t.next=t,Ug(r)):(t.next=i.next,i.next=t),r.interleaved=t,Tr(e,n)}function ou(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,Ag(e,n)}}function Yb(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Ku(e,t,n,r){var i=e.updateQueue;Fr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=c:a.next=c,d.lastBaseUpdate=l))}if(s!==null){var u=i.baseState;o=0,d=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.payload,typeof g=="function"){u=g.call(p,u,h);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=b.payload,h=typeof g=="function"?g.call(p,u,h):g,h==null)break e;u=tt({},u,h);break e;case 2:Fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(c=d=p,l=u):d=d.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);qi|=o,e.lanes=o,e.memoizedState=u}}function Xb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=rh.transition;rh.transition={};try{e(!1),t()}finally{De=n,rh.transition=r}}function Sk(){return An().memoizedState}function pR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Nk(e))Tk(t,n);else if(n=ak(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),Ak(n,t,r)}}function mR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Nk(e))Tk(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Ug(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=ak(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),Ak(n,t,r))}}function Nk(e){var t=e.alternate;return e===et||t!==null&&t===et}function Tk(e,t){Na=Gu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ak(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ag(e,n)}}var Wu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},gR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:Zb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lu(4194308,4,wk.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lu(4194308,4,e,t)},useInsertionEffect:function(e,t){return lu(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=pR.bind(null,et,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:Qb,useDebugValue:Qg,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=Qb(!1),t=e[0];return e=hR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=et,i=Zn();if(We){if(n===void 0)throw Error(re(407));n=n()}else{if(n=t(),vt===null)throw Error(re(349));Ki&30||fk(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Zb(pk.bind(null,r,s,e),[e]),r.flags|=2048,rl(9,hk.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=vt.identifierPrefix;if(We){var n=br,r=yr;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=tl++,0")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Ff=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ua(e):""}function qI(e){switch(e.tag){case 5:return ua(e.type);case 16:return ua("Lazy");case 13:return ua("Suspense");case 19:return ua("SuspenseList");case 0:case 2:case 15:return e=zf(e.type,!1),e;case 11:return e=zf(e.type.render,!1),e;case 1:return e=zf(e.type,!0),e;default:return""}}function Ep(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 Ts:return"Fragment";case Ns:return"Portal";case vp:return"Profiler";case kg:return"StrictMode";case _p:return"Suspense";case kp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lk:return(e.displayName||"Context")+".Consumer";case ak:return(e._context.displayName||"Context")+".Provider";case Eg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Sg:return t=e.displayName||null,t!==null?t:Ep(e.type)||"Memo";case $r:t=e._payload,e=e._init;try{return Ep(e(t))}catch{}}return null}function GI(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 Ep(t);case 8:return t===kg?"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 oi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function uk(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function WI(e){var t=uk(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fc(e){e._valueTracker||(e._valueTracker=WI(e))}function dk(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=uk(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Mu(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 Sp(e,t){var n=t.checked;return et({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=oi(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 fk(e,t){t=t.checked,t!=null&&_g(e,"checked",t,!1)}function Np(e,t){fk(e,t);var n=oi(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")?Tp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tp(e,t.type,oi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bb(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 Tp(e,t,n){(t!=="number"||Mu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var da=Array.isArray;function Ws(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=hc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Va(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},YI=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){YI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function gk(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function yk(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=gk(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var XI=et({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 Mp(e,t){if(t){if(XI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(re(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(re(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(re(61))}if(t.style!=null&&typeof t.style!="object")throw Error(re(62))}}function Ip(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 Op=null;function Ng(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rp=null,Ys=null,Xs=null;function vb(e){if(e=Ll(e)){if(typeof Rp!="function")throw Error(re(280));var t=e.stateNode;t&&(t=Od(t),Rp(e.stateNode,e.type,t))}}function bk(e){Ys?Xs?Xs.push(e):Xs=[e]:Ys=e}function xk(){if(Ys){var e=Ys,t=Xs;if(Xs=Ys=null,vb(e),t)for(e=0;e>>=0,e===0?32:31-(aO(e)/lO|0)|0}var pc=64,mc=4194304;function fa(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 Lu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=fa(a):(s&=o,s!==0&&(r=fa(s)))}else o=n&~i,o!==0?r=fa(o):s!==0&&(r=fa(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ol(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function fO(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=ka),Mb=" ",Ib=!1;function $k(e,t){switch(e){case"keyup":return FO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fk(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var As=!1;function UO(e,t){switch(e){case"compositionend":return Fk(t);case"keypress":return t.which!==32?null:(Ib=!0,Mb);case"textInput":return e=t.data,e===Mb&&Ib?null:e;default:return null}}function VO(e,t){if(As)return e==="compositionend"||!Lg&&$k(e,t)?(e=jk(),iu=Ig=Kr=null,As=!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)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=Pb(n)}}function Hk(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Hk(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Kk(){for(var e=window,t=Mu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mu(e.document)}return t}function Pg(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 ZO(e){var t=Kk(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Hk(n.ownerDocument.documentElement,n)){if(r!==null&&Pg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Db(n,s);var o=Db(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Cs=null,$p=null,Sa=null,Fp=!1;function jb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fp||Cs==null||Cs!==Mu(r)||(r=Cs,"selectionStart"in r&&Pg(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}),Sa&&Ya(Sa,r)||(Sa=r,r=ju($p,"onSelect"),0Os||(e.current=qp[Os],qp[Os]=null,Os--)}function Fe(e,t){Os++,qp[Os]=e.current,e.current=t}var ai={},Pt=di(ai),Zt=di(!1),Vi=ai;function oo(e,t){var n=e.type.contextTypes;if(!n)return ai;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function $u(){He(Zt),He(Pt)}function Hb(e,t,n){if(Pt.current!==ai)throw Error(re(168));Fe(Pt,t),Fe(Zt,n)}function eE(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(re(108,GI(e)||"Unknown",i));return et({},n,r)}function Fu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ai,Vi=Pt.current,Fe(Pt,e),Fe(Zt,Zt.current),!0}function Kb(e,t,n){var r=e.stateNode;if(!r)throw Error(re(169));n?(e=eE(e,t,Vi),r.__reactInternalMemoizedMergedChildContext=e,He(Zt),He(Pt),Fe(Pt,e)):He(Zt),Fe(Zt,n)}var gr=null,Rd=!1,th=!1;function tE(e){gr===null?gr=[e]:gr.push(e)}function uR(e){Rd=!0,tE(e)}function fi(){if(!th&&gr!==null){th=!0;var e=0,t=De;try{var n=gr;for(De=1;e>=o,i-=o,yr=1<<32-Un(t)+i|n<N?(I=C,C=null):I=C.sibling;var A=h(m,C,y[N],v);if(A===null){C===null&&(C=I);break}e&&C&&A.alternate===null&&t(m,C),x=s(A,x,N),_===null?k=A:_.sibling=A,_=A,C=I}if(N===y.length)return n(m,C),Ge&&_i(m,N),k;if(C===null){for(;NN?(I=C,C=null):I=C.sibling;var P=h(m,C,A.value,v);if(P===null){C===null&&(C=I);break}e&&C&&P.alternate===null&&t(m,C),x=s(P,x,N),_===null?k=P:_.sibling=P,_=P,C=I}if(A.done)return n(m,C),Ge&&_i(m,N),k;if(C===null){for(;!A.done;N++,A=y.next())A=u(m,A.value,v),A!==null&&(x=s(A,x,N),_===null?k=A:_.sibling=A,_=A);return Ge&&_i(m,N),k}for(C=r(m,C);!A.done;N++,A=y.next())A=p(C,m,N,A.value,v),A!==null&&(e&&A.alternate!==null&&C.delete(A.key===null?N:A.key),x=s(A,x,N),_===null?k=A:_.sibling=A,_=A);return e&&C.forEach(function(R){return t(m,R)}),Ge&&_i(m,N),k}function w(m,x,y,v){if(typeof y=="object"&&y!==null&&y.type===Ts&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case dc:e:{for(var k=y.key,_=x;_!==null;){if(_.key===k){if(k=y.type,k===Ts){if(_.tag===7){n(m,_.sibling),x=i(_,y.props.children),x.return=m,m=x;break e}}else if(_.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===$r&&Wb(k)===_.type){n(m,_.sibling),x=i(_,y.props),x.ref=Qo(m,_,y),x.return=m,m=x;break e}n(m,_);break}else t(m,_);_=_.sibling}y.type===Ts?(x=ji(y.props.children,m.mode,v,y.key),x.return=m,m=x):(v=fu(y.type,y.key,y.props,null,m.mode,v),v.ref=Qo(m,x,y),v.return=m,m=v)}return o(m);case Ns:e:{for(_=y.key;x!==null;){if(x.key===_)if(x.tag===4&&x.stateNode.containerInfo===y.containerInfo&&x.stateNode.implementation===y.implementation){n(m,x.sibling),x=i(x,y.children||[]),x.return=m,m=x;break e}else{n(m,x);break}else t(m,x);x=x.sibling}x=ch(y,m.mode,v),x.return=m,m=x}return o(m);case $r:return _=y._init,w(m,x,_(y._payload),v)}if(da(y))return g(m,x,y,v);if(qo(y))return b(m,x,y,v);_c(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,x!==null&&x.tag===6?(n(m,x.sibling),x=i(x,y),x.return=m,m=x):(n(m,x),x=lh(y,m.mode,v),x.return=m,m=x),o(m)):n(m,x)}return w}var lo=sE(!0),oE=sE(!1),Vu=di(null),Hu=null,Ps=null,$g=null;function Fg(){$g=Ps=Hu=null}function zg(e){var t=Vu.current;He(Vu),e._currentValue=t}function Yp(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 Zs(e,t){Hu=e,$g=Ps=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if($g!==e)if(e={context:e,memoizedValue:t,next:null},Ps===null){if(Hu===null)throw Error(re(308));Ps=e,Hu.dependencies={lanes:0,firstContext:e}}else Ps=Ps.next=e;return t}var Mi=null;function Ug(e){Mi===null?Mi=[e]:Mi.push(e)}function aE(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ug(t)):(n.next=i.next,i.next=n),t.interleaved=n,Tr(e,r)}function Tr(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 Fr=!1;function Vg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lE(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 vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ei(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Re&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Tr(e,n)}return i=r.interleaved,i===null?(t.next=t,Ug(r)):(t.next=i.next,i.next=t),r.interleaved=t,Tr(e,n)}function ou(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,Ag(e,n)}}function Yb(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Ku(e,t,n,r){var i=e.updateQueue;Fr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=c:a.next=c,d.lastBaseUpdate=l))}if(s!==null){var u=i.baseState;o=0,d=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.payload,typeof g=="function"){u=g.call(p,u,h);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=b.payload,h=typeof g=="function"?g.call(p,u,h):g,h==null)break e;u=et({},u,h);break e;case 2:Fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(c=d=p,l=u):d=d.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);qi|=o,e.lanes=o,e.memoizedState=u}}function Xb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=rh.transition;rh.transition={};try{e(!1),t()}finally{De=n,rh.transition=r}}function SE(){return An().memoizedState}function pR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},NE(e))TE(t,n);else if(n=aE(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),AE(n,t,r)}}function mR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(NE(e))TE(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Ug(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=aE(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),AE(n,t,r))}}function NE(e){var t=e.alternate;return e===Je||t!==null&&t===Je}function TE(e,t){Na=Gu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function AE(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ag(e,n)}}var Wu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},gR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:Zb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lu(4194308,4,wE.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lu(4194308,4,e,t)},useInsertionEffect:function(e,t){return lu(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=pR.bind(null,Je,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:Qb,useDebugValue:Qg,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=Qb(!1),t=e[0];return e=hR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Je,i=Zn();if(Ge){if(n===void 0)throw Error(re(407));n=n()}else{if(n=t(),vt===null)throw Error(re(349));Ki&30||fE(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Zb(pE.bind(null,r,s,e),[e]),r.flags|=2048,rl(9,hE.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=vt.identifierPrefix;if(Ge){var n=br,r=yr;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=tl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Za]=r,Bk(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ip(n,r),n){case"dialog":He("cancel",e),He("close",e),i=r;break;case"iframe":case"object":case"embed":He("load",e),i=r;break;case"video":case"audio":for(i=0;ifo&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304)}else{if(!r)if(e=qu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Zo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!We)return Mt(t),null}else 2*ot()-s.renderingStartTime>fo&&n!==1073741824&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=ot(),t.sibling=null,n=Ze.current,ze(Ze,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ry(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(Mt(t),t.subtreeFlags&6&&(t.flags|=8192)):Mt(t),null;case 24:return null;case 25:return null}throw Error(re(156,t.tag))}function kR(e,t){switch(jg(t),t.tag){case 1:return Jt(t.type)&&$u(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return co(),Ke(Zt),Ke(Pt),qg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Kg(t),null;case 13:if(Ke(Ze),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(re(340));ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ke(Ze),null;case 4:return co(),null;case 10:return zg(t.type._context),null;case 22:case 23:return ry(),null;case 24:return null;default:return null}}var kc=!1,Ot=!1,SR=typeof WeakSet=="function"?WeakSet:Set,he=null;function Ds(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){rt(e,t,r)}else n.current=null}function im(e,t,n){try{n()}catch(r){rt(e,t,r)}}var cx=!1;function NR(e,t){if(zp=Pu,e=KE(),Pg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,d=0,u=e,h=null;t:for(;;){for(var p;u!==n||i!==0&&u.nodeType!==3||(a=o+i),u!==s||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(p=u.firstChild)!==null;)h=u,u=p;for(;;){if(u===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++d===r&&(l=o),(p=u.nextSibling)!==null)break;u=h,h=u.parentNode}u=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Up={focusedElem:e,selectionRange:n},Pu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var b=g.memoizedProps,w=g.memoizedState,m=t.stateNode,x=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),w);m.__reactInternalSnapshotBeforeUpdate=x}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(re(163))}}catch(v){rt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=cx,cx=!1,g}function Ta(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&im(t,n,s)}i=i.next}while(i!==r)}}function Dd(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 sm(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 zk(e){var t=e.alternate;t!==null&&(e.alternate=null,zk(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Za],delete t[Kp],delete t[lR],delete t[cR])),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 Uk(e){return e.tag===5||e.tag===3||e.tag===4}function ux(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uk(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 om(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=Bu));else if(r!==4&&(e=e.child,e!==null))for(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}function am(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(am(e,t,n),e=e.sibling;e!==null;)am(e,t,n),e=e.sibling}var kt=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)Vk(e,t,n),n=n.sibling}function Vk(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Ad,n)}catch{}switch(n.tag){case 5:Ot||Ds(n,t);case 6:var r=kt,i=Dn;kt=null,Lr(e,t,n),kt=r,Dn=i,kt!==null&&(Dn?(e=kt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):kt.removeChild(n.stateNode));break;case 18:kt!==null&&(Dn?(e=kt,n=n.stateNode,e.nodeType===8?eh(e.parentNode,n):e.nodeType===1&&eh(e,n),Ga(e)):eh(kt,n.stateNode));break;case 4:r=kt,i=Dn,kt=n.stateNode.containerInfo,Dn=!0,Lr(e,t,n),kt=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&im(n,t,o),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Ot&&(Ds(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){rt(n,t,a)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Lr(e,t,n),Ot=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function dx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new SR),t.forEach(function(r){var i=PR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=ot()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Qu=0,Oe&6)throw Error(re(331));var i=Oe;for(Oe|=4,he=e.current;he!==null;){var s=he,o=s.child;if(he.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lot()-ty?Di(e,0):ey|=n),en(e,t)}function Qk(e,t){t===0&&(e.mode&1?(t=mc,mc<<=1,!(mc&130023424)&&(mc=4194304)):t=1);var n=Ht();e=Tr(e,t),e!==null&&(Ol(e,t,n),en(e,n))}function LR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qk(e,n)}function PR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(re(314))}r!==null&&r.delete(t),Qk(e,n)}var Zk;Zk=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,_R(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,We&&t.flags&1048576&&nk(t,Uu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cu(e,t),e=t.pendingProps;var i=oo(t,Pt.current);Zs(t,n),i=Wg(null,t,r,e,i,n);var s=Yg();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Fu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Vg(t),i.updater=Pd,t.stateNode=i,i._reactInternals=t,Qp(t,r,e,n),t=em(null,t,r,!0,s,n)):(t.tag=0,We&&s&&Dg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(cu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=jR(r),e=Pn(r,e),i){case 0:t=Jp(null,t,r,e,n);break e;case 1:t=ox(null,t,r,e,n);break e;case 11:t=ix(null,t,r,e,n);break e;case 14:t=sx(null,t,r,Pn(r.type,e),n);break e}throw Error(re(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),Jp(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ox(e,t,r,i,n);case 3:e:{if(Pk(t),e===null)throw Error(re(387));r=t.pendingProps,s=t.memoizedState,i=s.element,lk(e,t),Ku(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=uo(Error(re(423)),t),t=ax(e,t,r,n,i);break e}else if(r!==i){i=uo(Error(re(424)),t),t=ax(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,We=!0,Bn=null,n=ok(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ao(),r===i){t=Ar(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return ck(t),e===null&&Wp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Vp(r,i)?o=null:s!==null&&Vp(r,s)&&(t.flags|=32),Lk(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&Wp(t),null;case 13:return Dk(e,t,n);case 4:return Hg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=lo(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ix(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ze(Vu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=vr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),Yp(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(re(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Yp(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Zs(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),sx(e,t,r,i,n);case 15:return Ok(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),cu(e,t),t.tag=1,Jt(r)?(e=!0,Fu(t)):e=!1,Zs(t,n),Ck(t,r,i),Qp(t,r,i,n),em(null,t,r,!0,e,n);case 19:return jk(e,t,n);case 22:return Rk(e,t,n)}throw Error(re(156,t.tag))};function Jk(e,t){return NE(e,t)}function DR(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 kn(e,t,n,r){return new DR(e,t,n,r)}function sy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function jR(e){if(typeof e=="function")return sy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kg)return 11;if(e===Sg)return 14}return 2}function ri(e,t){var n=e.alternate;return n===null?(n=kn(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 fu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")sy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ts:return ji(n.children,i,s,t);case Eg:o=8,i|=8;break;case vp:return e=kn(12,n,t,i|2),e.elementType=vp,e.lanes=s,e;case _p:return e=kn(13,n,t,i),e.elementType=_p,e.lanes=s,e;case Ep:return e=kn(19,n,t,i),e.elementType=Ep,e.lanes=s,e;case cE:return Bd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case aE:o=10;break e;case lE:o=9;break e;case kg:o=11;break e;case Sg:o=14;break e;case $r:o=16,r=null;break e}throw Error(re(130,e==null?e:typeof e,""))}return t=kn(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function ji(e,t,n,r){return e=kn(7,e,r,t),e.lanes=n,e}function Bd(e,t,n,r){return e=kn(22,e,r,t),e.elementType=cE,e.lanes=n,e.stateNode={isHidden:!1},e}function lh(e,t,n){return e=kn(6,e,null,t),e.lanes=n,e}function ch(e,t,n){return t=kn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function BR(e,t,n,r,i){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=Vf(0),this.expirationTimes=Vf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function oy(e,t,n,r,i,s,o,a,l){return e=new BR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=kn(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vg(s),e}function $R(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rS)}catch(e){console.error(e)}}rS(),rE.exports=mn;var HR=rE.exports,xx=HR;xp.createRoot=xx.createRoot,xp.hydrateRoot=xx.hydrateRoot;const uy=S.createContext({});function Vd(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Hd=S.createContext(null),sl=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class KR extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function qR({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=S.useContext(sl);return S.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return s&&(d.nonce=s),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` +`+s.stack}return{value:e,source:t,stack:i,digest:null}}function oh(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Zp(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var xR=typeof WeakMap=="function"?WeakMap:Map;function ME(e,t,n){n=vr(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xu||(Xu=!0,lm=r),Zp(e,t)},n}function IE(e,t,n){n=vr(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){Zp(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){Zp(e,t),typeof r!="function"&&(ti===null?ti=new Set([this]):ti.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function tx(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new xR;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=RR.bind(null,e,t,n),t.then(e,e))}function nx(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 rx(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=vr(-1,1),t.tag=2,ei(n,t,1))),n.lanes|=1),e)}var wR=Ir.ReactCurrentOwner,Xt=!1;function zt(e,t,n,r){t.child=e===null?oE(t,null,n,r):lo(t,e.child,n,r)}function ix(e,t,n,r,i){n=n.render;var s=t.ref;return Zs(t,i),r=Wg(e,t,n,r,s,i),n=Yg(),e!==null&&!Xt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Ar(e,t,i)):(Ge&&n&&Dg(t),t.flags|=1,zt(e,t,r,i),t.child)}function sx(e,t,n,r,i){if(e===null){var s=n.type;return typeof s=="function"&&!sy(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,OE(e,t,s,r,i)):(e=fu(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&i)){var o=s.memoizedProps;if(n=n.compare,n=n!==null?n:Ya,n(o,r)&&e.ref===t.ref)return Ar(e,t,i)}return t.flags|=1,e=ri(s,r),e.ref=t.ref,e.return=t,t.child=e}function OE(e,t,n,r,i){if(e!==null){var s=e.memoizedProps;if(Ya(s,r)&&e.ref===t.ref)if(Xt=!1,t.pendingProps=r=s,(e.lanes&i)!==0)e.flags&131072&&(Xt=!0);else return t.lanes=e.lanes,Ar(e,t,i)}return Jp(e,t,n,r,i)}function RE(e,t,n){var r=t.pendingProps,i=r.children,s=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Fe(js,on),on|=n;else{if(!(n&1073741824))return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Fe(js,on),on|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,Fe(js,on),on|=r}else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,Fe(js,on),on|=r;return zt(e,t,i,n),t.child}function LE(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Jp(e,t,n,r,i){var s=Jt(n)?Vi:Pt.current;return s=oo(t,s),Zs(t,i),n=Wg(e,t,n,r,s,i),r=Yg(),e!==null&&!Xt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Ar(e,t,i)):(Ge&&r&&Dg(t),t.flags|=1,zt(e,t,n,i),t.child)}function ox(e,t,n,r,i){if(Jt(n)){var s=!0;Fu(t)}else s=!1;if(Zs(t,i),t.stateNode===null)cu(e,t),CE(t,n,r),Qp(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,a=t.memoizedProps;o.props=a;var l=o.context,c=n.contextType;typeof c=="object"&&c!==null?c=Tn(c):(c=Jt(n)?Vi:Pt.current,c=oo(t,c));var d=n.getDerivedStateFromProps,u=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function";u||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==r||l!==c)&&ex(t,o,r,c),Fr=!1;var h=t.memoizedState;o.state=h,Ku(t,r,o,i),l=t.memoizedState,a!==r||h!==l||Zt.current||Fr?(typeof d=="function"&&(Xp(t,n,d,r),l=t.memoizedState),(a=Fr||Jb(t,n,a,r,h,l,c))?(u||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=c,r=a):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,lE(e,t),a=t.memoizedProps,c=t.type===t.elementType?a:Pn(t.type,a),o.props=c,u=t.pendingProps,h=o.context,l=n.contextType,typeof l=="object"&&l!==null?l=Tn(l):(l=Jt(n)?Vi:Pt.current,l=oo(t,l));var p=n.getDerivedStateFromProps;(d=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==u||h!==l)&&ex(t,o,r,l),Fr=!1,h=t.memoizedState,o.state=h,Ku(t,r,o,i);var g=t.memoizedState;a!==u||h!==g||Zt.current||Fr?(typeof p=="function"&&(Xp(t,n,p,r),g=t.memoizedState),(c=Fr||Jb(t,n,c,r,h,g,l)||!1)?(d||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,g,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,g,l)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),o.props=r,o.state=g,o.context=l,r=c):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return em(e,t,n,r,s,i)}function em(e,t,n,r,i,s){LE(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return i&&Kb(t,n,!1),Ar(e,t,s);r=t.stateNode,wR.current=t;var a=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=lo(t,e.child,null,s),t.child=lo(t,null,a,s)):zt(e,t,a,s),t.memoizedState=r.state,i&&Kb(t,n,!0),t.child}function PE(e){var t=e.stateNode;t.pendingContext?Hb(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Hb(e,t.context,!1),Hg(e,t.containerInfo)}function ax(e,t,n,r,i){return ao(),Bg(i),t.flags|=256,zt(e,t,n,r),t.child}var tm={dehydrated:null,treeContext:null,retryLane:0};function nm(e){return{baseLanes:e,cachePool:null,transitions:null}}function DE(e,t,n){var r=t.pendingProps,i=Qe.current,s=!1,o=(t.flags&128)!==0,a;if((a=o)||(a=e!==null&&e.memoizedState===null?!1:(i&2)!==0),a?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),Fe(Qe,i&1),e===null)return Wp(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,s?(r=t.mode,s=t.child,o={mode:"hidden",children:o},!(r&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=Bd(o,r,0,null),e=ji(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=nm(n),t.memoizedState=tm,e):Zg(t,o));if(i=e.memoizedState,i!==null&&(a=i.dehydrated,a!==null))return vR(e,t,o,r,a,i,n);if(s){s=r.fallback,o=t.mode,i=e.child,a=i.sibling;var l={mode:"hidden",children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=ri(i,l),r.subtreeFlags=i.subtreeFlags&14680064),a!==null?s=ri(a,s):(s=ji(s,o,n,null),s.flags|=2),s.return=t,r.return=t,r.sibling=s,t.child=r,r=s,s=t.child,o=e.child.memoizedState,o=o===null?nm(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=e.childLanes&~n,t.memoizedState=tm,r}return s=e.child,e=s.sibling,r=ri(s,{mode:"visible",children:r.children}),!(t.mode&1)&&(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 Zg(e,t){return t=Bd({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function kc(e,t,n,r){return r!==null&&Bg(r),lo(t,e.child,null,n),e=Zg(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function vR(e,t,n,r,i,s,o){if(n)return t.flags&256?(t.flags&=-257,r=oh(Error(re(422))),kc(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,i=t.mode,r=Bd({mode:"visible",children:r.children},i,0,null),s=ji(s,i,o,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&lo(t,e.child,null,o),t.child.memoizedState=nm(o),t.memoizedState=tm,s);if(!(t.mode&1))return kc(e,t,o,null);if(i.data==="$!"){if(r=i.nextSibling&&i.nextSibling.dataset,r)var a=r.dgst;return r=a,s=Error(re(419)),r=oh(s,r,void 0),kc(e,t,o,r)}if(a=(o&e.childLanes)!==0,Xt||a){if(r=vt,r!==null){switch(o&-o){case 4:i=2;break;case 16:i=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:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(r.suspendedLanes|o)?0:i,i!==0&&i!==s.retryLane&&(s.retryLane=i,Tr(e,i),Vn(r,e,i,-1))}return iy(),r=oh(Error(re(421))),kc(e,t,o,r)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=LR.bind(null,e),i._reactRetry=t,null):(e=s.treeContext,ln=Jr(i.nextSibling),cn=t,Ge=!0,Bn=null,e!==null&&(wn[vn++]=yr,wn[vn++]=br,wn[vn++]=Hi,yr=e.id,br=e.overflow,Hi=t),t=Zg(t,r.children),t.flags|=4096,t)}function lx(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Yp(e.return,t,n)}function ah(e,t,n,r,i){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=r,s.tail=n,s.tailMode=i)}function jE(e,t,n){var r=t.pendingProps,i=r.revealOrder,s=r.tail;if(zt(e,t,r.children,n),r=Qe.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&lx(e,n,t);else if(e.tag===19)lx(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(Fe(Qe,r),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&qu(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),ah(t,!1,i,n,s);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&qu(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}ah(t,!0,n,null,s);break;case"together":ah(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function cu(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Ar(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),qi|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(re(153));if(t.child!==null){for(e=t.child,n=ri(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ri(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function _R(e,t,n){switch(t.tag){case 3:PE(t),ao();break;case 5:cE(t);break;case 1:Jt(t.type)&&Fu(t);break;case 4:Hg(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;Fe(Vu,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(Fe(Qe,Qe.current&1),t.flags|=128,null):n&t.child.childLanes?DE(e,t,n):(Fe(Qe,Qe.current&1),e=Ar(e,t,n),e!==null?e.sibling:null);Fe(Qe,Qe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return jE(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Fe(Qe,Qe.current),r)break;return null;case 22:case 23:return t.lanes=0,RE(e,t,n)}return Ar(e,t,n)}var BE,rm,$E,FE;BE=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}};rm=function(){};$E=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,Ii(rr.current);var s=null;switch(n){case"input":i=Sp(e,i),r=Sp(e,r),s=[];break;case"select":i=et({},i,{value:void 0}),r=et({},r,{value:void 0}),s=[];break;case"textarea":i=Ap(e,i),r=Ap(e,r),s=[];break;default:typeof i.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Bu)}Mp(n,r);var o;n=null;for(c in i)if(!r.hasOwnProperty(c)&&i.hasOwnProperty(c)&&i[c]!=null)if(c==="style"){var a=i[c];for(o in a)a.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(Ua.hasOwnProperty(c)?s||(s=[]):(s=s||[]).push(c,null));for(c in r){var l=r[c];if(a=i!=null?i[c]:void 0,r.hasOwnProperty(c)&&l!==a&&(l!=null||a!=null))if(c==="style")if(a){for(o in a)!a.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in l)l.hasOwnProperty(o)&&a[o]!==l[o]&&(n||(n={}),n[o]=l[o])}else n||(s||(s=[]),s.push(c,n)),n=l;else c==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,a=a?a.__html:void 0,l!=null&&a!==l&&(s=s||[]).push(c,l)):c==="children"?typeof l!="string"&&typeof l!="number"||(s=s||[]).push(c,""+l):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(Ua.hasOwnProperty(c)?(l!=null&&c==="onScroll"&&Ve("scroll",e),s||a===l||(s=[])):(s=s||[]).push(c,l))}n&&(s=s||[]).push("style",n);var c=s;(t.updateQueue=c)&&(t.flags|=4)}};FE=function(e,t,n,r){n!==r&&(t.flags|=4)};function Zo(e,t){if(!Ge)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 Mt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function kR(e,t,n){var r=t.pendingProps;switch(jg(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mt(t),null;case 1:return Jt(t.type)&&$u(),Mt(t),null;case 3:return r=t.stateNode,co(),He(Zt),He(Pt),qg(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(vc(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Bn!==null&&(dm(Bn),Bn=null))),rm(e,t),Mt(t),null;case 5:Kg(t);var i=Ii(el.current);if(n=t.type,e!==null&&t.stateNode!=null)$E(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(re(166));return Mt(t),null}if(e=Ii(rr.current),vc(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[tr]=t,r[Za]=s,e=(t.mode&1)!==0,n){case"dialog":Ve("cancel",r),Ve("close",r);break;case"iframe":case"object":case"embed":Ve("load",r);break;case"video":case"audio":for(i=0;i<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Za]=r,BE(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ip(n,r),n){case"dialog":Ve("cancel",e),Ve("close",e),i=r;break;case"iframe":case"object":case"embed":Ve("load",e),i=r;break;case"video":case"audio":for(i=0;ifo&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304)}else{if(!r)if(e=qu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Zo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ge)return Mt(t),null}else 2*st()-s.renderingStartTime>fo&&n!==1073741824&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=st(),t.sibling=null,n=Qe.current,Fe(Qe,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ry(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(Mt(t),t.subtreeFlags&6&&(t.flags|=8192)):Mt(t),null;case 24:return null;case 25:return null}throw Error(re(156,t.tag))}function ER(e,t){switch(jg(t),t.tag){case 1:return Jt(t.type)&&$u(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return co(),He(Zt),He(Pt),qg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Kg(t),null;case 13:if(He(Qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(re(340));ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He(Qe),null;case 4:return co(),null;case 10:return zg(t.type._context),null;case 22:case 23:return ry(),null;case 24:return null;default:return null}}var Ec=!1,Ot=!1,SR=typeof WeakSet=="function"?WeakSet:Set,he=null;function Ds(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){nt(e,t,r)}else n.current=null}function im(e,t,n){try{n()}catch(r){nt(e,t,r)}}var cx=!1;function NR(e,t){if(zp=Pu,e=Kk(),Pg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,d=0,u=e,h=null;t:for(;;){for(var p;u!==n||i!==0&&u.nodeType!==3||(a=o+i),u!==s||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(p=u.firstChild)!==null;)h=u,u=p;for(;;){if(u===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++d===r&&(l=o),(p=u.nextSibling)!==null)break;u=h,h=u.parentNode}u=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Up={focusedElem:e,selectionRange:n},Pu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var b=g.memoizedProps,w=g.memoizedState,m=t.stateNode,x=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),w);m.__reactInternalSnapshotBeforeUpdate=x}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(re(163))}}catch(v){nt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=cx,cx=!1,g}function Ta(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&im(t,n,s)}i=i.next}while(i!==r)}}function Dd(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 sm(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 zE(e){var t=e.alternate;t!==null&&(e.alternate=null,zE(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Za],delete t[Kp],delete t[lR],delete t[cR])),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 UE(e){return e.tag===5||e.tag===3||e.tag===4}function ux(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||UE(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 om(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=Bu));else if(r!==4&&(e=e.child,e!==null))for(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}function am(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(am(e,t,n),e=e.sibling;e!==null;)am(e,t,n),e=e.sibling}var Et=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)VE(e,t,n),n=n.sibling}function VE(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Ad,n)}catch{}switch(n.tag){case 5:Ot||Ds(n,t);case 6:var r=Et,i=Dn;Et=null,Lr(e,t,n),Et=r,Dn=i,Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Et.removeChild(n.stateNode));break;case 18:Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?eh(e.parentNode,n):e.nodeType===1&&eh(e,n),Ga(e)):eh(Et,n.stateNode));break;case 4:r=Et,i=Dn,Et=n.stateNode.containerInfo,Dn=!0,Lr(e,t,n),Et=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&im(n,t,o),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Ot&&(Ds(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){nt(n,t,a)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Lr(e,t,n),Ot=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function dx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new SR),t.forEach(function(r){var i=PR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=st()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Qu=0,Re&6)throw Error(re(331));var i=Re;for(Re|=4,he=e.current;he!==null;){var s=he,o=s.child;if(he.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lst()-ty?Di(e,0):ey|=n),en(e,t)}function QE(e,t){t===0&&(e.mode&1?(t=mc,mc<<=1,!(mc&130023424)&&(mc=4194304)):t=1);var n=Ht();e=Tr(e,t),e!==null&&(Ol(e,t,n),en(e,n))}function LR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),QE(e,n)}function PR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(re(314))}r!==null&&r.delete(t),QE(e,n)}var ZE;ZE=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,_R(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,Ge&&t.flags&1048576&&nE(t,Uu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cu(e,t),e=t.pendingProps;var i=oo(t,Pt.current);Zs(t,n),i=Wg(null,t,r,e,i,n);var s=Yg();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Fu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Vg(t),i.updater=Pd,t.stateNode=i,i._reactInternals=t,Qp(t,r,e,n),t=em(null,t,r,!0,s,n)):(t.tag=0,Ge&&s&&Dg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(cu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=jR(r),e=Pn(r,e),i){case 0:t=Jp(null,t,r,e,n);break e;case 1:t=ox(null,t,r,e,n);break e;case 11:t=ix(null,t,r,e,n);break e;case 14:t=sx(null,t,r,Pn(r.type,e),n);break e}throw Error(re(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),Jp(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ox(e,t,r,i,n);case 3:e:{if(PE(t),e===null)throw Error(re(387));r=t.pendingProps,s=t.memoizedState,i=s.element,lE(e,t),Ku(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=uo(Error(re(423)),t),t=ax(e,t,r,n,i);break e}else if(r!==i){i=uo(Error(re(424)),t),t=ax(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,Ge=!0,Bn=null,n=oE(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ao(),r===i){t=Ar(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return cE(t),e===null&&Wp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Vp(r,i)?o=null:s!==null&&Vp(r,s)&&(t.flags|=32),LE(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&Wp(t),null;case 13:return DE(e,t,n);case 4:return Hg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=lo(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ix(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,Fe(Vu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=vr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),Yp(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(re(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Yp(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Zs(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),sx(e,t,r,i,n);case 15:return OE(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),cu(e,t),t.tag=1,Jt(r)?(e=!0,Fu(t)):e=!1,Zs(t,n),CE(t,r,i),Qp(t,r,i,n),em(null,t,r,!0,e,n);case 19:return jE(e,t,n);case 22:return RE(e,t,n)}throw Error(re(156,t.tag))};function JE(e,t){return Nk(e,t)}function DR(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 En(e,t,n,r){return new DR(e,t,n,r)}function sy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function jR(e){if(typeof e=="function")return sy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Eg)return 11;if(e===Sg)return 14}return 2}function ri(e,t){var n=e.alternate;return n===null?(n=En(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 fu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")sy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ts:return ji(n.children,i,s,t);case kg:o=8,i|=8;break;case vp:return e=En(12,n,t,i|2),e.elementType=vp,e.lanes=s,e;case _p:return e=En(13,n,t,i),e.elementType=_p,e.lanes=s,e;case kp:return e=En(19,n,t,i),e.elementType=kp,e.lanes=s,e;case ck:return Bd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ak:o=10;break e;case lk:o=9;break e;case Eg:o=11;break e;case Sg:o=14;break e;case $r:o=16,r=null;break e}throw Error(re(130,e==null?e:typeof e,""))}return t=En(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function ji(e,t,n,r){return e=En(7,e,r,t),e.lanes=n,e}function Bd(e,t,n,r){return e=En(22,e,r,t),e.elementType=ck,e.lanes=n,e.stateNode={isHidden:!1},e}function lh(e,t,n){return e=En(6,e,null,t),e.lanes=n,e}function ch(e,t,n){return t=En(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function BR(e,t,n,r,i){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=Vf(0),this.expirationTimes=Vf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function oy(e,t,n,r,i,s,o,a,l){return e=new BR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=En(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vg(s),e}function $R(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rS)}catch(e){console.error(e)}}rS(),rk.exports=mn;var HR=rk.exports,xx=HR;xp.createRoot=xx.createRoot,xp.hydrateRoot=xx.hydrateRoot;const uy=S.createContext({});function Vd(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Hd=S.createContext(null),sl=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class KR extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function qR({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=S.useContext(sl);return S.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return s&&(d.nonce=s),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` [data-motion-pop-id="${n}"] { position: absolute !important; width: ${o}px !important; @@ -45,7 +45,7 @@ Error generating stack: `+s.message+` top: ${l}px !important; left: ${c}px !important; } - `),()=>{document.head.removeChild(d)}},[t]),f.jsx(KR,{isPresent:t,childRef:r,sizeRef:i,children:S.cloneElement(e,{ref:r})})}const GR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Vd(WR),l=S.useId(),c=S.useCallback(u=>{a.set(u,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),d=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:u=>(a.set(u,!1),()=>a.delete(u))}),s?[Math.random(),c]:[n,c]);return S.useMemo(()=>{a.forEach((u,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(qR,{isPresent:n,children:e})),f.jsx(Hd.Provider,{value:d,children:e})};function WR(){return new Map}function iS(e=!0){const t=S.useContext(Hd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=S.useId();S.useEffect(()=>{e&&i(s)},[e]);const o=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Tc=e=>e.key||"";function wx(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const dy=typeof window<"u",sS=dy?S.useLayoutEffect:S.useEffect,fy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=iS(o),c=S.useMemo(()=>wx(e),[e]),d=o&&!a?[]:c.map(Tc),u=S.useRef(!0),h=S.useRef(c),p=Vd(()=>new Map),[g,b]=S.useState(c),[w,m]=S.useState(c);sS(()=>{u.current=!1,h.current=c;for(let v=0;v{const E=Tc(v),_=o&&!a?!1:c===w||d.includes(E),C=()=>{if(p.has(E))p.set(E,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(y==null||y(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(GR,{isPresent:_,initial:!u.current||n?void 0:!1,custom:_?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:_?void 0:C,children:v},E)})})},un=e=>e;let oS=un;const YR={useManualTiming:!1};function XR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,d=!1,u=!1)=>{const p=u&&r?t:n;return d&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Ac=["read","resolveKeyframes","update","preRender","render","postRender"],QR=40;function aS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Ac.reduce((m,x)=>(m[x]=XR(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:d,render:u,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,QR),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),d.process(i),u.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Ac.reduce((m,x)=>{const y=o[x];return m[x]=(v,E=!1,_=!1)=>(n||g(),y.schedule(v,E,_)),m},{}),cancel:m=>{for(let x=0;xvx[e].some(n=>!!t[n])};function ZR(e){for(const t in e)ho[t]={...ho[t],...e[t]}}const JR=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ed(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||JR.has(e)}let cS=e=>!ed(e);function uS(e){e&&(cS=t=>t.startsWith("on")?!ed(t):e(t))}try{uS(require("@emotion/is-prop-valid").default)}catch{}function eL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(cS(i)||n===!0&&ed(i)||!t&&!ed(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function tL({children:e,isValidProp:t,...n}){t&&uS(t),n={...S.useContext(sl),...n},n.isStatic=Vd(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(sl.Provider,{value:r,children:e})}function nL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Kd=S.createContext({});function ol(e){return typeof e=="string"||Array.isArray(e)}function qd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const hy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],py=["initial",...hy];function Gd(e){return qd(e.animate)||py.some(t=>ol(e[t]))}function dS(e){return!!(Gd(e)||e.variants)}function rL(e,t){if(Gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ol(n)?n:void 0,animate:ol(r)?r:void 0}}return e.inherit!==!1?t:{}}function iL(e){const{initial:t,animate:n}=rL(e,S.useContext(Kd));return S.useMemo(()=>({initial:t,animate:n}),[_x(t),_x(n)])}function _x(e){return Array.isArray(e)?e.join(" "):e}const sL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function oL(e,t,n){return S.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Bs(n)&&(n.current=r))},[t])}const my=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),aL="framerAppearId",fS="data-"+my(aL),{schedule:gy}=aS(queueMicrotask,!1),hS=S.createContext({});function lL(e,t,n,r,i){var s,o;const{visualElement:a}=S.useContext(Kd),l=S.useContext(lS),c=S.useContext(Hd),d=S.useContext(sl).reducedMotion,u=S.useRef(null);r=r||l.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const h=u.current,p=S.useContext(hS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&cL(u.current,n,i,p);const g=S.useRef(!1);S.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[fS],w=S.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,b)));return sS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),gy.render(h.render),w.current&&h.animationState&&h.animationState.animateChanges())}),S.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,b)}),w.current=!1))}),h}function cL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:pS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Bs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function pS(e){if(e)return e.options.allowProjection!==!1?e.projection:pS(e.parent)}function uL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&ZR(e);function a(c,d){let u;const h={...S.useContext(sl),...c,layoutId:dL(c)},{isStatic:p}=h,g=iL(c),b=r(c,p);if(!p&&dy){fL();const w=hL(h);u=w.MeasureLayout,g.visualElement=lL(i,b,h,t,w.ProjectionNode)}return f.jsxs(Kd.Provider,{value:g,children:[u&&g.visualElement?f.jsx(u,{visualElement:g.visualElement,...h}):null,n(i,c,oL(b,g.visualElement,d),b,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=S.forwardRef(a);return l[sL]=i,l}function dL({layoutId:e}){const t=S.useContext(uy).id;return t&&e!==void 0?t+"-"+e:e}function fL(e,t){S.useContext(lS).strict}function hL(e){const{drag:t,layout:n}=ho;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const pL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function yy(e){return typeof e!="string"||e.includes("-")?!1:!!(pL.indexOf(e)>-1||/[A-Z]/u.test(e))}function Ex(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function by(e,t,n,r){if(typeof t=="function"){const[i,s]=Ex(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Ex(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const fm=e=>Array.isArray(e),mL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),gL=e=>fm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function hu(e){const t=Rt(e)?e.get():e;return mL(t)?t.toValue():t}function yL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:bL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const mS=e=>(t,n)=>{const r=S.useContext(Kd),i=S.useContext(Hd),s=()=>yL(e,t,r,i);return n?s():Vd(s)};function bL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=hu(s[h]);let{initial:o,animate:a}=e;const l=Gd(e),c=dS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const u=d?a:o;if(u&&typeof u!="boolean"&&!qd(u)){const h=Array.isArray(u)?u:[u];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),yS=gS("--"),xL=gS("var(--"),xy=e=>xL(e)?wL.test(e.split("/*")[0].trim()):!1,wL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,bS=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Cr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},al={...Po,transform:e=>Cr(0,1,e)},Cc={...Po,default:1},Dl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=Dl("deg"),ir=Dl("%"),_e=Dl("px"),vL=Dl("vh"),_L=Dl("vw"),kx={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},EL={borderWidth:_e,borderTopWidth:_e,borderRightWidth:_e,borderBottomWidth:_e,borderLeftWidth:_e,borderRadius:_e,radius:_e,borderTopLeftRadius:_e,borderTopRightRadius:_e,borderBottomRightRadius:_e,borderBottomLeftRadius:_e,width:_e,maxWidth:_e,height:_e,maxHeight:_e,top:_e,right:_e,bottom:_e,left:_e,padding:_e,paddingTop:_e,paddingRight:_e,paddingBottom:_e,paddingLeft:_e,margin:_e,marginTop:_e,marginRight:_e,marginBottom:_e,marginLeft:_e,backgroundPositionX:_e,backgroundPositionY:_e},kL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Cc,scaleX:Cc,scaleY:Cc,scaleZ:Cc,skew:Br,skewX:Br,skewY:Br,distance:_e,translateX:_e,translateY:_e,translateZ:_e,x:_e,y:_e,z:_e,perspective:_e,transformPerspective:_e,opacity:al,originX:kx,originY:kx,originZ:_e},Sx={...Po,transform:Math.round},wy={...EL,...kL,zIndex:Sx,size:_e,fillOpacity:al,strokeOpacity:al,numOctaves:Sx},SL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},NL=Lo.length;function TL(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),xS=()=>({...Ey(),attrs:{}}),ky=e=>typeof e=="string"&&e.toLowerCase()==="svg";function wS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const vS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function _S(e,t,n,r){wS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(vS.has(i)?i:my(i),t.attrs[i])}const td={};function OL(e){Object.assign(td,e)}function ES(e,{layout:t,layoutId:n}){return is.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!td[e]||e==="opacity")}function Sy(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||ES(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function kS(e,t,n){const r=Sy(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Lo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function RL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Tx=["x","y","width","height","cx","cy","r"],LL={useVisualState:mS({scrapeMotionValuesFromProps:kS,createRenderState:xS,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(is.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{RL(n,r),qe.render(()=>{_y(r,i,ky(n.tagName),e.transformTemplate),_S(n,r)})})}})},PL={useVisualState:mS({scrapeMotionValuesFromProps:Sy,createRenderState:Ey})};function SS(e,t,n){for(const r in t)!Rt(t[r])&&!ES(r,n)&&(e[r]=t[r])}function DL({transformTemplate:e},t){return S.useMemo(()=>{const n=Ey();return vy(n,t,e),Object.assign({},n.vars,n.style)},[t])}function jL(e,t){const n=e.style||{},r={};return SS(r,n,e),Object.assign(r,DL(e,t)),r}function BL(e,t){const n={},r=jL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function $L(e,t,n,r){const i=S.useMemo(()=>{const s=xS();return _y(s,t,ky(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};SS(s,e.style,e),i.style={...s,...i.style}}return i}function FL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(yy(n)?$L:BL)(r,s,o,n),c=eL(r,typeof n=="string",e),d=n!==S.Fragment?{...c,...l,ref:i}:{},{children:u}=r,h=S.useMemo(()=>Rt(u)?u.get():u,[u]);return S.createElement(n,{...d,children:h})}}function zL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...yy(r)?LL:PL,preloadedFeatures:e,useRender:FL(i),createVisualElement:t,Component:r};return uL(o)}}function NS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(pu===void 0&&sr.set(St.isProcessing||YR.useManualTiming?St.timestamp:performance.now()),pu),set:e=>{pu=e,queueMicrotask(UL)}};function Ty(e,t){e.indexOf(t)===-1&&e.push(t)}function Ay(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Cy{constructor(){this.subscriptions=[]}add(t){return Ty(this.subscriptions,t),()=>Ay(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class HL{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=VL(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Cy);const r=this.events[t].add(n);return t==="change"?()=>{r(),qe.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ax)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ax);return AS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ll(e,t){return new HL(e,t)}function KL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ll(n))}function qL(e,t){const n=Wd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=gL(s[o]);KL(e,o,a)}}function GL(e){return!!(Rt(e)&&e.add)}function hm(e,t){const n=e.getValue("willChange");if(GL(n))return n.add(t)}function CS(e){return e.props[fS]}function My(e){let t;return()=>(t===void 0&&(t=e()),t)}const WL=My(()=>window.ScrollTimeline!==void 0);class YL{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(WL()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class XL extends YL{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const _r=e=>e*1e3,Er=e=>e/1e3;function Iy(e){return typeof e=="function"}function Cx(e,t){e.timeline=t,e.onfinish=null}const Oy=e=>Array.isArray(e)&&typeof e[0]=="number",QL={linearEasing:void 0};function ZL(e,t){const n=My(e);return()=>{var r;return(r=QL[t])!==null&&r!==void 0?r:n()}}const nd=ZL(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),po=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},MS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,pm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:pa([0,.65,.55,1]),circOut:pa([.55,0,1,.45]),backIn:pa([.31,.01,.66,-.59]),backOut:pa([.33,1.53,.69,.99])};function OS(e,t){if(e)return typeof e=="function"&&nd()?MS(e,t):Oy(e)?pa(e):Array.isArray(e)?e.map(n=>OS(n,t)||pm.easeOut):pm[e]}const RS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,JL=1e-7,eP=12;function tP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=RS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>JL&&++atP(s,0,1,e,n);return s=>s===0||s===1?s:RS(i(s),t,r)}const LS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,PS=e=>t=>1-e(1-t),DS=jl(.33,1.53,.69,.99),Ry=PS(DS),jS=LS(Ry),BS=e=>(e*=2)<1?.5*Ry(e):.5*(2-Math.pow(2,-10*(e-1))),Ly=e=>1-Math.sin(Math.acos(e)),$S=PS(Ly),FS=LS(Ly),zS=e=>/^0[^.\s]+$/u.test(e);function nP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||zS(e):!0}const Ma=e=>Math.round(e*1e5)/1e5,Py=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rP(e){return e==null}const iP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Dy=(e,t)=>n=>!!(typeof n=="string"&&iP.test(n)&&n.startsWith(e)||t&&!rP(n)&&Object.prototype.hasOwnProperty.call(n,t)),US=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Py);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},sP=e=>Cr(0,255,e),dh={...Po,transform:e=>Math.round(sP(e))},Oi={test:Dy("rgb","red"),parse:US("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dh.transform(e)+", "+dh.transform(t)+", "+dh.transform(n)+", "+Ma(al.transform(r))+")"};function oP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const mm={test:Dy("#"),parse:oP,transform:Oi.transform},$s={test:Dy("hsl","hue"),parse:US("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ma(t))+", "+ir.transform(Ma(n))+", "+Ma(al.transform(r))+")"},It={test:e=>Oi.test(e)||mm.test(e)||$s.test(e),parse:e=>Oi.test(e)?Oi.parse(e):$s.test(e)?$s.parse(e):mm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Oi.transform(e):$s.transform(e)},aP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function lP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Py))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(aP))===null||n===void 0?void 0:n.length)||0)>0}const VS="number",HS="color",cP="var",uP="var(",Mx="${}",dP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function cl(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(dP,l=>(It.test(l)?(r.color.push(s),i.push(HS),n.push(It.parse(l))):l.startsWith(uP)?(r.var.push(s),i.push(cP),n.push(l)):(r.number.push(s),i.push(VS),n.push(parseFloat(l))),++s,Mx)).split(Mx);return{values:n,split:a,indexes:r,types:i}}function KS(e){return cl(e).values}function qS(e){const{split:t,types:n}=cl(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function hP(e){const t=KS(e);return qS(e)(t.map(fP))}const ci={test:lP,parse:KS,createTransformer:qS,getAnimatableNone:hP},pP=new Set(["brightness","contrast","saturate","opacity"]);function mP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Py)||[];if(!r)return e;const i=n.replace(r,"");let s=pP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const gP=/\b([a-z-]*)\(.*?\)/gu,gm={...ci,getAnimatableNone:e=>{const t=e.match(gP);return t?t.map(mP).join(" "):e}},yP={...wy,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:gm,WebkitFilter:gm},jy=e=>yP[e];function GS(e,t){let n=jy(e);return n!==gm&&(n=ci),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const bP=new Set(["auto","none","0"]);function xP(e,t,n){let r=0,i;for(;re===Po||e===_e,Ox=(e,t)=>parseFloat(e.split(", ")[t]),Rx=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Ox(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Ox(s[1],e):0}},wP=new Set(["x","y","z"]),vP=Lo.filter(e=>!wP.has(e));function _P(e){const t=[];return vP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Rx(4,13),y:Rx(5,14)};mo.translateX=mo.x;mo.translateY=mo.y;const Bi=new Set;let ym=!1,bm=!1;function WS(){if(bm){const e=Array.from(Bi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=_P(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}bm=!1,ym=!1,Bi.forEach(e=>e.complete()),Bi.clear()}function YS(){Bi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(bm=!0)})}function EP(){YS(),WS()}class By{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Bi.add(this),ym||(ym=!0,qe.read(YS),qe.resolveKeyframes(WS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),kP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function SP(e){const t=kP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function QS(e,t,n=1){const[r,i]=SP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return XS(o)?parseFloat(o):o}return xy(i)?QS(i,t,n+1):i}const ZS=e=>t=>t.test(e),NP={test:e=>e==="auto",parse:e=>e},JS=[Po,_e,ir,Br,_L,vL,NP],Lx=e=>JS.find(ZS(e));class eN extends By{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Px=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ci.test(e)||e==="0")&&!e.startsWith("url("));function TP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Yd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(CP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const MP=40;class tN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>MP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&EP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!AP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Yd(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const xm=2e4;function nN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=xm?1/0:t}const Je=(e,t,n)=>e+(t-e)*n;function fh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function IP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=fh(l,a,e+1/3),s=fh(l,a,e),o=fh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function rd(e,t){return n=>n>0?t:e}const hh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},OP=[mm,Oi,$s],RP=e=>OP.find(t=>t.test(e));function Dx(e){const t=RP(e);if(!t)return!1;let n=t.parse(e);return t===$s&&(n=IP(n)),n}const jx=(e,t)=>{const n=Dx(e),r=Dx(t);if(!n||!r)return rd(e,t);const i={...n};return s=>(i.red=hh(n.red,r.red,s),i.green=hh(n.green,r.green,s),i.blue=hh(n.blue,r.blue,s),i.alpha=Je(n.alpha,r.alpha,s),Oi.transform(i))},LP=(e,t)=>n=>t(e(n)),Bl=(...e)=>e.reduce(LP),wm=new Set(["none","hidden"]);function PP(e,t){return wm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function DP(e,t){return n=>Je(e,t,n)}function $y(e){return typeof e=="number"?DP:typeof e=="string"?xy(e)?rd:It.test(e)?jx:$P:Array.isArray(e)?rN:typeof e=="object"?It.test(e)?jx:jP:rd}function rN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>$y(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function BP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ci.createTransformer(t),r=cl(e),i=cl(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?wm.has(e)&&!i.values.length||wm.has(t)&&!r.values.length?PP(e,t):Bl(rN(BP(r,i),i.values),n):rd(e,t)};function iN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Je(e,t,n):$y(e)(e,t)}const FP=5;function sN(e,t,n){const r=Math.max(t-FP,0);return AS(n-e(r),t-r)}const nt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ph=.001;function zP({duration:e=nt.duration,bounce:t=nt.bounce,velocity:n=nt.velocity,mass:r=nt.mass}){let i,s,o=1-t;o=Cr(nt.minDamping,nt.maxDamping,o),e=Cr(nt.minDuration,nt.maxDuration,Er(e)),o<1?(i=c=>{const d=c*o,u=d*e,h=d-n,p=vm(c,o),g=Math.exp(-u);return ph-h/p*g},s=c=>{const u=c*o*e,h=u*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-u),b=vm(Math.pow(c,2),o);return(-i(c)+ph>0?-1:1)*((h-p)*g)/b}):(i=c=>{const d=Math.exp(-c*e),u=(c-n)*e+1;return-ph+d*u},s=c=>{const d=Math.exp(-c*e),u=(n-c)*(e*e);return d*u});const a=5/e,l=VP(i,s,a);if(e=_r(e),isNaN(l))return{stiffness:nt.stiffness,damping:nt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const UP=12;function VP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function qP(e){let t={velocity:nt.velocity,stiffness:nt.stiffness,damping:nt.damping,mass:nt.mass,isResolvedFromDuration:!1,...e};if(!Bx(e,KP)&&Bx(e,HP))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Cr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:nt.mass,stiffness:i,damping:s}}else{const n=zP(e);t={...t,...n,mass:nt.mass},t.isResolvedFromDuration=!0}return t}function oN(e=nt.visualDuration,t=nt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:d,duration:u,velocity:h,isResolvedFromDuration:p}=qP({...n,velocity:-Er(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*d)),w=o-s,m=Er(Math.sqrt(l/d)),x=Math.abs(w)<5;r||(r=x?nt.restSpeed.granular:nt.restSpeed.default),i||(i=x?nt.restDelta.granular:nt.restDelta.default);let y;if(b<1){const E=vm(m,b);y=_=>{const C=Math.exp(-b*m*_);return o-C*((g+b*m*w)/E*Math.sin(E*_)+w*Math.cos(E*_))}}else if(b===1)y=E=>o-Math.exp(-m*E)*(w+(g+m*w)*E);else{const E=m*Math.sqrt(b*b-1);y=_=>{const C=Math.exp(-b*m*_),N=Math.min(E*_,300);return o-C*((g+b*m*w)*Math.sinh(N)+E*w*Math.cosh(N))/E}}const v={calculatedDuration:p&&u||null,next:E=>{const _=y(E);if(p)a.done=E>=u;else{let C=0;b<1&&(C=E===0?_r(g):sN(y,E,_));const N=Math.abs(C)<=r,I=Math.abs(o-_)<=i;a.done=N&&I}return a.value=a.done?o:_,a},toString:()=>{const E=Math.min(nN(v),xm),_=MS(C=>v.next(E*C).value,E,30);return E+"ms "+_}};return v}function $x({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:d}){const u=e[0],h={done:!1,value:u},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-b*Math.exp(-N/r),y=N=>m+x(N),v=N=>{const I=x(N),A=y(N);h.done=Math.abs(I)<=c,h.value=h.done?m:A};let E,_;const C=N=>{p(h.value)&&(E=N,_=oN({keyframes:[h.value,g(h.value)],velocity:sN(y,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:d}))};return C(0),{calculatedDuration:null,next:N=>{let I=!1;return!_&&E===void 0&&(I=!0,v(N),C(N)),E!==void 0&&N>=E?_.next(N-E):(!I&&v(N),h)}}}const GP=jl(.42,0,1,1),WP=jl(0,0,.58,1),aN=jl(.42,0,.58,1),YP=e=>Array.isArray(e)&&typeof e[0]!="number",XP={linear:un,easeIn:GP,easeInOut:aN,easeOut:WP,circIn:Ly,circInOut:FS,circOut:$S,backIn:Ry,backInOut:jS,backOut:DS,anticipate:BS},Fx=e=>{if(Oy(e)){oS(e.length===4);const[t,n,r,i]=e;return jl(t,n,r,i)}else if(typeof e=="string")return XP[e];return e};function QP(e,t,n){const r=[],i=n||iN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=QP(t,r,i),l=a.length,c=d=>{if(o&&d1)for(;uc(Cr(e[0],e[s-1],d)):c}function JP(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=po(0,t,r);e.push(Je(n,1,i))}}function eD(e){const t=[0];return JP(t,e.length-1),t}function tD(e,t){return e.map(n=>n*t)}function nD(e,t){return e.map(()=>t||aN).splice(0,e.length-1)}function id({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=YP(r)?r.map(Fx):Fx(r),s={done:!1,value:t[0]},o=tD(n&&n.length===t.length?n:eD(t),e),a=ZP(o,t,{ease:Array.isArray(i)?i:nD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const rD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>qe.update(t,!0),stop:()=>li(t),now:()=>St.isProcessing?St.timestamp:sr.now()}},iD={decay:$x,inertia:$x,tween:id,keyframes:id,spring:oN},sD=e=>e/100;class Fy extends tN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||By,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Iy(n)?n:iD[n]||id;let l,c;a!==id&&typeof t[0]!="number"&&(l=Bl(sD,iN(t[0],t[1])),t=[0,100]);const d=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=nN(d));const{calculatedDuration:u}=d,h=u+i,p=h*(r+1)-i;return{generator:d,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:u,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:d,resolvedDuration:u}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:b,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),x=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let y=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,d)/u;let I=Math.floor(N),A=N%1;!A&&N>=1&&(A=1),A===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(A=1-A,b&&(A-=b/u)):g==="mirror"&&(v=o)),y=Cr(0,1,A)*u}const E=x?{done:!1,value:l[0]}:v.next(y);a&&(E.value=a(E.value));let{done:_}=E;!x&&c!==null&&(_=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&_);return C&&i!==void 0&&(E.value=Yd(l,this.options,i)),w&&w(E.value),C&&this.finish(),E}get duration(){const{resolved:t}=this;return t?Er(t.calculatedDuration):0}get time(){return Er(this.currentTime)}set time(t){t=_r(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Er(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=rD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const oD=new Set(["opacity","clipPath","filter","transform"]);function aD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const d=OS(a,i);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const lD=My(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),sd=10,cD=2e4;function uD(e){return Iy(e.type)||e.type==="spring"||!IS(e.ease)}function dD(e,t){const n=new Fy({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&nd()&&fD(s)&&(s=lN[s]),uD(this.options)){const{onComplete:u,onUpdate:h,motionValue:p,element:g,...b}=this.options,w=dD(t,b);t=w.keyframes,t.length===1&&(t[1]=t[0]),r=w.duration,i=w.times,s=w.ease,o="keyframes"}const d=aD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return d.startTime=c??this.calcStartTime(),this.pendingTimeline?(Cx(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:u}=this.options;a.set(Yd(t,this.options,n)),u&&u(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return Er(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return Er(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_r(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Cx(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:d,onComplete:u,element:h,...p}=this.options,g=new Fy({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=_r(this.time);c.setWithVelocity(g.sample(b-sd).value,g.sample(b).value,sd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return lD()&&r&&oD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const hD={type:"spring",stiffness:500,damping:25,restSpeed:10},pD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),mD={type:"keyframes",duration:.8},gD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},yD=(e,{keyframes:t})=>t.length>2?mD:is.has(e)?e.startsWith("scale")?pD(t[1]):hD:gD;function bD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...d}){return!!Object.keys(d).length}const zy=(e,t,n,r={},i,s)=>o=>{const a=Ny(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-_r(l);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};bD(a)||(d={...d,...yD(e,d)}),d.duration&&(d.duration=_r(d.duration)),d.repeatDelay&&(d.repeatDelay=_r(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let u=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(u=!0)),u&&!s&&t.get()!==void 0){const h=Yd(d.keyframes,a);if(h!==void 0)return qe.update(()=>{d.onUpdate(h),d.onComplete()}),new XL([])}return!s&&zx.supports(d)?new zx(d):new Fy(d)};function xD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function cN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in l){const h=e.getValue(u,(s=e.latestValues[u])!==null&&s!==void 0?s:null),p=l[u];if(p===void 0||d&&xD(d,u))continue;const g={delay:n,...Ny(o||{},u)};let b=!1;if(window.MotionHandoffAnimation){const m=CS(e);if(m){const x=window.MotionHandoffAnimation(m,u,qe);x!==null&&(g.startTime=x,b=!0)}}hm(e,u),h.start(zy(u,h,p,e.shouldReduceMotion&&TS.has(u)?{type:!1}:g,e,b));const w=h.animation;w&&c.push(w)}return a&&Promise.all(c).then(()=>{qe.update(()=>{a&&qL(e,a)})}),c}function _m(e,t,n={}){var r;const i=Wd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(cN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:h}=s;return wD(e,t,d+c,u,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,d]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>d())}else return Promise.all([o(),a(n.delay)])}function wD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(vD).forEach((c,d)=>{c.notify("AnimationStart",t),o.push(_m(c,t,{...s,delay:n+l(d)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function vD(e,t){return e.sortNodePosition(t)}function _D(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>_m(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=_m(e,t,n);else{const i=typeof t=="function"?Wd(e,t,n.custom):t;r=Promise.all(cN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const ED=py.length;function uN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?uN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>_D(e,n,r)))}function TD(e){let t=ND(e),n=Ux(),r=!0;const i=l=>(c,d)=>{var u;const h=Wd(e,d,l==="exit"?(u=e.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(h){const{transition:p,transitionEnd:g,...b}=h;c={...c,...b,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,d=uN(e.parent)||{},u=[],h=new Set;let p={},g=1/0;for(let w=0;wg&&v,I=!1;const A=Array.isArray(y)?y:[y];let P=A.reduce(i(m),{});E===!1&&(P={});const{prevResolvedValues:R={}}=x,$={...R,...P},O=B=>{N=!0,h.has(B)&&(I=!0,h.delete(B)),x.needsAnimating[B]=!0;const L=e.getValue(B);L&&(L.liveStyle=!1)};for(const B in $){const L=P[B],D=R[B];if(p.hasOwnProperty(B))continue;let k=!1;fm(L)&&fm(D)?k=!NS(L,D):k=L!==D,k?L!=null?O(B):h.add(B):L!==void 0&&h.has(B)?O(B):x.protectedKeys[B]=!0}x.prevProp=y,x.prevResolvedValues=P,x.isActive&&(p={...p,...P}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(_&&C)||I)&&u.push(...A.map(B=>({animation:B,options:{type:m}})))}if(h.size){const w={};h.forEach(m=>{const x=e.getBaseTarget(m),y=e.getValue(m);y&&(y.liveStyle=!0),w[m]=x??null}),u.push({animation:w})}let b=!!u.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?t(u):Promise.resolve()}function a(l,c){var d;if(n[l].isActive===c)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const u=o(l);for(const h in n)n[h].protectedKeys={};return u}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Ux(),r=!0}}}function AD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!NS(t,e):!1}function yi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Ux(){return{animate:yi(!0),whileInView:yi(),whileHover:yi(),whileTap:yi(),whileDrag:yi(),whileFocus:yi(),exit:yi()}}class hi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class CD extends hi{constructor(t){super(t),t.animationState||(t.animationState=TD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();qd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let MD=0;class ID extends hi{constructor(){super(...arguments),this.id=MD++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const OD={animation:{Feature:CD},exit:{Feature:ID}},Ln={x:!1,y:!1};function dN(){return Ln.x||Ln.y}function RD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Uy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function ul(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function $l(e){return{point:{x:e.pageX,y:e.pageY}}}const LD=e=>t=>Uy(t)&&e(t,$l(t));function Ia(e,t,n,r){return ul(e,t,LD(n),r)}const Vx=(e,t)=>Math.abs(e-t);function PD(e,t){const n=Vx(e.x,t.x),r=Vx(e.y,t.y);return Math.sqrt(n**2+r**2)}class fN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=gh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=PD(u.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=u,{timestamp:b}=St;this.history.push({...g,timestamp:b});const{onStart:w,onMove:m}=this.handlers;h||(w&&w(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,u)},this.handlePointerMove=(u,h)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=mh(h,this.transformPagePoint),qe.update(this.updatePoint,!0)},this.handlePointerUp=(u,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=gh(u.type==="pointercancel"?this.lastMoveEventInfo:mh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(u,w),g&&g(u,w)},!Uy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=$l(t),a=mh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=St;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=n;d&&d(t,gh(a,this.history)),this.removeListeners=Bl(Ia(this.contextWindow,"pointermove",this.handlePointerMove),Ia(this.contextWindow,"pointerup",this.handlePointerUp),Ia(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),li(this.updatePoint)}}function mh(e,t){return t?{point:t(e.point)}:e}function Hx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gh({point:e},t){return{point:e,delta:Hx(e,hN(t)),offset:Hx(e,DD(t)),velocity:jD(t,.1)}}function DD(e){return e[0]}function hN(e){return e[e.length-1]}function jD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=hN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>_r(t)));)n--;if(!r)return{x:0,y:0};const s=Er(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const pN=1e-4,BD=1-pN,$D=1+pN,mN=.01,FD=0-mN,zD=0+mN;function hn(e){return e.max-e.min}function UD(e,t,n){return Math.abs(e-t)<=n}function Kx(e,t,n,r=.5){e.origin=r,e.originPoint=Je(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Je(n.min,n.max,e.origin)-e.originPoint,(e.scale>=BD&&e.scale<=$D||isNaN(e.scale))&&(e.scale=1),(e.translate>=FD&&e.translate<=zD||isNaN(e.translate))&&(e.translate=0)}function Oa(e,t,n,r){Kx(e.x,t.x,n.x,r?r.originX:void 0),Kx(e.y,t.y,n.y,r?r.originY:void 0)}function qx(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function VD(e,t,n){qx(e.x,t.x,n.x),qx(e.y,t.y,n.y)}function Gx(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Ra(e,t,n){Gx(e.x,t.x,n.x),Gx(e.y,t.y,n.y)}function HD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Je(n,e,r.max):Math.min(e,n)),e}function Wx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function KD(e,{top:t,left:n,bottom:r,right:i}){return{x:Wx(e.x,n,i),y:Wx(e.y,t,r)}}function Yx(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=po(t.min,t.max-r,e.min):r>i&&(n=po(e.min,e.max-i,t.min)),Cr(0,1,n)}function WD(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Em=.35;function YD(e=Em){return e===!1?e=0:e===!0&&(e=Em),{x:Xx(e,"left","right"),y:Xx(e,"top","bottom")}}function Xx(e,t,n){return{min:Qx(e,t),max:Qx(e,n)}}function Qx(e,t){return typeof e=="number"?e:e[t]||0}const Zx=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fs=()=>({x:Zx(),y:Zx()}),Jx=()=>({min:0,max:0}),it=()=>({x:Jx(),y:Jx()});function xn(e){return[e("x"),e("y")]}function gN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function XD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function QD(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function yh(e){return e===void 0||e===1}function km({scale:e,scaleX:t,scaleY:n}){return!yh(e)||!yh(t)||!yh(n)}function ki(e){return km(e)||yN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function yN(e){return ew(e.x)||ew(e.y)}function ew(e){return e&&e!=="0%"}function od(e,t,n){const r=e-n,i=t*r;return n+i}function tw(e,t,n,r,i){return i!==void 0&&(e=od(e,i,r)),od(e,n,r)+t}function Sm(e,t=0,n=1,r,i){e.min=tw(e.min,t,n,r,i),e.max=tw(e.max,t,n,r,i)}function bN(e,{x:t,y:n}){Sm(e.x,t.translate,t.scale,t.originPoint),Sm(e.y,n.translate,n.scale,n.originPoint)}const nw=.999999999999,rw=1.0000000000001;function ZD(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;anw&&(t.x=1),t.ynw&&(t.y=1)}function zs(e,t){e.min=e.min+t,e.max=e.max+t}function iw(e,t,n,r,i=.5){const s=Je(e.min,e.max,i);Sm(e,t,n,s,r)}function Us(e,t){iw(e.x,t.x,t.scaleX,t.scale,t.originX),iw(e.y,t.y,t.scaleY,t.scale,t.originY)}function xN(e,t){return gN(QD(e.getBoundingClientRect(),t))}function JD(e,t,n){const r=xN(e,n),{scroll:i}=t;return i&&(zs(r.x,i.offset.x),zs(r.y,i.offset.y)),r}const wN=({current:e})=>e?e.ownerDocument.defaultView:null,ej=new WeakMap;class tj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=it(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=d=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor($l(d).point)},s=(d,u)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xn(w=>{let m=this.getAxisMotionValue(w).get()||0;if(ir.test(m)){const{projection:x}=this.visualElement;if(x&&x.layout){const y=x.layout.layoutBox[w];y&&(m=hn(y)*(parseFloat(m)/100))}}this.originPoint[w]=m}),g&&qe.postRender(()=>g(d,u)),hm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,u)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:w}=u;if(p&&this.currentDirection===null){this.currentDirection=nj(w),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",u.point,w),this.updateAxis("y",u.point,w),this.visualElement.render(),b&&b(d,u)},a=(d,u)=>this.stop(d,u),l=()=>xn(d=>{var u;return this.getAnimationState(d)==="paused"&&((u=this.getAxisMotionValue(d).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new fN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:wN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&qe.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Mc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=HD(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Bs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=KD(i.layoutBox,n):this.constraints=!1,this.elastic=YD(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=WD(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Bs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=JD(r,i.root,this.visualElement.getTransformPagePoint());let o=qD(i.layout.layoutBox,s);if(n){const a=n(XD(o));this.hasMutatedConstraints=!!a,a&&(o=gN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=xn(d=>{if(!Mc(d,n,this.currentDirection))return;let u=l&&l[d]||{};o&&(u={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...u};return this.startAxisValueAnimation(d,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return hm(this.visualElement,t),r.start(zy(t,r,0,n,this.visualElement,!1))}stopAnimation(){xn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xn(n=>{const{drag:r}=this.getProps();if(!Mc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Je(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Bs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=GD({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xn(o=>{if(!Mc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Je(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;ej.set(this.visualElement,this);const t=this.visualElement.current,n=Ia(t,"pointerdown",l=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Bs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),qe.read(r);const o=ul(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(xn(d=>{const u=this.getAxisMotionValue(d);u&&(this.originPoint[d]+=l[d].translate,u.set(u.get()+l[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Em,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function nj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class rj extends hi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new tj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const sw=e=>(t,n)=>{e&&qe.postRender(()=>e(t,n))};class ij extends hi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new fN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:wN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:sw(t),onStart:sw(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&qe.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ia(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ow(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ea={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(_e.test(e))e=parseFloat(e);else return e;const n=ow(e,t.target.x),r=ow(e,t.target.y);return`${n}% ${r}%`}},sj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ci.parse(e);if(i.length>5)return r;const s=ci.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Je(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class oj extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;OL(aj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),mu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||qe.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),gy.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function vN(e){const[t,n]=iS(),r=S.useContext(uy);return f.jsx(oj,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(hS),isPresent:t,safeToRemove:n})}const aj={borderRadius:{...ea,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ea,borderTopRightRadius:ea,borderBottomLeftRadius:ea,borderBottomRightRadius:ea,boxShadow:sj};function lj(e,t,n){const r=Rt(e)?e:ll(e);return r.start(zy("",r,t,n)),r.animation}function cj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const uj=(e,t)=>e.depth-t.depth;class dj{constructor(){this.children=[],this.isDirty=!1}add(t){Ty(this.children,t),this.isDirty=!0}remove(t){Ay(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(uj),this.isDirty=!1,this.children.forEach(t)}}function fj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(li(r),e(s-t))};return qe.read(r,!0),()=>li(r)}const _N=["TopLeft","TopRight","BottomLeft","BottomRight"],hj=_N.length,aw=e=>typeof e=="string"?parseFloat(e):e,lw=e=>typeof e=="number"||_e.test(e);function pj(e,t,n,r,i,s){i?(e.opacity=Je(0,n.opacity!==void 0?n.opacity:1,mj(r)),e.opacityExit=Je(t.opacity!==void 0?t.opacity:1,0,gj(r))):s&&(e.opacity=Je(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(po(e,t,r))}function uw(e,t){e.min=t.min,e.max=t.max}function bn(e,t){uw(e.x,t.x),uw(e.y,t.y)}function dw(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function fw(e,t,n,r,i){return e-=t,e=od(e,1/n,r),i!==void 0&&(e=od(e,1/i,r)),e}function yj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Je(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Je(s.min,s.max,r);e===s&&(a-=t),e.min=fw(e.min,t,n,a,i),e.max=fw(e.max,t,n,a,i)}function hw(e,t,[n,r,i],s,o){yj(e,t[n],t[r],t[i],t.scale,s,o)}const bj=["x","scaleX","originX"],xj=["y","scaleY","originY"];function pw(e,t,n,r){hw(e.x,t,bj,n?n.x:void 0,r?r.x:void 0),hw(e.y,t,xj,n?n.y:void 0,r?r.y:void 0)}function mw(e){return e.translate===0&&e.scale===1}function kN(e){return mw(e.x)&&mw(e.y)}function gw(e,t){return e.min===t.min&&e.max===t.max}function wj(e,t){return gw(e.x,t.x)&&gw(e.y,t.y)}function yw(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function SN(e,t){return yw(e.x,t.x)&&yw(e.y,t.y)}function bw(e){return hn(e.x)/hn(e.y)}function xw(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class vj{constructor(){this.members=[]}add(t){Ty(this.members,t),t.scheduleRender()}remove(t){if(Ay(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function _j(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:d,rotateX:u,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),d&&(r+=`rotate(${d}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ma=typeof window<"u"&&window.MotionDebug!==void 0,bh=["","X","Y","Z"],Ej={visibility:"hidden"},ww=1e3;let kj=0;function xh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function NN(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=CS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",qe,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&NN(r)}function TN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=kj++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ma&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(Tj),this.nodes.forEach(Oj),this.nodes.forEach(Rj),this.nodes.forEach(Aj),ma&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=fj(h,250),mu.hasAnimatedSinceResize&&(mu.hasAnimatedSinceResize=!1,this.nodes.forEach(_w))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||c)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||d.getDefaultTransition()||Bj,{onLayoutAnimationStart:w,onLayoutAnimationComplete:m}=d.getProps(),x=!this.targetLayout||!SN(this.targetLayout,g)||p,y=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,y);const v={...Ny(b,"layout"),onPlay:w,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||_w(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,li(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Lj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&NN(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const E=v/1e3;Ew(u.x,o.x,E),Ew(u.y,o.y,E),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Dj(this.relativeTarget,this.relativeTargetOrigin,h,E),y&&wj(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=it()),bn(y,this.relativeTarget)),b&&(this.animationValues=d,pj(d,c,this.latestValues,E,x,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(li(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=qe.update(()=>{mu.hasAnimatedSinceResize=!0,this.currentAnimation=lj(0,ww,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ww),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:d}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&AN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||it();const u=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+u;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Us(a,d),Oa(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new vj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&xh("z",o,c,this.animationValues);for(let d=0;d{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(vw),this.root.sharedNodes.clear()}}}function Sj(e){e.updateLayout()}function Nj(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(h);h.min=r[u].min,h.max=h.min+p}):AN(s,n.layoutBox,r)&&xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(r[u]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+p)});const a=Fs();Oa(a,r,n.layoutBox);const l=Fs();o?Oa(l,e.applyTransform(i,!0),n.measuredBox):Oa(l,r,n.layoutBox);const c=!kN(a);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:p}=u;if(h&&p){const g=it();Ra(g,n.layoutBox,h.layoutBox);const b=it();Ra(b,r,p.layoutBox),SN(g,b)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Tj(e){ma&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Aj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Cj(e){e.clearSnapshot()}function vw(e){e.clearMeasurements()}function Mj(e){e.isLayoutDirty=!1}function Ij(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _w(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Oj(e){e.resolveTargetDelta()}function Rj(e){e.calcProjection()}function Lj(e){e.resetSkewAndRotation()}function Pj(e){e.removeLeadSnapshot()}function Ew(e,t,n){e.translate=Je(t.translate,0,n),e.scale=Je(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function kw(e,t,n,r){e.min=Je(t.min,n.min,r),e.max=Je(t.max,n.max,r)}function Dj(e,t,n,r){kw(e.x,t.x,n.x,r),kw(e.y,t.y,n.y,r)}function jj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Bj={duration:.45,ease:[.4,0,.1,1]},Sw=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Nw=Sw("applewebkit/")&&!Sw("chrome/")?Math.round:un;function Tw(e){e.min=Nw(e.min),e.max=Nw(e.max)}function $j(e){Tw(e.x),Tw(e.y)}function AN(e,t,n){return e==="position"||e==="preserve-aspect"&&!UD(bw(t),bw(n),.2)}function Fj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const zj=TN({attachResizeListener:(e,t)=>ul(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wh={current:void 0},CN=TN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wh.current){const e=new zj({});e.mount(window),e.setOptions({layoutScroll:!0}),wh.current=e}return wh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Uj={pan:{Feature:ij},drag:{Feature:rj,ProjectionNode:CN,MeasureLayout:vN}};function Vj(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function MN(e,t){const n=Vj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Aw(e){return t=>{t.pointerType==="touch"||dN()||e(t)}}function Hj(e,t,n={}){const[r,i,s]=MN(e,n),o=Aw(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const d=Aw(u=>{c(u),l.removeEventListener("pointerleave",d)});l.addEventListener("pointerleave",d,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Cw(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&qe.postRender(()=>s(t,$l(t)))}class Kj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Hj(t,n=>(Cw(this.node,n,"Start"),r=>Cw(this.node,r,"End"))))}unmount(){}}class qj extends hi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(ul(this.node.current,"focus",()=>this.onFocus()),ul(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const IN=(e,t)=>t?e===t?!0:IN(e,t.parentElement):!1,Gj=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Wj(e){return Gj.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Mw(e){return t=>{t.key==="Enter"&&e(t)}}function vh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const Yj=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Mw(()=>{if(ga.has(n))return;vh(n,"down");const i=Mw(()=>{vh(n,"up")}),s=()=>vh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Iw(e){return Uy(e)&&!dN()}function Xj(e,t,n={}){const[r,i,s]=MN(e,n),o=a=>{const l=a.currentTarget;if(!Iw(a)||ga.has(l))return;ga.add(l);const c=t(a),d=(p,g)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),!(!Iw(p)||!ga.has(l))&&(ga.delete(l),typeof c=="function"&&c(p,{success:g}))},u=p=>{d(p,n.useGlobalTarget||IN(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",u,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!Wj(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>Yj(c,i),i)}),s}function Ow(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&qe.postRender(()=>s(t,$l(t)))}class Qj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Xj(t,n=>(Ow(this.node,n,"Start"),(r,{success:i})=>Ow(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Nm=new WeakMap,_h=new WeakMap,Zj=e=>{const t=Nm.get(e.target);t&&t(e)},Jj=e=>{e.forEach(Zj)};function eB({root:e,...t}){const n=e||document;_h.has(n)||_h.set(n,{});const r=_h.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Jj,{root:e,...t})),r[i]}function tB(e,t,n){const r=eB(t);return Nm.set(e,n),r.observe(e),()=>{Nm.delete(e),r.unobserve(e)}}const nB={some:0,all:1};class rB extends hi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:nB[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:d,onViewportLeave:u}=this.node.getProps(),h=c?d:u;h&&h(l)};return tB(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(iB(t,n))&&this.startObserver()}unmount(){}}function iB({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const sB={inView:{Feature:rB},tap:{Feature:Qj},focus:{Feature:qj},hover:{Feature:Kj}},oB={layout:{ProjectionNode:CN,MeasureLayout:vN}},Tm={current:null},ON={current:!1};function aB(){if(ON.current=!0,!!dy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Tm.current=e.matches;e.addListener(t),t()}else Tm.current=!1}const lB=[...JS,It,ci],cB=e=>lB.find(ZS(e)),Rw=new WeakMap;function uB(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,ll(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ll(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Lw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class dB{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=By,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),ON.current||aB(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Tm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Rw.delete(this.current),this.projection&&this.projection.unmount(),li(this.notifyUpdate),li(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=is.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&qe.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in ho){const n=ho[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):it()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ll(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(XS(i)||zS(i))?i=parseFloat(i):!cB(i)&&ci.test(n)&&(i=GS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=by(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Cy),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class RN extends dB{constructor(){super(...arguments),this.KeyframeResolver=eN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function fB(e){return window.getComputedStyle(e)}class hB extends RN{constructor(){super(...arguments),this.type="html",this.renderInstance=wS}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}else{const r=fB(t),i=(yS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return xN(t,n)}build(t,n,r){vy(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Sy(t,n,r)}}class pB extends RN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=it}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}return n=vS.has(n)?n:my(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return kS(t,n,r)}build(t,n,r){_y(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){_S(t,n,r,i)}mount(t){this.isSVGTag=ky(t.tagName),super.mount(t)}}const mB=(e,t)=>yy(e)?new pB(t):new hB(t,{allowProjection:e!==S.Fragment}),gB=zL({...OD,...sB,...Uj,...oB},mB),Dt=nL(gB);/** + `),()=>{document.head.removeChild(d)}},[t]),f.jsx(KR,{isPresent:t,childRef:r,sizeRef:i,children:S.cloneElement(e,{ref:r})})}const GR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Vd(WR),l=S.useId(),c=S.useCallback(u=>{a.set(u,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),d=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:u=>(a.set(u,!1),()=>a.delete(u))}),s?[Math.random(),c]:[n,c]);return S.useMemo(()=>{a.forEach((u,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(qR,{isPresent:n,children:e})),f.jsx(Hd.Provider,{value:d,children:e})};function WR(){return new Map}function iS(e=!0){const t=S.useContext(Hd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=S.useId();S.useEffect(()=>{e&&i(s)},[e]);const o=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Tc=e=>e.key||"";function wx(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const dy=typeof window<"u",sS=dy?S.useLayoutEffect:S.useEffect,fy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=iS(o),c=S.useMemo(()=>wx(e),[e]),d=o&&!a?[]:c.map(Tc),u=S.useRef(!0),h=S.useRef(c),p=Vd(()=>new Map),[g,b]=S.useState(c),[w,m]=S.useState(c);sS(()=>{u.current=!1,h.current=c;for(let v=0;v{const k=Tc(v),_=o&&!a?!1:c===w||d.includes(k),C=()=>{if(p.has(k))p.set(k,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(y==null||y(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(GR,{isPresent:_,initial:!u.current||n?void 0:!1,custom:_?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:_?void 0:C,children:v},k)})})},un=e=>e;let oS=un;const YR={useManualTiming:!1};function XR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,d=!1,u=!1)=>{const p=u&&r?t:n;return d&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Ac=["read","resolveKeyframes","update","preRender","render","postRender"],QR=40;function aS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Ac.reduce((m,x)=>(m[x]=XR(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:d,render:u,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,QR),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),d.process(i),u.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Ac.reduce((m,x)=>{const y=o[x];return m[x]=(v,k=!1,_=!1)=>(n||g(),y.schedule(v,k,_)),m},{}),cancel:m=>{for(let x=0;xvx[e].some(n=>!!t[n])};function ZR(e){for(const t in e)ho[t]={...ho[t],...e[t]}}const JR=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ed(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||JR.has(e)}let cS=e=>!ed(e);function uS(e){e&&(cS=t=>t.startsWith("on")?!ed(t):e(t))}try{uS(require("@emotion/is-prop-valid").default)}catch{}function eL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(cS(i)||n===!0&&ed(i)||!t&&!ed(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function tL({children:e,isValidProp:t,...n}){t&&uS(t),n={...S.useContext(sl),...n},n.isStatic=Vd(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(sl.Provider,{value:r,children:e})}function nL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Kd=S.createContext({});function ol(e){return typeof e=="string"||Array.isArray(e)}function qd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const hy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],py=["initial",...hy];function Gd(e){return qd(e.animate)||py.some(t=>ol(e[t]))}function dS(e){return!!(Gd(e)||e.variants)}function rL(e,t){if(Gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ol(n)?n:void 0,animate:ol(r)?r:void 0}}return e.inherit!==!1?t:{}}function iL(e){const{initial:t,animate:n}=rL(e,S.useContext(Kd));return S.useMemo(()=>({initial:t,animate:n}),[_x(t),_x(n)])}function _x(e){return Array.isArray(e)?e.join(" "):e}const sL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function oL(e,t,n){return S.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Bs(n)&&(n.current=r))},[t])}const my=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),aL="framerAppearId",fS="data-"+my(aL),{schedule:gy}=aS(queueMicrotask,!1),hS=S.createContext({});function lL(e,t,n,r,i){var s,o;const{visualElement:a}=S.useContext(Kd),l=S.useContext(lS),c=S.useContext(Hd),d=S.useContext(sl).reducedMotion,u=S.useRef(null);r=r||l.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const h=u.current,p=S.useContext(hS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&cL(u.current,n,i,p);const g=S.useRef(!1);S.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[fS],w=S.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,b)));return sS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),gy.render(h.render),w.current&&h.animationState&&h.animationState.animateChanges())}),S.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,b)}),w.current=!1))}),h}function cL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:pS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Bs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function pS(e){if(e)return e.options.allowProjection!==!1?e.projection:pS(e.parent)}function uL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&ZR(e);function a(c,d){let u;const h={...S.useContext(sl),...c,layoutId:dL(c)},{isStatic:p}=h,g=iL(c),b=r(c,p);if(!p&&dy){fL();const w=hL(h);u=w.MeasureLayout,g.visualElement=lL(i,b,h,t,w.ProjectionNode)}return f.jsxs(Kd.Provider,{value:g,children:[u&&g.visualElement?f.jsx(u,{visualElement:g.visualElement,...h}):null,n(i,c,oL(b,g.visualElement,d),b,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=S.forwardRef(a);return l[sL]=i,l}function dL({layoutId:e}){const t=S.useContext(uy).id;return t&&e!==void 0?t+"-"+e:e}function fL(e,t){S.useContext(lS).strict}function hL(e){const{drag:t,layout:n}=ho;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const pL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function yy(e){return typeof e!="string"||e.includes("-")?!1:!!(pL.indexOf(e)>-1||/[A-Z]/u.test(e))}function kx(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function by(e,t,n,r){if(typeof t=="function"){const[i,s]=kx(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=kx(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const fm=e=>Array.isArray(e),mL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),gL=e=>fm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function hu(e){const t=Rt(e)?e.get():e;return mL(t)?t.toValue():t}function yL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:bL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const mS=e=>(t,n)=>{const r=S.useContext(Kd),i=S.useContext(Hd),s=()=>yL(e,t,r,i);return n?s():Vd(s)};function bL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=hu(s[h]);let{initial:o,animate:a}=e;const l=Gd(e),c=dS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const u=d?a:o;if(u&&typeof u!="boolean"&&!qd(u)){const h=Array.isArray(u)?u:[u];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),yS=gS("--"),xL=gS("var(--"),xy=e=>xL(e)?wL.test(e.split("/*")[0].trim()):!1,wL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,bS=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Cr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},al={...Po,transform:e=>Cr(0,1,e)},Cc={...Po,default:1},Dl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=Dl("deg"),ir=Dl("%"),ve=Dl("px"),vL=Dl("vh"),_L=Dl("vw"),Ex={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},kL={borderWidth:ve,borderTopWidth:ve,borderRightWidth:ve,borderBottomWidth:ve,borderLeftWidth:ve,borderRadius:ve,radius:ve,borderTopLeftRadius:ve,borderTopRightRadius:ve,borderBottomRightRadius:ve,borderBottomLeftRadius:ve,width:ve,maxWidth:ve,height:ve,maxHeight:ve,top:ve,right:ve,bottom:ve,left:ve,padding:ve,paddingTop:ve,paddingRight:ve,paddingBottom:ve,paddingLeft:ve,margin:ve,marginTop:ve,marginRight:ve,marginBottom:ve,marginLeft:ve,backgroundPositionX:ve,backgroundPositionY:ve},EL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Cc,scaleX:Cc,scaleY:Cc,scaleZ:Cc,skew:Br,skewX:Br,skewY:Br,distance:ve,translateX:ve,translateY:ve,translateZ:ve,x:ve,y:ve,z:ve,perspective:ve,transformPerspective:ve,opacity:al,originX:Ex,originY:Ex,originZ:ve},Sx={...Po,transform:Math.round},wy={...kL,...EL,zIndex:Sx,size:ve,fillOpacity:al,strokeOpacity:al,numOctaves:Sx},SL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},NL=Lo.length;function TL(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),xS=()=>({...ky(),attrs:{}}),Ey=e=>typeof e=="string"&&e.toLowerCase()==="svg";function wS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const vS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function _S(e,t,n,r){wS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(vS.has(i)?i:my(i),t.attrs[i])}const td={};function OL(e){Object.assign(td,e)}function kS(e,{layout:t,layoutId:n}){return is.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!td[e]||e==="opacity")}function Sy(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||kS(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function ES(e,t,n){const r=Sy(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Lo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function RL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Tx=["x","y","width","height","cx","cy","r"],LL={useVisualState:mS({scrapeMotionValuesFromProps:ES,createRenderState:xS,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(is.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{RL(n,r),Ke.render(()=>{_y(r,i,Ey(n.tagName),e.transformTemplate),_S(n,r)})})}})},PL={useVisualState:mS({scrapeMotionValuesFromProps:Sy,createRenderState:ky})};function SS(e,t,n){for(const r in t)!Rt(t[r])&&!kS(r,n)&&(e[r]=t[r])}function DL({transformTemplate:e},t){return S.useMemo(()=>{const n=ky();return vy(n,t,e),Object.assign({},n.vars,n.style)},[t])}function jL(e,t){const n=e.style||{},r={};return SS(r,n,e),Object.assign(r,DL(e,t)),r}function BL(e,t){const n={},r=jL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function $L(e,t,n,r){const i=S.useMemo(()=>{const s=xS();return _y(s,t,Ey(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};SS(s,e.style,e),i.style={...s,...i.style}}return i}function FL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(yy(n)?$L:BL)(r,s,o,n),c=eL(r,typeof n=="string",e),d=n!==S.Fragment?{...c,...l,ref:i}:{},{children:u}=r,h=S.useMemo(()=>Rt(u)?u.get():u,[u]);return S.createElement(n,{...d,children:h})}}function zL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...yy(r)?LL:PL,preloadedFeatures:e,useRender:FL(i),createVisualElement:t,Component:r};return uL(o)}}function NS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(pu===void 0&&sr.set(St.isProcessing||YR.useManualTiming?St.timestamp:performance.now()),pu),set:e=>{pu=e,queueMicrotask(UL)}};function Ty(e,t){e.indexOf(t)===-1&&e.push(t)}function Ay(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Cy{constructor(){this.subscriptions=[]}add(t){return Ty(this.subscriptions,t),()=>Ay(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class HL{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=VL(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Cy);const r=this.events[t].add(n);return t==="change"?()=>{r(),Ke.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ax)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ax);return AS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ll(e,t){return new HL(e,t)}function KL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ll(n))}function qL(e,t){const n=Wd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=gL(s[o]);KL(e,o,a)}}function GL(e){return!!(Rt(e)&&e.add)}function hm(e,t){const n=e.getValue("willChange");if(GL(n))return n.add(t)}function CS(e){return e.props[fS]}function My(e){let t;return()=>(t===void 0&&(t=e()),t)}const WL=My(()=>window.ScrollTimeline!==void 0);class YL{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(WL()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class XL extends YL{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const _r=e=>e*1e3,kr=e=>e/1e3;function Iy(e){return typeof e=="function"}function Cx(e,t){e.timeline=t,e.onfinish=null}const Oy=e=>Array.isArray(e)&&typeof e[0]=="number",QL={linearEasing:void 0};function ZL(e,t){const n=My(e);return()=>{var r;return(r=QL[t])!==null&&r!==void 0?r:n()}}const nd=ZL(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),po=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},MS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,pm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:pa([0,.65,.55,1]),circOut:pa([.55,0,1,.45]),backIn:pa([.31,.01,.66,-.59]),backOut:pa([.33,1.53,.69,.99])};function OS(e,t){if(e)return typeof e=="function"&&nd()?MS(e,t):Oy(e)?pa(e):Array.isArray(e)?e.map(n=>OS(n,t)||pm.easeOut):pm[e]}const RS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,JL=1e-7,eP=12;function tP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=RS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>JL&&++atP(s,0,1,e,n);return s=>s===0||s===1?s:RS(i(s),t,r)}const LS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,PS=e=>t=>1-e(1-t),DS=jl(.33,1.53,.69,.99),Ry=PS(DS),jS=LS(Ry),BS=e=>(e*=2)<1?.5*Ry(e):.5*(2-Math.pow(2,-10*(e-1))),Ly=e=>1-Math.sin(Math.acos(e)),$S=PS(Ly),FS=LS(Ly),zS=e=>/^0[^.\s]+$/u.test(e);function nP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||zS(e):!0}const Ma=e=>Math.round(e*1e5)/1e5,Py=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rP(e){return e==null}const iP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Dy=(e,t)=>n=>!!(typeof n=="string"&&iP.test(n)&&n.startsWith(e)||t&&!rP(n)&&Object.prototype.hasOwnProperty.call(n,t)),US=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Py);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},sP=e=>Cr(0,255,e),dh={...Po,transform:e=>Math.round(sP(e))},Oi={test:Dy("rgb","red"),parse:US("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dh.transform(e)+", "+dh.transform(t)+", "+dh.transform(n)+", "+Ma(al.transform(r))+")"};function oP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const mm={test:Dy("#"),parse:oP,transform:Oi.transform},$s={test:Dy("hsl","hue"),parse:US("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ma(t))+", "+ir.transform(Ma(n))+", "+Ma(al.transform(r))+")"},It={test:e=>Oi.test(e)||mm.test(e)||$s.test(e),parse:e=>Oi.test(e)?Oi.parse(e):$s.test(e)?$s.parse(e):mm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Oi.transform(e):$s.transform(e)},aP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function lP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Py))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(aP))===null||n===void 0?void 0:n.length)||0)>0}const VS="number",HS="color",cP="var",uP="var(",Mx="${}",dP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function cl(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(dP,l=>(It.test(l)?(r.color.push(s),i.push(HS),n.push(It.parse(l))):l.startsWith(uP)?(r.var.push(s),i.push(cP),n.push(l)):(r.number.push(s),i.push(VS),n.push(parseFloat(l))),++s,Mx)).split(Mx);return{values:n,split:a,indexes:r,types:i}}function KS(e){return cl(e).values}function qS(e){const{split:t,types:n}=cl(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function hP(e){const t=KS(e);return qS(e)(t.map(fP))}const ci={test:lP,parse:KS,createTransformer:qS,getAnimatableNone:hP},pP=new Set(["brightness","contrast","saturate","opacity"]);function mP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Py)||[];if(!r)return e;const i=n.replace(r,"");let s=pP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const gP=/\b([a-z-]*)\(.*?\)/gu,gm={...ci,getAnimatableNone:e=>{const t=e.match(gP);return t?t.map(mP).join(" "):e}},yP={...wy,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:gm,WebkitFilter:gm},jy=e=>yP[e];function GS(e,t){let n=jy(e);return n!==gm&&(n=ci),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const bP=new Set(["auto","none","0"]);function xP(e,t,n){let r=0,i;for(;re===Po||e===ve,Ox=(e,t)=>parseFloat(e.split(", ")[t]),Rx=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Ox(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Ox(s[1],e):0}},wP=new Set(["x","y","z"]),vP=Lo.filter(e=>!wP.has(e));function _P(e){const t=[];return vP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Rx(4,13),y:Rx(5,14)};mo.translateX=mo.x;mo.translateY=mo.y;const Bi=new Set;let ym=!1,bm=!1;function WS(){if(bm){const e=Array.from(Bi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=_P(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}bm=!1,ym=!1,Bi.forEach(e=>e.complete()),Bi.clear()}function YS(){Bi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(bm=!0)})}function kP(){YS(),WS()}class By{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Bi.add(this),ym||(ym=!0,Ke.read(YS),Ke.resolveKeyframes(WS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),EP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function SP(e){const t=EP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function QS(e,t,n=1){const[r,i]=SP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return XS(o)?parseFloat(o):o}return xy(i)?QS(i,t,n+1):i}const ZS=e=>t=>t.test(e),NP={test:e=>e==="auto",parse:e=>e},JS=[Po,ve,ir,Br,_L,vL,NP],Lx=e=>JS.find(ZS(e));class eN extends By{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Px=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ci.test(e)||e==="0")&&!e.startsWith("url("));function TP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Yd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(CP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const MP=40;class tN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>MP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&kP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!AP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Yd(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const xm=2e4;function nN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=xm?1/0:t}const Ze=(e,t,n)=>e+(t-e)*n;function fh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function IP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=fh(l,a,e+1/3),s=fh(l,a,e),o=fh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function rd(e,t){return n=>n>0?t:e}const hh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},OP=[mm,Oi,$s],RP=e=>OP.find(t=>t.test(e));function Dx(e){const t=RP(e);if(!t)return!1;let n=t.parse(e);return t===$s&&(n=IP(n)),n}const jx=(e,t)=>{const n=Dx(e),r=Dx(t);if(!n||!r)return rd(e,t);const i={...n};return s=>(i.red=hh(n.red,r.red,s),i.green=hh(n.green,r.green,s),i.blue=hh(n.blue,r.blue,s),i.alpha=Ze(n.alpha,r.alpha,s),Oi.transform(i))},LP=(e,t)=>n=>t(e(n)),Bl=(...e)=>e.reduce(LP),wm=new Set(["none","hidden"]);function PP(e,t){return wm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function DP(e,t){return n=>Ze(e,t,n)}function $y(e){return typeof e=="number"?DP:typeof e=="string"?xy(e)?rd:It.test(e)?jx:$P:Array.isArray(e)?rN:typeof e=="object"?It.test(e)?jx:jP:rd}function rN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>$y(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function BP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ci.createTransformer(t),r=cl(e),i=cl(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?wm.has(e)&&!i.values.length||wm.has(t)&&!r.values.length?PP(e,t):Bl(rN(BP(r,i),i.values),n):rd(e,t)};function iN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Ze(e,t,n):$y(e)(e,t)}const FP=5;function sN(e,t,n){const r=Math.max(t-FP,0);return AS(n-e(r),t-r)}const tt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ph=.001;function zP({duration:e=tt.duration,bounce:t=tt.bounce,velocity:n=tt.velocity,mass:r=tt.mass}){let i,s,o=1-t;o=Cr(tt.minDamping,tt.maxDamping,o),e=Cr(tt.minDuration,tt.maxDuration,kr(e)),o<1?(i=c=>{const d=c*o,u=d*e,h=d-n,p=vm(c,o),g=Math.exp(-u);return ph-h/p*g},s=c=>{const u=c*o*e,h=u*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-u),b=vm(Math.pow(c,2),o);return(-i(c)+ph>0?-1:1)*((h-p)*g)/b}):(i=c=>{const d=Math.exp(-c*e),u=(c-n)*e+1;return-ph+d*u},s=c=>{const d=Math.exp(-c*e),u=(n-c)*(e*e);return d*u});const a=5/e,l=VP(i,s,a);if(e=_r(e),isNaN(l))return{stiffness:tt.stiffness,damping:tt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const UP=12;function VP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function qP(e){let t={velocity:tt.velocity,stiffness:tt.stiffness,damping:tt.damping,mass:tt.mass,isResolvedFromDuration:!1,...e};if(!Bx(e,KP)&&Bx(e,HP))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Cr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:tt.mass,stiffness:i,damping:s}}else{const n=zP(e);t={...t,...n,mass:tt.mass},t.isResolvedFromDuration=!0}return t}function oN(e=tt.visualDuration,t=tt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:d,duration:u,velocity:h,isResolvedFromDuration:p}=qP({...n,velocity:-kr(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*d)),w=o-s,m=kr(Math.sqrt(l/d)),x=Math.abs(w)<5;r||(r=x?tt.restSpeed.granular:tt.restSpeed.default),i||(i=x?tt.restDelta.granular:tt.restDelta.default);let y;if(b<1){const k=vm(m,b);y=_=>{const C=Math.exp(-b*m*_);return o-C*((g+b*m*w)/k*Math.sin(k*_)+w*Math.cos(k*_))}}else if(b===1)y=k=>o-Math.exp(-m*k)*(w+(g+m*w)*k);else{const k=m*Math.sqrt(b*b-1);y=_=>{const C=Math.exp(-b*m*_),N=Math.min(k*_,300);return o-C*((g+b*m*w)*Math.sinh(N)+k*w*Math.cosh(N))/k}}const v={calculatedDuration:p&&u||null,next:k=>{const _=y(k);if(p)a.done=k>=u;else{let C=0;b<1&&(C=k===0?_r(g):sN(y,k,_));const N=Math.abs(C)<=r,I=Math.abs(o-_)<=i;a.done=N&&I}return a.value=a.done?o:_,a},toString:()=>{const k=Math.min(nN(v),xm),_=MS(C=>v.next(k*C).value,k,30);return k+"ms "+_}};return v}function $x({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:d}){const u=e[0],h={done:!1,value:u},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-b*Math.exp(-N/r),y=N=>m+x(N),v=N=>{const I=x(N),A=y(N);h.done=Math.abs(I)<=c,h.value=h.done?m:A};let k,_;const C=N=>{p(h.value)&&(k=N,_=oN({keyframes:[h.value,g(h.value)],velocity:sN(y,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:d}))};return C(0),{calculatedDuration:null,next:N=>{let I=!1;return!_&&k===void 0&&(I=!0,v(N),C(N)),k!==void 0&&N>=k?_.next(N-k):(!I&&v(N),h)}}}const GP=jl(.42,0,1,1),WP=jl(0,0,.58,1),aN=jl(.42,0,.58,1),YP=e=>Array.isArray(e)&&typeof e[0]!="number",XP={linear:un,easeIn:GP,easeInOut:aN,easeOut:WP,circIn:Ly,circInOut:FS,circOut:$S,backIn:Ry,backInOut:jS,backOut:DS,anticipate:BS},Fx=e=>{if(Oy(e)){oS(e.length===4);const[t,n,r,i]=e;return jl(t,n,r,i)}else if(typeof e=="string")return XP[e];return e};function QP(e,t,n){const r=[],i=n||iN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=QP(t,r,i),l=a.length,c=d=>{if(o&&d1)for(;uc(Cr(e[0],e[s-1],d)):c}function JP(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=po(0,t,r);e.push(Ze(n,1,i))}}function eD(e){const t=[0];return JP(t,e.length-1),t}function tD(e,t){return e.map(n=>n*t)}function nD(e,t){return e.map(()=>t||aN).splice(0,e.length-1)}function id({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=YP(r)?r.map(Fx):Fx(r),s={done:!1,value:t[0]},o=tD(n&&n.length===t.length?n:eD(t),e),a=ZP(o,t,{ease:Array.isArray(i)?i:nD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const rD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Ke.update(t,!0),stop:()=>li(t),now:()=>St.isProcessing?St.timestamp:sr.now()}},iD={decay:$x,inertia:$x,tween:id,keyframes:id,spring:oN},sD=e=>e/100;class Fy extends tN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||By,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Iy(n)?n:iD[n]||id;let l,c;a!==id&&typeof t[0]!="number"&&(l=Bl(sD,iN(t[0],t[1])),t=[0,100]);const d=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=nN(d));const{calculatedDuration:u}=d,h=u+i,p=h*(r+1)-i;return{generator:d,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:u,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:d,resolvedDuration:u}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:b,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),x=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let y=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,d)/u;let I=Math.floor(N),A=N%1;!A&&N>=1&&(A=1),A===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(A=1-A,b&&(A-=b/u)):g==="mirror"&&(v=o)),y=Cr(0,1,A)*u}const k=x?{done:!1,value:l[0]}:v.next(y);a&&(k.value=a(k.value));let{done:_}=k;!x&&c!==null&&(_=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&_);return C&&i!==void 0&&(k.value=Yd(l,this.options,i)),w&&w(k.value),C&&this.finish(),k}get duration(){const{resolved:t}=this;return t?kr(t.calculatedDuration):0}get time(){return kr(this.currentTime)}set time(t){t=_r(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=kr(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=rD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const oD=new Set(["opacity","clipPath","filter","transform"]);function aD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const d=OS(a,i);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const lD=My(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),sd=10,cD=2e4;function uD(e){return Iy(e.type)||e.type==="spring"||!IS(e.ease)}function dD(e,t){const n=new Fy({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&nd()&&fD(s)&&(s=lN[s]),uD(this.options)){const{onComplete:u,onUpdate:h,motionValue:p,element:g,...b}=this.options,w=dD(t,b);t=w.keyframes,t.length===1&&(t[1]=t[0]),r=w.duration,i=w.times,s=w.ease,o="keyframes"}const d=aD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return d.startTime=c??this.calcStartTime(),this.pendingTimeline?(Cx(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:u}=this.options;a.set(Yd(t,this.options,n)),u&&u(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return kr(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return kr(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_r(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Cx(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:d,onComplete:u,element:h,...p}=this.options,g=new Fy({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=_r(this.time);c.setWithVelocity(g.sample(b-sd).value,g.sample(b).value,sd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return lD()&&r&&oD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const hD={type:"spring",stiffness:500,damping:25,restSpeed:10},pD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),mD={type:"keyframes",duration:.8},gD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},yD=(e,{keyframes:t})=>t.length>2?mD:is.has(e)?e.startsWith("scale")?pD(t[1]):hD:gD;function bD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...d}){return!!Object.keys(d).length}const zy=(e,t,n,r={},i,s)=>o=>{const a=Ny(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-_r(l);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};bD(a)||(d={...d,...yD(e,d)}),d.duration&&(d.duration=_r(d.duration)),d.repeatDelay&&(d.repeatDelay=_r(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let u=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(u=!0)),u&&!s&&t.get()!==void 0){const h=Yd(d.keyframes,a);if(h!==void 0)return Ke.update(()=>{d.onUpdate(h),d.onComplete()}),new XL([])}return!s&&zx.supports(d)?new zx(d):new Fy(d)};function xD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function cN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in l){const h=e.getValue(u,(s=e.latestValues[u])!==null&&s!==void 0?s:null),p=l[u];if(p===void 0||d&&xD(d,u))continue;const g={delay:n,...Ny(o||{},u)};let b=!1;if(window.MotionHandoffAnimation){const m=CS(e);if(m){const x=window.MotionHandoffAnimation(m,u,Ke);x!==null&&(g.startTime=x,b=!0)}}hm(e,u),h.start(zy(u,h,p,e.shouldReduceMotion&&TS.has(u)?{type:!1}:g,e,b));const w=h.animation;w&&c.push(w)}return a&&Promise.all(c).then(()=>{Ke.update(()=>{a&&qL(e,a)})}),c}function _m(e,t,n={}){var r;const i=Wd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(cN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:h}=s;return wD(e,t,d+c,u,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,d]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>d())}else return Promise.all([o(),a(n.delay)])}function wD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(vD).forEach((c,d)=>{c.notify("AnimationStart",t),o.push(_m(c,t,{...s,delay:n+l(d)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function vD(e,t){return e.sortNodePosition(t)}function _D(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>_m(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=_m(e,t,n);else{const i=typeof t=="function"?Wd(e,t,n.custom):t;r=Promise.all(cN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const kD=py.length;function uN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?uN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>_D(e,n,r)))}function TD(e){let t=ND(e),n=Ux(),r=!0;const i=l=>(c,d)=>{var u;const h=Wd(e,d,l==="exit"?(u=e.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(h){const{transition:p,transitionEnd:g,...b}=h;c={...c,...b,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,d=uN(e.parent)||{},u=[],h=new Set;let p={},g=1/0;for(let w=0;wg&&v,I=!1;const A=Array.isArray(y)?y:[y];let P=A.reduce(i(m),{});k===!1&&(P={});const{prevResolvedValues:R={}}=x,F={...R,...P},O=B=>{N=!0,h.has(B)&&(I=!0,h.delete(B)),x.needsAnimating[B]=!0;const L=e.getValue(B);L&&(L.liveStyle=!1)};for(const B in F){const L=P[B],D=R[B];if(p.hasOwnProperty(B))continue;let E=!1;fm(L)&&fm(D)?E=!NS(L,D):E=L!==D,E?L!=null?O(B):h.add(B):L!==void 0&&h.has(B)?O(B):x.protectedKeys[B]=!0}x.prevProp=y,x.prevResolvedValues=P,x.isActive&&(p={...p,...P}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(_&&C)||I)&&u.push(...A.map(B=>({animation:B,options:{type:m}})))}if(h.size){const w={};h.forEach(m=>{const x=e.getBaseTarget(m),y=e.getValue(m);y&&(y.liveStyle=!0),w[m]=x??null}),u.push({animation:w})}let b=!!u.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?t(u):Promise.resolve()}function a(l,c){var d;if(n[l].isActive===c)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const u=o(l);for(const h in n)n[h].protectedKeys={};return u}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Ux(),r=!0}}}function AD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!NS(t,e):!1}function yi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Ux(){return{animate:yi(!0),whileInView:yi(),whileHover:yi(),whileTap:yi(),whileDrag:yi(),whileFocus:yi(),exit:yi()}}class hi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class CD extends hi{constructor(t){super(t),t.animationState||(t.animationState=TD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();qd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let MD=0;class ID extends hi{constructor(){super(...arguments),this.id=MD++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const OD={animation:{Feature:CD},exit:{Feature:ID}},Ln={x:!1,y:!1};function dN(){return Ln.x||Ln.y}function RD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Uy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function ul(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function $l(e){return{point:{x:e.pageX,y:e.pageY}}}const LD=e=>t=>Uy(t)&&e(t,$l(t));function Ia(e,t,n,r){return ul(e,t,LD(n),r)}const Vx=(e,t)=>Math.abs(e-t);function PD(e,t){const n=Vx(e.x,t.x),r=Vx(e.y,t.y);return Math.sqrt(n**2+r**2)}class fN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=gh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=PD(u.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=u,{timestamp:b}=St;this.history.push({...g,timestamp:b});const{onStart:w,onMove:m}=this.handlers;h||(w&&w(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,u)},this.handlePointerMove=(u,h)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=mh(h,this.transformPagePoint),Ke.update(this.updatePoint,!0)},this.handlePointerUp=(u,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=gh(u.type==="pointercancel"?this.lastMoveEventInfo:mh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(u,w),g&&g(u,w)},!Uy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=$l(t),a=mh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=St;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=n;d&&d(t,gh(a,this.history)),this.removeListeners=Bl(Ia(this.contextWindow,"pointermove",this.handlePointerMove),Ia(this.contextWindow,"pointerup",this.handlePointerUp),Ia(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),li(this.updatePoint)}}function mh(e,t){return t?{point:t(e.point)}:e}function Hx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gh({point:e},t){return{point:e,delta:Hx(e,hN(t)),offset:Hx(e,DD(t)),velocity:jD(t,.1)}}function DD(e){return e[0]}function hN(e){return e[e.length-1]}function jD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=hN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>_r(t)));)n--;if(!r)return{x:0,y:0};const s=kr(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const pN=1e-4,BD=1-pN,$D=1+pN,mN=.01,FD=0-mN,zD=0+mN;function hn(e){return e.max-e.min}function UD(e,t,n){return Math.abs(e-t)<=n}function Kx(e,t,n,r=.5){e.origin=r,e.originPoint=Ze(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Ze(n.min,n.max,e.origin)-e.originPoint,(e.scale>=BD&&e.scale<=$D||isNaN(e.scale))&&(e.scale=1),(e.translate>=FD&&e.translate<=zD||isNaN(e.translate))&&(e.translate=0)}function Oa(e,t,n,r){Kx(e.x,t.x,n.x,r?r.originX:void 0),Kx(e.y,t.y,n.y,r?r.originY:void 0)}function qx(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function VD(e,t,n){qx(e.x,t.x,n.x),qx(e.y,t.y,n.y)}function Gx(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Ra(e,t,n){Gx(e.x,t.x,n.x),Gx(e.y,t.y,n.y)}function HD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Ze(n,e,r.max):Math.min(e,n)),e}function Wx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function KD(e,{top:t,left:n,bottom:r,right:i}){return{x:Wx(e.x,n,i),y:Wx(e.y,t,r)}}function Yx(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=po(t.min,t.max-r,e.min):r>i&&(n=po(e.min,e.max-i,t.min)),Cr(0,1,n)}function WD(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const km=.35;function YD(e=km){return e===!1?e=0:e===!0&&(e=km),{x:Xx(e,"left","right"),y:Xx(e,"top","bottom")}}function Xx(e,t,n){return{min:Qx(e,t),max:Qx(e,n)}}function Qx(e,t){return typeof e=="number"?e:e[t]||0}const Zx=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fs=()=>({x:Zx(),y:Zx()}),Jx=()=>({min:0,max:0}),rt=()=>({x:Jx(),y:Jx()});function xn(e){return[e("x"),e("y")]}function gN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function XD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function QD(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function yh(e){return e===void 0||e===1}function Em({scale:e,scaleX:t,scaleY:n}){return!yh(e)||!yh(t)||!yh(n)}function Ei(e){return Em(e)||yN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function yN(e){return ew(e.x)||ew(e.y)}function ew(e){return e&&e!=="0%"}function od(e,t,n){const r=e-n,i=t*r;return n+i}function tw(e,t,n,r,i){return i!==void 0&&(e=od(e,i,r)),od(e,n,r)+t}function Sm(e,t=0,n=1,r,i){e.min=tw(e.min,t,n,r,i),e.max=tw(e.max,t,n,r,i)}function bN(e,{x:t,y:n}){Sm(e.x,t.translate,t.scale,t.originPoint),Sm(e.y,n.translate,n.scale,n.originPoint)}const nw=.999999999999,rw=1.0000000000001;function ZD(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;anw&&(t.x=1),t.ynw&&(t.y=1)}function zs(e,t){e.min=e.min+t,e.max=e.max+t}function iw(e,t,n,r,i=.5){const s=Ze(e.min,e.max,i);Sm(e,t,n,s,r)}function Us(e,t){iw(e.x,t.x,t.scaleX,t.scale,t.originX),iw(e.y,t.y,t.scaleY,t.scale,t.originY)}function xN(e,t){return gN(QD(e.getBoundingClientRect(),t))}function JD(e,t,n){const r=xN(e,n),{scroll:i}=t;return i&&(zs(r.x,i.offset.x),zs(r.y,i.offset.y)),r}const wN=({current:e})=>e?e.ownerDocument.defaultView:null,ej=new WeakMap;class tj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=rt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=d=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor($l(d).point)},s=(d,u)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xn(w=>{let m=this.getAxisMotionValue(w).get()||0;if(ir.test(m)){const{projection:x}=this.visualElement;if(x&&x.layout){const y=x.layout.layoutBox[w];y&&(m=hn(y)*(parseFloat(m)/100))}}this.originPoint[w]=m}),g&&Ke.postRender(()=>g(d,u)),hm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,u)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:w}=u;if(p&&this.currentDirection===null){this.currentDirection=nj(w),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",u.point,w),this.updateAxis("y",u.point,w),this.visualElement.render(),b&&b(d,u)},a=(d,u)=>this.stop(d,u),l=()=>xn(d=>{var u;return this.getAnimationState(d)==="paused"&&((u=this.getAxisMotionValue(d).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new fN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:wN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&Ke.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Mc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=HD(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Bs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=KD(i.layoutBox,n):this.constraints=!1,this.elastic=YD(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=WD(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Bs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=JD(r,i.root,this.visualElement.getTransformPagePoint());let o=qD(i.layout.layoutBox,s);if(n){const a=n(XD(o));this.hasMutatedConstraints=!!a,a&&(o=gN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=xn(d=>{if(!Mc(d,n,this.currentDirection))return;let u=l&&l[d]||{};o&&(u={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...u};return this.startAxisValueAnimation(d,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return hm(this.visualElement,t),r.start(zy(t,r,0,n,this.visualElement,!1))}stopAnimation(){xn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xn(n=>{const{drag:r}=this.getProps();if(!Mc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Ze(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Bs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=GD({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xn(o=>{if(!Mc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Ze(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;ej.set(this.visualElement,this);const t=this.visualElement.current,n=Ia(t,"pointerdown",l=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Bs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Ke.read(r);const o=ul(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(xn(d=>{const u=this.getAxisMotionValue(d);u&&(this.originPoint[d]+=l[d].translate,u.set(u.get()+l[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=km,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function nj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class rj extends hi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new tj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const sw=e=>(t,n)=>{e&&Ke.postRender(()=>e(t,n))};class ij extends hi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new fN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:wN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:sw(t),onStart:sw(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&Ke.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ia(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ow(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ea={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(ve.test(e))e=parseFloat(e);else return e;const n=ow(e,t.target.x),r=ow(e,t.target.y);return`${n}% ${r}%`}},sj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ci.parse(e);if(i.length>5)return r;const s=ci.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Ze(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class oj extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;OL(aj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),mu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||Ke.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),gy.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function vN(e){const[t,n]=iS(),r=S.useContext(uy);return f.jsx(oj,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(hS),isPresent:t,safeToRemove:n})}const aj={borderRadius:{...ea,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ea,borderTopRightRadius:ea,borderBottomLeftRadius:ea,borderBottomRightRadius:ea,boxShadow:sj};function lj(e,t,n){const r=Rt(e)?e:ll(e);return r.start(zy("",r,t,n)),r.animation}function cj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const uj=(e,t)=>e.depth-t.depth;class dj{constructor(){this.children=[],this.isDirty=!1}add(t){Ty(this.children,t),this.isDirty=!0}remove(t){Ay(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(uj),this.isDirty=!1,this.children.forEach(t)}}function fj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(li(r),e(s-t))};return Ke.read(r,!0),()=>li(r)}const _N=["TopLeft","TopRight","BottomLeft","BottomRight"],hj=_N.length,aw=e=>typeof e=="string"?parseFloat(e):e,lw=e=>typeof e=="number"||ve.test(e);function pj(e,t,n,r,i,s){i?(e.opacity=Ze(0,n.opacity!==void 0?n.opacity:1,mj(r)),e.opacityExit=Ze(t.opacity!==void 0?t.opacity:1,0,gj(r))):s&&(e.opacity=Ze(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(po(e,t,r))}function uw(e,t){e.min=t.min,e.max=t.max}function bn(e,t){uw(e.x,t.x),uw(e.y,t.y)}function dw(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function fw(e,t,n,r,i){return e-=t,e=od(e,1/n,r),i!==void 0&&(e=od(e,1/i,r)),e}function yj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Ze(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Ze(s.min,s.max,r);e===s&&(a-=t),e.min=fw(e.min,t,n,a,i),e.max=fw(e.max,t,n,a,i)}function hw(e,t,[n,r,i],s,o){yj(e,t[n],t[r],t[i],t.scale,s,o)}const bj=["x","scaleX","originX"],xj=["y","scaleY","originY"];function pw(e,t,n,r){hw(e.x,t,bj,n?n.x:void 0,r?r.x:void 0),hw(e.y,t,xj,n?n.y:void 0,r?r.y:void 0)}function mw(e){return e.translate===0&&e.scale===1}function EN(e){return mw(e.x)&&mw(e.y)}function gw(e,t){return e.min===t.min&&e.max===t.max}function wj(e,t){return gw(e.x,t.x)&&gw(e.y,t.y)}function yw(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function SN(e,t){return yw(e.x,t.x)&&yw(e.y,t.y)}function bw(e){return hn(e.x)/hn(e.y)}function xw(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class vj{constructor(){this.members=[]}add(t){Ty(this.members,t),t.scheduleRender()}remove(t){if(Ay(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function _j(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:d,rotateX:u,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),d&&(r+=`rotate(${d}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ma=typeof window<"u"&&window.MotionDebug!==void 0,bh=["","X","Y","Z"],kj={visibility:"hidden"},ww=1e3;let Ej=0;function xh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function NN(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=CS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Ke,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&NN(r)}function TN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Ej++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ma&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(Tj),this.nodes.forEach(Oj),this.nodes.forEach(Rj),this.nodes.forEach(Aj),ma&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=fj(h,250),mu.hasAnimatedSinceResize&&(mu.hasAnimatedSinceResize=!1,this.nodes.forEach(_w))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||c)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||d.getDefaultTransition()||Bj,{onLayoutAnimationStart:w,onLayoutAnimationComplete:m}=d.getProps(),x=!this.targetLayout||!SN(this.targetLayout,g)||p,y=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,y);const v={...Ny(b,"layout"),onPlay:w,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||_w(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,li(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Lj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&NN(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const k=v/1e3;kw(u.x,o.x,k),kw(u.y,o.y,k),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Dj(this.relativeTarget,this.relativeTargetOrigin,h,k),y&&wj(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=rt()),bn(y,this.relativeTarget)),b&&(this.animationValues=d,pj(d,c,this.latestValues,k,x,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=k},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(li(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ke.update(()=>{mu.hasAnimatedSinceResize=!0,this.currentAnimation=lj(0,ww,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ww),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:d}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&AN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||rt();const u=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+u;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Us(a,d),Oa(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new vj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&xh("z",o,c,this.animationValues);for(let d=0;d{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(vw),this.root.sharedNodes.clear()}}}function Sj(e){e.updateLayout()}function Nj(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(h);h.min=r[u].min,h.max=h.min+p}):AN(s,n.layoutBox,r)&&xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(r[u]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+p)});const a=Fs();Oa(a,r,n.layoutBox);const l=Fs();o?Oa(l,e.applyTransform(i,!0),n.measuredBox):Oa(l,r,n.layoutBox);const c=!EN(a);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:p}=u;if(h&&p){const g=rt();Ra(g,n.layoutBox,h.layoutBox);const b=rt();Ra(b,r,p.layoutBox),SN(g,b)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Tj(e){ma&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Aj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Cj(e){e.clearSnapshot()}function vw(e){e.clearMeasurements()}function Mj(e){e.isLayoutDirty=!1}function Ij(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _w(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Oj(e){e.resolveTargetDelta()}function Rj(e){e.calcProjection()}function Lj(e){e.resetSkewAndRotation()}function Pj(e){e.removeLeadSnapshot()}function kw(e,t,n){e.translate=Ze(t.translate,0,n),e.scale=Ze(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Ew(e,t,n,r){e.min=Ze(t.min,n.min,r),e.max=Ze(t.max,n.max,r)}function Dj(e,t,n,r){Ew(e.x,t.x,n.x,r),Ew(e.y,t.y,n.y,r)}function jj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Bj={duration:.45,ease:[.4,0,.1,1]},Sw=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Nw=Sw("applewebkit/")&&!Sw("chrome/")?Math.round:un;function Tw(e){e.min=Nw(e.min),e.max=Nw(e.max)}function $j(e){Tw(e.x),Tw(e.y)}function AN(e,t,n){return e==="position"||e==="preserve-aspect"&&!UD(bw(t),bw(n),.2)}function Fj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const zj=TN({attachResizeListener:(e,t)=>ul(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wh={current:void 0},CN=TN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wh.current){const e=new zj({});e.mount(window),e.setOptions({layoutScroll:!0}),wh.current=e}return wh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Uj={pan:{Feature:ij},drag:{Feature:rj,ProjectionNode:CN,MeasureLayout:vN}};function Vj(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function MN(e,t){const n=Vj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Aw(e){return t=>{t.pointerType==="touch"||dN()||e(t)}}function Hj(e,t,n={}){const[r,i,s]=MN(e,n),o=Aw(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const d=Aw(u=>{c(u),l.removeEventListener("pointerleave",d)});l.addEventListener("pointerleave",d,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Cw(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&Ke.postRender(()=>s(t,$l(t)))}class Kj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Hj(t,n=>(Cw(this.node,n,"Start"),r=>Cw(this.node,r,"End"))))}unmount(){}}class qj extends hi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(ul(this.node.current,"focus",()=>this.onFocus()),ul(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const IN=(e,t)=>t?e===t?!0:IN(e,t.parentElement):!1,Gj=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Wj(e){return Gj.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Mw(e){return t=>{t.key==="Enter"&&e(t)}}function vh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const Yj=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Mw(()=>{if(ga.has(n))return;vh(n,"down");const i=Mw(()=>{vh(n,"up")}),s=()=>vh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Iw(e){return Uy(e)&&!dN()}function Xj(e,t,n={}){const[r,i,s]=MN(e,n),o=a=>{const l=a.currentTarget;if(!Iw(a)||ga.has(l))return;ga.add(l);const c=t(a),d=(p,g)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),!(!Iw(p)||!ga.has(l))&&(ga.delete(l),typeof c=="function"&&c(p,{success:g}))},u=p=>{d(p,n.useGlobalTarget||IN(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",u,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!Wj(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>Yj(c,i),i)}),s}function Ow(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&Ke.postRender(()=>s(t,$l(t)))}class Qj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Xj(t,n=>(Ow(this.node,n,"Start"),(r,{success:i})=>Ow(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Nm=new WeakMap,_h=new WeakMap,Zj=e=>{const t=Nm.get(e.target);t&&t(e)},Jj=e=>{e.forEach(Zj)};function eB({root:e,...t}){const n=e||document;_h.has(n)||_h.set(n,{});const r=_h.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Jj,{root:e,...t})),r[i]}function tB(e,t,n){const r=eB(t);return Nm.set(e,n),r.observe(e),()=>{Nm.delete(e),r.unobserve(e)}}const nB={some:0,all:1};class rB extends hi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:nB[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:d,onViewportLeave:u}=this.node.getProps(),h=c?d:u;h&&h(l)};return tB(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(iB(t,n))&&this.startObserver()}unmount(){}}function iB({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const sB={inView:{Feature:rB},tap:{Feature:Qj},focus:{Feature:qj},hover:{Feature:Kj}},oB={layout:{ProjectionNode:CN,MeasureLayout:vN}},Tm={current:null},ON={current:!1};function aB(){if(ON.current=!0,!!dy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Tm.current=e.matches;e.addListener(t),t()}else Tm.current=!1}const lB=[...JS,It,ci],cB=e=>lB.find(ZS(e)),Rw=new WeakMap;function uB(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,ll(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ll(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Lw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class dB{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=By,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),ON.current||aB(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Tm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Rw.delete(this.current),this.projection&&this.projection.unmount(),li(this.notifyUpdate),li(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=is.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&Ke.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in ho){const n=ho[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):rt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ll(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(XS(i)||zS(i))?i=parseFloat(i):!cB(i)&&ci.test(n)&&(i=GS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=by(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Cy),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class RN extends dB{constructor(){super(...arguments),this.KeyframeResolver=eN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function fB(e){return window.getComputedStyle(e)}class hB extends RN{constructor(){super(...arguments),this.type="html",this.renderInstance=wS}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}else{const r=fB(t),i=(yS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return xN(t,n)}build(t,n,r){vy(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Sy(t,n,r)}}class pB extends RN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=rt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}return n=vS.has(n)?n:my(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return ES(t,n,r)}build(t,n,r){_y(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){_S(t,n,r,i)}mount(t){this.isSVGTag=Ey(t.tagName),super.mount(t)}}const mB=(e,t)=>yy(e)?new pB(t):new hB(t,{allowProjection:e!==S.Fragment}),gB=zL({...OD,...sB,...Uj,...oB},mB),Dt=nL(gB);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -65,365 +65,365 @@ Error generating stack: `+s.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const de=(e,t)=>{const n=S.forwardRef(({className:r,...i},s)=>S.createElement(xB,{ref:s,iconNode:t,className:LN(`lucide-${yB(e)}`,r),...i}));return n.displayName=`${e}`,n};/** + */const ue=(e,t)=>{const n=S.forwardRef(({className:r,...i},s)=>S.createElement(xB,{ref:s,iconNode:t,className:LN(`lucide-${yB(e)}`,r),...i}));return n.displayName=`${e}`,n};/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const wB=de("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + */const wB=ue("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const PN=de("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + */const PN=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const vB=de("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** + */const vB=ue("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const DN=de("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + */const DN=ue("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const _B=de("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + */const _B=ue("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const EB=de("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + */const kB=ue("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const go=de("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + */const go=ue("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Vy=de("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** + */const Vy=ue("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const kB=de("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + */const EB=ue("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const SB=de("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + */const SB=ue("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Hy=de("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + */const Hy=ue("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const jN=de("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + */const jN=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const NB=de("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + */const NB=ue("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Gn=de("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + */const Gn=ue("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const TB=de("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + */const TB=ue("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const AB=de("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** + */const AB=ue("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const CB=de("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + */const CB=ue("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const dl=de("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + */const dl=ue("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const gu=de("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** + */const gu=ue("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const MB=de("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + */const MB=ue("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const IB=de("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** + */const IB=ue("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const OB=de("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + */const OB=ue("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const RB=de("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + */const RB=ue("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ky=de("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + */const Ky=ue("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Pw=de("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** + */const Pw=ue("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const LB=de("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** + */const LB=ue("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const qy=de("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + */const qy=ue("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const PB=de("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** + */const PB=ue("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const DB=de("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** + */const DB=ue("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const jB=de("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** + */const jB=ue("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const BB=de("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + */const BB=ue("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const BN=de("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + */const BN=ue("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $B=de("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** + */const $B=ue("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Xd=de("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + */const Xd=ue("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const FB=de("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + */const FB=ue("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const zB=de("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** + */const zB=ue("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const UB=de("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + */const UB=ue("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $N=de("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + */const $N=ue("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const VB=de("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** + */const VB=ue("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const FN=de("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + */const FN=ue("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const HB=de("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** + */const HB=ue("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const KB=de("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** + */const KB=ue("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const qB=de("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** + */const qB=ue("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bt=de("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + */const bt=ue("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const GB=de("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** + */const GB=ue("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const WB=de("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + */const WB=ue("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const YB=de("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** + */const YB=ue("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const XB=de("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + */const XB=ue("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const QB=de("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** + */const QB=ue("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ZB=de("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + */const ZB=ue("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const JB=de("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + */const JB=ue("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ss=de("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + */const ss=ue("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const zN=de("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + */const zN=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Gy=de("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** + */const Gy=ue("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const fl=de("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** + */const fl=ue("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Am=de("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + */const Am=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const e$=de("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + */const e$=ue("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const t$=de("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** + */const t$=ue("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Dw=de("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + */const Dw=ue("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Qd=de("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + */const Qd=ue("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const UN=de("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** + */const UN=ue("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Do=de("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + */const Do=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const n$=de("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + */const n$=ue("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const r$=de("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + */const r$=ue("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const i$=de("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** + */const i$=ue("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const s$=de("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** + */const s$=ue("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Wy=de("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** + */const Wy=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Fl=de("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),jw="veadk_auth_qs";let ta=null;function o$(){if(ta!==null)return ta;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(jw,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),ta=e):ta=sessionStorage.getItem(jw)??"",ta}function Eh(e){const t=o$();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*VN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` + */const Fl=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),jw="veadk_auth_qs";let ta=null;function o$(){if(ta!==null)return ta;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(jw,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),ta=e):ta=sessionStorage.getItem(jw)??"",ta}function kh(e){const t=o$();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*VN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` `))!==-1;){const a=r.slice(0,o);r=r.slice(o+2);const l=a.split(` `).filter(c=>c.startsWith("data:")).map(c=>c.slice(5).trimStart()).join(` -`);if(l)try{yield JSON.parse(l)}catch{}}}}const kh="",Yy=new Map;function a$(e,t){Yy.set(e,t)}function l$(){Yy.clear()}function os(e){const t=Yy.get(e);return t?{app:t.app,ep:{base:t.base,apiKey:t.apiKey,runtimeId:t.runtimeId,region:t.region}}:{app:e,ep:{}}}function jt(e,t={},n={}){if(n.runtimeId){const r=n.region?`${e.includes("?")?"&":"?"}region=${encodeURIComponent(n.region)}`:"";return fetch(Eh(`${kh}/web/runtime-proxy/${n.runtimeId}${e}${r}`),t)}if(n.base){const r={...t.headers};return r["X-AgentKit-Base"]=n.base,n.apiKey&&(r["X-AgentKit-Key"]=n.apiKey),fetch(Eh(`${kh}/agentkit-proxy${e}`),{...t,headers:r})}return fetch(Eh(`${kh}${e}`),t)}async function c$(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function HN(e,t,n){const r=await jt("/list-apps",{},n??{base:e,apiKey:t});if(!r.ok)throw new Error(`list-apps failed: ${r.status}`);return r.json()}async function Cm(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"},r);if(!i.ok)throw new Error(`create session failed: ${i.status}`);return(await i.json()).id}async function KN(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{},r);if(!i.ok)throw new Error(`list sessions failed: ${i.status}`);return i.json()}async function Mm(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{},i);if(!s.ok)throw new Error(`get session failed: ${s.status}`);return s.json()}async function u$(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{method:"DELETE"},i);if(!s.ok&&s.status!==404)throw new Error(`delete session failed: ${s.status}`)}async function d$(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function Xy(e){const{app:t,ep:n}=os(e),r=await jt(`/web/agent-info/${t}`,{},n);if(!r.ok)throw new Error(`agent-info failed: ${r.status}`);return r.json()}async function f$(e,t){const{app:n}=os(e),r=await jt(`/web/search?source=web&app_name=${encodeURIComponent(n)}&q=${encodeURIComponent(t)}`);if(!r.ok)throw new Error(`web search failed: ${r.status}`);return r.json()}async function*ad({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=os(e),c=[...i.map(u=>({inlineData:{mimeType:u.mimeType,data:u.data,displayName:u.name}})),...s.map(u=>({functionResponse:{id:u.id,name:u.name,response:u.response}})),...r.trim()?[{text:r}]:[]],d=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!d.ok)throw new Error(`run_sse failed: ${d.status}`);for await(const u of VN(d))yield u}async function qN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??"",im:r==null?void 0:r.im,envs:r==null?void 0:r.envs})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of VN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl,feishuChannel:s.feishuChannel}}async function h$(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Sh={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function p$(){try{const e=await jt("/web/ui-config");if(!e.ok)return Sh;const t=await e.json();return{studio:t.studio??!1,features:{...Sh.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Sh}}async function Nh(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function m$(e,t="cn-beijing"){try{return await HN("","",{runtimeId:e,region:t})}catch{return null}}async function g$(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function GN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const y$="send_a2ui_json_to_client",b$="validated_a2ui_json",Im="adk_request_credential";function x$(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Gr(){return{blocks:[],liveStart:0}}const Bw=e=>e.functionCall??e.function_call,Om=e=>e.functionResponse??e.function_response;function w$(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function v$(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:w$(r.data),name:r.displayName??r.display_name})}return t}function $w(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Th(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function hl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Bw(l)||Om(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&$w(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Bw(l),d=Om(l);if(typeof l.text=="string"&&l.text)$w(n,l.thought?"thinking":"text",l.text);else if(c)if(Th(n),c.name===Im){const u=c.args??{},h=u.authConfig??u.auth_config??u,g=String(u.functionCallId??u.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:x$(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(d){if(Th(n),d.name===Im)for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="tool"&&!h.done&&h.name===d.name){h.done=!0,h.response=d.response;break}}if(d.name===y$){const u=((a=d.response)==null?void 0:a[b$])??[];if(u.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...u):n.push({kind:"a2ui",messages:u})}}}}return Th(n),r=n.length,{blocks:n,liveStart:r}}function _$(e){var r;const t=[];let n=Gr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(d=>{var u;return((u=Om(d))==null?void 0:u.name)===Im})){for(let d=t.length-1;d>=0;d--)if(t[d].role==="assistant"){for(let u=t[d].blocks.length-1;u>=0;u--){const h=t[d].blocks[u];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(d=>d.text).filter(d=>!!d).join(""),l=v$(o);if(!a&&!l.length){n=Gr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Gr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Gr()),n=hl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function E$(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const Qy="veadk_local_user",k$=/^[A-Za-z0-9]{1,16}$/;function S$(){try{return localStorage.getItem(Qy)}catch{return null}}function N$(e){try{localStorage.setItem(Qy,e)}catch{}}function T$(){try{localStorage.removeItem(Qy)}catch{}}async function A$(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function C$(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function M$(){window.location.assign("/oauth2/logout")}async function I$(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=S$();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function O$(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const R$="https://findskill.com/";function L$(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function P$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(L$,{}),"技能中心"]})}function D$(){return f.jsx("iframe",{className:"skill-frame",src:R$,title:"技能中心"})}const j$=50,Fw=48;function B$(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function $$(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function F$(e,t,n){const r=Math.max(0,t-Fw),i=Math.min(e.length,t+n+Fw);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Mm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:d}of B$(a)){const u=l.toLowerCase().indexOf(r);if(u!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:$$(a),snippet:F$(l,u,r.length),role:c,ts:d??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,j$)}async function U$(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await f$(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function V$(e,t,n){return e==="session"?{results:await z$(n.userId,n.appId,t)}:e==="web"?U$(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function WN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function H$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(WN,{}),"智能搜索"]})}const zw=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function K$(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function q$({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var E;const[i,s]=S.useState("session"),[o,a]=S.useState(""),[l,c]=S.useState([]),[d,u]=S.useState(),[h,p]=S.useState(!1),[g,b]=S.useState(!1),w=S.useRef(0);async function m(_,C){const N=_.trim();if(!N)return;const I=++w.current;p(!0),b(!0);let A;try{A=await V$(C,N,{userId:e,appId:t})}catch(P){A={results:[],note:`搜索失败:${String(P)}`}}I===w.current&&(c(A.results),u(A.note),p(!1))}function x(_){s(_),g&&o.trim()&&m(o,_)}const y=(E=zw.find(_=>_.id===i))==null?void 0:E.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(WN,{}),f.jsx("input",{className:"search-input",value:o,onChange:_=>a(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(bt,{className:"icon spin"}):f.jsx(DN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:zw.map(_=>f.jsxs("button",{className:`search-tab ${i===_.id?"active":""}`,onClick:()=>x(_.id),disabled:!_.ready,title:_.ready?void 0:"即将支持",children:[_.label,!_.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},_.id))}),f.jsx("div",{className:"search-results",children:y?g?h?null:d?f.jsx("div",{className:"search-empty",children:d}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((_,C)=>f.jsx(G$,{result:_,agentLabel:n,onOpen:r},C)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function G$({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(YB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${K$(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Xd,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(OB,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const YN="veadk_agentkit_connections";function Wr(){try{const e=localStorage.getItem(YN);return e?JSON.parse(e):[]}catch{return[]}}function Zy(e){try{localStorage.setItem(YN,JSON.stringify(e))}catch{}}function Wi(e,t){return`agentkit:${e}:${t}`}function XN(e){try{return new URL(e).host}catch{return e}}function zl(e){l$();for(const t of e)for(const n of t.apps)a$(Wi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function QN(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Wr().filter(a=>a.runtimeId!==e),s];return Zy(o),zl(o),s}async function ZN(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await HN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||XN(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Wr().filter(l=>l.base!==i),o];return Zy(a),zl(a),o}function W$(e){const t=Wr().filter(n=>n.id!==e);return Zy(t),zl(t),t}function JN(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Wi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:XN(i.base??"")}}));return[...n,...r]}const Uw=Object.freeze(Object.defineProperty({__proto__:null,addConnection:ZN,addRuntimeConnection:QN,buildAgentEntries:JN,loadConnections:Wr,registerConnections:zl,remoteAppId:Wi,removeConnection:W$},Symbol.toStringTag,{value:"Module"})),Vw=15,Y$=1e4;function Ah(e,t=Y$){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function X$({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,d]=S.useState([]),[u,h]=S.useState([""]),[p,g]=S.useState(0),[b,w]=S.useState(!1),[m,x]=S.useState(null),[y,v]=S.useState(!1),[E,_]=S.useState(""),[C,N]=S.useState(""),[I,A]=S.useState(null),[P,R]=S.useState(new Set),[$,O]=S.useState(o),j=S.useRef(!1),M=S.useCallback(async T=>{if(c[T]){g(T);return}const U=u[T];if(U!==void 0){v(!0),_("");try{const X=await Ah(Nh(a,{nextToken:U,pageSize:Vw}));d(Z=>{const J=[...Z];return J[T]=X.runtimes,J}),h(Z=>{const J=[...Z];return X.nextToken&&(J[T+1]=X.nextToken),J}),g(T)}catch(X){_(X instanceof Error?X.message:String(X))}finally{v(!1)}}},[a,u,c]),B=S.useCallback(async()=>{v(!0),_("");try{const T=[];let U="";do{const X=await Ah(Nh(a,{scope:"mine",nextToken:U,pageSize:100}));T.push(...X.runtimes),U=X.nextToken}while(U&&T.length<2e3);x(T)}catch(T){_(T instanceof Error?T.message:String(T))}finally{v(!1)}},[a]);S.useEffect(()=>{e&&r==="cloud"&&!j.current&&(j.current=!0,M(0))},[e,r,M]),S.useEffect(()=>{b&&m===null&&r==="cloud"&&B()},[b,m,r,B]),S.useEffect(()=>{e&&O(o)},[e,o]);function L(){R(new Set),b?(x(null),B()):(d([]),h([""]),g(0),j.current=!0,v(!0),_(""),Ah(Nh(a,{nextToken:"",pageSize:Vw})).then(T=>{d([T.runtimes]),h(T.nextToken?["",T.nextToken]:[""])}).catch(T=>_(T instanceof Error?T.message:String(T))).finally(()=>v(!1)))}const D=!b&&(c[p+1]!==void 0||u[p+1]!==void 0);function k(T){A(T.runtimeId),m$(T.runtimeId,T.region).then(U=>{if(!U||U.length===0){R(J=>new Set(J).add(T.runtimeId));return}const X=Object.fromEntries(U.map(J=>[J,T.name])),Z=QN(T.runtimeId,T.name,T.region,U,X);l(Wi(Z.id,U[0])),O({runtimeId:T.runtimeId,name:T.name,region:T.region})}).catch(()=>R(U=>new Set(U).add(T.runtimeId))).finally(()=>A(null))}if(!e)return null;const H=(b?m??[]:c[p]??[]).filter(T=>C?T.name.toLowerCase().includes(C.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Vy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:L,title:"刷新",disabled:y,children:f.jsx(zN,{className:`icon ${y?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Fl,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(T=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${T===s?"active":""}`,onClick:()=>{l(T),t()},children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T})]})},T))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Am,{className:"icon"}),f.jsx("input",{value:C,onChange:T=>N(T.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:T=>w(T.target.checked)}),"只看我创建的"]})]}),E&&f.jsx("div",{className:"agentsel-error",children:E}),f.jsxs("div",{className:"agentsel-listwrap",children:[H.length===0&&!y?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:H.map(T=>{const U=P.has(T.runtimeId),X=I===T.runtimeId,Z=($==null?void 0:$.runtimeId)===T.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${Z?"active":""}`,onClick:()=>k(T),disabled:X,title:T.runtimeId,children:[X?f.jsx(bt,{className:"icon spin"}):f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T.name}),T.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),U?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${Z$(T.status)}`,children:T.status||"-"})]})},T.runtimeId)})}),y&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||D)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||y,onClick:()=>void M(p-1),"aria-label":"上一页",children:f.jsx(NB,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!D||y,onClick:()=>void M(p+1),"aria-label":"下一页",children:f.jsx(Gn,{className:"icon"})})]})]})]}),r==="cloud"&&$&&f.jsx(Q$,{runtime:$})]})]})}function Q$({runtime:e}){const[t,n]=S.useState(null),[r,i]=S.useState(!0),[s,o]=S.useState("");S.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),GN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function Z$(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const J$="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function eF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function tF({userInfo:e,onLogout:t}){const[n,r]=S.useState(!1);if(!e)return null;const i=O$(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(WB,{className:"icon"})," 退出登录"]})]})]})]})}function nF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:d,onNewChat:u,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:b,onManageAgents:w,onPickSession:m,onDeleteSession:x,userInfo:y,onLogout:v}){const E=j=>(n==null?void 0:n[j])!==!1,[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(0),R=S.useRef(null),$=()=>{R.current&&P(R.current.offsetTop),I(j=>!j)},O=[...e].sort((j,M)=>(M.lastUpdateTime??0)-(j.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:J$,alt:"","aria-hidden":!0}),"VeADK"]}),d&&(()=>{const j=i==="cloud"&&!o;return f.jsxs("button",{ref:R,className:`agent-row ${j?"agent-row--empty":""}`,onClick:$,title:"切换 Agent",children:[f.jsx(dl,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:j?"请选择 Agent":a||"选择 Agent"}),f.jsx(Gn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),d&&f.jsx(X$,{open:N,onClose:()=>I(!1),anchorTop:A,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:d}),E("newChat")&&f.jsxs("button",{className:"new-chat",onClick:u,children:[f.jsx(ss,{className:"icon"}),"新会话"]}),E("search")&&f.jsx(H$,{onClick:h}),E("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(eF,{}),"添加 Agent"]}),E("skillCenter")&&f.jsx(P$,{onClick:g}),E("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:w,children:[f.jsx(Vy,{className:"icon"}),"管理 Agent"]})]}),E("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[O.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),O.map(j=>f.jsxs("div",{className:`history-item ${j.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(j.id),title:j.id,children:[(r==null?void 0:r.has(j.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:E$(j.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>C(M=>M===j.id?null:j.id),children:f.jsx(IB,{className:"icon"})}),_===j.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>C(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{C(null),x(j.id)},children:[f.jsx(Do,{className:"icon"})," 删除"]})})]})]},j.id))]})]}),f.jsx(tF,{userInfo:y,onLogout:v})]})}function rF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(S.Fragment,{children:[a>0&&f.jsx(Gn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(iF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function iF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=S.useState(!1),[o,a]=S.useState(null),[l,c]=S.useState({}),[d,u]=S.useState(0),h=S.useRef({}),p=w=>r?r(w):w;function g(w){a(w);const m=h.current[w];if(m){const x=m.getBoundingClientRect(),y=m.closest(".agent-dd");if(y){const v=y.getBoundingClientRect();u(x.top-v.top)}}l[w]===void 0&&(c(x=>({...x,[w]:"loading"})),Xy(w).then(x=>c(y=>({...y,[w]:x}))).catch(()=>c(x=>({...x,[w]:"error"}))))}function b(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(w=>!w),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(jN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:b}),f.jsx("div",{className:"agent-dd-menu",children:e.map(w=>f.jsx("div",{ref:m=>h.current[w]=m,className:"agent-dd-row",onMouseEnter:()=>g(w),onMouseLeave:()=>a(m=>m===w?null:m),children:f.jsxs("button",{className:`agent-dd-item ${w===t?"active":""}`,onClick:()=>{n(w),b()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(w)}),w===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},w))}),o&&f.jsx(sF,{state:l[o],top:d})]})]})}function sF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(Wy,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Hw={llm:{icon:go,label:"LLM"},sequential:{icon:BN,label:"顺序"},parallel:{icon:UN,label:"并行"},loop:{icon:Gy,label:"循环"},a2a:{icon:Xd,label:"A2A"}};function eT(e){return 1+e.children.reduce((t,n)=>t+eT(n),0)}function tT({node:e,activeAgent:t,seen:n,path:r}){const i=Hw[e.type]??Hw.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((d,u)=>f.jsx(tT,{node:d,activeAgent:t,seen:n,path:r},`${d.name}-${u}`))})]})}function Kw({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=S.useState(null);if(S.useEffect(()=>{let a=!1;if(s(null),!!e)return Xy(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[eT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Gn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(tT,{node:i,activeAgent:t,seen:n,path:o})})]})}function oF({onAdded:e,onCancel:t}){const[n,r]=S.useState(""),[i,s]=S.useState(""),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),u("");try{const g=await ZN(o,n,i,o);if(g.apps.length===0){u("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Wi(g.id,g.apps[0]))}catch(g){u(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),d&&f.jsx("div",{className:"addagent-error",children:d}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(bt,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function aF({author:e}){const[t,n]=S.useState([]),[r,i]=S.useState(!0),[s,o]=S.useState(""),[a,l]=S.useState(null),[c,d]=S.useState(null),[u,h]=S.useState({}),p=S.useCallback(async()=>{i(!0),o("");try{n(await h$(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);S.useEffect(()=>{p()},[p]);async function g(m){h(y=>({...y,[m.runtimeId]:{loading:!0}}));const x={loading:!1};try{x.detail=await GN(m.runtimeId,m.region)}catch(y){x.error=y instanceof Error?y.message:String(y)}x.detail&&(x.graphs=[{name:x.detail.name,description:x.detail.description,type:"llm",model:x.detail.model,tools:[],children:[]}],x.graphNote="仅显示主 Agent(控制面信息)。"),h(y=>({...y,[m.runtimeId]:x}))}function b(m){const x=c===m.runtimeId;d(x?null:m.runtimeId),!x&&!u[m.runtimeId]&&g(m)}async function w(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await g$(m.runtimeId,m.region),n(x=>x.filter(y=>y.runtimeId!==m.runtimeId))}catch(x){o(x instanceof Error?x.message:String(x))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(zN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const x=c===m.runtimeId,y=u[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>b(m),"aria-expanded":x,children:[x?f.jsx(jN,{className:"icon"}):f.jsx(Gn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${uF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void w(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(bt,{className:"icon spin"}):f.jsx(Do,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:rT(m.createdAt)})]})]}),x&&f.jsx("div",{className:"manage-detail",children:!y||y.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[y.error&&f.jsx("div",{className:"manage-error",children:y.error}),y.detail&&f.jsx(lF,{detail:y.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),y.graphs&&y.graphs.length>0?y.graphs.map((v,E)=>f.jsx(nT,{node:v},E)):f.jsx("div",{className:"manage-tree-note",children:y.graphNote})]})})]},m.runtimeId)})})]})}function lF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",rT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const cF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function nT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:cF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(nT,{node:n,depth:t+1},r))]})}function uF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function rT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const dF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function fF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function hF(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function pF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function Jy(e,t){if(hF(e))return fF(t,e.path);if(pF(e)){const n=dF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=Jy(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function mF(e,t){const n=Jy(e,t);return n==null?"":typeof n=="string"?n:String(n)}const iT=new Map;function as(e,t){iT.set(e,t)}function gF(e){return iT.get(e)}function yF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sJy(r,e.dataModel),resolveString:r=>mF(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=gF(i.component)??bF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function oT(e){const t=S.useRef(null),n=S.useRef(!0),r=28,i=S.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function wF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const vF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_F=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,EF={};function qw(e,t){return(EF.jsx?_F:vF).test(e)}const kF=/[ \t\n\f\r]/g;function SF(e){return typeof e=="object"?e.type==="text"?Gw(e.value):!1:Gw(e)}function Gw(e){return e.replace(kF,"")===""}let Ul=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Ul.prototype.normal={};Ul.prototype.property={};Ul.prototype.space=void 0;function aT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Ul(n,r,t)}function Rm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let NF=0;const Se=ls(),ht=ls(),Lm=ls(),ie=ls(),Fe=ls(),eo=ls(),sn=ls();function ls(){return 2**++NF}const Pm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Se,booleanish:ht,commaOrSpaceSeparated:sn,commaSeparated:eo,number:ie,overloadedBoolean:Lm,spaceSeparated:Fe},Symbol.toStringTag,{value:"Module"})),Ch=Object.keys(Pm);class e0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),Ww(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&IF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Yw,LF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Yw.test(s)){let o=s.replace(MF,RF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=e0}return new i(r,t)}function RF(e){return"-"+e.toLowerCase()}function LF(e){return e.charAt(1).toUpperCase()}const PF=aT([lT,TF,dT,fT,hT],"html"),t0=aT([lT,AF,dT,fT,hT],"svg");function DF(e){return e.join(" ").trim()}var n0={},Xw=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,jF=/\n/g,BF=/^\s*/,$F=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,FF=/^:\s*/,zF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,UF=/^[;\s]*/,VF=/^\s+|\s+$/g,HF=` -`,Qw="/",Zw="*",Ai="",KF="comment",qF="declaration";function GF(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var b=g.match(jF);b&&(n+=b.length);var w=g.lastIndexOf(HF);r=~w?g.length-w:r+g.length}function s(){var g={line:n,column:r};return function(b){return b.position=new o(g),c(),b}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var b=new Error(t.source+":"+n+":"+r+": "+g);if(b.reason=g,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function l(g){var b=g.exec(e);if(b){var w=b[0];return i(w),e=e.slice(w.length),b}}function c(){l(BF)}function d(g){var b;for(g=g||[];b=u();)b!==!1&&g.push(b);return g}function u(){var g=s();if(!(Qw!=e.charAt(0)||Zw!=e.charAt(1))){for(var b=2;Ai!=e.charAt(b)&&(Zw!=e.charAt(b)||Qw!=e.charAt(b+1));)++b;if(b+=2,Ai===e.charAt(b-1))return a("End of comment missing");var w=e.slice(2,b-2);return r+=2,i(w),e=e.slice(b),r+=2,g({type:KF,comment:w})}}function h(){var g=s(),b=l($F);if(b){if(u(),!l(FF))return a("property missing ':'");var w=l(zF),m=g({type:qF,property:Jw(b[0].replace(Xw,Ai)),value:w?Jw(w[0].replace(Xw,Ai)):Ai});return l(UF),m}}function p(){var g=[];d(g);for(var b;b=h();)b!==!1&&(g.push(b),d(g));return g}return c(),p()}function Jw(e){return e?e.replace(VF,Ai):Ai}var WF=GF,YF=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n0,"__esModule",{value:!0});n0.default=QF;const XF=YF(WF);function QF(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,XF.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var Zd={};Object.defineProperty(Zd,"__esModule",{value:!0});Zd.camelCase=void 0;var ZF=/^--[a-zA-Z0-9_-]+$/,JF=/-([a-z])/g,e3=/^[^-]+$/,t3=/^-(webkit|moz|ms|o|khtml)-/,n3=/^-(ms)-/,r3=function(e){return!e||e3.test(e)||ZF.test(e)},i3=function(e,t){return t.toUpperCase()},ev=function(e,t){return"".concat(t,"-")},s3=function(e,t){return t===void 0&&(t={}),r3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(n3,ev):e=e.replace(t3,ev),e.replace(JF,i3))};Zd.camelCase=s3;var o3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},a3=o3(n0),l3=Zd;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,a3.default)(e,function(r,i){r&&i&&(n[(0,l3.camelCase)(r,t)]=i)}),n}Dm.default=Dm;var c3=Dm;const u3=Ml(c3),pT=mT("end"),r0=mT("start");function mT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function d3(e){const t=r0(e),n=pT(e);if(t&&n)return{start:t,end:n}}function La(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?tv(e.position):"start"in e||"end"in e?tv(e):"line"in e||"column"in e?jm(e):""}function jm(e){return nv(e&&e.line)+":"+nv(e&&e.column)}function tv(e){return jm(e&&e.start)+"-"+jm(e&&e.end)}function nv(e){return e&&typeof e=="number"?e:1}class Bt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=La(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Bt.prototype.file="";Bt.prototype.name="";Bt.prototype.reason="";Bt.prototype.message="";Bt.prototype.stack="";Bt.prototype.column=void 0;Bt.prototype.line=void 0;Bt.prototype.ancestors=void 0;Bt.prototype.cause=void 0;Bt.prototype.fatal=void 0;Bt.prototype.place=void 0;Bt.prototype.ruleId=void 0;Bt.prototype.source=void 0;const i0={}.hasOwnProperty,f3=new Map,h3=/[A-Z]/g,p3=new Set(["table","tbody","thead","tfoot","tr"]),m3=new Set(["td","th"]),gT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function g3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=k3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=E3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?t0:PF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=yT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function yT(e,t,n){if(t.type==="element")return y3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return b3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return w3(e,t,n);if(t.type==="mdxjsEsm")return x3(e,t);if(t.type==="root")return v3(e,t,n);if(t.type==="text")return _3(e,t)}function y3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=xT(e,t.tagName,!1),o=S3(e,t);let a=o0(e,t);return p3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!SF(l):!0})),bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function b3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}pl(e,t.position)}function x3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);pl(e,t.position)}function w3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:xT(e,t.name,!0),o=N3(e,t),a=o0(e,t);return bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function v3(e,t,n){const r={};return s0(r,o0(e,t)),e.create(t,e.Fragment,r,n)}function _3(e,t){return t.value}function bT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function E3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function k3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=r0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function S3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&i0.call(t.properties,i)){const s=T3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&m3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function N3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else pl(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else pl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function o0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:f3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const sv={}.hasOwnProperty;function vT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=pi(/[A-Za-z]/),Lt=pi(/[\dA-Za-z]/),D3=pi(/[#-'*+\--9=?A-Z^-~]/);function ld(e){return e!==null&&(e<32||e===127)}const Bm=pi(/\d/),j3=pi(/[\dA-Fa-f]/),B3=pi(/[!-/:-@[-`{-~]/);function we(e){return e!==null&&e<-2}function $e(e){return e!==null&&(e<0||e===32)}function Ne(e){return e===-2||e===-1||e===32}const Jd=pi(new RegExp("\\p{P}|\\p{S}","u")),Yi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Bo(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Me(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Ne(l)?(e.enter(n),a(l)):t(l)}function a(l){return Ne(l)&&s++o))return;const C=t.events.length;let N=C,I,A;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){A=t.events[N][1].end;break}I=!0}for(m(r),_=C;_y;){const E=n[v];t.containerState=E[1],E[0].exit.call(t,e)}n.length=y}function x(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function V3(e,t,n){return Me(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function yo(e){if(e===null||$e(e)||Yi(e))return 1;if(Jd(e))return 2}function ef(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};av(u,-l),av(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=_n(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=_n(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=_n(c,ef(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=_n(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=_n(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dn(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n0&&Ne(_)?Me(e,x,"linePrefix",s+1)(_):x(_)}function x(_){return _===null||we(_)?e.check(lv,b,v)(_):(e.enter("codeFlowValue"),y(_))}function y(_){return _===null||we(_)?(e.exit("codeFlowValue"),x(_)):(e.consume(_),y)}function v(_){return e.exit("codeFenced"),t(_)}function E(_,C,N){let I=0;return A;function A(j){return _.enter("lineEnding"),_.consume(j),_.exit("lineEnding"),P}function P(j){return _.enter("codeFencedFence"),Ne(j)?Me(_,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):R(j)}function R(j){return j===a?(_.enter("codeFencedFenceSequence"),$(j)):N(j)}function $(j){return j===a?(I++,_.consume(j),$):I>=o?(_.exit("codeFencedFenceSequence"),Ne(j)?Me(_,O,"whitespace")(j):O(j)):N(j)}function O(j){return j===null||we(j)?(_.exit("codeFencedFence"),C(j)):N(j)}}}function t4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Ih={name:"codeIndented",tokenize:r4},n4={partial:!0,tokenize:i4};function r4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Me(e,s,"linePrefix",5)(c)}function s(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):we(c)?e.attempt(n4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||we(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function i4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Me(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):we(o)?i(o):n(o)}}const s4={name:"codeText",previous:a4,resolve:o4,tokenize:l4};function o4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&na(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),na(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),na(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function TT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let d=0;return u;function u(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||ld(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||we(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function b(m){return!d&&(m===null||m===41||$e(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):d999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):we(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||we(p)||a++>999?(e.exit("chunkString"),d(p)):(e.consume(p),l||(l=!Ne(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function CT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):we(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Me(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||we(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:d)}function u(h){return h===o||h===92?(e.consume(h),d):d(h)}}function Pa(e,t){let n;return r;function r(i){return we(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Ne(i)?Me(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const g4={name:"definition",tokenize:b4},y4={partial:!0,tokenize:x4};function b4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return AT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return $e(p)?Pa(e,c)(p):c(p)}function c(p){return TT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(y4,u,u)(p)}function u(p){return Ne(p)?Me(e,h,"whitespace")(p):h(p)}function h(p){return p===null||we(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function x4(e,t,n){return r;function r(a){return $e(a)?Pa(e,i)(a):n(a)}function i(a){return CT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Ne(a)?Me(e,o,"whitespace")(a):o(a)}function o(a){return a===null||we(a)?t(a):n(a)}}const w4={name:"hardBreakEscape",tokenize:v4};function v4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return we(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const _4={name:"headingAtx",resolve:E4,tokenize:k4};function E4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function k4(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||$e(d)?(e.exit("atxHeadingSequence"),a(d)):n(d)}function a(d){return d===35?(e.enter("atxHeadingSequence"),l(d)):d===null||we(d)?(e.exit("atxHeading"),t(d)):Ne(d)?Me(e,a,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function l(d){return d===35?(e.consume(d),l):(e.exit("atxHeadingSequence"),a(d))}function c(d){return d===null||d===35||$e(d)?(e.exit("atxHeadingText"),a(d)):(e.consume(d),c)}}const S4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],uv=["pre","script","style","textarea"],N4={concrete:!0,name:"htmlFlow",resolveTo:C4,tokenize:M4},T4={partial:!0,tokenize:O4},A4={partial:!0,tokenize:I4};function C4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function M4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(T){return d(T)}function d(T){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(T),u}function u(T){return T===33?(e.consume(T),h):T===47?(e.consume(T),s=!0,b):T===63?(e.consume(T),i=3,r.interrupt?t:k):Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function h(T){return T===45?(e.consume(T),i=2,p):T===91?(e.consume(T),i=5,a=0,g):Vt(T)?(e.consume(T),i=4,r.interrupt?t:k):n(T)}function p(T){return T===45?(e.consume(T),r.interrupt?t:k):n(T)}function g(T){const U="CDATA[";return T===U.charCodeAt(a++)?(e.consume(T),a===U.length?r.interrupt?t:R:g):n(T)}function b(T){return Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function w(T){if(T===null||T===47||T===62||$e(T)){const U=T===47,X=o.toLowerCase();return!U&&!s&&uv.includes(X)?(i=1,r.interrupt?t(T):R(T)):S4.includes(o.toLowerCase())?(i=6,U?(e.consume(T),m):r.interrupt?t(T):R(T)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(T):s?x(T):y(T))}return T===45||Lt(T)?(e.consume(T),o+=String.fromCharCode(T),w):n(T)}function m(T){return T===62?(e.consume(T),r.interrupt?t:R):n(T)}function x(T){return Ne(T)?(e.consume(T),x):A(T)}function y(T){return T===47?(e.consume(T),A):T===58||T===95||Vt(T)?(e.consume(T),v):Ne(T)?(e.consume(T),y):A(T)}function v(T){return T===45||T===46||T===58||T===95||Lt(T)?(e.consume(T),v):E(T)}function E(T){return T===61?(e.consume(T),_):Ne(T)?(e.consume(T),E):y(T)}function _(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),l=T,C):Ne(T)?(e.consume(T),_):N(T)}function C(T){return T===l?(e.consume(T),l=null,I):T===null||we(T)?n(T):(e.consume(T),C)}function N(T){return T===null||T===34||T===39||T===47||T===60||T===61||T===62||T===96||$e(T)?E(T):(e.consume(T),N)}function I(T){return T===47||T===62||Ne(T)?y(T):n(T)}function A(T){return T===62?(e.consume(T),P):n(T)}function P(T){return T===null||we(T)?R(T):Ne(T)?(e.consume(T),P):n(T)}function R(T){return T===45&&i===2?(e.consume(T),M):T===60&&i===1?(e.consume(T),B):T===62&&i===4?(e.consume(T),V):T===63&&i===3?(e.consume(T),k):T===93&&i===5?(e.consume(T),D):we(T)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(T4,H,$)(T)):T===null||we(T)?(e.exit("htmlFlowData"),$(T)):(e.consume(T),R)}function $(T){return e.check(A4,O,H)(T)}function O(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return T===null||we(T)?$(T):(e.enter("htmlFlowData"),R(T))}function M(T){return T===45?(e.consume(T),k):R(T)}function B(T){return T===47?(e.consume(T),o="",L):R(T)}function L(T){if(T===62){const U=o.toLowerCase();return uv.includes(U)?(e.consume(T),V):R(T)}return Vt(T)&&o.length<8?(e.consume(T),o+=String.fromCharCode(T),L):R(T)}function D(T){return T===93?(e.consume(T),k):R(T)}function k(T){return T===62?(e.consume(T),V):T===45&&i===2?(e.consume(T),k):R(T)}function V(T){return T===null||we(T)?(e.exit("htmlFlowData"),H(T)):(e.consume(T),V)}function H(T){return e.exit("htmlFlow"),t(T)}}function I4(e,t,n){const r=this;return i;function i(o){return we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function O4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Vl,t,n)}}const R4={name:"htmlText",tokenize:L4};function L4(e,t,n){const r=this;let i,s,o;return a;function a(k){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(k),l}function l(k){return k===33?(e.consume(k),c):k===47?(e.consume(k),E):k===63?(e.consume(k),y):Vt(k)?(e.consume(k),N):n(k)}function c(k){return k===45?(e.consume(k),d):k===91?(e.consume(k),s=0,g):Vt(k)?(e.consume(k),x):n(k)}function d(k){return k===45?(e.consume(k),p):n(k)}function u(k){return k===null?n(k):k===45?(e.consume(k),h):we(k)?(o=u,B(k)):(e.consume(k),u)}function h(k){return k===45?(e.consume(k),p):u(k)}function p(k){return k===62?M(k):k===45?h(k):u(k)}function g(k){const V="CDATA[";return k===V.charCodeAt(s++)?(e.consume(k),s===V.length?b:g):n(k)}function b(k){return k===null?n(k):k===93?(e.consume(k),w):we(k)?(o=b,B(k)):(e.consume(k),b)}function w(k){return k===93?(e.consume(k),m):b(k)}function m(k){return k===62?M(k):k===93?(e.consume(k),m):b(k)}function x(k){return k===null||k===62?M(k):we(k)?(o=x,B(k)):(e.consume(k),x)}function y(k){return k===null?n(k):k===63?(e.consume(k),v):we(k)?(o=y,B(k)):(e.consume(k),y)}function v(k){return k===62?M(k):y(k)}function E(k){return Vt(k)?(e.consume(k),_):n(k)}function _(k){return k===45||Lt(k)?(e.consume(k),_):C(k)}function C(k){return we(k)?(o=C,B(k)):Ne(k)?(e.consume(k),C):M(k)}function N(k){return k===45||Lt(k)?(e.consume(k),N):k===47||k===62||$e(k)?I(k):n(k)}function I(k){return k===47?(e.consume(k),M):k===58||k===95||Vt(k)?(e.consume(k),A):we(k)?(o=I,B(k)):Ne(k)?(e.consume(k),I):M(k)}function A(k){return k===45||k===46||k===58||k===95||Lt(k)?(e.consume(k),A):P(k)}function P(k){return k===61?(e.consume(k),R):we(k)?(o=P,B(k)):Ne(k)?(e.consume(k),P):I(k)}function R(k){return k===null||k===60||k===61||k===62||k===96?n(k):k===34||k===39?(e.consume(k),i=k,$):we(k)?(o=R,B(k)):Ne(k)?(e.consume(k),R):(e.consume(k),O)}function $(k){return k===i?(e.consume(k),i=void 0,j):k===null?n(k):we(k)?(o=$,B(k)):(e.consume(k),$)}function O(k){return k===null||k===34||k===39||k===60||k===61||k===96?n(k):k===47||k===62||$e(k)?I(k):(e.consume(k),O)}function j(k){return k===47||k===62||$e(k)?I(k):n(k)}function M(k){return k===62?(e.consume(k),e.exit("htmlTextData"),e.exit("htmlText"),t):n(k)}function B(k){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),L}function L(k){return Ne(k)?Me(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(k):D(k)}function D(k){return e.enter("htmlTextData"),o(k)}}const c0={name:"labelEnd",resolveAll:B4,resolveTo:$4,tokenize:F4},P4={tokenize:z4},D4={tokenize:U4},j4={tokenize:V4};function B4(e){let t=-1;const n=[];for(;++t=3&&(c===null||we(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Ne(c)?Me(e,a,"whitespace")(c):a(c))}}const Wt={continuation:{tokenize:J4},exit:tz,name:"list",tokenize:Z4},X4={partial:!0,tokenize:nz},Q4={partial:!0,tokenize:ez};function Z4(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Bm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(yu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Bm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Vl,r.interrupt?n:d,e.attempt(X4,h,u))}function d(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function u(p){return Ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function J4(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Vl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Me(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Ne(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Q4,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Me(e,e.attempt(Wt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function ez(e,t,n){const r=this;return Me(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function tz(e){e.exit(this.containerState.type)}function nz(e,t,n){const r=this;return Me(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Ne(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const dv={name:"setextUnderline",resolveTo:rz,tokenize:iz};function rz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function iz(e,t,n){const r=this;let i;return s;function s(c){let d=r.events.length,u;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){u=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Ne(c)?Me(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||we(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const sz={tokenize:oz};function oz(e){const t=this,n=e.attempt(Vl,r,e.attempt(this.parser.constructs.flowInitial,i,Me(e,e.attempt(this.parser.constructs.flow,i,e.attempt(d4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const az={resolveAll:IT()},lz=MT("string"),cz=MT("text");function MT(e){return{resolveAll:IT(e==="text"?uz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(d){return c(d)?s(d):a(d)}function a(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),l}function l(d){return c(d)?(n.exit("data"),s(d)):(n.consume(d),l)}function c(d){if(d===null)return!0;const u=i[d];let h=-1;if(u)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function Ez(e,t){let n=-1;const r=[];let i;for(;++n({inlineData:{mimeType:u.mimeType,data:u.data,displayName:u.name}})),...s.map(u=>({functionResponse:{id:u.id,name:u.name,response:u.response}})),...r.trim()?[{text:r}]:[]],d=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!d.ok)throw new Error(`run_sse failed: ${d.status}`);for await(const u of VN(d))yield u}async function qN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??"",im:r==null?void 0:r.im,envs:r==null?void 0:r.envs})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of VN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl,feishuChannel:s.feishuChannel}}async function h$(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Sh={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function p$(){try{const e=await jt("/web/ui-config");if(!e.ok)return Sh;const t=await e.json();return{studio:t.studio??!1,features:{...Sh.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Sh}}async function Nh(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function m$(e,t="cn-beijing"){try{return await HN("","",{runtimeId:e,region:t})}catch{return null}}async function g$(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function GN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const y$="send_a2ui_json_to_client",b$="validated_a2ui_json",Im="adk_request_credential";function x$(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Gr(){return{blocks:[],liveStart:0}}const Bw=e=>e.functionCall??e.function_call,Om=e=>e.functionResponse??e.function_response;function w$(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function v$(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:w$(r.data),name:r.displayName??r.display_name})}return t}function $w(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Th(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function hl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Bw(l)||Om(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&$w(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Bw(l),d=Om(l);if(typeof l.text=="string"&&l.text)$w(n,l.thought?"thinking":"text",l.text);else if(c)if(Th(n),c.name===Im){const u=c.args??{},h=u.authConfig??u.auth_config??u,g=String(u.functionCallId??u.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:x$(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(d){if(Th(n),d.name===Im)for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="tool"&&!h.done&&h.name===d.name){h.done=!0,h.response=d.response;break}}if(d.name===y$){const u=((a=d.response)==null?void 0:a[b$])??[];if(u.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...u):n.push({kind:"a2ui",messages:u})}}}}return Th(n),r=n.length,{blocks:n,liveStart:r}}function _$(e){var r;const t=[];let n=Gr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(d=>{var u;return((u=Om(d))==null?void 0:u.name)===Im})){for(let d=t.length-1;d>=0;d--)if(t[d].role==="assistant"){for(let u=t[d].blocks.length-1;u>=0;u--){const h=t[d].blocks[u];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(d=>d.text).filter(d=>!!d).join(""),l=v$(o);if(!a&&!l.length){n=Gr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Gr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Gr()),n=hl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function k$(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const Qy="veadk_local_user",E$=/^[A-Za-z0-9]{1,16}$/;function S$(){try{return localStorage.getItem(Qy)}catch{return null}}function N$(e){try{localStorage.setItem(Qy,e)}catch{}}function T$(){try{localStorage.removeItem(Qy)}catch{}}async function A$(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function C$(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function M$(){window.location.assign("/oauth2/logout")}async function I$(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=S$();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function O$(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const R$="https://findskill.com/";function L$(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function P$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(L$,{}),"技能中心"]})}function D$(){return f.jsx("iframe",{className:"skill-frame",src:R$,title:"技能中心"})}const j$=50,Fw=48;function B$(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function $$(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function F$(e,t,n){const r=Math.max(0,t-Fw),i=Math.min(e.length,t+n+Fw);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Mm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:d}of B$(a)){const u=l.toLowerCase().indexOf(r);if(u!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:$$(a),snippet:F$(l,u,r.length),role:c,ts:d??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,j$)}async function U$(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await f$(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function V$(e,t,n){return e==="session"?{results:await z$(n.userId,n.appId,t)}:e==="web"?U$(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function WN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function H$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(WN,{}),"智能搜索"]})}const zw=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function K$(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function q$({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var k;const[i,s]=S.useState("session"),[o,a]=S.useState(""),[l,c]=S.useState([]),[d,u]=S.useState(),[h,p]=S.useState(!1),[g,b]=S.useState(!1),w=S.useRef(0);async function m(_,C){const N=_.trim();if(!N)return;const I=++w.current;p(!0),b(!0);let A;try{A=await V$(C,N,{userId:e,appId:t})}catch(P){A={results:[],note:`搜索失败:${String(P)}`}}I===w.current&&(c(A.results),u(A.note),p(!1))}function x(_){s(_),g&&o.trim()&&m(o,_)}const y=(k=zw.find(_=>_.id===i))==null?void 0:k.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(WN,{}),f.jsx("input",{className:"search-input",value:o,onChange:_=>a(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(bt,{className:"icon spin"}):f.jsx(DN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:zw.map(_=>f.jsxs("button",{className:`search-tab ${i===_.id?"active":""}`,onClick:()=>x(_.id),disabled:!_.ready,title:_.ready?void 0:"即将支持",children:[_.label,!_.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},_.id))}),f.jsx("div",{className:"search-results",children:y?g?h?null:d?f.jsx("div",{className:"search-empty",children:d}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((_,C)=>f.jsx(G$,{result:_,agentLabel:n,onOpen:r},C)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function G$({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(YB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${K$(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Xd,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(OB,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const YN="veadk_agentkit_connections";function Wr(){try{const e=localStorage.getItem(YN);return e?JSON.parse(e):[]}catch{return[]}}function Zy(e){try{localStorage.setItem(YN,JSON.stringify(e))}catch{}}function Wi(e,t){return`agentkit:${e}:${t}`}function XN(e){try{return new URL(e).host}catch{return e}}function zl(e){l$();for(const t of e)for(const n of t.apps)a$(Wi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function QN(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Wr().filter(a=>a.runtimeId!==e),s];return Zy(o),zl(o),s}async function ZN(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await HN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||XN(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Wr().filter(l=>l.base!==i),o];return Zy(a),zl(a),o}function W$(e){const t=Wr().filter(n=>n.id!==e);return Zy(t),zl(t),t}function JN(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Wi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:XN(i.base??"")}}));return[...n,...r]}const Uw=Object.freeze(Object.defineProperty({__proto__:null,addConnection:ZN,addRuntimeConnection:QN,buildAgentEntries:JN,loadConnections:Wr,registerConnections:zl,remoteAppId:Wi,removeConnection:W$},Symbol.toStringTag,{value:"Module"})),Vw=15,Y$=1e4;function Ah(e,t=Y$){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function X$({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,d]=S.useState([]),[u,h]=S.useState([""]),[p,g]=S.useState(0),[b,w]=S.useState(!1),[m,x]=S.useState(null),[y,v]=S.useState(!1),[k,_]=S.useState(""),[C,N]=S.useState(""),[I,A]=S.useState(null),[P,R]=S.useState(new Set),[F,O]=S.useState(o),j=S.useRef(!1),M=S.useCallback(async T=>{if(c[T]){g(T);return}const U=u[T];if(U!==void 0){v(!0),_("");try{const Y=await Ah(Nh(a,{nextToken:U,pageSize:Vw}));d(Z=>{const J=[...Z];return J[T]=Y.runtimes,J}),h(Z=>{const J=[...Z];return Y.nextToken&&(J[T+1]=Y.nextToken),J}),g(T)}catch(Y){_(Y instanceof Error?Y.message:String(Y))}finally{v(!1)}}},[a,u,c]),B=S.useCallback(async()=>{v(!0),_("");try{const T=[];let U="";do{const Y=await Ah(Nh(a,{scope:"mine",nextToken:U,pageSize:100}));T.push(...Y.runtimes),U=Y.nextToken}while(U&&T.length<2e3);x(T)}catch(T){_(T instanceof Error?T.message:String(T))}finally{v(!1)}},[a]);S.useEffect(()=>{e&&r==="cloud"&&!j.current&&(j.current=!0,M(0))},[e,r,M]),S.useEffect(()=>{b&&m===null&&r==="cloud"&&B()},[b,m,r,B]),S.useEffect(()=>{e&&O(o)},[e,o]);function L(){R(new Set),b?(x(null),B()):(d([]),h([""]),g(0),j.current=!0,v(!0),_(""),Ah(Nh(a,{nextToken:"",pageSize:Vw})).then(T=>{d([T.runtimes]),h(T.nextToken?["",T.nextToken]:[""])}).catch(T=>_(T instanceof Error?T.message:String(T))).finally(()=>v(!1)))}const D=!b&&(c[p+1]!==void 0||u[p+1]!==void 0);function E(T){A(T.runtimeId),m$(T.runtimeId,T.region).then(U=>{if(!U||U.length===0){R(J=>new Set(J).add(T.runtimeId));return}const Y=Object.fromEntries(U.map(J=>[J,T.name])),Z=QN(T.runtimeId,T.name,T.region,U,Y);l(Wi(Z.id,U[0])),O({runtimeId:T.runtimeId,name:T.name,region:T.region})}).catch(()=>R(U=>new Set(U).add(T.runtimeId))).finally(()=>A(null))}if(!e)return null;const H=(b?m??[]:c[p]??[]).filter(T=>C?T.name.toLowerCase().includes(C.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Vy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:L,title:"刷新",disabled:y,children:f.jsx(zN,{className:`icon ${y?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Fl,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(T=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${T===s?"active":""}`,onClick:()=>{l(T),t()},children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T})]})},T))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Am,{className:"icon"}),f.jsx("input",{value:C,onChange:T=>N(T.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:T=>w(T.target.checked)}),"只看我创建的"]})]}),k&&f.jsx("div",{className:"agentsel-error",children:k}),f.jsxs("div",{className:"agentsel-listwrap",children:[H.length===0&&!y?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:H.map(T=>{const U=P.has(T.runtimeId),Y=I===T.runtimeId,Z=(F==null?void 0:F.runtimeId)===T.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${Z?"active":""}`,onClick:()=>E(T),disabled:Y,title:T.runtimeId,children:[Y?f.jsx(bt,{className:"icon spin"}):f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T.name}),T.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),U?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${Z$(T.status)}`,children:T.status||"-"})]})},T.runtimeId)})}),y&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||D)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||y,onClick:()=>void M(p-1),"aria-label":"上一页",children:f.jsx(NB,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!D||y,onClick:()=>void M(p+1),"aria-label":"下一页",children:f.jsx(Gn,{className:"icon"})})]})]})]}),r==="cloud"&&F&&f.jsx(Q$,{runtime:F})]})]})}function Q$({runtime:e}){const[t,n]=S.useState(null),[r,i]=S.useState(!0),[s,o]=S.useState("");S.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),GN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function Z$(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const J$="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function eF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function tF({userInfo:e,onLogout:t}){const[n,r]=S.useState(!1);if(!e)return null;const i=O$(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(WB,{className:"icon"})," 退出登录"]})]})]})]})}function nF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:d,onNewChat:u,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:b,onManageAgents:w,onPickSession:m,onDeleteSession:x,userInfo:y,onLogout:v}){const k=j=>(n==null?void 0:n[j])!==!1,[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(0),R=S.useRef(null),F=()=>{R.current&&P(R.current.offsetTop),I(j=>!j)},O=[...e].sort((j,M)=>(M.lastUpdateTime??0)-(j.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:J$,alt:"","aria-hidden":!0}),"VeADK"]}),d&&(()=>{const j=i==="cloud"&&!o;return f.jsxs("button",{ref:R,className:`agent-row ${j?"agent-row--empty":""}`,onClick:F,title:"切换 Agent",children:[f.jsx(dl,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:j?"请选择 Agent":a||"选择 Agent"}),f.jsx(Gn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),d&&f.jsx(X$,{open:N,onClose:()=>I(!1),anchorTop:A,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:d}),k("newChat")&&f.jsxs("button",{className:"new-chat",onClick:u,children:[f.jsx(ss,{className:"icon"}),"新会话"]}),k("search")&&f.jsx(H$,{onClick:h}),k("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(eF,{}),"添加 Agent"]}),k("skillCenter")&&f.jsx(P$,{onClick:g}),k("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:w,children:[f.jsx(Vy,{className:"icon"}),"管理 Agent"]})]}),k("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[O.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),O.map(j=>f.jsxs("div",{className:`history-item ${j.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(j.id),title:j.id,children:[(r==null?void 0:r.has(j.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:k$(j.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>C(M=>M===j.id?null:j.id),children:f.jsx(IB,{className:"icon"})}),_===j.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>C(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{C(null),x(j.id)},children:[f.jsx(Do,{className:"icon"})," 删除"]})})]})]},j.id))]})]}),f.jsx(tF,{userInfo:y,onLogout:v})]})}function rF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(S.Fragment,{children:[a>0&&f.jsx(Gn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(iF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function iF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=S.useState(!1),[o,a]=S.useState(null),[l,c]=S.useState({}),[d,u]=S.useState(0),h=S.useRef({}),p=w=>r?r(w):w;function g(w){a(w);const m=h.current[w];if(m){const x=m.getBoundingClientRect(),y=m.closest(".agent-dd");if(y){const v=y.getBoundingClientRect();u(x.top-v.top)}}l[w]===void 0&&(c(x=>({...x,[w]:"loading"})),Xy(w).then(x=>c(y=>({...y,[w]:x}))).catch(()=>c(x=>({...x,[w]:"error"}))))}function b(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(w=>!w),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(jN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:b}),f.jsx("div",{className:"agent-dd-menu",children:e.map(w=>f.jsx("div",{ref:m=>h.current[w]=m,className:"agent-dd-row",onMouseEnter:()=>g(w),onMouseLeave:()=>a(m=>m===w?null:m),children:f.jsxs("button",{className:`agent-dd-item ${w===t?"active":""}`,onClick:()=>{n(w),b()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(w)}),w===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},w))}),o&&f.jsx(sF,{state:l[o],top:d})]})]})}function sF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(Wy,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Hw={llm:{icon:go,label:"LLM"},sequential:{icon:BN,label:"顺序"},parallel:{icon:UN,label:"并行"},loop:{icon:Gy,label:"循环"},a2a:{icon:Xd,label:"A2A"}};function eT(e){return 1+e.children.reduce((t,n)=>t+eT(n),0)}function tT({node:e,activeAgent:t,seen:n,path:r}){const i=Hw[e.type]??Hw.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((d,u)=>f.jsx(tT,{node:d,activeAgent:t,seen:n,path:r},`${d.name}-${u}`))})]})}function Kw({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=S.useState(null);if(S.useEffect(()=>{let a=!1;if(s(null),!!e)return Xy(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[eT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Gn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(tT,{node:i,activeAgent:t,seen:n,path:o})})]})}function oF({onAdded:e,onCancel:t}){const[n,r]=S.useState(""),[i,s]=S.useState(""),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),u("");try{const g=await ZN(o,n,i,o);if(g.apps.length===0){u("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Wi(g.id,g.apps[0]))}catch(g){u(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),d&&f.jsx("div",{className:"addagent-error",children:d}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(bt,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function aF({author:e}){const[t,n]=S.useState([]),[r,i]=S.useState(!0),[s,o]=S.useState(""),[a,l]=S.useState(null),[c,d]=S.useState(null),[u,h]=S.useState({}),p=S.useCallback(async()=>{i(!0),o("");try{n(await h$(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);S.useEffect(()=>{p()},[p]);async function g(m){h(y=>({...y,[m.runtimeId]:{loading:!0}}));const x={loading:!1};try{x.detail=await GN(m.runtimeId,m.region)}catch(y){x.error=y instanceof Error?y.message:String(y)}x.detail&&(x.graphs=[{name:x.detail.name,description:x.detail.description,type:"llm",model:x.detail.model,tools:[],children:[]}],x.graphNote="仅显示主 Agent(控制面信息)。"),h(y=>({...y,[m.runtimeId]:x}))}function b(m){const x=c===m.runtimeId;d(x?null:m.runtimeId),!x&&!u[m.runtimeId]&&g(m)}async function w(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await g$(m.runtimeId,m.region),n(x=>x.filter(y=>y.runtimeId!==m.runtimeId))}catch(x){o(x instanceof Error?x.message:String(x))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(zN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const x=c===m.runtimeId,y=u[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>b(m),"aria-expanded":x,children:[x?f.jsx(jN,{className:"icon"}):f.jsx(Gn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${uF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void w(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(bt,{className:"icon spin"}):f.jsx(Do,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:rT(m.createdAt)})]})]}),x&&f.jsx("div",{className:"manage-detail",children:!y||y.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[y.error&&f.jsx("div",{className:"manage-error",children:y.error}),y.detail&&f.jsx(lF,{detail:y.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),y.graphs&&y.graphs.length>0?y.graphs.map((v,k)=>f.jsx(nT,{node:v},k)):f.jsx("div",{className:"manage-tree-note",children:y.graphNote})]})})]},m.runtimeId)})})]})}function lF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",rT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const cF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function nT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:cF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(nT,{node:n,depth:t+1},r))]})}function uF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function rT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const dF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function fF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function hF(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function pF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function Jy(e,t){if(hF(e))return fF(t,e.path);if(pF(e)){const n=dF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=Jy(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function mF(e,t){const n=Jy(e,t);return n==null?"":typeof n=="string"?n:String(n)}const iT=new Map;function as(e,t){iT.set(e,t)}function gF(e){return iT.get(e)}function yF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sJy(r,e.dataModel),resolveString:r=>mF(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=gF(i.component)??bF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function oT(e){const t=S.useRef(null),n=S.useRef(!0),r=28,i=S.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function wF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const vF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_F=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,kF={};function qw(e,t){return(kF.jsx?_F:vF).test(e)}const EF=/[ \t\n\f\r]/g;function SF(e){return typeof e=="object"?e.type==="text"?Gw(e.value):!1:Gw(e)}function Gw(e){return e.replace(EF,"")===""}let Ul=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Ul.prototype.normal={};Ul.prototype.property={};Ul.prototype.space=void 0;function aT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Ul(n,r,t)}function Rm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let NF=0;const Se=ls(),ft=ls(),Lm=ls(),ie=ls(),$e=ls(),eo=ls(),sn=ls();function ls(){return 2**++NF}const Pm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Se,booleanish:ft,commaOrSpaceSeparated:sn,commaSeparated:eo,number:ie,overloadedBoolean:Lm,spaceSeparated:$e},Symbol.toStringTag,{value:"Module"})),Ch=Object.keys(Pm);class e0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),Ww(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&IF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Yw,LF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Yw.test(s)){let o=s.replace(MF,RF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=e0}return new i(r,t)}function RF(e){return"-"+e.toLowerCase()}function LF(e){return e.charAt(1).toUpperCase()}const PF=aT([lT,TF,dT,fT,hT],"html"),t0=aT([lT,AF,dT,fT,hT],"svg");function DF(e){return e.join(" ").trim()}var n0={},Xw=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,jF=/\n/g,BF=/^\s*/,$F=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,FF=/^:\s*/,zF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,UF=/^[;\s]*/,VF=/^\s+|\s+$/g,HF=` +`,Qw="/",Zw="*",Ai="",KF="comment",qF="declaration";function GF(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var b=g.match(jF);b&&(n+=b.length);var w=g.lastIndexOf(HF);r=~w?g.length-w:r+g.length}function s(){var g={line:n,column:r};return function(b){return b.position=new o(g),c(),b}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var b=new Error(t.source+":"+n+":"+r+": "+g);if(b.reason=g,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function l(g){var b=g.exec(e);if(b){var w=b[0];return i(w),e=e.slice(w.length),b}}function c(){l(BF)}function d(g){var b;for(g=g||[];b=u();)b!==!1&&g.push(b);return g}function u(){var g=s();if(!(Qw!=e.charAt(0)||Zw!=e.charAt(1))){for(var b=2;Ai!=e.charAt(b)&&(Zw!=e.charAt(b)||Qw!=e.charAt(b+1));)++b;if(b+=2,Ai===e.charAt(b-1))return a("End of comment missing");var w=e.slice(2,b-2);return r+=2,i(w),e=e.slice(b),r+=2,g({type:KF,comment:w})}}function h(){var g=s(),b=l($F);if(b){if(u(),!l(FF))return a("property missing ':'");var w=l(zF),m=g({type:qF,property:Jw(b[0].replace(Xw,Ai)),value:w?Jw(w[0].replace(Xw,Ai)):Ai});return l(UF),m}}function p(){var g=[];d(g);for(var b;b=h();)b!==!1&&(g.push(b),d(g));return g}return c(),p()}function Jw(e){return e?e.replace(VF,Ai):Ai}var WF=GF,YF=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n0,"__esModule",{value:!0});n0.default=QF;const XF=YF(WF);function QF(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,XF.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var Zd={};Object.defineProperty(Zd,"__esModule",{value:!0});Zd.camelCase=void 0;var ZF=/^--[a-zA-Z0-9_-]+$/,JF=/-([a-z])/g,e3=/^[^-]+$/,t3=/^-(webkit|moz|ms|o|khtml)-/,n3=/^-(ms)-/,r3=function(e){return!e||e3.test(e)||ZF.test(e)},i3=function(e,t){return t.toUpperCase()},ev=function(e,t){return"".concat(t,"-")},s3=function(e,t){return t===void 0&&(t={}),r3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(n3,ev):e=e.replace(t3,ev),e.replace(JF,i3))};Zd.camelCase=s3;var o3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},a3=o3(n0),l3=Zd;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,a3.default)(e,function(r,i){r&&i&&(n[(0,l3.camelCase)(r,t)]=i)}),n}Dm.default=Dm;var c3=Dm;const u3=Ml(c3),pT=mT("end"),r0=mT("start");function mT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function d3(e){const t=r0(e),n=pT(e);if(t&&n)return{start:t,end:n}}function La(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?tv(e.position):"start"in e||"end"in e?tv(e):"line"in e||"column"in e?jm(e):""}function jm(e){return nv(e&&e.line)+":"+nv(e&&e.column)}function tv(e){return jm(e&&e.start)+"-"+jm(e&&e.end)}function nv(e){return e&&typeof e=="number"?e:1}class Bt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=La(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Bt.prototype.file="";Bt.prototype.name="";Bt.prototype.reason="";Bt.prototype.message="";Bt.prototype.stack="";Bt.prototype.column=void 0;Bt.prototype.line=void 0;Bt.prototype.ancestors=void 0;Bt.prototype.cause=void 0;Bt.prototype.fatal=void 0;Bt.prototype.place=void 0;Bt.prototype.ruleId=void 0;Bt.prototype.source=void 0;const i0={}.hasOwnProperty,f3=new Map,h3=/[A-Z]/g,p3=new Set(["table","tbody","thead","tfoot","tr"]),m3=new Set(["td","th"]),gT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function g3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=E3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=k3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?t0:PF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=yT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function yT(e,t,n){if(t.type==="element")return y3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return b3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return w3(e,t,n);if(t.type==="mdxjsEsm")return x3(e,t);if(t.type==="root")return v3(e,t,n);if(t.type==="text")return _3(e,t)}function y3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=xT(e,t.tagName,!1),o=S3(e,t);let a=o0(e,t);return p3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!SF(l):!0})),bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function b3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}pl(e,t.position)}function x3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);pl(e,t.position)}function w3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:xT(e,t.name,!0),o=N3(e,t),a=o0(e,t);return bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function v3(e,t,n){const r={};return s0(r,o0(e,t)),e.create(t,e.Fragment,r,n)}function _3(e,t){return t.value}function bT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function k3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function E3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=r0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function S3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&i0.call(t.properties,i)){const s=T3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&m3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function N3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else pl(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else pl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function o0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:f3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const sv={}.hasOwnProperty;function vT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=pi(/[A-Za-z]/),Lt=pi(/[\dA-Za-z]/),D3=pi(/[#-'*+\--9=?A-Z^-~]/);function ld(e){return e!==null&&(e<32||e===127)}const Bm=pi(/\d/),j3=pi(/[\dA-Fa-f]/),B3=pi(/[!-/:-@[-`{-~]/);function xe(e){return e!==null&&e<-2}function Be(e){return e!==null&&(e<0||e===32)}function Ne(e){return e===-2||e===-1||e===32}const Jd=pi(new RegExp("\\p{P}|\\p{S}","u")),Yi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Bo(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ie(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Ne(l)?(e.enter(n),a(l)):t(l)}function a(l){return Ne(l)&&s++o))return;const C=t.events.length;let N=C,I,A;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){A=t.events[N][1].end;break}I=!0}for(m(r),_=C;_y;){const k=n[v];t.containerState=k[1],k[0].exit.call(t,e)}n.length=y}function x(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function V3(e,t,n){return Ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function yo(e){if(e===null||Be(e)||Yi(e))return 1;if(Jd(e))return 2}function ef(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};av(u,-l),av(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=_n(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=_n(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=_n(c,ef(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=_n(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=_n(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dn(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n0&&Ne(_)?Ie(e,x,"linePrefix",s+1)(_):x(_)}function x(_){return _===null||xe(_)?e.check(lv,b,v)(_):(e.enter("codeFlowValue"),y(_))}function y(_){return _===null||xe(_)?(e.exit("codeFlowValue"),x(_)):(e.consume(_),y)}function v(_){return e.exit("codeFenced"),t(_)}function k(_,C,N){let I=0;return A;function A(j){return _.enter("lineEnding"),_.consume(j),_.exit("lineEnding"),P}function P(j){return _.enter("codeFencedFence"),Ne(j)?Ie(_,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):R(j)}function R(j){return j===a?(_.enter("codeFencedFenceSequence"),F(j)):N(j)}function F(j){return j===a?(I++,_.consume(j),F):I>=o?(_.exit("codeFencedFenceSequence"),Ne(j)?Ie(_,O,"whitespace")(j):O(j)):N(j)}function O(j){return j===null||xe(j)?(_.exit("codeFencedFence"),C(j)):N(j)}}}function t4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Ih={name:"codeIndented",tokenize:r4},n4={partial:!0,tokenize:i4};function r4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Ie(e,s,"linePrefix",5)(c)}function s(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):xe(c)?e.attempt(n4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||xe(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function i4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Ie(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):xe(o)?i(o):n(o)}}const s4={name:"codeText",previous:a4,resolve:o4,tokenize:l4};function o4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&na(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),na(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),na(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function TT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let d=0;return u;function u(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||ld(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||xe(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function b(m){return!d&&(m===null||m===41||Be(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):d999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):xe(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||xe(p)||a++>999?(e.exit("chunkString"),d(p)):(e.consume(p),l||(l=!Ne(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function CT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):xe(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Ie(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||xe(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:d)}function u(h){return h===o||h===92?(e.consume(h),d):d(h)}}function Pa(e,t){let n;return r;function r(i){return xe(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Ne(i)?Ie(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const g4={name:"definition",tokenize:b4},y4={partial:!0,tokenize:x4};function b4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return AT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return Be(p)?Pa(e,c)(p):c(p)}function c(p){return TT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(y4,u,u)(p)}function u(p){return Ne(p)?Ie(e,h,"whitespace")(p):h(p)}function h(p){return p===null||xe(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function x4(e,t,n){return r;function r(a){return Be(a)?Pa(e,i)(a):n(a)}function i(a){return CT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Ne(a)?Ie(e,o,"whitespace")(a):o(a)}function o(a){return a===null||xe(a)?t(a):n(a)}}const w4={name:"hardBreakEscape",tokenize:v4};function v4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return xe(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const _4={name:"headingAtx",resolve:k4,tokenize:E4};function k4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function E4(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Be(d)?(e.exit("atxHeadingSequence"),a(d)):n(d)}function a(d){return d===35?(e.enter("atxHeadingSequence"),l(d)):d===null||xe(d)?(e.exit("atxHeading"),t(d)):Ne(d)?Ie(e,a,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function l(d){return d===35?(e.consume(d),l):(e.exit("atxHeadingSequence"),a(d))}function c(d){return d===null||d===35||Be(d)?(e.exit("atxHeadingText"),a(d)):(e.consume(d),c)}}const S4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],uv=["pre","script","style","textarea"],N4={concrete:!0,name:"htmlFlow",resolveTo:C4,tokenize:M4},T4={partial:!0,tokenize:O4},A4={partial:!0,tokenize:I4};function C4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function M4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(T){return d(T)}function d(T){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(T),u}function u(T){return T===33?(e.consume(T),h):T===47?(e.consume(T),s=!0,b):T===63?(e.consume(T),i=3,r.interrupt?t:E):Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function h(T){return T===45?(e.consume(T),i=2,p):T===91?(e.consume(T),i=5,a=0,g):Vt(T)?(e.consume(T),i=4,r.interrupt?t:E):n(T)}function p(T){return T===45?(e.consume(T),r.interrupt?t:E):n(T)}function g(T){const U="CDATA[";return T===U.charCodeAt(a++)?(e.consume(T),a===U.length?r.interrupt?t:R:g):n(T)}function b(T){return Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function w(T){if(T===null||T===47||T===62||Be(T)){const U=T===47,Y=o.toLowerCase();return!U&&!s&&uv.includes(Y)?(i=1,r.interrupt?t(T):R(T)):S4.includes(o.toLowerCase())?(i=6,U?(e.consume(T),m):r.interrupt?t(T):R(T)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(T):s?x(T):y(T))}return T===45||Lt(T)?(e.consume(T),o+=String.fromCharCode(T),w):n(T)}function m(T){return T===62?(e.consume(T),r.interrupt?t:R):n(T)}function x(T){return Ne(T)?(e.consume(T),x):A(T)}function y(T){return T===47?(e.consume(T),A):T===58||T===95||Vt(T)?(e.consume(T),v):Ne(T)?(e.consume(T),y):A(T)}function v(T){return T===45||T===46||T===58||T===95||Lt(T)?(e.consume(T),v):k(T)}function k(T){return T===61?(e.consume(T),_):Ne(T)?(e.consume(T),k):y(T)}function _(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),l=T,C):Ne(T)?(e.consume(T),_):N(T)}function C(T){return T===l?(e.consume(T),l=null,I):T===null||xe(T)?n(T):(e.consume(T),C)}function N(T){return T===null||T===34||T===39||T===47||T===60||T===61||T===62||T===96||Be(T)?k(T):(e.consume(T),N)}function I(T){return T===47||T===62||Ne(T)?y(T):n(T)}function A(T){return T===62?(e.consume(T),P):n(T)}function P(T){return T===null||xe(T)?R(T):Ne(T)?(e.consume(T),P):n(T)}function R(T){return T===45&&i===2?(e.consume(T),M):T===60&&i===1?(e.consume(T),B):T===62&&i===4?(e.consume(T),V):T===63&&i===3?(e.consume(T),E):T===93&&i===5?(e.consume(T),D):xe(T)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(T4,H,F)(T)):T===null||xe(T)?(e.exit("htmlFlowData"),F(T)):(e.consume(T),R)}function F(T){return e.check(A4,O,H)(T)}function O(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return T===null||xe(T)?F(T):(e.enter("htmlFlowData"),R(T))}function M(T){return T===45?(e.consume(T),E):R(T)}function B(T){return T===47?(e.consume(T),o="",L):R(T)}function L(T){if(T===62){const U=o.toLowerCase();return uv.includes(U)?(e.consume(T),V):R(T)}return Vt(T)&&o.length<8?(e.consume(T),o+=String.fromCharCode(T),L):R(T)}function D(T){return T===93?(e.consume(T),E):R(T)}function E(T){return T===62?(e.consume(T),V):T===45&&i===2?(e.consume(T),E):R(T)}function V(T){return T===null||xe(T)?(e.exit("htmlFlowData"),H(T)):(e.consume(T),V)}function H(T){return e.exit("htmlFlow"),t(T)}}function I4(e,t,n){const r=this;return i;function i(o){return xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function O4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Vl,t,n)}}const R4={name:"htmlText",tokenize:L4};function L4(e,t,n){const r=this;let i,s,o;return a;function a(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),l}function l(E){return E===33?(e.consume(E),c):E===47?(e.consume(E),k):E===63?(e.consume(E),y):Vt(E)?(e.consume(E),N):n(E)}function c(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),s=0,g):Vt(E)?(e.consume(E),x):n(E)}function d(E){return E===45?(e.consume(E),p):n(E)}function u(E){return E===null?n(E):E===45?(e.consume(E),h):xe(E)?(o=u,B(E)):(e.consume(E),u)}function h(E){return E===45?(e.consume(E),p):u(E)}function p(E){return E===62?M(E):E===45?h(E):u(E)}function g(E){const V="CDATA[";return E===V.charCodeAt(s++)?(e.consume(E),s===V.length?b:g):n(E)}function b(E){return E===null?n(E):E===93?(e.consume(E),w):xe(E)?(o=b,B(E)):(e.consume(E),b)}function w(E){return E===93?(e.consume(E),m):b(E)}function m(E){return E===62?M(E):E===93?(e.consume(E),m):b(E)}function x(E){return E===null||E===62?M(E):xe(E)?(o=x,B(E)):(e.consume(E),x)}function y(E){return E===null?n(E):E===63?(e.consume(E),v):xe(E)?(o=y,B(E)):(e.consume(E),y)}function v(E){return E===62?M(E):y(E)}function k(E){return Vt(E)?(e.consume(E),_):n(E)}function _(E){return E===45||Lt(E)?(e.consume(E),_):C(E)}function C(E){return xe(E)?(o=C,B(E)):Ne(E)?(e.consume(E),C):M(E)}function N(E){return E===45||Lt(E)?(e.consume(E),N):E===47||E===62||Be(E)?I(E):n(E)}function I(E){return E===47?(e.consume(E),M):E===58||E===95||Vt(E)?(e.consume(E),A):xe(E)?(o=I,B(E)):Ne(E)?(e.consume(E),I):M(E)}function A(E){return E===45||E===46||E===58||E===95||Lt(E)?(e.consume(E),A):P(E)}function P(E){return E===61?(e.consume(E),R):xe(E)?(o=P,B(E)):Ne(E)?(e.consume(E),P):I(E)}function R(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),i=E,F):xe(E)?(o=R,B(E)):Ne(E)?(e.consume(E),R):(e.consume(E),O)}function F(E){return E===i?(e.consume(E),i=void 0,j):E===null?n(E):xe(E)?(o=F,B(E)):(e.consume(E),F)}function O(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||Be(E)?I(E):(e.consume(E),O)}function j(E){return E===47||E===62||Be(E)?I(E):n(E)}function M(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function B(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),L}function L(E){return Ne(E)?Ie(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):D(E)}function D(E){return e.enter("htmlTextData"),o(E)}}const c0={name:"labelEnd",resolveAll:B4,resolveTo:$4,tokenize:F4},P4={tokenize:z4},D4={tokenize:U4},j4={tokenize:V4};function B4(e){let t=-1;const n=[];for(;++t=3&&(c===null||xe(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Ne(c)?Ie(e,a,"whitespace")(c):a(c))}}const Wt={continuation:{tokenize:J4},exit:tz,name:"list",tokenize:Z4},X4={partial:!0,tokenize:nz},Q4={partial:!0,tokenize:ez};function Z4(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Bm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(yu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Bm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Vl,r.interrupt?n:d,e.attempt(X4,h,u))}function d(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function u(p){return Ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function J4(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Vl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ie(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Ne(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Q4,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ie(e,e.attempt(Wt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function ez(e,t,n){const r=this;return Ie(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function tz(e){e.exit(this.containerState.type)}function nz(e,t,n){const r=this;return Ie(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Ne(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const dv={name:"setextUnderline",resolveTo:rz,tokenize:iz};function rz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function iz(e,t,n){const r=this;let i;return s;function s(c){let d=r.events.length,u;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){u=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Ne(c)?Ie(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||xe(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const sz={tokenize:oz};function oz(e){const t=this,n=e.attempt(Vl,r,e.attempt(this.parser.constructs.flowInitial,i,Ie(e,e.attempt(this.parser.constructs.flow,i,e.attempt(d4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const az={resolveAll:IT()},lz=MT("string"),cz=MT("text");function MT(e){return{resolveAll:IT(e==="text"?uz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(d){return c(d)?s(d):a(d)}function a(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),l}function l(d){return c(d)?(n.exit("data"),s(d)):(n.consume(d),l)}function c(d){if(d===null)return!0;const u=i[d];let h=-1;if(u)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function kz(e,t){let n=-1;const r=[];let i;for(;++n0){const Re=te.tokenStack[te.tokenStack.length-1];(Re[1]||hv).call(te,void 0,Re[0])}for(K.position={start:Pr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Pr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},ve=-1;++ve0){const Le=te.tokenStack[te.tokenStack.length-1];(Le[1]||hv).call(te,void 0,Le[0])}for(K.position={start:Pr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Pr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},we=-1;++we0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function jz(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Bz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $z(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Bo(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,a+=1,e.footnoteCounts.set(r,a);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function Fz(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function LT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function Uz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={src:Bo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function Vz(e,t){const n={src:Bo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Hz(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Kz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={href:Bo(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function qz(e,t){const n={href:Bo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Gz(e,t,n){const r=e.all(t),i=n?Wz(n):PT(t),s={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let u;d&&d.type==="element"&&d.tagName==="p"?u=d:(u={type:"element",tagName:"p",properties:{},children:[]},r.unshift(u)),u.children.length>0&&u.children.unshift({type:"text",value:" "}),u.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let a=-1;for(;++a1}function Yz(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=r0(t.children[1]),l=pT(t.children[t.children.length-1]);a&&l&&(o.position={start:a,end:l}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function e5(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,a=o?o.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(gv(t.slice(i),i>0,!1)),s.join("")}function gv(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===pv||s===mv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===pv||s===mv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function r5(e,t){const n={type:"text",value:n5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function i5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const s5={blockquote:Lz,break:Pz,code:Dz,delete:jz,emphasis:Bz,footnoteReference:$z,heading:Fz,html:zz,imageReference:Uz,image:Vz,inlineCode:Hz,linkReference:Kz,link:qz,listItem:Gz,list:Yz,paragraph:Xz,root:Qz,strong:Zz,table:Jz,tableCell:t5,tableRow:e5,text:r5,thematicBreak:i5,toml:Ic,yaml:Ic,definition:Ic,footnoteDefinition:Ic};function Ic(){}const DT=-1,tf=0,Da=1,cd=2,u0=3,d0=4,f0=5,h0=6,jT=7,BT=8,o5=typeof self=="object"?self:globalThis,yv=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new o5[e](t)},a5=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case tf:case DT:return n(o,i);case Da:{const a=n([],i);for(const l of o)a.push(r(l));return a}case cd:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case u0:return n(new Date(o),i);case d0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case f0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case h0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case jT:{const{name:a,message:l}=o;return n(yv(a,l),i)}case BT:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:a}=new Uint8Array(o);return n(new DataView(a),o)}}return n(yv(s,o),i)};return r},bv=e=>a5(new Map,e)(0),ys="",{toString:l5}={},{keys:c5}=Object,ra=e=>{const t=typeof e;if(t!=="object"||!e)return[tf,t];const n=l5.call(e).slice(8,-1);switch(n){case"Array":return[Da,ys];case"Object":return[cd,ys];case"Date":return[u0,ys];case"RegExp":return[d0,ys];case"Map":return[f0,ys];case"Set":return[h0,ys];case"DataView":return[Da,n]}return n.includes("Array")?[Da,n]:n.includes("Error")?[jT,n]:[cd,n]},Oc=([e,t])=>e===tf&&(t==="function"||t==="symbol"),u5=(e,t,n,r)=>{const i=(o,a)=>{const l=r.push(o)-1;return n.set(a,l),l},s=o=>{if(n.has(o))return n.get(o);let[a,l]=ra(o);switch(a){case tf:{let d=o;switch(l){case"bigint":a=BT,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);d=null;break;case"undefined":return i([DT],o)}return i([a,d],o)}case Da:{if(l){let h=o;return l==="DataView"?h=new Uint8Array(o.buffer):l==="ArrayBuffer"&&(h=new Uint8Array(o)),i([l,[...h]],o)}const d=[],u=i([a,d],o);for(const h of o)d.push(s(h));return u}case cd:{if(l)switch(l){case"BigInt":return i([l,o.toString()],o);case"Boolean":case"Number":case"String":return i([l,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const d=[],u=i([a,d],o);for(const h of c5(o))(e||!Oc(ra(o[h])))&&d.push([s(h),s(o[h])]);return u}case u0:return i([a,o.toISOString()],o);case d0:{const{source:d,flags:u}=o;return i([a,{source:d,flags:u}],o)}case f0:{const d=[],u=i([a,d],o);for(const[h,p]of o)(e||!(Oc(ra(h))||Oc(ra(p))))&&d.push([s(h),s(p)]);return u}case h0:{const d=[],u=i([a,d],o);for(const h of o)(e||!Oc(ra(h)))&&d.push(s(h));return u}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},xv=(e,{json:t,lossy:n}={})=>{const r=[];return u5(!(t||n),!!t,new Map,r)(e),r},ud=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?bv(xv(e,t)):structuredClone(e):(e,t)=>bv(xv(e,t));function d5(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function f5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function h5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||d5,r=e.options.footnoteBackLabel||f5,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&g.push({type:"text",value:" "});let x=typeof n=="string"?n:n(l,p);typeof x=="string"&&(x={type:"text",value:x}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,p),className:["data-footnote-backref"]},children:Array.isArray(x)?x:[x]})}const w=d[d.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const x=w.children[w.children.length-1];x&&x.type==="text"?x.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...g)}else d.push(...g);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(d,!0)};e.patch(c,m),a.push(m)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...ud(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` `},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` -`}]}}const Hl=function(e){if(e==null)return y5;if(typeof e=="function")return nf(e);if(typeof e=="object")return Array.isArray(e)?p5(e):m5(e);if(typeof e=="string")return g5(e);throw new Error("Expected function, string, or object as test")};function p5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=$T,g,b,w;if((!t||s(l,c,d[d.length-1]||void 0))&&(p=v5(n(l,d)),p[0]===Fm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==w5)for(b=(r?m.children.length:-1)+o,w=d.concat(m);b>-1&&b":""))+")"})}return h;function h(){let p=$T,g,b,w;if((!t||s(l,c,d[d.length-1]||void 0))&&(p=v5(n(l,d)),p[0]===Fm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==w5)for(b=(r?m.children.length:-1)+o,w=d.concat(m);b>-1&&b0&&n.push({type:"text",value:` -`}),n}function wv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function vv(e,t){const n=E5(e,t),r=n.one(e,void 0),i=h5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` -`},i),s}function A5(e,t){return e&&"run"in e?async function(n,r){const i=vv(n,{file:r,...t});await e.run(i,r)}:function(n,r){return vv(n,{file:r,...e||t})}}function _v(e){if(e)throw e}var bu=Object.prototype.hasOwnProperty,zT=Object.prototype.toString,Ev=Object.defineProperty,kv=Object.getOwnPropertyDescriptor,Sv=function(t){return typeof Array.isArray=="function"?Array.isArray(t):zT.call(t)==="[object Array]"},Nv=function(t){if(!t||zT.call(t)!=="[object Object]")return!1;var n=bu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&bu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||bu.call(t,i)},Tv=function(t,n){Ev&&n.name==="__proto__"?Ev(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Av=function(t,n){if(n==="__proto__")if(bu.call(t,n)){if(kv)return kv(t,n).value}else return;return t[n]},C5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,d=!1;for(typeof a=="boolean"&&(d=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const d=c;if(a&&n)throw d;return i(d)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:O5,dirname:R5,extname:L5,join:P5,sep:"/"};function O5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Kl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function R5(e){if(Kl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function L5(e){Kl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function P5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function j5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Kl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const B5={cwd:$5};function $5(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function F5(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return z5(e)}function z5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=d;const b=r[h][1];Um(b)&&Um(p)&&(p=Rh(!0,b,p)),r[h]=[c,p,...g]}}}}const K5=new p0().freeze();function jh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Bh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function $h(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Mv(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Iv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Rc(e){return q5(e)?e:new UT(e)}function q5(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function G5(e){return typeof e=="string"||W5(e)}function W5(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y5="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ov=[],Rv={allowDangerousHtml:!0},X5=/^(https?|ircs?|mailto|xmpp)$/i,Q5=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Z5(e){const t=J5(e),n=eU(e);return tU(t.runSync(t.parse(n),n),e)}function J5(e){const t=e.rehypePlugins||Ov,n=e.remarkPlugins||Ov,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Rv}:Rv;return K5().use(Rz).use(n).use(A5,r).use(t)}function eU(e){const t=e.children||"",n=new UT;return typeof t=="string"&&(n.value=t),n}function tU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||nU;for(const d of Q5)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Y5+d.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),rf(e,c),g3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(d,u,h){if(d.type==="raw"&&h&&typeof u=="number")return o?h.children.splice(u,1):h.children[u]={type:"text",value:d.value},u;if(d.type==="element"){let p;for(p in Mh)if(Object.hasOwn(Mh,p)&&Object.hasOwn(d.properties,p)){const g=d.properties[p],b=Mh[p];(b===null||b.includes(d.tagName))&&(d.properties[p]=l(String(g||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!p&&r&&typeof u=="number"&&(p=!r(d,u,h)),p&&h&&typeof u=="number")return a&&d.children?h.children.splice(u,1,...d.children):h.children.splice(u,1),u}}}function nU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X5.test(e.slice(0,t))?e:""}function Lv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function rU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function iU(e,t,n){const i=Hl((n||{}).ignore||[]),s=sU(t);let o=-1;for(;++o0?{type:"text",value:_}:void 0),_===!1?h.lastIndex=v+1:(g!==v&&x.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(_)?x.push(..._):_&&x.push(_),g=v+y[0].length,m=!0),!h.global)break;y=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Lv(e,"(");let s=Lv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function VT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Yi(n)||Jd(n))&&(!t||n!==47)}HT.peek=AU;function wU(){this.buffer()}function vU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _U(){this.buffer()}function EU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function kU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function SU(e){this.exit(e)}function NU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function AU(){return"["}function HT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function CU(){return{enter:{gfmFootnoteCallString:wU,gfmFootnoteCall:vU,gfmFootnoteDefinitionLabelString:_U,gfmFootnoteDefinition:EU},exit:{gfmFootnoteCallString:kU,gfmFootnoteCall:SU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:TU}}}function MU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),d=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),d(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` -`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?KT:IU))),c(),l}}function IU(e,t,n){return t===0?e:KT(e,t,n)}function KT(e,t,n){return(n?"":" ")+e}const OU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];qT.peek=jU;function RU(){return{canContainEols:["delete"],enter:{strikethrough:PU},exit:{strikethrough:DU}}}function LU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:OU}],handlers:{delete:qT}}}function PU(e){this.enter({type:"delete",children:[]},e)}function DU(e){this.exit(e)}function qT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function jU(){return"~"}function BU(e){return e.length}function $U(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||BU,s=[],o=[],a=[],l=[];let c=0,d=-1;for(;++dc&&(c=e[d].length);++ml[m])&&(l[m]=y)}b.push(x)}o[d]=b,a[d]=w}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=x),p[u]=x),h[u]=y}o.splice(1,0,h),a.splice(1,0,p),d=-1;const g=[];for(;++d"u"||bu.call(t,i)},Tv=function(t,n){kv&&n.name==="__proto__"?kv(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Av=function(t,n){if(n==="__proto__")if(bu.call(t,n)){if(Ev)return Ev(t,n).value}else return;return t[n]},C5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,d=!1;for(typeof a=="boolean"&&(d=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const d=c;if(a&&n)throw d;return i(d)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:O5,dirname:R5,extname:L5,join:P5,sep:"/"};function O5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Kl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function R5(e){if(Kl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function L5(e){Kl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function P5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function j5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Kl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const B5={cwd:$5};function $5(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function F5(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return z5(e)}function z5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=d;const b=r[h][1];Um(b)&&Um(p)&&(p=Rh(!0,b,p)),r[h]=[c,p,...g]}}}}const K5=new p0().freeze();function jh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Bh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function $h(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Mv(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Iv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Rc(e){return q5(e)?e:new UT(e)}function q5(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function G5(e){return typeof e=="string"||W5(e)}function W5(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y5="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ov=[],Rv={allowDangerousHtml:!0},X5=/^(https?|ircs?|mailto|xmpp)$/i,Q5=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Z5(e){const t=J5(e),n=eU(e);return tU(t.runSync(t.parse(n),n),e)}function J5(e){const t=e.rehypePlugins||Ov,n=e.remarkPlugins||Ov,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Rv}:Rv;return K5().use(Rz).use(n).use(A5,r).use(t)}function eU(e){const t=e.children||"",n=new UT;return typeof t=="string"&&(n.value=t),n}function tU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||nU;for(const d of Q5)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Y5+d.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),rf(e,c),g3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(d,u,h){if(d.type==="raw"&&h&&typeof u=="number")return o?h.children.splice(u,1):h.children[u]={type:"text",value:d.value},u;if(d.type==="element"){let p;for(p in Mh)if(Object.hasOwn(Mh,p)&&Object.hasOwn(d.properties,p)){const g=d.properties[p],b=Mh[p];(b===null||b.includes(d.tagName))&&(d.properties[p]=l(String(g||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!p&&r&&typeof u=="number"&&(p=!r(d,u,h)),p&&h&&typeof u=="number")return a&&d.children?h.children.splice(u,1,...d.children):h.children.splice(u,1),u}}}function nU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X5.test(e.slice(0,t))?e:""}function Lv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function rU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function iU(e,t,n){const i=Hl((n||{}).ignore||[]),s=sU(t);let o=-1;for(;++o0?{type:"text",value:_}:void 0),_===!1?h.lastIndex=v+1:(g!==v&&x.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(_)?x.push(..._):_&&x.push(_),g=v+y[0].length,m=!0),!h.global)break;y=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Lv(e,"(");let s=Lv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function VT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Yi(n)||Jd(n))&&(!t||n!==47)}HT.peek=AU;function wU(){this.buffer()}function vU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _U(){this.buffer()}function kU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function EU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function SU(e){this.exit(e)}function NU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function AU(){return"["}function HT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function CU(){return{enter:{gfmFootnoteCallString:wU,gfmFootnoteCall:vU,gfmFootnoteDefinitionLabelString:_U,gfmFootnoteDefinition:kU},exit:{gfmFootnoteCallString:EU,gfmFootnoteCall:SU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:TU}}}function MU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),d=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),d(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` +`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?KT:IU))),c(),l}}function IU(e,t,n){return t===0?e:KT(e,t,n)}function KT(e,t,n){return(n?"":" ")+e}const OU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];qT.peek=jU;function RU(){return{canContainEols:["delete"],enter:{strikethrough:PU},exit:{strikethrough:DU}}}function LU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:OU}],handlers:{delete:qT}}}function PU(e){this.enter({type:"delete",children:[]},e)}function DU(e){this.exit(e)}function qT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function jU(){return"~"}function BU(e){return e.length}function $U(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||BU,s=[],o=[],a=[],l=[];let c=0,d=-1;for(;++dc&&(c=e[d].length);++ml[m])&&(l[m]=y)}b.push(x)}o[d]=b,a[d]=w}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=x),p[u]=x),h[u]=y}o.splice(1,0,h),a.splice(1,0,p),d=-1;const g=[];for(;++d "),s.shift(2);const o=n.indentLines(n.containerFlow(e,s.current()),UU);return i(),o}function UU(e,t,n){return">"+(n?"":" ")+e}function VU(e,t){return Dv(e,t.inConstruct,!0)&&!Dv(e,t.notInConstruct,!1)}function Dv(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=s):s=1,i=r+t.length,r=n.indexOf(t,i);return o}function KU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function qU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function GU(e,t,n,r){const i=qU(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(KU(e,n)){const u=n.enter("codeIndented"),h=n.indentLines(s,WU);return u(),h}const a=n.createTracker(r),l=i.repeat(Math.max(HU(s,i)+1,3)),c=n.enter("codeFenced");let d=a.move(l);if(e.lang){const u=n.enter(`codeFencedLang${o}`);d+=a.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...a.current()})),u()}if(e.lang&&e.meta){const u=n.enter(`codeFencedMeta${o}`);d+=a.move(" "),d+=a.move(n.safe(e.meta,{before:d,after:` @@ -435,25 +435,25 @@ Error generating stack: `+s.message+` `});return u(),d(),h+` `+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` `))+1))}const o="#".repeat(i),a=n.enter("headingAtx"),l=n.enter("phrasing");s.move(o+" ");let c=n.containerPhrasing(e,{before:"# ",after:` -`,...s.current()});return/^[\t ]/.test(c)&&(c=ml(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}WT.peek=e6;function WT(e){return e.value||""}function e6(){return"<"}YT.peek=t6;function YT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function t6(){return"!"}XT.peek=n6;function XT(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function n6(){return"!"}QT.peek=r6;function QT(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}JT.peek=i6;function JT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(ZT(e,n)){const d=n.stack;n.stack=[],a=n.enter("autolink");let u=o.move("<");return u+=o.move(n.containerPhrasing(e,{before:u,after:">",...o.current()})),u+=o.move(">"),a(),n.stack=d,u}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function i6(e,t,n){return ZT(e,n)?"<":"["}eA.peek=s6;function eA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function s6(){return"["}function g0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function o6(e){const t=g0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function a6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function l6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?a6(n):g0(n);const a=e.ordered?o==="."?")":".":o6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),tA(n)===o&&d){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),d);return l(),c;function d(u,h,p){return h?(p?"":" ".repeat(o))+u:(p?s:s+" ".repeat(o-s.length))+u}}function d6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const f6=Hl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function h6(e,t,n,r){return(e.children.some(function(o){return f6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function p6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nA.peek=m6;function nA(e,t,n,r){const i=p6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function m6(e,t,n){return n.options.strong||"*"}function g6(e,t,n,r){return n.safe(e.value,r)}function y6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function b6(e,t,n){const r=(tA(n)+(n.options.ruleSpaces?" ":"")).repeat(y6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rA={blockquote:zU,break:jv,code:GU,definition:YU,emphasis:GT,hardBreak:jv,heading:JU,html:WT,image:YT,imageReference:XT,inlineCode:QT,link:JT,linkReference:eA,list:l6,listItem:u6,paragraph:d6,root:h6,strong:nA,text:g6,thematicBreak:b6};function x6(){return{enter:{table:w6,tableData:Bv,tableHeader:Bv,tableRow:_6},exit:{codeText:E6,table:v6,tableData:Vh,tableHeader:Vh,tableRow:Vh}}}function w6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function v6(e){this.exit(e),this.data.inTable=void 0}function _6(e){this.enter({type:"tableRow",children:[]},e)}function Vh(e){this.exit(e)}function Bv(e){this.enter({type:"tableCell",children:[]},e)}function E6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,k6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function k6(e,t){return t==="|"?t:e}function S6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,...s.current()});return/^[\t ]/.test(c)&&(c=ml(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}WT.peek=e6;function WT(e){return e.value||""}function e6(){return"<"}YT.peek=t6;function YT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function t6(){return"!"}XT.peek=n6;function XT(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function n6(){return"!"}QT.peek=r6;function QT(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}JT.peek=i6;function JT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(ZT(e,n)){const d=n.stack;n.stack=[],a=n.enter("autolink");let u=o.move("<");return u+=o.move(n.containerPhrasing(e,{before:u,after:">",...o.current()})),u+=o.move(">"),a(),n.stack=d,u}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function i6(e,t,n){return ZT(e,n)?"<":"["}eA.peek=s6;function eA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function s6(){return"["}function g0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function o6(e){const t=g0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function a6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function l6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?a6(n):g0(n);const a=e.ordered?o==="."?")":".":o6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),tA(n)===o&&d){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),d);return l(),c;function d(u,h,p){return h?(p?"":" ".repeat(o))+u:(p?s:s+" ".repeat(o-s.length))+u}}function d6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const f6=Hl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function h6(e,t,n,r){return(e.children.some(function(o){return f6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function p6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nA.peek=m6;function nA(e,t,n,r){const i=p6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function m6(e,t,n){return n.options.strong||"*"}function g6(e,t,n,r){return n.safe(e.value,r)}function y6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function b6(e,t,n){const r=(tA(n)+(n.options.ruleSpaces?" ":"")).repeat(y6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rA={blockquote:zU,break:jv,code:GU,definition:YU,emphasis:GT,hardBreak:jv,heading:JU,html:WT,image:YT,imageReference:XT,inlineCode:QT,link:JT,linkReference:eA,list:l6,listItem:u6,paragraph:d6,root:h6,strong:nA,text:g6,thematicBreak:b6};function x6(){return{enter:{table:w6,tableData:Bv,tableHeader:Bv,tableRow:_6},exit:{codeText:k6,table:v6,tableData:Vh,tableHeader:Vh,tableRow:Vh}}}function w6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function v6(e){this.exit(e),this.data.inTable=void 0}function _6(e){this.enter({type:"tableRow",children:[]},e)}function Vh(e){this.exit(e)}function Bv(e){this.enter({type:"tableCell",children:[]},e)}function k6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,E6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function E6(e,t){return t==="|"?t:e}function S6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:o,tableCell:l,tableRow:a}};function o(p,g,b,w){return c(d(p,b,w),p.align)}function a(p,g,b,w){const m=u(p,b,w),x=c([m]);return x.slice(0,x.indexOf(` -`))}function l(p,g,b,w){const m=b.enter("tableCell"),x=b.enter("phrasing"),y=b.containerPhrasing(p,{...w,before:s,after:s});return x(),m(),y}function c(p,g){return $U(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function d(p,g,b){const w=p.children;let m=-1;const x=[],y=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const V6={tokenize:Q6,partial:!0};function H6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W6,continuation:{tokenize:Y6},exit:X6}},text:{91:{name:"gfmFootnoteCall",tokenize:G6},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:K6,resolveTo:q6}}}}function K6(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function q6(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function G6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),l}function l(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(s>999||u===93&&!o||u===null||u===91||$e(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return $e(u)||(o=!0),s++,e.consume(u),u===92?d:c}function d(u){return u===91||u===92||u===93?(e.consume(u),s++,c):c(u)}}function W6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||$e(g))return n(g);if(g===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return $e(g)||(a=!0),o++,e.consume(g),g===92?u:d}function u(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Me(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function Y6(e,t,n){return e.check(Vl,t,e.attempt(V6,t,n))}function X6(e){e.exit("gfmFootnoteDefinition")}function Q6(e,t,n){const r=this;return Me(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function Z6(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),u++,p);if(u<2&&!n)return l(g);const w=o.exit("strikethroughSequenceTemporary"),m=yo(g);return w._open=!m||m===2&&!!b,w._close=!b||b===2&&!!m,a(g)}}}class J6{constructor(){this.map=[]}add(t,n,r){eV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function eV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const O=r.events[P][1].type;if(O==="lineEnding"||O==="linePrefix")P--;else break}const R=P>-1?r.events[P][1].type:null,$=R==="tableHead"||R==="tableRow"?_:l;return $===_&&r.parser.lazy[r.now().line]?n(A):$(A)}function l(A){return e.enter("tableHead"),e.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,s+=1),d(A)}function d(A){return A===null?n(A):we(A)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),p):n(A):Ne(A)?Me(e,d,"whitespace")(A):(s+=1,o&&(o=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),u(A)))}function u(A){return A===null||A===124||$e(A)?(e.exit("data"),d(A)):(e.consume(A),A===92?h:u)}function h(A){return A===92||A===124?(e.consume(A),u):u(A)}function p(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),o=!1,Ne(A)?Me(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?w(A):A===124?(o=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),b):E(A)}function b(A){return Ne(A)?Me(e,w,"whitespace")(A):w(A)}function w(A){return A===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),m):A===45?(s+=1,m(A)):A===null||we(A)?v(A):E(A)}function m(A){return A===45?(e.enter("tableDelimiterFiller"),x(A)):E(A)}function x(A){return A===45?(e.consume(A),x):A===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(A))}function y(A){return Ne(A)?Me(e,v,"whitespace")(A):v(A)}function v(A){return A===124?g(A):A===null||we(A)?!o||i!==s?E(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):E(A)}function E(A){return n(A)}function _(A){return e.enter("tableRow"),C(A)}function C(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),C):A===null||we(A)?(e.exit("tableRow"),t(A)):Ne(A)?Me(e,C,"whitespace")(A):(e.enter("data"),N(A))}function N(A){return A===null||A===124||$e(A)?(e.exit("data"),C(A)):(e.consume(A),A===92?I:N)}function I(A){return A===92||A===124?(e.consume(A),N):N(A)}}function iV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,u;const h=new J6;for(;++nn[2]+1){const g=n[2]+1,b=n[3]-n[2]-1;e.add(g,b,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Fv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const sV={name:"tasklistCheck",tokenize:aV};function oV(){return{text:{91:sV}}}function aV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return $e(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return we(l)?t(l):Ne(l)?e.check({tokenize:lV},t,n)(l):n(l)}}function lV(e,t,n){return Me(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function cV(e){return vT([L6(),H6(),Z6(e),nV(),oV()])}const uV={};function dV(e){const t=this,n=e||uV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(cV(n)),s.push(M6()),o.push(I6(n))}const zv=function(e,t,n){const r=Hl(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=d):d&&(c!==void 0&&c>-1&&l.push(` +`))}function l(p,g,b,w){const m=b.enter("tableCell"),x=b.enter("phrasing"),y=b.containerPhrasing(p,{...w,before:s,after:s});return x(),m(),y}function c(p,g){return $U(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function d(p,g,b){const w=p.children;let m=-1;const x=[],y=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const V6={tokenize:Q6,partial:!0};function H6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W6,continuation:{tokenize:Y6},exit:X6}},text:{91:{name:"gfmFootnoteCall",tokenize:G6},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:K6,resolveTo:q6}}}}function K6(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function q6(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function G6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),l}function l(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(s>999||u===93&&!o||u===null||u===91||Be(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return Be(u)||(o=!0),s++,e.consume(u),u===92?d:c}function d(u){return u===91||u===92||u===93?(e.consume(u),s++,c):c(u)}}function W6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||Be(g))return n(g);if(g===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return Be(g)||(a=!0),o++,e.consume(g),g===92?u:d}function u(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Ie(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function Y6(e,t,n){return e.check(Vl,t,e.attempt(V6,t,n))}function X6(e){e.exit("gfmFootnoteDefinition")}function Q6(e,t,n){const r=this;return Ie(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function Z6(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),u++,p);if(u<2&&!n)return l(g);const w=o.exit("strikethroughSequenceTemporary"),m=yo(g);return w._open=!m||m===2&&!!b,w._close=!b||b===2&&!!m,a(g)}}}class J6{constructor(){this.map=[]}add(t,n,r){eV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function eV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const O=r.events[P][1].type;if(O==="lineEnding"||O==="linePrefix")P--;else break}const R=P>-1?r.events[P][1].type:null,F=R==="tableHead"||R==="tableRow"?_:l;return F===_&&r.parser.lazy[r.now().line]?n(A):F(A)}function l(A){return e.enter("tableHead"),e.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,s+=1),d(A)}function d(A){return A===null?n(A):xe(A)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),p):n(A):Ne(A)?Ie(e,d,"whitespace")(A):(s+=1,o&&(o=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),u(A)))}function u(A){return A===null||A===124||Be(A)?(e.exit("data"),d(A)):(e.consume(A),A===92?h:u)}function h(A){return A===92||A===124?(e.consume(A),u):u(A)}function p(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),o=!1,Ne(A)?Ie(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?w(A):A===124?(o=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),b):k(A)}function b(A){return Ne(A)?Ie(e,w,"whitespace")(A):w(A)}function w(A){return A===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),m):A===45?(s+=1,m(A)):A===null||xe(A)?v(A):k(A)}function m(A){return A===45?(e.enter("tableDelimiterFiller"),x(A)):k(A)}function x(A){return A===45?(e.consume(A),x):A===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(A))}function y(A){return Ne(A)?Ie(e,v,"whitespace")(A):v(A)}function v(A){return A===124?g(A):A===null||xe(A)?!o||i!==s?k(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):k(A)}function k(A){return n(A)}function _(A){return e.enter("tableRow"),C(A)}function C(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),C):A===null||xe(A)?(e.exit("tableRow"),t(A)):Ne(A)?Ie(e,C,"whitespace")(A):(e.enter("data"),N(A))}function N(A){return A===null||A===124||Be(A)?(e.exit("data"),C(A)):(e.consume(A),A===92?I:N)}function I(A){return A===92||A===124?(e.consume(A),N):N(A)}}function iV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,u;const h=new J6;for(;++nn[2]+1){const g=n[2]+1,b=n[3]-n[2]-1;e.add(g,b,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Fv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const sV={name:"tasklistCheck",tokenize:aV};function oV(){return{text:{91:sV}}}function aV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return Be(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return xe(l)?t(l):Ne(l)?e.check({tokenize:lV},t,n)(l):n(l)}}function lV(e,t,n){return Ie(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function cV(e){return vT([L6(),H6(),Z6(e),nV(),oV()])}const uV={};function dV(e){const t=this,n=e||uV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(cV(n)),s.push(M6()),o.push(I6(n))}const zv=function(e,t,n){const r=Hl(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=d):d&&(c!==void 0&&c>-1&&l.push(` `.repeat(c)||" "),c=-1,l.push(d))}return l.join("")}function hA(e,t,n){return e.type==="element"?xV(e,t,n):e.type==="text"?n.whitespace==="normal"?pA(e,n):wV(e):[]}function xV(e,t,n){const r=mA(e,n),i=e.children||[];let s=-1,o=[];if(yV(e))return o;let a,l;for(Km(e)||Kv(e)&&zv(t,e,Kv)?l=` -`:gV(e)?(a=2,l=2):fA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[E,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function TV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=NV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function gA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],m={match:/(\/[a-z._-]+)+/},x=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],y=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],E=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:w,built_in:[...x,...y,"set","shopt",...v,...E]},contains:[p,e.SHEBANG(),g,u,s,o,m,a,l,c,d,n]}}function AV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",w={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:m.concat([{begin:/\(/,end:/\)/,keywords:w,contains:m.concat(["self"]),relevance:0}]),relevance:0},y={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:w,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:w}}}function CV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[E,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function MV(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},d={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(d,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},b={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},w=e.inherit(b,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},y=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+y+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,x],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const IV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),OV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],RV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],LV=[...OV,...RV],PV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),DV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),jV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),BV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function $V(e){const t=e.regex,n=IV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+DV.join("|")+")"},{begin:":(:)?("+jV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+BV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:PV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+LV.join("|")+")\\b"}]}}function FV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function zV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"bA(e,t,n-1))}function VV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+bA("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},d={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,qv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},qv,c]}}const Gv="[A-Za-z$_][0-9A-Za-z$_]*",HV=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],KV=["true","false","null","undefined","NaN","Infinity"],xA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],wA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],vA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],qV=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],GV=[].concat(vA,xA,wA);function _A(e){const t=e.regex,n=(L,{after:D})=>{const k="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const k=L[0].length+L.index,V=L.input[k];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:k})||D.ignoreMatch());let H;const T=L.input.substring(k);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:Gv,keyword:HV,literal:KV,built_in:GV,"variable.language":qV},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xA,...wA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const $={match:t.concat(/\b/,R([...vA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},$,P,C,j,{match:/\$[(.]/}]}}function EA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var ks="[0-9](_*[0-9])*",jc=`\\.(${ks})`,Bc="[0-9a-fA-F](_*[0-9a-fA-F])*",WV={className:"number",variants:[{begin:`(\\b(${ks})((${jc})|\\.)?|(${jc}))[eE][+-]?(${ks})[fFdD]?\\b`},{begin:`\\b(${ks})((${jc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${jc})[fFdD]?\\b`},{begin:`\\b(${ks})[fFdD]\\b`},{begin:`\\b0[xX]((${Bc})\\.?|(${Bc})?\\.(${Bc}))[pP][+-]?(${ks})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Bc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function YV(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=WV,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=u;return h.variants[1].contains=[u],u.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,a,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},c]}}const XV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),QV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ZV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JV=[...QV,...ZV],e9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),kA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),SA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),t9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),n9=kA.concat(SA).sort().reverse();function r9(e){const t=XV(e),n=n9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(y){return{className:"string",begin:"~?"+y+".*?"+y}},c=function(y,v,E){return{className:y,begin:v,relevance:E}},d={$pattern:/[a-z-]+/,keyword:r,attribute:e9.join(" ")},u={begin:"\\(",end:"\\)",contains:a,keywords:d,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+t9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:d,returnEnd:!0,contains:a,relevance:0}},w={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+JV.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+kA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},x={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,w,x,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function i9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function NA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),h=e.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[n,l];return[c,d,u,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function s9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function o9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},d=[e.BACKSLASH_ESCAPE,s,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(b,w,m="\\1")=>{const x=m==="\\1"?m:t.concat(m,w);return t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,x,/(?:\\.|[^\\\/])*?/,m,r)},p=(b,w,m)=>t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:d,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...u,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function a9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),u={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(O,j)=>{j.data._beginMatch=O[1]||O[2]},"on:end":(O,j)=>{j.data._beginMatch!==O[1]&&j.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ -]`,g={scope:"string",variants:[d,c,u,h]},b={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],x=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(O=>{const j=[];return O.forEach(M=>{j.push(M),M.toLowerCase()===M?j.push(M.toUpperCase()):j.push(M.toLowerCase())}),j})(w),built_in:x},E=O=>O.map(j=>j.replace(/\|\d+$/,"")),_={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",E(x).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},C=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,_]},P={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",E(m).join("\\b|"),"|",E(x).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(P);const R=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,_],$={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...R]},...R,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[$,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,P,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},_,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",$,o,N,e.C_BLOCK_COMMENT_MODE,g,b]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,b]}}function l9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function c9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function AA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},w={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,u,e.HASH_COMMENT_MODE]}]};return c.contains=[u,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,w,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,m,u]}]}}function u9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function d9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function f9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},_=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);d.contains=_,b.contains=_;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:_}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(c).concat(_)}}function h9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:""},s]}}const p9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),m9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],y9=[...m9,...g9],b9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),x9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),w9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),v9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function _9(e){const t=p9(e),n=w9,r=x9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+y9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+v9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:b9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function E9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function k9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,g=[...c,...l].filter(E=>!d.includes(E)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function x(E){return t.concat(/\b/,t.either(...E.map(_=>_.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:x(h),relevance:0};function v(E,{exceptions:_,when:C}={}){const N=C;return _=_||[],E.map(I=>I.match(/\|\d+$/)||_.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:E=>E.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:x(o)},y,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,w]}}function CA(e){return e?typeof e=="string"?e:e.source:null}function ia(e){return je("(?=",e,")")}function je(...e){return e.map(n=>CA(n)).join("")}function S9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(S9(e).capture?"":"?:")+e.map(r=>CA(r)).join("|")+")"}const x0=e=>je(/\b/,e,/\w$/.test(e)?/\b/:/\B/),N9=["Protocol","Type"].map(x0),Wv=["init","self"].map(x0),T9=["Any","Self"],Hh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Yv=["false","nil","true"],A9=["assignment","associativity","higherThan","left","lowerThan","none","right"],C9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Xv=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],MA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),IA=Ft(MA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Kh=je(MA,IA,"*"),OA=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),fd=Ft(OA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=je(OA,fd,"*"),$c=je(/[A-Z]/,fd,"*"),M9=["attached","autoclosure",je(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",je(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],I9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function O9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...N9,...Wv)],className:{2:"keyword"}},s={match:je(/\./,Ft(...Hh)),relevance:0},o=Hh.filter(W=>typeof W=="string").concat(["_|0"]),a=Hh.filter(W=>typeof W!="string").concat(T9).map(x0),l={variants:[{className:"keyword",match:Ft(...a,...Wv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(C9),literal:Yv},d=[i,s,l],u={match:je(/\./,Ft(...Xv)),relevance:0},h={className:"built_in",match:je(/\b/,Ft(...Xv),/(?=\()/)},p=[u,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Kh},{match:`\\.(\\.|${IA})+`}]},w=[g,b],m="([0-9]_*)+",x="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(W="")=>({className:"subst",variants:[{match:je(/\\/,W,/[0\\tnr"']/)},{match:je(/\\/,W,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(W="")=>({className:"subst",match:je(/\\/,W,/[\t ]*(?:[\r\n]|\r\n)/)}),_=(W="")=>({className:"subst",label:"interpol",begin:je(/\\/,W,/\(/),end:/\)/}),C=(W="")=>({begin:je(W,/"""/),end:je(/"""/,W),contains:[v(W),E(W),_(W)]}),N=(W="")=>({begin:je(W,/"/),end:je(/"/,W),contains:[v(W),_(W)]}),I={className:"string",variants:[C(),C("#"),C("##"),C("###"),N(),N("#"),N("##"),N("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],P={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},R=W=>{const F=je(W,/\//),G=je(/\//,W);return{begin:F,end:G,contains:[...A,{scope:"comment",begin:`#(?!.*${G})`,end:/$/}]}},$={scope:"regexp",variants:[R("###"),R("##"),R("#"),P]},O={match:je(/`/,Qn,/`/)},j={className:"variable",match:/\$\d+/},M={className:"variable",match:`\\$${fd}+`},B=[O,j,M],L={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:I9,contains:[...w,y,I]}]}},D={scope:"keyword",match:je(/@/,Ft(...M9),ia(Ft(/\(/,/\s+/)))},k={scope:"meta",match:je(/@/,Qn)},V=[L,D,k],H={match:ia(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:je(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,fd,"+")},{className:"type",match:$c,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:je(/\s+&\s+/,ia($c)),relevance:0}]},T={begin://,keywords:c,contains:[...r,...d,...V,g,H]};H.contains.push(T);const U={match:je(Qn,/\s*:/),keywords:"_|0",relevance:0},X={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",U,...r,$,...d,...p,...w,y,I,...B,...V,H]},Z={begin://,keywords:"repeat each",contains:[...r,H]},J={begin:Ft(ia(je(Qn,/\s*:/)),ia(je(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},q={begin:/\(/,end:/\)/,keywords:c,contains:[J,...r,...d,...w,y,I,...V,H,X],endsParent:!0,illegal:/["']/},ee={match:[/(func|macro)/,/\s+/,Ft(O.match,Qn,Kh)],className:{1:"keyword",3:"title.function"},contains:[Z,q,t],illegal:[/\[/,/%/]},ce={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,q,t],illegal:/\[|%/},ue={match:[/operator/,/\s+/,Kh],className:{1:"keyword",3:"title"}},ae={begin:[/precedencegroup/,/\s+/,$c],className:{1:"keyword",3:"title"},contains:[H],keywords:[...A9,...Yv],end:/}/},se={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},ye={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Y={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[Z,...d,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:$c},...d],relevance:0}]};for(const W of I.variants){const F=W.contains.find(le=>le.label==="interpol");F.keywords=c;const G=[...d,...p,...w,y,I,...B];F.contains=[...G,{begin:/\(/,end:/\)/,contains:["self",...G]}]}return{name:"Swift",keywords:c,contains:[...r,ee,ce,se,ye,Y,ue,ae,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},$,...d,...p,...w,y,I,...B,...V,H,X]}}const hd="[A-Za-z$_][0-9A-Za-z$_]*",RA=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],LA=["true","false","null","undefined","NaN","Infinity"],PA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],DA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],jA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],BA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$A=[].concat(jA,PA,DA);function R9(e){const t=e.regex,n=(L,{after:D})=>{const k="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const k=L[0].length+L.index,V=L.input[k];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:k})||D.ignoreMatch());let H;const T=L.input.substring(k);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:hd,keyword:RA,literal:LA,built_in:$A,"variable.language":BA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...PA,...DA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const $={match:t.concat(/\b/,R([...jA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},$,P,C,j,{match:/\$[(.]/}]}}function FA(e){const t=e.regex,n=R9(e),r=hd,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:hd,keyword:RA.concat(l),literal:LA,built_in:$A.concat(i),"variable.language":BA},d={className:"meta",begin:"@"+r},u=(b,w,m)=>{const x=b.contains.findIndex(y=>y.label===w);if(x===-1)throw new Error("can not find mode to replace");b.contains.splice(x,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(d);const h=n.contains.find(b=>b.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([d,s,o,p]),u(n,"shebang",e.SHEBANG()),u(n,"use_strict",a);const g=n.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function L9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},d={className:"label",begin:/^\w+:/},u=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,d,u,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function P9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function D9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function zA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},w=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,b,s,o],m=[...w];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}const j9={arduino:TV,bash:gA,c:AV,cpp:CV,csharp:MV,css:$V,diff:FV,go:zV,graphql:UV,ini:yA,java:VV,javascript:_A,json:EA,kotlin:YV,less:r9,lua:i9,makefile:NA,markdown:TA,objectivec:s9,perl:o9,php:a9,"php-template":l9,plaintext:c9,python:AA,"python-repl":u9,r:d9,ruby:f9,rust:h9,scss:_9,shell:E9,sql:k9,swift:O9,typescript:FA,vbnet:L9,wasm:P9,xml:D9,yaml:zA};function UA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&UA(n)}),e}let Qv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function VA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const B9="
",Zv=e=>!!e.scope,$9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class F9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=VA(t)}openNode(t){if(!Zv(t))return;const n=$9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Zv(t)&&(this.buffer+=B9)}value(){return this.buffer}span(t){this.buffer+=``}}const Jv=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class w0{constructor(){this.rootNode=Jv(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Jv({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{w0._collapse(n)}))}}class z9 extends w0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new F9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function gl(e){return e?typeof e=="string"?e:e.source:null}function HA(e){return us("(?=",e,")")}function U9(e){return us("(?:",e,")*")}function V9(e){return us("(?:",e,")?")}function us(...e){return e.map(n=>gl(n)).join("")}function H9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function v0(...e){return"("+(H9(e).capture?"":"?:")+e.map(r=>gl(r)).join("|")+")"}function KA(e){return new RegExp(e.toString()+"|").exec("").length-1}function K9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const q9=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=gl(r),o="";for(;s.length>0;){const a=q9.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const G9=/\b\B/,qA="[a-zA-Z]\\w*",E0="[a-zA-Z_]\\w*",GA="\\b\\d+(\\.\\d+)?",WA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",YA="\\b(0b[01]+)",W9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=us(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yl={begin:"\\\\[\\s\\S]",relevance:0},X9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yl]},Q9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yl]},Z9={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},sf=function(e,t,n={}){const r=Yr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=v0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:us(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},J9=sf("//","$"),e8=sf("/\\*","\\*/"),t8=sf("#","$"),n8={scope:"number",begin:GA,relevance:0},r8={scope:"number",begin:WA,relevance:0},i8={scope:"number",begin:YA,relevance:0},s8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yl,{begin:/\[/,end:/\]/,relevance:0,contains:[yl]}]},o8={scope:"title",begin:qA,relevance:0},a8={scope:"title",begin:E0,relevance:0},l8={begin:"\\.\\s*"+E0,relevance:0},c8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Fc=Object.freeze({__proto__:null,APOS_STRING_MODE:X9,BACKSLASH_ESCAPE:yl,BINARY_NUMBER_MODE:i8,BINARY_NUMBER_RE:YA,COMMENT:sf,C_BLOCK_COMMENT_MODE:e8,C_LINE_COMMENT_MODE:J9,C_NUMBER_MODE:r8,C_NUMBER_RE:WA,END_SAME_AS_BEGIN:c8,HASH_COMMENT_MODE:t8,IDENT_RE:qA,MATCH_NOTHING_RE:G9,METHOD_GUARD:l8,NUMBER_MODE:n8,NUMBER_RE:GA,PHRASAL_WORDS_MODE:Z9,QUOTE_STRING_MODE:Q9,REGEXP_MODE:s8,RE_STARTERS_RE:W9,SHEBANG:Y9,TITLE_MODE:o8,UNDERSCORE_IDENT_RE:E0,UNDERSCORE_TITLE_MODE:a8});function u8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function d8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function f8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=u8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function h8(e,t){Array.isArray(e.illegal)&&(e.illegal=v0(...e.illegal))}function p8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function m8(e,t){e.relevance===void 0&&(e.relevance=1)}const g8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=us(n.beforeMatch,HA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},y8=["of","and","for","in","not","or","if","then","parent","list","value"],b8="keyword";function XA(e,t,n=b8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,XA(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,x8(l[0],l[1])]})}}function x8(e,t){return t?Number(t):w8(e)?0:1}function w8(e){return y8.includes(e.toLowerCase())}const e1={},$i=e=>{console.error(e)},t1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},bs=(e,t)=>{e1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),e1[`${e}/${t}`]=!0)},pd=new Error;function QA(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=KA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function v8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pd;if(typeof e.beginScope!="object"||e.beginScope===null)throw $i("beginScope must be object"),pd;QA(e,e.begin,{key:"beginScope"}),e.begin=_0(e.begin,{joinWith:""})}}function _8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pd;if(typeof e.endScope!="object"||e.endScope===null)throw $i("endScope must be object"),pd;QA(e,e.end,{key:"endScope"}),e.end=_0(e.end,{joinWith:""})}}function E8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function k8(e){E8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),v8(e),_8(e)}function S8(e){function t(o,a){return new RegExp(gl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=KA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(_0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[d8,p8,k8,g8].forEach(d=>d(o,a)),e.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[f8,h8,m8].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=XA(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=gl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return N8(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yr(e.classNameAliases||{}),s(e)}function ZA(e){return e?e.endsWithParent||ZA(e.starts):!1}function N8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ZA(e)?Yr(e,{starts:e.starts?Yr(e.starts):null}):Object.isFrozen(e)?Yr(e):e}var T8="11.11.1";class A8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const qh=VA,n1=Yr,r1=Symbol("nomatch"),C8=7,JA=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:z9};function l(M){return a.noHighlightRe.test(M)}function c(M){let B=M.className+" ";B+=M.parentNode?M.parentNode.className:"";const L=a.languageDetectRe.exec(B);if(L){const D=N(L[1]);return D||(t1(s.replace("{}",L[1])),t1("Falling back to no-highlight mode for this block.",M)),D?L[1]:"no-highlight"}return B.split(/\s+/).find(D=>l(D)||N(D))}function d(M,B,L){let D="",k="";typeof B=="object"?(D=M,L=B.ignoreIllegals,k=B.language):(bs("10.7.0","highlight(lang, code, ...args) has been deprecated."),bs("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),k=M,D=B),L===void 0&&(L=!0);const V={code:D,language:k};O("before:highlight",V);const H=V.result?V.result:u(V.language,V.code,L);return H.code=V.code,O("after:highlight",H),H}function u(M,B,L,D){const k=Object.create(null);function V(z,K){return z.keywords[K]}function H(){if(!G.keywords){me.addText(pe);return}let z=0;G.keywordPatternRe.lastIndex=0;let K=G.keywordPatternRe.exec(pe),te="";for(;K;){te+=pe.substring(z,K.index);const oe=Y.case_insensitive?K[0].toLowerCase():K[0],ve=V(G,oe);if(ve){const[Re,$t]=ve;if(me.addText(te),te="",k[oe]=(k[oe]||0)+1,k[oe]<=C8&&(Le+=$t),Re.startsWith("_"))te+=K[0];else{const _t=Y.classNameAliases[Re]||Re;X(K[0],_t)}}else te+=K[0];z=G.keywordPatternRe.lastIndex,K=G.keywordPatternRe.exec(pe)}te+=pe.substring(z),me.addText(te)}function T(){if(pe==="")return;let z=null;if(typeof G.subLanguage=="string"){if(!t[G.subLanguage]){me.addText(pe);return}z=u(G.subLanguage,pe,!0,le[G.subLanguage]),le[G.subLanguage]=z._top}else z=p(pe,G.subLanguage.length?G.subLanguage:null);G.relevance>0&&(Le+=z.relevance),me.__addSublanguage(z._emitter,z.language)}function U(){G.subLanguage!=null?T():H(),pe=""}function X(z,K){z!==""&&(me.startScope(K),me.addText(z),me.endScope())}function Z(z,K){let te=1;const oe=K.length-1;for(;te<=oe;){if(!z._emit[te]){te++;continue}const ve=Y.classNameAliases[z[te]]||z[te],Re=K[te];ve?X(Re,ve):(pe=Re,H(),pe=""),te++}}function J(z,K){return z.scope&&typeof z.scope=="string"&&me.openNode(Y.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(X(pe,Y.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),pe=""):z.beginScope._multi&&(Z(z.beginScope,K),pe="")),G=Object.create(z,{parent:{value:G}}),G}function q(z,K,te){let oe=K9(z.endRe,te);if(oe){if(z["on:end"]){const ve=new Qv(z);z["on:end"](K,ve),ve.isMatchIgnored&&(oe=!1)}if(oe){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return q(z.parent,K,te)}function ee(z){return G.matcher.regexIndex===0?(pe+=z[0],1):(Pe=!0,0)}function ce(z){const K=z[0],te=z.rule,oe=new Qv(te),ve=[te.__beforeBegin,te["on:begin"]];for(const Re of ve)if(Re&&(Re(z,oe),oe.isMatchIgnored))return ee(K);return te.skip?pe+=K:(te.excludeBegin&&(pe+=K),U(),!te.returnBegin&&!te.excludeBegin&&(pe=K)),J(te,z),te.returnBegin?0:K.length}function ue(z){const K=z[0],te=B.substring(z.index),oe=q(G,z,te);if(!oe)return r1;const ve=G;G.endScope&&G.endScope._wrap?(U(),X(K,G.endScope._wrap)):G.endScope&&G.endScope._multi?(U(),Z(G.endScope,z)):ve.skip?pe+=K:(ve.returnEnd||ve.excludeEnd||(pe+=K),U(),ve.excludeEnd&&(pe=K));do G.scope&&me.closeNode(),!G.skip&&!G.subLanguage&&(Le+=G.relevance),G=G.parent;while(G!==oe.parent);return oe.starts&&J(oe.starts,z),ve.returnEnd?0:K.length}function ae(){const z=[];for(let K=G;K!==Y;K=K.parent)K.scope&&z.unshift(K.scope);z.forEach(K=>me.openNode(K))}let se={};function ye(z,K){const te=K&&K[0];if(pe+=z,te==null)return U(),0;if(se.type==="begin"&&K.type==="end"&&se.index===K.index&&te===""){if(pe+=B.slice(K.index,K.index+1),!i){const oe=new Error(`0 width match regex (${M})`);throw oe.languageName=M,oe.badRule=se.rule,oe}return 1}if(se=K,K.type==="begin")return ce(K);if(K.type==="illegal"&&!L){const oe=new Error('Illegal lexeme "'+te+'" for mode "'+(G.scope||"")+'"');throw oe.mode=G,oe}else if(K.type==="end"){const oe=ue(K);if(oe!==r1)return oe}if(K.type==="illegal"&&te==="")return pe+=` -`,1;if(Be>1e5&&Be>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return pe+=te,te.length}const Y=N(M);if(!Y)throw $i(s.replace("{}",M)),new Error('Unknown language: "'+M+'"');const W=S8(Y);let F="",G=D||W;const le={},me=new a.__emitter(a);ae();let pe="",Le=0,be=0,Be=0,Pe=!1;try{if(Y.__emitTokens)Y.__emitTokens(B,me);else{for(G.matcher.considerAll();;){Be++,Pe?Pe=!1:G.matcher.considerAll(),G.matcher.lastIndex=be;const z=G.matcher.exec(B);if(!z)break;const K=B.substring(be,z.index),te=ye(K,z);be=z.index+te}ye(B.substring(be))}return me.finalize(),F=me.toHTML(),{language:M,value:F,relevance:Le,illegal:!1,_emitter:me,_top:G}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:M,value:qh(B),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:be,context:B.slice(be-100,be+100),mode:z.mode,resultSoFar:F},_emitter:me};if(i)return{language:M,value:qh(B),illegal:!1,relevance:0,errorRaised:z,_emitter:me,_top:G};throw z}}function h(M){const B={value:qh(M),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return B._emitter.addText(M),B}function p(M,B){B=B||a.languages||Object.keys(t);const L=h(M),D=B.filter(N).filter(A).map(U=>u(U,M,!1));D.unshift(L);const k=D.sort((U,X)=>{if(U.relevance!==X.relevance)return X.relevance-U.relevance;if(U.language&&X.language){if(N(U.language).supersetOf===X.language)return 1;if(N(X.language).supersetOf===U.language)return-1}return 0}),[V,H]=k,T=V;return T.secondBest=H,T}function g(M,B,L){const D=B&&n[B]||L;M.classList.add("hljs"),M.classList.add(`language-${D}`)}function b(M){let B=null;const L=c(M);if(l(L))return;if(O("before:highlightElement",{el:M,language:L}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),a.throwUnescapedHTML))throw new A8("One of your code blocks includes unescaped HTML.",M.innerHTML);B=M;const D=B.textContent,k=L?d(D,{language:L,ignoreIllegals:!0}):p(D);M.innerHTML=k.value,M.dataset.highlighted="yes",g(M,L,k.language),M.result={language:k.language,re:k.relevance,relevance:k.relevance},k.secondBest&&(M.secondBest={language:k.secondBest.language,relevance:k.secondBest.relevance}),O("after:highlightElement",{el:M,result:k,text:D})}function w(M){a=n1(a,M)}const m=()=>{v(),bs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){v(),bs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function v(){function M(){v()}if(document.readyState==="loading"){y||window.addEventListener("DOMContentLoaded",M,!1),y=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function E(M,B){let L=null;try{L=B(e)}catch(D){if($i("Language definition for '{}' could not be registered.".replace("{}",M)),i)$i(D);else throw D;L=o}L.name||(L.name=M),t[M]=L,L.rawDefinition=B.bind(null,e),L.aliases&&I(L.aliases,{languageName:M})}function _(M){delete t[M];for(const B of Object.keys(n))n[B]===M&&delete n[B]}function C(){return Object.keys(t)}function N(M){return M=(M||"").toLowerCase(),t[M]||t[n[M]]}function I(M,{languageName:B}){typeof M=="string"&&(M=[M]),M.forEach(L=>{n[L.toLowerCase()]=B})}function A(M){const B=N(M);return B&&!B.disableAutodetect}function P(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=B=>{M["before:highlightBlock"](Object.assign({block:B.el},B))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=B=>{M["after:highlightBlock"](Object.assign({block:B.el},B))})}function R(M){P(M),r.push(M)}function $(M){const B=r.indexOf(M);B!==-1&&r.splice(B,1)}function O(M,B){const L=M;r.forEach(function(D){D[L]&&D[L](B)})}function j(M){return bs("10.7.0","highlightBlock will be removed entirely in v12.0"),bs("10.7.0","Please use highlightElement now."),b(M)}Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:j,configure:w,initHighlighting:m,initHighlightingOnLoad:x,registerLanguage:E,unregisterLanguage:_,listLanguages:C,getLanguage:N,registerAliases:I,autoDetection:A,inherit:n1,addPlugin:R,removePlugin:$}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=T8,e.regex={concat:us,lookahead:HA,either:v0,optional:V9,anyNumberOfTimes:U9};for(const M in Fc)typeof Fc[M]=="object"&&UA(Fc[M]);return Object.assign(e,Fc),e},bo=JA({});bo.newInstance=()=>JA({});var M8=bo;bo.HighlightJS=bo;bo.default=bo;const tn=Ml(M8),i1={},I8="hljs-";function O8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,d){const u=d||i1,h=typeof u.prefix=="string"?u.prefix:I8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:R8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,b=g.data;return b.language=p.language,b.relevance=p.relevance,g}function r(l,c){const u=(c||i1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=w.data.relevance,g=w)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let d;for(d in l)Object.hasOwn(l,d)&&t.registerLanguage(d,l[d])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let d;for(d in l)if(Object.hasOwn(l,d)){const u=l[d];t.registerAliases(typeof u=="string"?u:[...u],{languageName:d})}}}function a(l){return!!t.getLanguage(l)}}class R8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const L8={};function P8(e){const t=e||L8,n=t.aliases,r=t.detect||!1,i=t.languages||j9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=O8(i);if(n&&c.registerAlias(n),o){const d=o.indexOf("-");l=d===-1?o:o.slice(0,d)}return function(d,u){rf(d,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=D8(h);if(b===!1||!b&&!r||b&&s&&s.includes(b))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const w=bV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,w,{prefix:o}):c.highlightAuto(w,{prefix:o,subset:a})}catch(x){const y=x;if(b&&/Unknown language/.test(y.message)){u.message("Cannot highlight as `"+b+"`, it’s not registered",{ancestors:[g,h],cause:y,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw y}!b&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function D8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const k0=S.memo(j8),eC="send_a2ui_json_to_client";function B8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function tC({text:e,done:t}){const[n,r]=S.useState(!t),i=S.useRef(!1);S.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=oT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(B8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Gn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function $8(){return f.jsx(tC,{text:"",done:!1})}function F8({name:e,args:t,response:n,done:r}){const[i,s]=S.useState(!1),o=e===eC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` -…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Gn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function z8({block:e,onAuth:t}){const[n,r]=S.useState(e.done?"done":"idle"),[i,s]=S.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(d){s(d instanceof Error?d.message:String(d)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(Dw,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(Dw,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function U8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(tC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(k0,{text:s})},i):null}case"tool":return r.name===eC&&r.done?null:f.jsx(F8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(z8,{block:r,onAuth:n},i);case"a2ui":return sT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(xF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function V8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=S.useRef(null),c=S.useRef(null),d=S.useRef(null),[u,h]=S.useState(!1);S.useLayoutEffect(()=>{const w=l.current;w&&(w.style.height="auto",w.style.height=`${Math.min(w.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(w){var m;h(!1),(m=w.current)==null||m.click()}function b(w){w.target.files&&w.target.files.length&&o(w.target.files),w.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((w,m)=>f.jsx(H8,{mimeType:w.mimeType,data:w.data,name:w.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(w=>!w),children:f.jsx(ss,{className:"icon"})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(UB,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(d),children:[f.jsx(qy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:w=>t(w.target.value),onKeyDown:w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(bt,{className:"icon spin"}):f.jsx(_B,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:d,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function H8({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(Fl,{className:"icon"})})]})}function nC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Gn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const S0=Symbol.for("yaml.alias"),qm=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),rC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),$o=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Fo=e=>!!e&&typeof e=="object"&&e[Cn]===S0,ql=e=>!!e&&typeof e=="object"&&e[Cn]===qm,Gl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,ct=e=>!!e&&typeof e=="object"&&e[Cn]===rC,Ue=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Wl=e=>!!e&&typeof e=="object"&&e[Cn]===$o;function at(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case $o:return!0}return!1}function lt(e){if(e&&typeof e=="object")switch(e[Cn]){case S0:case ii:case ar:case $o:return!0}return!1}const iC=e=>(Ue(e)||at(e))&&!!e.anchor,Ni=Symbol("break visit"),K8=Symbol("skip children"),ja=Symbol("remove node");function zo(e,t){const n=q8(t);ql(e)?Vs(null,e.contents,n,Object.freeze([e]))===ja&&(e.contents=null):Vs(null,e,n,Object.freeze([]))}zo.BREAK=Ni;zo.SKIP=K8;zo.REMOVE=ja;function Vs(e,t,n,r){const i=G8(e,t,n,r);if(lt(i)||ct(i))return W8(e,r,i),Vs(e,i,n,r);if(typeof i!="symbol"){if(at(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>Y8[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+X8(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&<(t.contents)){const s={};zo(t.contents,(o,a)=>{lt(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` -`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function sC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function oC(e){const t=new Set;return zo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function aC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function Q8(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=oC(e));const o=aC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(Ue(o.node)||at(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function Hs(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!iC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class N0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!ql(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?Hs(s,{"":a},"",a):a}}class T0 extends N0{constructor(t){super(S0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],zo(t,{Node:(s,o)=>{(Fo(o)||iC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=xu(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(sC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function xu(e,t,n){if(Fo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(at(t)){let r=0;for(const i of t.items){const s=xu(e,i,n);s>r&&(r=s)}return r}else if(ct(t)){const r=xu(e,t.key,n),i=xu(e,t.value,n);return Math.max(r,i)}return 1}const lC=e=>!e||typeof e!="function"&&typeof e!="object";class ke extends N0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}ke.BLOCK_FOLDED="BLOCK_FOLDED";ke.BLOCK_LITERAL="BLOCK_LITERAL";ke.PLAIN="PLAIN";ke.QUOTE_DOUBLE="QUOTE_DOUBLE";ke.QUOTE_SINGLE="QUOTE_SINGLE";const Z8="tag:yaml.org,2002:";function J8(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function bl(e,t,n){var u,h,p;if(ql(e)&&(e=e.contents),lt(e))return e;if(ct(e)){const g=(h=(u=n.schema[ii]).createNode)==null?void 0:h.call(u,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new T0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=Z8+t.slice(2));let c=J8(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new ke(e);return l&&(l.node=g),g}c=e instanceof Map?o[ii]:Symbol.iterator in Object(e)?o[$o]:o[ii]}s&&(s(c),delete n.onTagObj);const d=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new ke(e);return t?d.tag=t:c.default||(d.tag=c.tag),l&&(l.node=d),d}function md(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return bl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ya=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class cC extends N0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>lt(r)||ct(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ya(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(at(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(at(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&Ue(s)?s.value:s:at(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!ct(n))return!1;const r=n.value;return r==null||t&&Ue(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return at(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(at(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const eH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Ri=(e,t,n)=>e.endsWith(` +`:gV(e)?(a=2,l=2):fA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},k={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[k,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function TV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=NV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function gA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],m={match:/(\/[a-z._-]+)+/},x=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],y=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],k=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:w,built_in:[...x,...y,"set","shopt",...v,...k]},contains:[p,e.SHEBANG(),g,u,s,o,m,a,l,c,d,n]}}function AV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",w={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:m.concat([{begin:/\(/,end:/\)/,keywords:w,contains:m.concat(["self"]),relevance:0}]),relevance:0},y={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:w,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:w}}}function CV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},k={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[k,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function MV(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},d={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(d,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},b={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},w=e.inherit(b,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},y=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+y+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,x],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const IV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),OV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],RV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],LV=[...OV,...RV],PV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),DV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),jV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),BV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function $V(e){const t=e.regex,n=IV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+DV.join("|")+")"},{begin:":(:)?("+jV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+BV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:PV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+LV.join("|")+")\\b"}]}}function FV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function zV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"bA(e,t,n-1))}function VV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+bA("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},d={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,qv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},qv,c]}}const Gv="[A-Za-z$_][0-9A-Za-z$_]*",HV=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],KV=["true","false","null","undefined","NaN","Infinity"],xA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],wA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],vA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],qV=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],GV=[].concat(vA,xA,wA);function _A(e){const t=e.regex,n=(L,{after:D})=>{const E="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const E=L[0].length+L.index,V=L.input[E];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:E})||D.ignoreMatch());let H;const T=L.input.substring(E);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:Gv,keyword:HV,literal:KV,built_in:GV,"variable.language":qV},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),k=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xA,...wA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...vA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:k,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},F,P,C,j,{match:/\$[(.]/}]}}function kA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Es="[0-9](_*[0-9])*",jc=`\\.(${Es})`,Bc="[0-9a-fA-F](_*[0-9a-fA-F])*",WV={className:"number",variants:[{begin:`(\\b(${Es})((${jc})|\\.)?|(${jc}))[eE][+-]?(${Es})[fFdD]?\\b`},{begin:`\\b(${Es})((${jc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${jc})[fFdD]?\\b`},{begin:`\\b(${Es})[fFdD]\\b`},{begin:`\\b0[xX]((${Bc})\\.?|(${Bc})?\\.(${Bc}))[pP][+-]?(${Es})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Bc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function YV(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=WV,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=u;return h.variants[1].contains=[u],u.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,a,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},c]}}const XV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),QV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ZV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JV=[...QV,...ZV],e9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),EA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),SA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),t9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),n9=EA.concat(SA).sort().reverse();function r9(e){const t=XV(e),n=n9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(y){return{className:"string",begin:"~?"+y+".*?"+y}},c=function(y,v,k){return{className:y,begin:v,relevance:k}},d={$pattern:/[a-z-]+/,keyword:r,attribute:e9.join(" ")},u={begin:"\\(",end:"\\)",contains:a,keywords:d,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+t9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:d,returnEnd:!0,contains:a,relevance:0}},w={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+JV.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+EA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},x={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,w,x,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function i9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function NA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),h=e.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[n,l];return[c,d,u,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function s9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function o9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},d=[e.BACKSLASH_ESCAPE,s,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(b,w,m="\\1")=>{const x=m==="\\1"?m:t.concat(m,w);return t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,x,/(?:\\.|[^\\\/])*?/,m,r)},p=(b,w,m)=>t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:d,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...u,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function a9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),u={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(O,j)=>{j.data._beginMatch=O[1]||O[2]},"on:end":(O,j)=>{j.data._beginMatch!==O[1]&&j.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ +]`,g={scope:"string",variants:[d,c,u,h]},b={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],x=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(O=>{const j=[];return O.forEach(M=>{j.push(M),M.toLowerCase()===M?j.push(M.toUpperCase()):j.push(M.toLowerCase())}),j})(w),built_in:x},k=O=>O.map(j=>j.replace(/\|\d+$/,"")),_={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",k(x).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},C=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,_]},P={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",k(m).join("\\b|"),"|",k(x).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(P);const R=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,_],F={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...R]},...R,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[F,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,P,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},_,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",F,o,N,e.C_BLOCK_COMMENT_MODE,g,b]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,b]}}function l9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function c9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function AA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},w={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,u,e.HASH_COMMENT_MODE]}]};return c.contains=[u,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,w,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,m,u]}]}}function u9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function d9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function f9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},_=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);d.contains=_,b.contains=_;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:_}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(c).concat(_)}}function h9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:""},s]}}const p9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),m9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],y9=[...m9,...g9],b9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),x9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),w9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),v9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function _9(e){const t=p9(e),n=w9,r=x9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+y9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+v9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:b9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function k9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function E9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,g=[...c,...l].filter(k=>!d.includes(k)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function x(k){return t.concat(/\b/,t.either(...k.map(_=>_.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:x(h),relevance:0};function v(k,{exceptions:_,when:C}={}){const N=C;return _=_||[],k.map(I=>I.match(/\|\d+$/)||_.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:k=>k.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:x(o)},y,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,w]}}function CA(e){return e?typeof e=="string"?e:e.source:null}function ia(e){return je("(?=",e,")")}function je(...e){return e.map(n=>CA(n)).join("")}function S9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(S9(e).capture?"":"?:")+e.map(r=>CA(r)).join("|")+")"}const x0=e=>je(/\b/,e,/\w$/.test(e)?/\b/:/\B/),N9=["Protocol","Type"].map(x0),Wv=["init","self"].map(x0),T9=["Any","Self"],Hh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Yv=["false","nil","true"],A9=["assignment","associativity","higherThan","left","lowerThan","none","right"],C9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Xv=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],MA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),IA=Ft(MA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Kh=je(MA,IA,"*"),OA=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),fd=Ft(OA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=je(OA,fd,"*"),$c=je(/[A-Z]/,fd,"*"),M9=["attached","autoclosure",je(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",je(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],I9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function O9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...N9,...Wv)],className:{2:"keyword"}},s={match:je(/\./,Ft(...Hh)),relevance:0},o=Hh.filter($=>typeof $=="string").concat(["_|0"]),a=Hh.filter($=>typeof $!="string").concat(T9).map(x0),l={variants:[{className:"keyword",match:Ft(...a,...Wv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(C9),literal:Yv},d=[i,s,l],u={match:je(/\./,Ft(...Xv)),relevance:0},h={className:"built_in",match:je(/\b/,Ft(...Xv),/(?=\()/)},p=[u,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Kh},{match:`\\.(\\.|${IA})+`}]},w=[g,b],m="([0-9]_*)+",x="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=($="")=>({className:"subst",variants:[{match:je(/\\/,$,/[0\\tnr"']/)},{match:je(/\\/,$,/u\{[0-9a-fA-F]{1,8}\}/)}]}),k=($="")=>({className:"subst",match:je(/\\/,$,/[\t ]*(?:[\r\n]|\r\n)/)}),_=($="")=>({className:"subst",label:"interpol",begin:je(/\\/,$,/\(/),end:/\)/}),C=($="")=>({begin:je($,/"""/),end:je(/"""/,$),contains:[v($),k($),_($)]}),N=($="")=>({begin:je($,/"/),end:je(/"/,$),contains:[v($),_($)]}),I={className:"string",variants:[C(),C("#"),C("##"),C("###"),N(),N("#"),N("##"),N("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],P={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},R=$=>{const G=je($,/\//),X=je(/\//,$);return{begin:G,end:X,contains:[...A,{scope:"comment",begin:`#(?!.*${X})`,end:/$/}]}},F={scope:"regexp",variants:[R("###"),R("##"),R("#"),P]},O={match:je(/`/,Qn,/`/)},j={className:"variable",match:/\$\d+/},M={className:"variable",match:`\\$${fd}+`},B=[O,j,M],L={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:I9,contains:[...w,y,I]}]}},D={scope:"keyword",match:je(/@/,Ft(...M9),ia(Ft(/\(/,/\s+/)))},E={scope:"meta",match:je(/@/,Qn)},V=[L,D,E],H={match:ia(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:je(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,fd,"+")},{className:"type",match:$c,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:je(/\s+&\s+/,ia($c)),relevance:0}]},T={begin://,keywords:c,contains:[...r,...d,...V,g,H]};H.contains.push(T);const U={match:je(Qn,/\s*:/),keywords:"_|0",relevance:0},Y={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",U,...r,F,...d,...p,...w,y,I,...B,...V,H]},Z={begin://,keywords:"repeat each",contains:[...r,H]},J={begin:Ft(ia(je(Qn,/\s*:/)),ia(je(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},q={begin:/\(/,end:/\)/,keywords:c,contains:[J,...r,...d,...w,y,I,...V,H,Y],endsParent:!0,illegal:/["']/},ee={match:[/(func|macro)/,/\s+/,Ft(O.match,Qn,Kh)],className:{1:"keyword",3:"title.function"},contains:[Z,q,t],illegal:[/\[/,/%/]},le={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,q,t],illegal:/\[|%/},ce={match:[/operator/,/\s+/,Kh],className:{1:"keyword",3:"title"}},ae={begin:[/precedencegroup/,/\s+/,$c],className:{1:"keyword",3:"title"},contains:[H],keywords:[...A9,...Yv],end:/}/},se={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},ye={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},W={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[Z,...d,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:$c},...d],relevance:0}]};for(const $ of I.variants){const G=$.contains.find(me=>me.label==="interpol");G.keywords=c;const X=[...d,...p,...w,y,I,...B];G.contains=[...X,{begin:/\(/,end:/\)/,contains:["self",...X]}]}return{name:"Swift",keywords:c,contains:[...r,ee,le,se,ye,W,ce,ae,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},F,...d,...p,...w,y,I,...B,...V,H,Y]}}const hd="[A-Za-z$_][0-9A-Za-z$_]*",RA=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],LA=["true","false","null","undefined","NaN","Infinity"],PA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],DA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],jA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],BA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$A=[].concat(jA,PA,DA);function R9(e){const t=e.regex,n=(L,{after:D})=>{const E="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const E=L[0].length+L.index,V=L.input[E];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:E})||D.ignoreMatch());let H;const T=L.input.substring(E);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:hd,keyword:RA,literal:LA,built_in:$A,"variable.language":BA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),k=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...PA,...DA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...jA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:k,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},F,P,C,j,{match:/\$[(.]/}]}}function FA(e){const t=e.regex,n=R9(e),r=hd,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:hd,keyword:RA.concat(l),literal:LA,built_in:$A.concat(i),"variable.language":BA},d={className:"meta",begin:"@"+r},u=(b,w,m)=>{const x=b.contains.findIndex(y=>y.label===w);if(x===-1)throw new Error("can not find mode to replace");b.contains.splice(x,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(d);const h=n.contains.find(b=>b.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([d,s,o,p]),u(n,"shebang",e.SHEBANG()),u(n,"use_strict",a);const g=n.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function L9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},d={className:"label",begin:/^\w+:/},u=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,d,u,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function P9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function D9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function zA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},w=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,b,s,o],m=[...w];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}const j9={arduino:TV,bash:gA,c:AV,cpp:CV,csharp:MV,css:$V,diff:FV,go:zV,graphql:UV,ini:yA,java:VV,javascript:_A,json:kA,kotlin:YV,less:r9,lua:i9,makefile:NA,markdown:TA,objectivec:s9,perl:o9,php:a9,"php-template":l9,plaintext:c9,python:AA,"python-repl":u9,r:d9,ruby:f9,rust:h9,scss:_9,shell:k9,sql:E9,swift:O9,typescript:FA,vbnet:L9,wasm:P9,xml:D9,yaml:zA};function UA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&UA(n)}),e}let Qv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function VA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const B9="",Zv=e=>!!e.scope,$9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class F9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=VA(t)}openNode(t){if(!Zv(t))return;const n=$9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Zv(t)&&(this.buffer+=B9)}value(){return this.buffer}span(t){this.buffer+=``}}const Jv=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class w0{constructor(){this.rootNode=Jv(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Jv({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{w0._collapse(n)}))}}class z9 extends w0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new F9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function gl(e){return e?typeof e=="string"?e:e.source:null}function HA(e){return us("(?=",e,")")}function U9(e){return us("(?:",e,")*")}function V9(e){return us("(?:",e,")?")}function us(...e){return e.map(n=>gl(n)).join("")}function H9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function v0(...e){return"("+(H9(e).capture?"":"?:")+e.map(r=>gl(r)).join("|")+")"}function KA(e){return new RegExp(e.toString()+"|").exec("").length-1}function K9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const q9=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=gl(r),o="";for(;s.length>0;){const a=q9.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const G9=/\b\B/,qA="[a-zA-Z]\\w*",k0="[a-zA-Z_]\\w*",GA="\\b\\d+(\\.\\d+)?",WA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",YA="\\b(0b[01]+)",W9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=us(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yl={begin:"\\\\[\\s\\S]",relevance:0},X9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yl]},Q9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yl]},Z9={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},sf=function(e,t,n={}){const r=Yr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=v0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:us(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},J9=sf("//","$"),e8=sf("/\\*","\\*/"),t8=sf("#","$"),n8={scope:"number",begin:GA,relevance:0},r8={scope:"number",begin:WA,relevance:0},i8={scope:"number",begin:YA,relevance:0},s8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yl,{begin:/\[/,end:/\]/,relevance:0,contains:[yl]}]},o8={scope:"title",begin:qA,relevance:0},a8={scope:"title",begin:k0,relevance:0},l8={begin:"\\.\\s*"+k0,relevance:0},c8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Fc=Object.freeze({__proto__:null,APOS_STRING_MODE:X9,BACKSLASH_ESCAPE:yl,BINARY_NUMBER_MODE:i8,BINARY_NUMBER_RE:YA,COMMENT:sf,C_BLOCK_COMMENT_MODE:e8,C_LINE_COMMENT_MODE:J9,C_NUMBER_MODE:r8,C_NUMBER_RE:WA,END_SAME_AS_BEGIN:c8,HASH_COMMENT_MODE:t8,IDENT_RE:qA,MATCH_NOTHING_RE:G9,METHOD_GUARD:l8,NUMBER_MODE:n8,NUMBER_RE:GA,PHRASAL_WORDS_MODE:Z9,QUOTE_STRING_MODE:Q9,REGEXP_MODE:s8,RE_STARTERS_RE:W9,SHEBANG:Y9,TITLE_MODE:o8,UNDERSCORE_IDENT_RE:k0,UNDERSCORE_TITLE_MODE:a8});function u8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function d8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function f8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=u8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function h8(e,t){Array.isArray(e.illegal)&&(e.illegal=v0(...e.illegal))}function p8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function m8(e,t){e.relevance===void 0&&(e.relevance=1)}const g8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=us(n.beforeMatch,HA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},y8=["of","and","for","in","not","or","if","then","parent","list","value"],b8="keyword";function XA(e,t,n=b8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,XA(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,x8(l[0],l[1])]})}}function x8(e,t){return t?Number(t):w8(e)?0:1}function w8(e){return y8.includes(e.toLowerCase())}const e1={},$i=e=>{console.error(e)},t1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},bs=(e,t)=>{e1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),e1[`${e}/${t}`]=!0)},pd=new Error;function QA(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=KA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function v8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pd;if(typeof e.beginScope!="object"||e.beginScope===null)throw $i("beginScope must be object"),pd;QA(e,e.begin,{key:"beginScope"}),e.begin=_0(e.begin,{joinWith:""})}}function _8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pd;if(typeof e.endScope!="object"||e.endScope===null)throw $i("endScope must be object"),pd;QA(e,e.end,{key:"endScope"}),e.end=_0(e.end,{joinWith:""})}}function k8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function E8(e){k8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),v8(e),_8(e)}function S8(e){function t(o,a){return new RegExp(gl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=KA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(_0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[d8,p8,E8,g8].forEach(d=>d(o,a)),e.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[f8,h8,m8].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=XA(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=gl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return N8(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yr(e.classNameAliases||{}),s(e)}function ZA(e){return e?e.endsWithParent||ZA(e.starts):!1}function N8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ZA(e)?Yr(e,{starts:e.starts?Yr(e.starts):null}):Object.isFrozen(e)?Yr(e):e}var T8="11.11.1";class A8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const qh=VA,n1=Yr,r1=Symbol("nomatch"),C8=7,JA=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:z9};function l(M){return a.noHighlightRe.test(M)}function c(M){let B=M.className+" ";B+=M.parentNode?M.parentNode.className:"";const L=a.languageDetectRe.exec(B);if(L){const D=N(L[1]);return D||(t1(s.replace("{}",L[1])),t1("Falling back to no-highlight mode for this block.",M)),D?L[1]:"no-highlight"}return B.split(/\s+/).find(D=>l(D)||N(D))}function d(M,B,L){let D="",E="";typeof B=="object"?(D=M,L=B.ignoreIllegals,E=B.language):(bs("10.7.0","highlight(lang, code, ...args) has been deprecated."),bs("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),E=M,D=B),L===void 0&&(L=!0);const V={code:D,language:E};O("before:highlight",V);const H=V.result?V.result:u(V.language,V.code,L);return H.code=V.code,O("after:highlight",H),H}function u(M,B,L,D){const E=Object.create(null);function V(z,K){return z.keywords[K]}function H(){if(!X.keywords){pe.addText(de);return}let z=0;X.keywordPatternRe.lastIndex=0;let K=X.keywordPatternRe.exec(de),te="";for(;K;){te+=de.substring(z,K.index);const oe=W.case_insensitive?K[0].toLowerCase():K[0],we=V(X,oe);if(we){const[Le,$t]=we;if(pe.addText(te),te="",E[oe]=(E[oe]||0)+1,E[oe]<=C8&&(Ae+=$t),Le.startsWith("_"))te+=K[0];else{const _t=W.classNameAliases[Le]||Le;Y(K[0],_t)}}else te+=K[0];z=X.keywordPatternRe.lastIndex,K=X.keywordPatternRe.exec(de)}te+=de.substring(z),pe.addText(te)}function T(){if(de==="")return;let z=null;if(typeof X.subLanguage=="string"){if(!t[X.subLanguage]){pe.addText(de);return}z=u(X.subLanguage,de,!0,me[X.subLanguage]),me[X.subLanguage]=z._top}else z=p(de,X.subLanguage.length?X.subLanguage:null);X.relevance>0&&(Ae+=z.relevance),pe.__addSublanguage(z._emitter,z.language)}function U(){X.subLanguage!=null?T():H(),de=""}function Y(z,K){z!==""&&(pe.startScope(K),pe.addText(z),pe.endScope())}function Z(z,K){let te=1;const oe=K.length-1;for(;te<=oe;){if(!z._emit[te]){te++;continue}const we=W.classNameAliases[z[te]]||z[te],Le=K[te];we?Y(Le,we):(de=Le,H(),de=""),te++}}function J(z,K){return z.scope&&typeof z.scope=="string"&&pe.openNode(W.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(Y(de,W.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),de=""):z.beginScope._multi&&(Z(z.beginScope,K),de="")),X=Object.create(z,{parent:{value:X}}),X}function q(z,K,te){let oe=K9(z.endRe,te);if(oe){if(z["on:end"]){const we=new Qv(z);z["on:end"](K,we),we.isMatchIgnored&&(oe=!1)}if(oe){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return q(z.parent,K,te)}function ee(z){return X.matcher.regexIndex===0?(de+=z[0],1):(Pe=!0,0)}function le(z){const K=z[0],te=z.rule,oe=new Qv(te),we=[te.__beforeBegin,te["on:begin"]];for(const Le of we)if(Le&&(Le(z,oe),oe.isMatchIgnored))return ee(K);return te.skip?de+=K:(te.excludeBegin&&(de+=K),U(),!te.returnBegin&&!te.excludeBegin&&(de=K)),J(te,z),te.returnBegin?0:K.length}function ce(z){const K=z[0],te=B.substring(z.index),oe=q(X,z,te);if(!oe)return r1;const we=X;X.endScope&&X.endScope._wrap?(U(),Y(K,X.endScope._wrap)):X.endScope&&X.endScope._multi?(U(),Z(X.endScope,z)):we.skip?de+=K:(we.returnEnd||we.excludeEnd||(de+=K),U(),we.excludeEnd&&(de=K));do X.scope&&pe.closeNode(),!X.skip&&!X.subLanguage&&(Ae+=X.relevance),X=X.parent;while(X!==oe.parent);return oe.starts&&J(oe.starts,z),we.returnEnd?0:K.length}function ae(){const z=[];for(let K=X;K!==W;K=K.parent)K.scope&&z.unshift(K.scope);z.forEach(K=>pe.openNode(K))}let se={};function ye(z,K){const te=K&&K[0];if(de+=z,te==null)return U(),0;if(se.type==="begin"&&K.type==="end"&&se.index===K.index&&te===""){if(de+=B.slice(K.index,K.index+1),!i){const oe=new Error(`0 width match regex (${M})`);throw oe.languageName=M,oe.badRule=se.rule,oe}return 1}if(se=K,K.type==="begin")return le(K);if(K.type==="illegal"&&!L){const oe=new Error('Illegal lexeme "'+te+'" for mode "'+(X.scope||"")+'"');throw oe.mode=X,oe}else if(K.type==="end"){const oe=ce(K);if(oe!==r1)return oe}if(K.type==="illegal"&&te==="")return de+=` +`,1;if(mt>1e5&&mt>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return de+=te,te.length}const W=N(M);if(!W)throw $i(s.replace("{}",M)),new Error('Unknown language: "'+M+'"');const $=S8(W);let G="",X=D||$;const me={},pe=new a.__emitter(a);ae();let de="",Ae=0,_e=0,mt=0,Pe=!1;try{if(W.__emitTokens)W.__emitTokens(B,pe);else{for(X.matcher.considerAll();;){mt++,Pe?Pe=!1:X.matcher.considerAll(),X.matcher.lastIndex=_e;const z=X.matcher.exec(B);if(!z)break;const K=B.substring(_e,z.index),te=ye(K,z);_e=z.index+te}ye(B.substring(_e))}return pe.finalize(),G=pe.toHTML(),{language:M,value:G,relevance:Ae,illegal:!1,_emitter:pe,_top:X}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:M,value:qh(B),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:_e,context:B.slice(_e-100,_e+100),mode:z.mode,resultSoFar:G},_emitter:pe};if(i)return{language:M,value:qh(B),illegal:!1,relevance:0,errorRaised:z,_emitter:pe,_top:X};throw z}}function h(M){const B={value:qh(M),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return B._emitter.addText(M),B}function p(M,B){B=B||a.languages||Object.keys(t);const L=h(M),D=B.filter(N).filter(A).map(U=>u(U,M,!1));D.unshift(L);const E=D.sort((U,Y)=>{if(U.relevance!==Y.relevance)return Y.relevance-U.relevance;if(U.language&&Y.language){if(N(U.language).supersetOf===Y.language)return 1;if(N(Y.language).supersetOf===U.language)return-1}return 0}),[V,H]=E,T=V;return T.secondBest=H,T}function g(M,B,L){const D=B&&n[B]||L;M.classList.add("hljs"),M.classList.add(`language-${D}`)}function b(M){let B=null;const L=c(M);if(l(L))return;if(O("before:highlightElement",{el:M,language:L}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),a.throwUnescapedHTML))throw new A8("One of your code blocks includes unescaped HTML.",M.innerHTML);B=M;const D=B.textContent,E=L?d(D,{language:L,ignoreIllegals:!0}):p(D);M.innerHTML=E.value,M.dataset.highlighted="yes",g(M,L,E.language),M.result={language:E.language,re:E.relevance,relevance:E.relevance},E.secondBest&&(M.secondBest={language:E.secondBest.language,relevance:E.secondBest.relevance}),O("after:highlightElement",{el:M,result:E,text:D})}function w(M){a=n1(a,M)}const m=()=>{v(),bs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){v(),bs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function v(){function M(){v()}if(document.readyState==="loading"){y||window.addEventListener("DOMContentLoaded",M,!1),y=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function k(M,B){let L=null;try{L=B(e)}catch(D){if($i("Language definition for '{}' could not be registered.".replace("{}",M)),i)$i(D);else throw D;L=o}L.name||(L.name=M),t[M]=L,L.rawDefinition=B.bind(null,e),L.aliases&&I(L.aliases,{languageName:M})}function _(M){delete t[M];for(const B of Object.keys(n))n[B]===M&&delete n[B]}function C(){return Object.keys(t)}function N(M){return M=(M||"").toLowerCase(),t[M]||t[n[M]]}function I(M,{languageName:B}){typeof M=="string"&&(M=[M]),M.forEach(L=>{n[L.toLowerCase()]=B})}function A(M){const B=N(M);return B&&!B.disableAutodetect}function P(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=B=>{M["before:highlightBlock"](Object.assign({block:B.el},B))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=B=>{M["after:highlightBlock"](Object.assign({block:B.el},B))})}function R(M){P(M),r.push(M)}function F(M){const B=r.indexOf(M);B!==-1&&r.splice(B,1)}function O(M,B){const L=M;r.forEach(function(D){D[L]&&D[L](B)})}function j(M){return bs("10.7.0","highlightBlock will be removed entirely in v12.0"),bs("10.7.0","Please use highlightElement now."),b(M)}Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:j,configure:w,initHighlighting:m,initHighlightingOnLoad:x,registerLanguage:k,unregisterLanguage:_,listLanguages:C,getLanguage:N,registerAliases:I,autoDetection:A,inherit:n1,addPlugin:R,removePlugin:F}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=T8,e.regex={concat:us,lookahead:HA,either:v0,optional:V9,anyNumberOfTimes:U9};for(const M in Fc)typeof Fc[M]=="object"&&UA(Fc[M]);return Object.assign(e,Fc),e},bo=JA({});bo.newInstance=()=>JA({});var M8=bo;bo.HighlightJS=bo;bo.default=bo;const tn=Ml(M8),i1={},I8="hljs-";function O8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,d){const u=d||i1,h=typeof u.prefix=="string"?u.prefix:I8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:R8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,b=g.data;return b.language=p.language,b.relevance=p.relevance,g}function r(l,c){const u=(c||i1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=w.data.relevance,g=w)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let d;for(d in l)Object.hasOwn(l,d)&&t.registerLanguage(d,l[d])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let d;for(d in l)if(Object.hasOwn(l,d)){const u=l[d];t.registerAliases(typeof u=="string"?u:[...u],{languageName:d})}}}function a(l){return!!t.getLanguage(l)}}class R8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const L8={};function P8(e){const t=e||L8,n=t.aliases,r=t.detect||!1,i=t.languages||j9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=O8(i);if(n&&c.registerAlias(n),o){const d=o.indexOf("-");l=d===-1?o:o.slice(0,d)}return function(d,u){rf(d,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=D8(h);if(b===!1||!b&&!r||b&&s&&s.includes(b))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const w=bV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,w,{prefix:o}):c.highlightAuto(w,{prefix:o,subset:a})}catch(x){const y=x;if(b&&/Unknown language/.test(y.message)){u.message("Cannot highlight as `"+b+"`, it’s not registered",{ancestors:[g,h],cause:y,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw y}!b&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function D8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const E0=S.memo(j8),eC="send_a2ui_json_to_client";function B8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function tC({text:e,done:t}){const[n,r]=S.useState(!t),i=S.useRef(!1);S.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=oT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(B8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Gn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function $8(){return f.jsx(tC,{text:"",done:!1})}function F8({name:e,args:t,response:n,done:r}){const[i,s]=S.useState(!1),o=e===eC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` +…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Gn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function z8({block:e,onAuth:t}){const[n,r]=S.useState(e.done?"done":"idle"),[i,s]=S.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(d){s(d instanceof Error?d.message:String(d)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(Dw,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(Dw,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function U8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(tC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(E0,{text:s})},i):null}case"tool":return r.name===eC&&r.done?null:f.jsx(F8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(z8,{block:r,onAuth:n},i);case"a2ui":return sT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(xF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function V8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=S.useRef(null),c=S.useRef(null),d=S.useRef(null),[u,h]=S.useState(!1);S.useLayoutEffect(()=>{const w=l.current;w&&(w.style.height="auto",w.style.height=`${Math.min(w.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(w){var m;h(!1),(m=w.current)==null||m.click()}function b(w){w.target.files&&w.target.files.length&&o(w.target.files),w.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((w,m)=>f.jsx(H8,{mimeType:w.mimeType,data:w.data,name:w.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(w=>!w),children:f.jsx(ss,{className:"icon"})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(UB,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(d),children:[f.jsx(qy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:w=>t(w.target.value),onKeyDown:w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(bt,{className:"icon spin"}):f.jsx(_B,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:d,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function H8({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(Fl,{className:"icon"})})]})}function nC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Gn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const S0=Symbol.for("yaml.alias"),qm=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),rC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),$o=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Fo=e=>!!e&&typeof e=="object"&&e[Cn]===S0,ql=e=>!!e&&typeof e=="object"&&e[Cn]===qm,Gl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,lt=e=>!!e&&typeof e=="object"&&e[Cn]===rC,ze=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Wl=e=>!!e&&typeof e=="object"&&e[Cn]===$o;function ot(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case $o:return!0}return!1}function at(e){if(e&&typeof e=="object")switch(e[Cn]){case S0:case ii:case ar:case $o:return!0}return!1}const iC=e=>(ze(e)||ot(e))&&!!e.anchor,Ni=Symbol("break visit"),K8=Symbol("skip children"),ja=Symbol("remove node");function zo(e,t){const n=q8(t);ql(e)?Vs(null,e.contents,n,Object.freeze([e]))===ja&&(e.contents=null):Vs(null,e,n,Object.freeze([]))}zo.BREAK=Ni;zo.SKIP=K8;zo.REMOVE=ja;function Vs(e,t,n,r){const i=G8(e,t,n,r);if(at(i)||lt(i))return W8(e,r,i),Vs(e,i,n,r);if(typeof i!="symbol"){if(ot(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>Y8[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+X8(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&&at(t.contents)){const s={};zo(t.contents,(o,a)=>{at(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` +`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function sC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function oC(e){const t=new Set;return zo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function aC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function Q8(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=oC(e));const o=aC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(ze(o.node)||ot(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function Hs(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!iC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class N0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!ql(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?Hs(s,{"":a},"",a):a}}class T0 extends N0{constructor(t){super(S0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],zo(t,{Node:(s,o)=>{(Fo(o)||iC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=xu(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(sC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function xu(e,t,n){if(Fo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(ot(t)){let r=0;for(const i of t.items){const s=xu(e,i,n);s>r&&(r=s)}return r}else if(lt(t)){const r=xu(e,t.key,n),i=xu(e,t.value,n);return Math.max(r,i)}return 1}const lC=e=>!e||typeof e!="function"&&typeof e!="object";class Ee extends N0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}Ee.BLOCK_FOLDED="BLOCK_FOLDED";Ee.BLOCK_LITERAL="BLOCK_LITERAL";Ee.PLAIN="PLAIN";Ee.QUOTE_DOUBLE="QUOTE_DOUBLE";Ee.QUOTE_SINGLE="QUOTE_SINGLE";const Z8="tag:yaml.org,2002:";function J8(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function bl(e,t,n){var u,h,p;if(ql(e)&&(e=e.contents),at(e))return e;if(lt(e)){const g=(h=(u=n.schema[ii]).createNode)==null?void 0:h.call(u,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new T0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=Z8+t.slice(2));let c=J8(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new Ee(e);return l&&(l.node=g),g}c=e instanceof Map?o[ii]:Symbol.iterator in Object(e)?o[$o]:o[ii]}s&&(s(c),delete n.onTagObj);const d=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new Ee(e);return t?d.tag=t:c.default||(d.tag=c.tag),l&&(l.node=d),d}function md(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return bl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ya=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class cC extends N0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>at(r)||lt(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ya(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(ot(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(ot(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&ze(s)?s.value:s:ot(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!lt(n))return!1;const r=n.value;return r==null||t&&ze(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return ot(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(ot(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const eH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Ri=(e,t,n)=>e.endsWith(` `)?xr(n,t):n.includes(` `)?` `+xr(n,t):(e.endsWith(" ")?"":" ")+n,uC="flow",Gm="block",wu="quoted";function of(e,t,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,s)?c.push(0):u=i-r);let h,p,g=!1,b=-1,w=-1,m=-1;n===Gm&&(b=s1(e,b,t.length),b!==-1&&(u=b+l));for(let y;y=e[b+=1];){if(n===wu&&y==="\\"){switch(w=b,e[b+1]){case"x":b+=3;break;case"u":b+=5;break;case"U":b+=9;break;default:b+=1}m=b}if(y===` `)n===Gm&&(b=s1(e,b,t.length)),u=b+t.length+l,h=void 0;else{if(y===" "&&p&&p!==" "&&p!==` `&&p!==" "){const v=e[b+1];v&&v!==" "&&v!==` -`&&v!==" "&&(h=b)}if(b>=u)if(h)c.push(h),u=h+l,h=void 0;else if(n===wu){for(;p===" "||p===" ";)p=y,y=e[b+=1],g=!0;const v=b>m+1?b-2:w-1;if(d[v])return e;c.push(v),d[v]=!0,u=v+l,h=void 0}else g=!0}p=y}if(g&&a&&a(),c.length===0)return e;o&&o();let x=e.slice(0,c[0]);for(let y=0;y=u)if(h)c.push(h),u=h+l,h=void 0;else if(n===wu){for(;p===" "||p===" ";)p=y,y=e[b+=1],g=!0;const v=b>m+1?b-2:w-1;if(d[v])return e;c.push(v),d[v]=!0,u=v+l,h=void 0}else g=!0}p=y}if(g&&a&&a(),c.length===0)return e;o&&o();let x=e.slice(0,c[0]);for(let y=0;y({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),lf=e=>/^(%|---|\.\.\.)/m.test(e);function tH(e,t,n){if(!t||t<0)return!1;const r=t-n,i=e.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function Ba(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(lf(e)?" ":"");let o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);const d=n.substr(l+2,4);switch(d){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||n[l+2]==='"'||n.length -`;let u,h;for(h=n.length;h>0;--h){const E=n[h-1];if(E!==` -`&&E!==" "&&E!==" ")break}let p=n.substring(h);const g=p.indexOf(` +`;let u,h;for(h=n.length;h>0;--h){const k=n[h-1];if(k!==` +`&&k!==" "&&k!==" ")break}let p=n.substring(h);const g=p.indexOf(` `);g===-1?u="-":n===p||g!==p.length-1?(u="+",s&&s()):u="",p&&(n=n.slice(0,-p.length),p[p.length-1]===` -`&&(p=p.slice(0,-1)),p=p.replace(Ym,`$&${c}`));let b=!1,w,m=-1;for(w=0;w{_=!0});const N=of(`${x}${E}${p}`,c,Gm,C);if(!_)return`>${v} +`&&(p=p.slice(0,-1)),p=p.replace(Ym,`$&${c}`));let b=!1,w,m=-1;for(w=0;w{_=!0});const N=of(`${x}${k}${p}`,c,Gm,C);if(!_)return`>${v} ${c}${N}`}return n=n.replace(/\n+/g,`$&${c}`),`|${v} ${c}${x}${n}${p}`}function nH(e,t,n,r){const{type:i,value:s}=e,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=t;if(a&&s.includes(` `)||d&&/[[\]{},]/.test(s))return Ks(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||d||!s.includes(` -`)?Ks(s,t):vu(e,t,n,r);if(!a&&!d&&i!==ke.PLAIN&&s.includes(` +`)?Ks(s,t):vu(e,t,n,r);if(!a&&!d&&i!==Ee.PLAIN&&s.includes(` `))return vu(e,t,n,r);if(lf(s)){if(l==="")return t.forceBlockIndent=!0,vu(e,t,n,r);if(a&&l===c)return Ks(s,t)}const u=s.replace(/\n+/g,`$& -${l}`);if(o){const h=b=>{var w;return b.default&&b.tag!=="tag:yaml.org,2002:str"&&((w=b.test)==null?void 0:w.test(u))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ks(s,t)}return a?u:of(u,l,uC,af(t,!1))}function A0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==ke.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ke.QUOTE_DOUBLE);const l=d=>{switch(d){case ke.BLOCK_FOLDED:case ke.BLOCK_LITERAL:return i||s?Ks(o.value,t):vu(o,t,n,r);case ke.QUOTE_DOUBLE:return Ba(o.value,t);case ke.QUOTE_SINGLE:return Wm(o.value,t);case ke.PLAIN:return nH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:d,defaultStringType:u}=t.options,h=i&&d||u;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function dC(e,t){const n=Object.assign({blockQuote:!0,commentString:eH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function rH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(Ue(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function iH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(Ue(e)||at(e))&&e.anchor;s&&sC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(ct(e))return e.toString(t,n,r);if(Fo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=lt(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=rH(t.doc.schema.tags,s));const o=iH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):Ue(s)?A0(s,t,n,r):s.toString(t,n,r);return o?Ue(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} -${t.indent}${a}`:a}function sH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n;let h=lt(e)&&e.comment||null;if(u){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(at(e)||!lt(e)&&typeof e=="object"){const C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!e||h&&t==null&&!n.inFlow||at(e)||(Ue(e)?e.type===ke.BLOCK_FOLDED||e.type===ke.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!s),indent:a+l});let g=!1,b=!1,w=xo(e,n,()=>g=!0,()=>b=!0);if(!p&&!n.inFlow&&w.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),w===""?"?":p?`? ${w}`:w}else if(s&&!u||t==null&&p)return w=`? ${w}`,h&&!g?w+=Ri(w,n.indent,c(h)):b&&i&&i(),w;g&&(h=null),p?(h&&(w+=Ri(w,n.indent,c(h))),w=`? ${w} -${a}:`):(w=`${w}:`,h&&(w+=Ri(w,n.indent,c(h))));let m,x,y;lt(t)?(m=!!t.spaceBefore,x=t.commentBefore,y=t.comment):(m=!1,x=null,y=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&Ue(t)&&(n.indentAtStart=w.length+1),b=!1,!d&&l.length>=2&&!n.inFlow&&!p&&Wl(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const E=xo(t,n,()=>v=!0,()=>b=!0);let _=" ";if(h||m||x){if(_=m?` +${l}`);if(o){const h=b=>{var w;return b.default&&b.tag!=="tag:yaml.org,2002:str"&&((w=b.test)==null?void 0:w.test(u))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ks(s,t)}return a?u:of(u,l,uC,af(t,!1))}function A0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==Ee.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ee.QUOTE_DOUBLE);const l=d=>{switch(d){case Ee.BLOCK_FOLDED:case Ee.BLOCK_LITERAL:return i||s?Ks(o.value,t):vu(o,t,n,r);case Ee.QUOTE_DOUBLE:return Ba(o.value,t);case Ee.QUOTE_SINGLE:return Wm(o.value,t);case Ee.PLAIN:return nH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:d,defaultStringType:u}=t.options,h=i&&d||u;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function dC(e,t){const n=Object.assign({blockQuote:!0,commentString:eH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function rH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(ze(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function iH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(ze(e)||ot(e))&&e.anchor;s&&sC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(lt(e))return e.toString(t,n,r);if(Fo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=at(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=rH(t.doc.schema.tags,s));const o=iH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):ze(s)?A0(s,t,n,r):s.toString(t,n,r);return o?ze(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} +${t.indent}${a}`:a}function sH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n;let h=at(e)&&e.comment||null;if(u){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(ot(e)||!at(e)&&typeof e=="object"){const C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!e||h&&t==null&&!n.inFlow||ot(e)||(ze(e)?e.type===Ee.BLOCK_FOLDED||e.type===Ee.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!s),indent:a+l});let g=!1,b=!1,w=xo(e,n,()=>g=!0,()=>b=!0);if(!p&&!n.inFlow&&w.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),w===""?"?":p?`? ${w}`:w}else if(s&&!u||t==null&&p)return w=`? ${w}`,h&&!g?w+=Ri(w,n.indent,c(h)):b&&i&&i(),w;g&&(h=null),p?(h&&(w+=Ri(w,n.indent,c(h))),w=`? ${w} +${a}:`):(w=`${w}:`,h&&(w+=Ri(w,n.indent,c(h))));let m,x,y;at(t)?(m=!!t.spaceBefore,x=t.commentBefore,y=t.comment):(m=!1,x=null,y=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&ze(t)&&(n.indentAtStart=w.length+1),b=!1,!d&&l.length>=2&&!n.inFlow&&!p&&Wl(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const k=xo(t,n,()=>v=!0,()=>b=!0);let _=" ";if(h||m||x){if(_=m?` `:"",x){const C=c(x);_+=` -${xr(C,n.indent)}`}E===""&&!n.inFlow?_===` +${xr(C,n.indent)}`}k===""&&!n.inFlow?_===` `&&y&&(_=` `):_+=` -${n.indent}`}else if(!p&&at(t)){const C=E[0],N=E.indexOf(` -`),I=N!==-1,A=n.inFlow??t.flow??t.items.length===0;if(I||!A){let P=!1;if(I&&(C==="&"||C==="!")){let R=E.indexOf(" ");C==="&"&&R!==-1&&Re===zc||typeof e=="symbol"&&e.description===zc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ke(Symbol(zc)),{addToJSMap:hC}),stringify:()=>zc},oH=(e,t)=>(kr.identify(t)||Ue(t)&&(!t.type||t.type===ke.PLAIN)&&kr.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===kr.tag&&n.default));function hC(e,t,n){const r=pC(e,n);if(Wl(r))for(const i of r.items)Gh(e,t,i);else if(Array.isArray(r))for(const i of r)Gh(e,t,i);else Gh(e,t,r)}function Gh(e,t,n){const r=pC(e,n);if(!Gl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function pC(e,t){return e&&Fo(t)?t.resolve(e.doc,e):t}function mC(e,t,{key:n,value:r}){if(lt(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(oH(e,n))hC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=aH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function aH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(lt(e)&&(n!=null&&n.doc)){const r=dC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),fC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function C0(e,t,n){const r=bl(e,void 0,n),i=bl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:rC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return lt(n)&&(n=n.clone(t)),lt(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return mC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?sH(this,t,n,r):JSON.stringify(this)}}function gC(e,t,n){return(t.inFlow??e.flow?cH:lH)(e,t,n)}function lH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:s,type:null});let u=!1;const h=[];for(let g=0;gw=null,()=>u=!0);w&&(m+=Ri(m,s,c(w))),u&&w&&(u=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;ge===zc||typeof e=="symbol"&&e.description===zc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ee(Symbol(zc)),{addToJSMap:hC}),stringify:()=>zc},oH=(e,t)=>(Er.identify(t)||ze(t)&&(!t.type||t.type===Ee.PLAIN)&&Er.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===Er.tag&&n.default));function hC(e,t,n){const r=pC(e,n);if(Wl(r))for(const i of r.items)Gh(e,t,i);else if(Array.isArray(r))for(const i of r)Gh(e,t,i);else Gh(e,t,r)}function Gh(e,t,n){const r=pC(e,n);if(!Gl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function pC(e,t){return e&&Fo(t)?t.resolve(e.doc,e):t}function mC(e,t,{key:n,value:r}){if(at(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(oH(e,n))hC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=aH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function aH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(at(e)&&(n!=null&&n.doc)){const r=dC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),fC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function C0(e,t,n){const r=bl(e,void 0,n),i=bl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:rC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return at(n)&&(n=n.clone(t)),at(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return mC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?sH(this,t,n,r):JSON.stringify(this)}}function gC(e,t,n){return(t.inFlow??e.flow?cH:lH)(e,t,n)}function lH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:s,type:null});let u=!1;const h=[];for(let g=0;gw=null,()=>u=!0);w&&(m+=Ri(m,s,c(w))),u&&w&&(u=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;gw=null);c||(c=u.length>d||m.includes(` +`+xr(c(e),l),a&&a()):u&&o&&o(),p}function cH({items:e},t,{flowChars:n,itemIndent:r}){const{indent:i,indentStep:s,flowCollectionPadding:o,options:{commentString:a}}=t;r+=s;const l=Object.assign({},t,{indent:r,inFlow:!0,type:null});let c=!1,d=0;const u=[];for(let g=0;gw=null);c||(c=u.length>d||m.includes(` `)),g0&&(c||(c=u.reduce((x,y)=>x+y.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),w&&(m+=Ri(m,r,a(w))),u.push(m),d=u.length}const{start:h,end:p}=n;if(u.length===0)return h+p;if(!c){const g=u.reduce((b,w)=>b+w.length+2,2);c=t.options.lineWidth>0&&g>t.options.lineWidth}if(c){let g=h;for(const b of u)g+=b?` ${s}${i}${b}`:` `;return`${g} -${i}${p}`}else return`${h}${o}${u.join(" ")}${o}${p}`}function gd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=xr(t(r),e);n.push(s.trimStart())}}function Li(e,t){const n=Ue(t)?t.value:t;for(const r of e)if(ct(r)&&(r.key===t||r.key===n||Ue(r.key)&&r.key.value===n))return r}class En extends cC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ii,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(C0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;ct(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Li(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);Ue(i.value)&&lC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Li(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Li(this.items,t),i=r==null?void 0:r.value;return(!n&&Ue(i)?i.value:i)??void 0}has(t){return!!Li(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)mC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!ct(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),gC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Uo={collection:"map",default:!0,nodeClass:En,tag:"tag:yaml.org,2002:map",resolve(e,t){return Gl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>En.from(e,t,n)};class Xi extends cC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super($o,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=Uc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=Uc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&Ue(i)?i.value:i}has(t){const n=Uc(t);return typeof n=="number"&&n=0?t:null}const Vo={collection:"seq",default:!0,nodeClass:Xi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Wl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Xi.from(e,t,n)},cf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),A0(e,t,n,r)}},uf={identify:e=>e==null,createNode:()=>new ke(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new ke(null),stringify:({source:e},t)=>typeof e=="string"&&uf.test.test(e)?e:t.options.nullStr},M0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new ke(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&M0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Wn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const yC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},bC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},xC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new ke(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Wn},df=e=>typeof e=="bigint"||Number.isInteger(e),I0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function wC(e,t,n){const{value:r}=e;return df(r)&&r>=0?n+r.toString(t):Wn(e)}const vC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>I0(e,2,8,n),stringify:e=>wC(e,8,"0o")},_C={identify:df,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>I0(e,0,10,n),stringify:Wn},EC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>I0(e,2,16,n),stringify:e=>wC(e,16,"0x")},uH=[Uo,Vo,cf,uf,M0,vC,_C,EC,yC,bC,xC];function o1(e){return typeof e=="bigint"||Number.isInteger(e)}const Vc=({value:e})=>JSON.stringify(e),dH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Vc},{identify:e=>e==null,createNode:()=>new ke(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Vc},{identify:o1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>o1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Vc}],fH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},hH=[Uo,Vo].concat(dH,fH),O0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new ke(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} +${i}${p}`}else return`${h}${o}${u.join(" ")}${o}${p}`}function gd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=xr(t(r),e);n.push(s.trimStart())}}function Li(e,t){const n=ze(t)?t.value:t;for(const r of e)if(lt(r)&&(r.key===t||r.key===n||ze(r.key)&&r.key.value===n))return r}class kn extends cC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ii,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(C0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;lt(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Li(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);ze(i.value)&&lC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Li(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Li(this.items,t),i=r==null?void 0:r.value;return(!n&&ze(i)?i.value:i)??void 0}has(t){return!!Li(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)mC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!lt(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),gC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Uo={collection:"map",default:!0,nodeClass:kn,tag:"tag:yaml.org,2002:map",resolve(e,t){return Gl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>kn.from(e,t,n)};class Xi extends cC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super($o,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=Uc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=Uc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&ze(i)?i.value:i}has(t){const n=Uc(t);return typeof n=="number"&&n=0?t:null}const Vo={collection:"seq",default:!0,nodeClass:Xi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Wl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Xi.from(e,t,n)},cf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),A0(e,t,n,r)}},uf={identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ee(null),stringify:({source:e},t)=>typeof e=="string"&&uf.test.test(e)?e:t.options.nullStr},M0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ee(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&M0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Wn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const yC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},bC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},xC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Ee(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Wn},df=e=>typeof e=="bigint"||Number.isInteger(e),I0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function wC(e,t,n){const{value:r}=e;return df(r)&&r>=0?n+r.toString(t):Wn(e)}const vC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>I0(e,2,8,n),stringify:e=>wC(e,8,"0o")},_C={identify:df,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>I0(e,0,10,n),stringify:Wn},kC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>I0(e,2,16,n),stringify:e=>wC(e,16,"0x")},uH=[Uo,Vo,cf,uf,M0,vC,_C,kC,yC,bC,xC];function o1(e){return typeof e=="bigint"||Number.isInteger(e)}const Vc=({value:e})=>JSON.stringify(e),dH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Vc},{identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Vc},{identify:o1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>o1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Vc}],fH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},hH=[Uo,Vo].concat(dH,fH),O0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new Ee(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} ${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} -${s.comment}`:r.comment}r=i}e.items[n]=ct(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function SC(e,t,n){const{replacer:r}=n,i=new Xi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(C0(a,l,n))}return i}const R0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kC,createNode:SC};class to extends Xi{constructor(){super(),this.add=En.prototype.add.bind(this),this.delete=En.prototype.delete.bind(this),this.get=En.prototype.get.bind(this),this.has=En.prototype.has.bind(this),this.set=En.prototype.set.bind(this),this.tag=to.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(ct(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=SC(t,n,r),s=new this;return s.items=i.items,s}}to.tag="tag:yaml.org,2002:omap";const L0={collection:"seq",identify:e=>e instanceof Map,nodeClass:to,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=kC(e,t),r=[];for(const{key:i}of n.items)Ue(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new to,n)},createNode:(e,t,n)=>to.from(e,t,n)};function NC({value:e,source:t},n){return t&&(e?TC:AC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const TC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new ke(!0),stringify:NC},AC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new ke(!1),stringify:NC},pH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},mH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},gH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new ke(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Wn},Yl=e=>typeof e=="bigint"||Number.isInteger(e);function ff(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function P0(e,t,n){const{value:r}=e;if(Yl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Wn(e)}const yH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ff(e,2,2,n),stringify:e=>P0(e,2,"0b")},bH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ff(e,1,8,n),stringify:e=>P0(e,8,"0")},xH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ff(e,0,10,n),stringify:Wn},wH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ff(e,2,16,n),stringify:e=>P0(e,16,"0x")};class no extends En{constructor(t){super(t),this.tag=no.tag}add(t){let n;ct(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Li(this.items,n.key)||this.items.push(n)}get(t,n){const r=Li(this.items,t);return!n&&ct(r)?Ue(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Li(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(C0(o,null,r));return s}}no.tag="tag:yaml.org,2002:set";const D0={collection:"map",identify:e=>e instanceof Set,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>no.from(e,t,n),resolve(e,t){if(Gl(e)){if(e.hasAllNullValues(!0))return Object.assign(new no,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function j0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function CC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Wn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const MC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>j0(e,n),stringify:CC},IC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>j0(e,!1),stringify:CC},hf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(hf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const d=t[8];if(d&&d!=="Z"){let u=j0(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},a1=[Uo,Vo,cf,uf,TC,AC,yH,bH,xH,wH,pH,mH,gH,O0,kr,L0,R0,D0,MC,IC,hf],l1=new Map([["core",uH],["failsafe",[Uo,Vo,cf]],["json",hH],["yaml11",a1],["yaml-1.1",a1]]),c1={binary:O0,bool:M0,float:xC,floatExp:bC,floatNaN:yC,floatTime:IC,int:_C,intHex:EC,intOct:vC,intTime:MC,map:Uo,merge:kr,null:uf,omap:L0,pairs:R0,seq:Vo,set:D0,timestamp:hf},vH={"tag:yaml.org,2002:binary":O0,"tag:yaml.org,2002:merge":kr,"tag:yaml.org,2002:omap":L0,"tag:yaml.org,2002:pairs":R0,"tag:yaml.org,2002:set":D0,"tag:yaml.org,2002:timestamp":hf};function Wh(e,t,n){const r=l1.get(t);if(r&&!e)return n&&!r.includes(kr)?r.concat(kr):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(l1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(kr)),i.reduce((s,o)=>{const a=typeof o=="string"?c1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(c1).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const _H=(e,t)=>e.keyt.key?1:0;class B0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Wh(t,"compat"):t?Wh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?vH:{},this.tags=Wh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:Uo}),Object.defineProperty(this,ar,{value:cf}),Object.defineProperty(this,$o,{value:Vo}),this.sortMapEntries=typeof o=="function"?o:o===!0?_H:null}clone(){const t=Object.create(B0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function EH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=dC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(xr(c,""))}let o=!1,a=null;if(e.contents){if(lt(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(xr(u,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let d=xo(e.contents,i,()=>a=null,c);a&&(d+=Ri(d,"",s(a))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` +${s.comment}`:r.comment}r=i}e.items[n]=lt(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function SC(e,t,n){const{replacer:r}=n,i=new Xi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(C0(a,l,n))}return i}const R0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:EC,createNode:SC};class to extends Xi{constructor(){super(),this.add=kn.prototype.add.bind(this),this.delete=kn.prototype.delete.bind(this),this.get=kn.prototype.get.bind(this),this.has=kn.prototype.has.bind(this),this.set=kn.prototype.set.bind(this),this.tag=to.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(lt(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=SC(t,n,r),s=new this;return s.items=i.items,s}}to.tag="tag:yaml.org,2002:omap";const L0={collection:"seq",identify:e=>e instanceof Map,nodeClass:to,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=EC(e,t),r=[];for(const{key:i}of n.items)ze(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new to,n)},createNode:(e,t,n)=>to.from(e,t,n)};function NC({value:e,source:t},n){return t&&(e?TC:AC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const TC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ee(!0),stringify:NC},AC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ee(!1),stringify:NC},pH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},mH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},gH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Ee(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Wn},Yl=e=>typeof e=="bigint"||Number.isInteger(e);function ff(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function P0(e,t,n){const{value:r}=e;if(Yl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Wn(e)}const yH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ff(e,2,2,n),stringify:e=>P0(e,2,"0b")},bH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ff(e,1,8,n),stringify:e=>P0(e,8,"0")},xH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ff(e,0,10,n),stringify:Wn},wH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ff(e,2,16,n),stringify:e=>P0(e,16,"0x")};class no extends kn{constructor(t){super(t),this.tag=no.tag}add(t){let n;lt(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Li(this.items,n.key)||this.items.push(n)}get(t,n){const r=Li(this.items,t);return!n&<(r)?ze(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Li(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(C0(o,null,r));return s}}no.tag="tag:yaml.org,2002:set";const D0={collection:"map",identify:e=>e instanceof Set,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>no.from(e,t,n),resolve(e,t){if(Gl(e)){if(e.hasAllNullValues(!0))return Object.assign(new no,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function j0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function CC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Wn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const MC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>j0(e,n),stringify:CC},IC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>j0(e,!1),stringify:CC},hf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(hf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const d=t[8];if(d&&d!=="Z"){let u=j0(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},a1=[Uo,Vo,cf,uf,TC,AC,yH,bH,xH,wH,pH,mH,gH,O0,Er,L0,R0,D0,MC,IC,hf],l1=new Map([["core",uH],["failsafe",[Uo,Vo,cf]],["json",hH],["yaml11",a1],["yaml-1.1",a1]]),c1={binary:O0,bool:M0,float:xC,floatExp:bC,floatNaN:yC,floatTime:IC,int:_C,intHex:kC,intOct:vC,intTime:MC,map:Uo,merge:Er,null:uf,omap:L0,pairs:R0,seq:Vo,set:D0,timestamp:hf},vH={"tag:yaml.org,2002:binary":O0,"tag:yaml.org,2002:merge":Er,"tag:yaml.org,2002:omap":L0,"tag:yaml.org,2002:pairs":R0,"tag:yaml.org,2002:set":D0,"tag:yaml.org,2002:timestamp":hf};function Wh(e,t,n){const r=l1.get(t);if(r&&!e)return n&&!r.includes(Er)?r.concat(Er):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(l1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(Er)),i.reduce((s,o)=>{const a=typeof o=="string"?c1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(c1).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const _H=(e,t)=>e.keyt.key?1:0;class B0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Wh(t,"compat"):t?Wh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?vH:{},this.tags=Wh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:Uo}),Object.defineProperty(this,ar,{value:cf}),Object.defineProperty(this,$o,{value:Vo}),this.sortMapEntries=typeof o=="function"?o:o===!0?_H:null}clone(){const t=Object.create(B0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function kH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=dC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(xr(c,""))}let o=!1,a=null;if(e.contents){if(at(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(xr(u,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let d=xo(e.contents,i,()=>a=null,c);a&&(d+=Ri(d,"",s(a))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` `)?(n.push("..."),n.push(xr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(xr(s(c),"")))}return n.join(` `)+` -`}class Xl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:qm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Xl.prototype,{[Cn]:{value:qm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=lt(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){xs(this.contents)&&this.contents.add(t)}addIn(t,n){xs(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=oC(this);t.anchor=!n||r.has(n)?aC(n||"a",r):n}return new T0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const w=x=>typeof x=="number"||x instanceof String||x instanceof Number,m=n.filter(w).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:h,sourceObjects:p}=Q8(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=bl(t,d,g);return a&&at(b)&&(b.flow=!0),h(),b}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return xs(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ya(t)?this.contents==null?!1:(this.contents=null,!0):xs(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return at(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ya(t)?!n&&Ue(this.contents)?this.contents.value:this.contents:at(this.contents)?this.contents.getIn(t,n):void 0}has(t){return at(this.contents)?this.contents.has(t):!1}hasIn(t){return ya(t)?this.contents!==void 0:at(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=md(this.schema,[t],n):xs(this.contents)&&this.contents.set(t,n)}setIn(t,n){ya(t)?this.contents=n:this.contents==null?this.contents=md(this.schema,Array.from(t),n):xs(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new B0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:d}of a.anchors.values())s(d,c);return typeof o=="function"?Hs(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return EH(this,t)}}function xs(e){if(at(e))return!0;throw new Error("Expected a YAML collection as document contents")}class OC extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class ba extends OC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class kH extends OC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const u1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… +`}class Xl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:qm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Xl.prototype,{[Cn]:{value:qm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=at(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){xs(this.contents)&&this.contents.add(t)}addIn(t,n){xs(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=oC(this);t.anchor=!n||r.has(n)?aC(n||"a",r):n}return new T0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const w=x=>typeof x=="number"||x instanceof String||x instanceof Number,m=n.filter(w).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:h,sourceObjects:p}=Q8(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=bl(t,d,g);return a&&ot(b)&&(b.flow=!0),h(),b}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return xs(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ya(t)?this.contents==null?!1:(this.contents=null,!0):xs(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return ot(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ya(t)?!n&&ze(this.contents)?this.contents.value:this.contents:ot(this.contents)?this.contents.getIn(t,n):void 0}has(t){return ot(this.contents)?this.contents.has(t):!1}hasIn(t){return ya(t)?this.contents!==void 0:ot(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=md(this.schema,[t],n):xs(this.contents)&&this.contents.set(t,n)}setIn(t,n){ya(t)?this.contents=n:this.contents==null?this.contents=md(this.schema,Array.from(t),n):xs(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new B0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:d}of a.anchors.values())s(d,c);return typeof o=="function"?Hs(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return kH(this,t)}}function xs(e){if(ot(e))return!0;throw new Error("Expected a YAML collection as document contents")}class OC extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class ba extends OC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class EH extends OC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const u1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… `),o=a+o}if(/[^ ]/.test(o)){let a=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: ${o} ${c} -`}};function wo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",h="",p=!1,g=!1,b=null,w=null,m=null,x=null,y=null,v=null,E=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),b&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),b=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(b=N),d=!0;break;case"comment":{d||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";u?u+=h+I:u=I,h="",c=!1;break}case"newline":c?u?u+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(w||m)&&(x=N),d=!0;break;case"anchor":w&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),w=N,E??(E=N.offset),c=!1,d=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,E??(E=N.offset),c=!1,d=!1,g=!0;break}case n:(w||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(t){y&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),y=N,c=!1,d=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,d=!1}const _=e[e.length-1],C=_?_.offset+_.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b&&(c&&b.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:y,found:v,spaceBefore:l,comment:u,hasNewline:p,anchor:w,tag:m,newlineAfterProp:x,end:C,start:E??C}}function xl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` -`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(xl(t.key)||xl(t.value))return!0}return!1;default:return!0}}function Xm(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&xl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function RC(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||Ue(s)&&Ue(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const d1="All mapping items must start at the same column";function SH({composeNode:e,composeEmptyNode:t},n,r,i,s){var d;const o=(s==null?void 0:s.nodeClass)??En,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const u of r.items){const{start:h,key:p,sep:g,value:b}=u,w=wo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!w.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",d1)),!w.anchor&&!w.tag&&!g){c=w.end,w.comment&&(a.comment?a.comment+=` -`+w.comment:a.comment=w.comment);continue}(w.newlineAfterProp||xl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=w.found)==null?void 0:d.indent)!==r.indent&&i(l,"BAD_INDENT",d1);n.atKey=!0;const x=w.end,y=p?e(n,p,w,i):t(n,x,h,null,w,i);n.schema.compat&&Xm(r.indent,p,i),n.atKey=!1,RC(n,a.items,y)&&i(x,"DUPLICATE_KEY","Map keys must be unique");const v=wo(g??[],{indicator:"map-value-ind",next:b,offset:y.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((b==null?void 0:b.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&w.starte&&(e.type==="block-map"||e.type==="block-seq");function TH({composeNode:e,composeEmptyNode:t},n,r,i,s){var w;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?En:Xi),c=new l(n.schema);c.flow=!0;const d=n.atRoot;d&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let m=0;m0){const m=Ql(g,b,n.options.strict,i);m.comment&&(c.comment?c.comment+=` -`+m.comment:c.comment=m.comment),c.range=[r.offset,b,m.offset]}else c.range=[r.offset,b,b];return c}function Qh(e,t,n,r,i,s){const o=n.type==="block-map"?SH(e,t,n,r,s):n.type==="block-seq"?NH(e,t,n,r,s):TH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function AH(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,b=p&&s?p.offset>s.offset?p:s:p??s;b&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qh(e,t,n,i,o)}const c=Qh(e,t,n,i,o,l),d=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,u=lt(d)?d:new ke(d);return u.range=c.range,u.tag=o,l!=null&&l.format&&(u.format=l.format),u}function CH(e,t,n){const r=t.offset,i=MH(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?ke.BLOCK_FOLDED:ke.BLOCK_LITERAL,o=t.source?IH(t.source):[];let a=o.length;for(let b=o.length-1;b>=0;--b){const w=o[b][1];if(w===""||w==="\r")a=b;else break}if(a===0){const b=i.chomp==="+"&&o.length>0?` +`}};function wo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",h="",p=!1,g=!1,b=null,w=null,m=null,x=null,y=null,v=null,k=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),b&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),b=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(b=N),d=!0;break;case"comment":{d||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";u?u+=h+I:u=I,h="",c=!1;break}case"newline":c?u?u+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(w||m)&&(x=N),d=!0;break;case"anchor":w&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),w=N,k??(k=N.offset),c=!1,d=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,k??(k=N.offset),c=!1,d=!1,g=!0;break}case n:(w||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(t){y&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),y=N,c=!1,d=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,d=!1}const _=e[e.length-1],C=_?_.offset+_.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b&&(c&&b.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:y,found:v,spaceBefore:l,comment:u,hasNewline:p,anchor:w,tag:m,newlineAfterProp:x,end:C,start:k??C}}function xl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` +`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(xl(t.key)||xl(t.value))return!0}return!1;default:return!0}}function Xm(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&xl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function RC(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||ze(s)&&ze(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const d1="All mapping items must start at the same column";function SH({composeNode:e,composeEmptyNode:t},n,r,i,s){var d;const o=(s==null?void 0:s.nodeClass)??kn,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const u of r.items){const{start:h,key:p,sep:g,value:b}=u,w=wo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!w.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",d1)),!w.anchor&&!w.tag&&!g){c=w.end,w.comment&&(a.comment?a.comment+=` +`+w.comment:a.comment=w.comment);continue}(w.newlineAfterProp||xl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=w.found)==null?void 0:d.indent)!==r.indent&&i(l,"BAD_INDENT",d1);n.atKey=!0;const x=w.end,y=p?e(n,p,w,i):t(n,x,h,null,w,i);n.schema.compat&&Xm(r.indent,p,i),n.atKey=!1,RC(n,a.items,y)&&i(x,"DUPLICATE_KEY","Map keys must be unique");const v=wo(g??[],{indicator:"map-value-ind",next:b,offset:y.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((b==null?void 0:b.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&w.starte&&(e.type==="block-map"||e.type==="block-seq");function TH({composeNode:e,composeEmptyNode:t},n,r,i,s){var w;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?kn:Xi),c=new l(n.schema);c.flow=!0;const d=n.atRoot;d&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let m=0;m0){const m=Ql(g,b,n.options.strict,i);m.comment&&(c.comment?c.comment+=` +`+m.comment:c.comment=m.comment),c.range=[r.offset,b,m.offset]}else c.range=[r.offset,b,b];return c}function Qh(e,t,n,r,i,s){const o=n.type==="block-map"?SH(e,t,n,r,s):n.type==="block-seq"?NH(e,t,n,r,s):TH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function AH(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,b=p&&s?p.offset>s.offset?p:s:p??s;b&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qh(e,t,n,i,o)}const c=Qh(e,t,n,i,o,l),d=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,u=at(d)?d:new Ee(d);return u.range=c.range,u.tag=o,l!=null&&l.format&&(u.format=l.format),u}function CH(e,t,n){const r=t.offset,i=MH(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?Ee.BLOCK_FOLDED:Ee.BLOCK_LITERAL,o=t.source?IH(t.source):[];let a=o.length;for(let b=o.length-1;b>=0;--b){const w=o[b][1];if(w===""||w==="\r")a=b;else break}if(a===0){const b=i.chomp==="+"&&o.length>0?` `.repeat(Math.max(1,o.length-1)):"";let w=r+i.length;return t.source&&(w+=t.source.length),{value:b,type:s,comment:i.comment,range:[r,w,w]}}let l=t.indent+i.indent,c=t.offset+i.length,d=0;for(let b=0;bl&&(l=w.length);else{w.length=a;--b)o[b][0].length>l&&(a=b+1);let u="",h="",p=!1;for(let b=0;bl||m[0]===" "?(h===" "?h=` `:!p&&h===` `&&(h=` @@ -527,7 +527,7 @@ ${c} `+o[b][0].slice(l);u[u.length-1]!==` `&&(u+=` `);break;default:u+=` -`}const g=r+i.length+t.source.length;return{value:u,type:s,comment:i.comment,range:[r,g,g]}}function MH({offset:e,props:t},n,r){if(t[0].type!=="block-scalar-header")return r(t[0],"IMPOSSIBLE","Block scalar header not found"),null;const{source:i}=t[0],s=i[0];let o=0,a="",l=-1;for(let h=1;hn(r+h,p,g);switch(i){case"scalar":a=ke.PLAIN,l=RH(s,c);break;case"single-quoted-scalar":a=ke.QUOTE_SINGLE,l=LH(s,c);break;case"double-quoted-scalar":a=ke.QUOTE_DOUBLE,l=PH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const d=r+s.length,u=Ql(o,d,t,n);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function RH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),LC(e)}function LH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),LC(e.slice(1,-1)).replace(/''/g,"'")}function LC(e){let t,n;try{t=new RegExp(`(.*?)(?n(r+h,p,g);switch(i){case"scalar":a=Ee.PLAIN,l=RH(s,c);break;case"single-quoted-scalar":a=Ee.QUOTE_SINGLE,l=LH(s,c);break;case"double-quoted-scalar":a=Ee.QUOTE_DOUBLE,l=PH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const d=r+s.length,u=Ql(o,d,t,n);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function RH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),LC(e)}function LH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),LC(e.slice(1,-1)).replace(/''/g,"'")}function LC(e){let t,n;try{t=new RegExp(`(.*?)(?r(n,"TAG_RESOLVE_FAILED",u)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=$H(e.schema,i,l,n,r):t.type==="scalar"?c=FH(e,i,t,r):c=e.schema[ar];let d;try{const u=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);d=Ue(u)?u:new ke(u)}catch(u){const h=u instanceof Error?u.message:String(u);r(n??t,"TAG_RESOLVE_FAILED",h),d=new ke(i)}return d.range=a,d.source=i,s&&(d.type=s),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function $H(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function FH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}function zH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const UH={composeNode:DC,composeEmptyNode:$0};function DC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,d=!0;switch(t.type){case"alias":c=VH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=PC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=AH(UH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(u){const h=u instanceof Error?u.message:String(u);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const u=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=$0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!Ue(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&d&&(c.srcToken=t),c}function $0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const d={type:"scalar",offset:zH(t,n,r),indent:-1,source:""},u=PC(e,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),s&&(u.comment=s,u.range[2]=l),u}function VH({options:e},{offset:t,source:n,end:r},i){const s=new T0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=Ql(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function HH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Xl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=wo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?DC(c,i,d,o):$0(c,d.end,r,null,d,o);const u=l.contents.range[2],h=Ql(s,u,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,u,h.offset],l}function sa(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function f1(e){var i;let t="",n=!1,r=!1;for(let s=0;sr(n,"TAG_RESOLVE_FAILED",u)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=$H(e.schema,i,l,n,r):t.type==="scalar"?c=FH(e,i,t,r):c=e.schema[ar];let d;try{const u=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);d=ze(u)?u:new Ee(u)}catch(u){const h=u instanceof Error?u.message:String(u);r(n??t,"TAG_RESOLVE_FAILED",h),d=new Ee(i)}return d.range=a,d.source=i,s&&(d.type=s),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function $H(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function FH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}function zH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const UH={composeNode:DC,composeEmptyNode:$0};function DC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,d=!0;switch(t.type){case"alias":c=VH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=PC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=AH(UH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(u){const h=u instanceof Error?u.message:String(u);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const u=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=$0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!ze(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&d&&(c.srcToken=t),c}function $0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const d={type:"scalar",offset:zH(t,n,r),indent:-1,source:""},u=PC(e,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),s&&(u.comment=s,u.range[2]=l),u}function VH({options:e},{offset:t,source:n,end:r},i){const s=new T0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=Ql(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function HH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Xl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=wo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?DC(c,i,d,o):$0(c,d.end,r,null,d,o);const u=l.contents.range[2],h=Ql(s,u,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,u,h.offset],l}function sa(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function f1(e){var i;let t="",n=!1,r=!1;for(let s=0;s{const o=sa(n);s?this.warnings.push(new kH(o,r,i)):this.errors.push(new ba(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=f1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} -${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(at(s)&&!s.flow&&s.items.length>0){let o=s.items[0];ct(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} +`)+(o.substring(1)||" "),n=!0,r=!1;break;case"%":((i=e[s+1])==null?void 0:i[0])!=="#"&&(s+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}class KH{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,r,i,s)=>{const o=sa(n);s?this.warnings.push(new EH(o,r,i)):this.errors.push(new ba(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=f1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} +${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(ot(s)&&!s.flow&&s.items.length>0){let o=s.items[0];lt(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} ${a}`:r}else{const o=s.commentBefore;s.commentBefore=o?`${r} ${o}`:r}}if(n){for(let s=0;s{const s=sa(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=HH(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new ba(sa(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=Ql(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const r=Object.assign({_directives:this.directives},this.options),i=new Xl(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const jC="\uFEFF",BC="",$C="",Qm="";function qH(e){switch(e){case jC:return"byte-order-mark";case BC:return"doc-mode";case $C:return"flow-error-end";case Qm:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` @@ -574,25 +574,25 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus `)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` `,n)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else if(n.sep)n.sep.push(this.sourceToken);else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){yd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return}if(this.indent>=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&n.sep&&!n.value){const a=[];for(let l=0;lt.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=n.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zr(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(FC(n.key)&&!zr(n.sep,"newline")){const a=ws(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:c}]})}else o.length>0?n.sep=n.sep.concat(o,this.sourceToken):n.sep.push(this.sourceToken);else if(zr(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const a=ws(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):zr(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||n.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(a):(Object.assign(n,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!n.explicitKey&&n.sep&&!zr(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){yd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||zr(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=Kc(r),s=ws(i);m1(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` `)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` -`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function ZH(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new XH||null,prettyErrors:t}}function JH(e,t={}){const{lineCounter:n,prettyErrors:r}=ZH(t),i=new QH(n==null?void 0:n.addNewLine),s=new KH(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ba(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(u1(e,n)),o.warnings.forEach(u1(e,n))),o}function eK(e,t,n){let r;const i=JH(e,n);if(!i)return null;if(i.warnings.forEach(s=>fC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function tK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return ql(e)&&!r?e.toString(n):new Xl(e,r,n).toString(n)}function ds(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[],deployment:{feishuEnabled:!1}}}const zC="https://ark.cn-beijing.volces.com/api/v3/",nK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:zC}],$a=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:zC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],vo=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],UC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:vo},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:vo},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],VC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],HC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:vo},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],KC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:vo},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...vo,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],qC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...vo,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],rK=e=>UC.find(t=>t.id===e),iK=e=>VC.find(t=>t.id===e),sK=e=>HC.find(t=>t.id===e),oK=e=>KC.find(t=>t.id===e),aK=e=>qC.find(t=>t.id===e);function Fi(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function GC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function ft(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Zm(e,t,n){const r=Fi(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function oa(e,t){for(const n of t)e.env.push(n)}function g1(e,t,n){const r=Zm(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: +`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function ZH(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new XH||null,prettyErrors:t}}function JH(e,t={}){const{lineCounter:n,prettyErrors:r}=ZH(t),i=new QH(n==null?void 0:n.addNewLine),s=new KH(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ba(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(u1(e,n)),o.warnings.forEach(u1(e,n))),o}function eK(e,t,n){let r;const i=JH(e,n);if(!i)return null;if(i.warnings.forEach(s=>fC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function tK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return ql(e)&&!r?e.toString(n):new Xl(e,r,n).toString(n)}function ds(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[],deployment:{feishuEnabled:!1}}}const zC="https://ark.cn-beijing.volces.com/api/v3/",nK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:zC}],$a=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:zC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],vo=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],UC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:vo},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:vo},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],VC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],HC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:vo},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],KC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:vo},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...vo,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],qC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...vo,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],rK=e=>UC.find(t=>t.id===e),iK=e=>VC.find(t=>t.id===e),sK=e=>HC.find(t=>t.id===e),oK=e=>KC.find(t=>t.id===e),aK=e=>qC.find(t=>t.id===e);function Fi(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function GC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function dt(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Zm(e,t,n){const r=Fi(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function oa(e,t){for(const n of t)e.env.push(n)}function g1(e,t,n){const r=Zm(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: ${GC(i)} # TODO: 实现「${t}」的逻辑。 - return {"result": f"${r} 尚未实现: {query}"}`),r}function lK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;F0(e,a,c),s.push(c)});const o=[`name=${ft(Fi(t.name,n))}`,`description=${ft(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( + return {"result": f"${r} 尚未实现: {query}"}`),r}function lK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;F0(e,a,c),s.push(c)});const o=[`name=${dt(Fi(t.name,n))}`,`description=${dt(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( ${o.join(`, `)}, -)`),n}function cK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${ft(Fi(t.name,n))}`,`url=${ft((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( +)`),n}function cK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${dt(Fi(t.name,n))}`,`url=${dt((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( ${r.join(`, `)}, -)`),n}function F0(e,t,n){var a,l,c,d,u,h,p,g,b,w;const r=t.agentType??"llm";if(r==="a2a")return cK(e,t,n);if(r!=="llm")return lK(e,t,n);const i=[];for(const m of t.builtinTools??[]){const x=rK(m);x&&(e.imports.includes(x.importLine)||e.imports.push(x.importLine),i.push(...x.toolNames),oa(e,x.env),x.pipExtra&&e.extras.add(x.pipExtra))}for(const m of t.customTools??[])(a=m.name)!=null&&a.trim()&&i.push(g1(e,m.name,m.description));for(const m of t.mcpTools??[])if(m.transport==="http"&&((l=m.url)!=null&&l.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=(c=m.authToken)!=null&&c.trim()?`, headers={"Authorization": ${ft(`Bearer ${m.authToken.trim()}`)}}`:"";e.preLines.push(`${x} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${ft(m.url.trim())}${y}))`),i.push(x)}else if(m.transport==="stdio"&&((d=m.command)!=null&&d.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=`[${(m.args??[]).filter(v=>v==null?void 0:v.trim()).map(v=>ft(v)).join(", ")}]`;e.preLines.push(`${x} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${ft(m.command.trim())}, args=${y}), timeout=30))`),i.push(x)}for(const m of t.tools??[])m!=null&&m.trim()&&i.push(g1(e,m,""));const s=[`name=${ft(Fi(t.name,n))}`,`description=${ft(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${GC(t.instruction||"You are a helpful assistant.")}`),i.length&&s.push(`tools=[${i.join(", ")}]`),(u=t.modelName)!=null&&u.trim()&&s.push(`model_name=${ft(t.modelName.trim())}`),(h=t.modelProvider)!=null&&h.trim()&&s.push(`model_provider=${ft(t.modelProvider.trim())}`),(p=t.modelApiBase)!=null&&p.trim()&&s.push(`model_api_base=${ft(t.modelApiBase.trim())}`),(g=t.memory)!=null&&g.shortTerm){const m=iK(t.shortTermBackend||"local");if(m){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const x=[`backend=${ft(m.id)}`];m.extraArgs&&x.push(m.extraArgs);const y=`stm_${n}`;e.preLines.push(`${y} = ShortTermMemory(${x.join(", ")})`),s.push(`short_term_memory=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if((b=t.memory)!=null&&b.longTerm){const m=sK(t.longTermBackend||"local");if(m){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const x=Fi(t.name,n),y=`ltm_${n}`;e.preLines.push(`${y} = LongTermMemory(backend=${ft(m.id)}, index=${ft(x)}, app_name=${ft(x)})`),s.push(`long_term_memory=${y}`),t.autoSaveSession&&s.push("auto_save_session=True"),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.knowledgebase){const m=oK(t.knowledgebaseBackend||"local");if(m){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const x=Fi(t.name+"_kb",n+"_kb"),y=`kb_${n}`;e.preLines.push(`${y} = KnowledgeBase(backend=${ft(m.id)}, index=${ft(x)}, app_name=${ft(x)})`),s.push(`knowledgebase=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.tracing&&(((w=t.tracingExporters)==null?void 0:w.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const m=`tracer_${n}`;e.preLines.push(`${m} = OpentelemetryTracer()`),s.push(`tracers=[${m}]`);for(const x of t.tracingExporters??[]){const y=aK(x);y&&(e.env.push({key:y.enableFlag,required:!0,placeholder:"true",comment:`${y.label} 开关`}),oa(e,y.env))}}t.enableA2ui&&(s.push("enable_a2ui=True"),e.extras.add("a2ui"));const o=[];return(t.subAgents??[]).forEach((m,x)=>{const y=`${n}_sub_${x+1}`;F0(e,m,y),o.push(y)}),o.length&&s.push(`sub_agents=[${o.join(", ")}]`),e.preLines.push(`${n} = Agent( +)`),n}function F0(e,t,n){var a,l,c,d,u,h,p,g,b,w;const r=t.agentType??"llm";if(r==="a2a")return cK(e,t,n);if(r!=="llm")return lK(e,t,n);const i=[];for(const m of t.builtinTools??[]){const x=rK(m);x&&(e.imports.includes(x.importLine)||e.imports.push(x.importLine),i.push(...x.toolNames),oa(e,x.env),x.pipExtra&&e.extras.add(x.pipExtra))}for(const m of t.customTools??[])(a=m.name)!=null&&a.trim()&&i.push(g1(e,m.name,m.description));for(const m of t.mcpTools??[])if(m.transport==="http"&&((l=m.url)!=null&&l.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=(c=m.authToken)!=null&&c.trim()?`, headers={"Authorization": ${dt(`Bearer ${m.authToken.trim()}`)}}`:"";e.preLines.push(`${x} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${dt(m.url.trim())}${y}))`),i.push(x)}else if(m.transport==="stdio"&&((d=m.command)!=null&&d.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=`[${(m.args??[]).filter(v=>v==null?void 0:v.trim()).map(v=>dt(v)).join(", ")}]`;e.preLines.push(`${x} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${dt(m.command.trim())}, args=${y}), timeout=30))`),i.push(x)}for(const m of t.tools??[])m!=null&&m.trim()&&i.push(g1(e,m,""));const s=[`name=${dt(Fi(t.name,n))}`,`description=${dt(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${GC(t.instruction||"You are a helpful assistant.")}`),i.length&&s.push(`tools=[${i.join(", ")}]`),(u=t.modelName)!=null&&u.trim()&&s.push(`model_name=${dt(t.modelName.trim())}`),(h=t.modelProvider)!=null&&h.trim()&&s.push(`model_provider=${dt(t.modelProvider.trim())}`),(p=t.modelApiBase)!=null&&p.trim()&&s.push(`model_api_base=${dt(t.modelApiBase.trim())}`),(g=t.memory)!=null&&g.shortTerm){const m=iK(t.shortTermBackend||"local");if(m){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const x=[`backend=${dt(m.id)}`];m.extraArgs&&x.push(m.extraArgs);const y=`stm_${n}`;e.preLines.push(`${y} = ShortTermMemory(${x.join(", ")})`),s.push(`short_term_memory=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if((b=t.memory)!=null&&b.longTerm){const m=sK(t.longTermBackend||"local");if(m){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const x=Fi(t.name,n),y=`ltm_${n}`;e.preLines.push(`${y} = LongTermMemory(backend=${dt(m.id)}, index=${dt(x)}, app_name=${dt(x)})`),s.push(`long_term_memory=${y}`),t.autoSaveSession&&s.push("auto_save_session=True"),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.knowledgebase){const m=oK(t.knowledgebaseBackend||"local");if(m){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const x=Fi(t.name+"_kb",n+"_kb"),y=`kb_${n}`;e.preLines.push(`${y} = KnowledgeBase(backend=${dt(m.id)}, index=${dt(x)}, app_name=${dt(x)})`),s.push(`knowledgebase=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.tracing&&(((w=t.tracingExporters)==null?void 0:w.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const m=`tracer_${n}`;e.preLines.push(`${m} = OpentelemetryTracer()`),s.push(`tracers=[${m}]`);for(const x of t.tracingExporters??[]){const y=aK(x);y&&(e.env.push({key:y.enableFlag,required:!0,placeholder:"true",comment:`${y.label} 开关`}),oa(e,y.env))}}t.enableA2ui&&(s.push("enable_a2ui=True"),e.extras.add("a2ui"));const o=[];return(t.subAgents??[]).forEach((m,x)=>{const y=`${n}_sub_${x+1}`;F0(e,m,y),o.push(y)}),o.length&&s.push(`sub_agents=[${o.join(", ")}]`),e.preLines.push(`${n} = Agent( ${s.join(`, `)}, )`),n}function uK(e){const t=new Map;for(const n of e){const r=t.get(n.key);r?n.required&&!r.required&&(r.required=!0):t.set(n.key,{...n})}return[...t.values()]}function dK(e){const t=["# 复制为 .env 并填入真实值(或改用 config.yaml)。","# 标记 [必填] 的变量缺失时 Agent 无法启动。",""];for(const n of e)(n.comment||n.required)&&t.push(`# ${n.required?"[必填] ":""}${n.comment??""}`.trimEnd()),t.push(`${n.key}=${n.placeholder??""}`);return t.join(` `)+` -`}function fK(e,t){const n=[...e];t&&n.push("extensions");const r=[...new Set(n)].sort(),i=t?">=0.5.33":"",s=r.length?`veadk-python[${r.join(",")}]${i}`:`veadk-python${i}`;return`${(t?[s,"lark-channel-sdk","agentkit-sdk-python","google-adk>=1.32.0,<2.0.0","starlette<1.0.0"]:[s,"agentkit-sdk-python","google-adk>=1.32.0,<2.0.0","starlette<1.0.0"]).join(` +`}function fK(e,t){const n=[...e];t&&n.push("extensions");const r=[...new Set(n)].sort(),s=[r.length?`veadk-python[${r.join(",")}]${t?">=0.5.34":""}`:"veadk-python","agentkit-sdk-python","google-adk"];return t&&s.push("starlette<1.0.0"),`${s.join(` `)} -`}function hK(e,t){return[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。","","## 飞书机器人","","在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。",""].join(` +`}function hK(e,t){var r;const n=[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。",""];return(r=t.deployment)!=null&&r.feishuEnabled&&n.push("## 飞书机器人","","在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。",""),n.join(` `)}function WC(e){var d;const t=Fi(e.name,"my_agent"),n={imports:[],preLines:[],env:[...nK],extras:new Set,usedNames:new Set},r=!!((d=e.deployment)!=null&&d.feishuEnabled);r&&n.env.push({key:"FEISHU_APP_ID",required:!1,placeholder:"cli_xxx",comment:"飞书机器人 App ID(前端部署时填写)"},{key:"FEISHU_APP_SECRET",required:!1,placeholder:"your-feishu-app-secret",comment:"飞书机器人 App Secret(前端部署时填写)"}),F0(n,e,"agent");const i=["from veadk import Agent",...pK(n.imports)].join(` -`),s=["import asyncio","import inspect","import os","import threading","import traceback","from contextlib import asynccontextmanager","from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` +`),s=["import os",...r?["import asyncio","import inspect","import threading","import traceback","from contextlib import asynccontextmanager","from veadk.extensions import FeishuChannelExtension"]:[],"from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` `),o=n.preLines.join(` `)+` @@ -606,164 +606,56 @@ root_agent = agent # Deployment configuration HOST = os.getenv("HOST", "0.0.0.0") PORT = int(os.getenv("PORT", "8000")) -FEISHU_CHANNEL_ENABLED = ${r?"True":"False"} +${r?`FEISHU_CHANNEL_ENABLED = True -def _env_bool(name: str, default: bool = False) -> bool: - raw = os.getenv(name) - if raw is None: - return default - return raw.strip().lower() in {"1", "true", "yes", "y", "on"} - -def _coalesce(*values): - for value in values: - if value: - return value - return "" - -def _read_attr(obj, *path): - cur = obj - for part in path: - if cur is None: - return None - cur = getattr(cur, part, None) - return cur - -async def _maybe_await(value): - if inspect.isawaitable(value): - return await value - return value +def _get_feishu_channel_method(channel, names): + raw_channel = getattr(channel, "channel", None) + for target in (raw_channel, channel): + if target is None: + continue + for name in names: + method = getattr(target, name, None) + if method is not None: + return method + return None -def _call_in_event_loop(loop, method): +def _call_feishu_channel_method(loop, method): result = method() if inspect.isawaitable(result): return loop.run_until_complete(result) return result -class _FallbackFeishuChannelExtension: - """Minimal Feishu bridge used when the installed veadk package lacks extensions.""" - - def __init__(self, runner, *, app_id, app_secret, channel_kwargs=None, **_kwargs): - try: - from lark_channel import FeishuChannel - except ImportError: - from lark_oapi.channel import FeishuChannel - - self.runner = runner - self.channel = FeishuChannel( - app_id=app_id, - app_secret=app_secret, - **dict(channel_kwargs or {}), - ) - self.channel.on("message", self._on_message) - - async def connect(self): - connect = getattr(self.channel, "start", None) or self.channel.connect - return await _maybe_await(connect()) - - async def disconnect(self): - disconnect = getattr(self.channel, "stop", None) or getattr(self.channel, "disconnect", None) - if disconnect is None: - return None - return await _maybe_await(disconnect()) - - async def _on_message(self, message) -> None: - text = str(getattr(message, "content_text", "") or "").strip() - if not text: - return - sender = getattr(message, "sender", None) - user_id = _coalesce( - getattr(sender, "union_id", None), - getattr(sender, "open_id", None), - getattr(sender, "user_id", None), - getattr(message, "sender_id", None), - "feishu_user", - ) - session_id = _coalesce( - _read_attr(message, "conversation", "thread_id"), - getattr(message, "thread_id", None), - getattr(message, "reply_to_message_id", None), - getattr(message, "chat_id", None), - _read_attr(message, "conversation", "chat_id"), - getattr(message, "message_id", None), - "feishu_session", - ) - chat_id = _coalesce( - getattr(message, "chat_id", None), - _read_attr(message, "conversation", "chat_id"), - ) - if not chat_id: - print("feishu channel fallback ignored message without chat_id", flush=True) - return - response_text = await self.runner.run( - messages=text, - user_id=user_id, - session_id=session_id, - ) - if response_text: - options = {} - message_id = _coalesce(getattr(message, "message_id", None), getattr(message, "id", None)) - if message_id: - options["reply_to"] = message_id - await _maybe_await(self.channel.send(chat_id, {"text": str(response_text)}, options)) - -def _get_feishu_channel_method(channel, names): - raw_channel = getattr(channel, "channel", None) - for name in names: - method = getattr(channel, name, None) - if method is not None: - return method - method = getattr(raw_channel, name, None) - if method is not None: - return method - return None - def _connect_feishu_channel(loop, channel) -> None: connect = _get_feishu_channel_method(channel, ("start", "connect")) if connect is None: raise AttributeError("Feishu channel has no start/connect method") - return _call_in_event_loop(loop, connect) + return _call_feishu_channel_method(loop, connect) def _disconnect_feishu_channel(loop, channel) -> None: disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) if disconnect is None: return None - return _call_in_event_loop(loop, disconnect) + return _call_feishu_channel_method(loop, disconnect) def _stop_feishu_channel_from_lifespan(channel) -> None: - stop = _get_feishu_channel_method(channel, ("stop", "disconnect")) - if stop is None: - return None - return stop() - -def _build_feishu_channel(runner, app_id, app_secret): - FeishuChannelExtension = _FallbackFeishuChannelExtension + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) try: - from veadk.extensions import FeishuChannelExtension as _VeadkFeishuChannelExtension - except ImportError as exc: - print( - "veadk.extensions is not installed; using generated Feishu Channel fallback: " - f"{type(exc).__name__}: {exc}", - flush=True, - ) - else: - if getattr(_VeadkFeishuChannelExtension, "CHANNEL_SDK_COMPAT", False): - FeishuChannelExtension = _VeadkFeishuChannelExtension - else: - print( - "installed veadk FeishuChannelExtension lacks channel-sdk compatibility; " - "using generated Feishu Channel fallback", - flush=True, - ) + return _disconnect_feishu_channel(loop, channel) + finally: + asyncio.set_event_loop(None) + loop.close() +def _build_feishu_channel(runner, app_id, app_secret): return FeishuChannelExtension( runner=runner, app_id=app_id, app_secret=app_secret, channel_kwargs={ - "transport": os.getenv("TOOL_FEISHU_CHANNEL_TRANSPORT", "ws"), + "transport": "ws", }, - streaming=_env_bool("TOOL_FEISHU_CHANNEL_STREAMING"), - reactions=_env_bool("TOOL_FEISHU_CHANNEL_REACTIONS"), + streaming=False, + reactions=False, ) def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: @@ -810,11 +702,11 @@ def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: loop.close() async def _start_feishu_channel(app, runner) -> None: - if not _env_bool("TOOL_FEISHU_CHANNEL_ENABLED", FEISHU_CHANNEL_ENABLED): + if not FEISHU_CHANNEL_ENABLED: return - app_id = os.getenv("TOOL_FEISHU_CHANNEL_APP_ID") or os.getenv("FEISHU_APP_ID") - app_secret = os.getenv("TOOL_FEISHU_CHANNEL_APP_SECRET") or os.getenv("FEISHU_APP_SECRET") + app_id = os.getenv("FEISHU_APP_ID") + app_secret = os.getenv("FEISHU_APP_SECRET") if not app_id or not app_secret: print( "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", @@ -855,31 +747,30 @@ async def _stop_feishu_channel(app) -> None: "feishu channel background thread did not stop within 2s", flush=True, ) - +`:""} def build_app(): """Build AgentKit AgentServerApp for deployment.""" import veadk - from veadk import Runner - - WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" +${r?` from veadk import Runner +`:""} WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" # AgentKit's AgentServerApp exposes the ADK-compatible API surface # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( backend="local" ) - runner = Runner( +${r?` runner = Runner( agent=root_agent, app_name=getattr(root_agent, "name", "") or "agent", short_term_memory=short_term_memory, ) - agent_server_app = AgentkitAgentServerApp( +`:""} agent_server_app = AgentkitAgentServerApp( agent=root_agent, short_term_memory=short_term_memory, ) app = agent_server_app.app - original_lifespan = app.router.lifespan_context +${r?` original_lifespan = app.router.lifespan_context @asynccontextmanager async def lifespan(fastapi_app): @@ -891,8 +782,7 @@ def build_app(): await _stop_feishu_channel(fastapi_app) app.router.lifespan_context = lifespan - - # Add health check endpoint +`:""} # Add health check endpoint @app.get("/ping") def ping() -> dict[str, str]: return {"status": "ok"} @@ -1019,14 +909,14 @@ if __name__ == "__main__": `},{path:`agents/${t}/agent.py`,content:a},{path:`agents/${t}/__init__.py`,content:`from .agent import root_agent __all__ = ["root_agent"] -`},{path:".env.example",content:dK(uK(n.env))},{path:"requirements.txt",content:fK(n.extras,r)},{path:"README.md",content:hK(t,e)}];return{name:t,files:c}}function pK(e){return[...new Set(e)]}const mK=new Set(["local","sqlite","mysql","postgresql"]),gK=new Set(["local","opensearch","redis","viking","mem0"]),yK=new Set(["local","opensearch","viking","context_search"]),bK=new Set(["apmplus","cozeloop","tls"]),YC=new Set(xK());function xK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function st(e,t=""){return typeof e=="string"?e:t}function xi(e){return e===!0}function _u(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function XC(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:st(t.name),description:st(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function Jh(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const wK=new Set(["llm","sequential","parallel","loop","a2a"]);function QC(e){return typeof e=="string"&&wK.has(e)?e:"llm"}function ZC(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function JC(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...ds(),name:st(n.name),description:st(n.description),instruction:st(n.instruction),agentType:QC(n.agentType),maxIterations:ZC(n.maxIterations),a2aUrl:st(n.a2aUrl),builtinTools:_u(n.builtinTools).filter(r=>YC.has(r)),customTools:XC(n.customTools),subAgents:JC(n.subAgents)}}):[]}function e2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=t.deployment&&typeof t.deployment=="object"?t.deployment:{},i=JC(t.subAgents),s=Array.isArray(t.mcpTools)?t.mcpTools.map(o=>{const a=o&&typeof o=="object"?o:{},l=a.transport==="stdio"?"stdio":"http";return{name:st(a.name),transport:l,url:st(a.url),authToken:st(a.authToken),command:st(a.command),args:_u(a.args)}}).filter(o=>o.transport==="http"?!!o.url:!!o.command):[];return{...ds(),name:st(t.name)||"my_agent",description:st(t.description),instruction:st(t.instruction)||"You are a helpful assistant.",agentType:QC(t.agentType),maxIterations:ZC(t.maxIterations),a2aUrl:st(t.a2aUrl),modelName:st(t.modelName),modelProvider:st(t.modelProvider),modelApiBase:st(t.modelApiBase),builtinTools:_u(t.builtinTools).filter(o=>YC.has(o)),customTools:XC(t.customTools),mcpTools:s,memory:{shortTerm:xi(n.shortTerm),longTerm:xi(n.longTerm)},shortTermBackend:Jh(t.shortTermBackend,mK,"local"),longTermBackend:Jh(t.longTermBackend,gK,"local"),autoSaveSession:xi(t.autoSaveSession),knowledgebase:xi(t.knowledgebase),knowledgebaseBackend:Jh(t.knowledgebaseBackend,yK,"local"),tracing:xi(t.tracing),tracingExporters:_u(t.tracingExporters).filter(o=>bK.has(o)),enableA2ui:xi(t.enableA2ui),deployment:{feishuEnabled:xi(r.feishuEnabled)},subAgents:i,selectedSkills:Array.isArray(t.selectedSkills)?t.selectedSkills.map(o=>{const a=o&&typeof o=="object"?o:{};return{slug:st(a.slug),name:st(a.name)||st(a.slug),namespace:st(a.namespace)||"public"}}).filter(o=>!!o.slug):[]}}function vK(e){var n,r,i,s,o,a,l,c,d,u,h,p;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(g=>({name:g.name,description:g.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(g=>{var w,m,x,y;const b={name:g.name,transport:g.transport};return(w=g.url)!=null&&w.trim()&&(b.url=g.url.trim()),(m=g.authToken)!=null&&m.trim()&&(b.authToken=g.authToken.trim()),(x=g.command)!=null&&x.trim()&&(b.command=g.command.trim()),(y=g.args)!=null&&y.length&&(b.args=g.args),b})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((d=e.tracingExporters)!=null&&d.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(u=e.deployment)!=null&&u.feishuEnabled&&(t.deployment={feishuEnabled:!0}),(h=e.selectedSkills)!=null&&h.length&&(t.selectedSkills=e.selectedSkills.map(g=>({slug:g.slug,name:g.name,namespace:g.namespace}))),(p=e.subAgents)!=null&&p.length&&(t.subAgents=e.subAgents.map(g=>{var w,m;const b={name:g.name,description:g.description,instruction:g.instruction};return(w=g.builtinTools)!=null&&w.length&&(b.builtinTools=[...g.builtinTools]),(m=g.customTools)!=null&&m.length&&(b.customTools=g.customTools.map(x=>({name:x.name,description:x.description}))),b})),t}function y1(e){return`# VeADK Agent 结构配置 +`},{path:".env.example",content:dK(uK(n.env))},{path:"requirements.txt",content:fK(n.extras,r)},{path:"README.md",content:hK(t,e)}];return{name:t,files:c}}function pK(e){return[...new Set(e)]}const mK=new Set(["local","sqlite","mysql","postgresql"]),gK=new Set(["local","opensearch","redis","viking","mem0"]),yK=new Set(["local","opensearch","viking","context_search"]),bK=new Set(["apmplus","cozeloop","tls"]),YC=new Set(xK());function xK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function it(e,t=""){return typeof e=="string"?e:t}function xi(e){return e===!0}function _u(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function XC(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:it(t.name),description:it(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function Jh(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const wK=new Set(["llm","sequential","parallel","loop","a2a"]);function QC(e){return typeof e=="string"&&wK.has(e)?e:"llm"}function ZC(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function JC(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...ds(),name:it(n.name),description:it(n.description),instruction:it(n.instruction),agentType:QC(n.agentType),maxIterations:ZC(n.maxIterations),a2aUrl:it(n.a2aUrl),builtinTools:_u(n.builtinTools).filter(r=>YC.has(r)),customTools:XC(n.customTools),subAgents:JC(n.subAgents)}}):[]}function e2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=t.deployment&&typeof t.deployment=="object"?t.deployment:{},i=JC(t.subAgents),s=Array.isArray(t.mcpTools)?t.mcpTools.map(o=>{const a=o&&typeof o=="object"?o:{},l=a.transport==="stdio"?"stdio":"http";return{name:it(a.name),transport:l,url:it(a.url),authToken:it(a.authToken),command:it(a.command),args:_u(a.args)}}).filter(o=>o.transport==="http"?!!o.url:!!o.command):[];return{...ds(),name:it(t.name)||"my_agent",description:it(t.description),instruction:it(t.instruction)||"You are a helpful assistant.",agentType:QC(t.agentType),maxIterations:ZC(t.maxIterations),a2aUrl:it(t.a2aUrl),modelName:it(t.modelName),modelProvider:it(t.modelProvider),modelApiBase:it(t.modelApiBase),builtinTools:_u(t.builtinTools).filter(o=>YC.has(o)),customTools:XC(t.customTools),mcpTools:s,memory:{shortTerm:xi(n.shortTerm),longTerm:xi(n.longTerm)},shortTermBackend:Jh(t.shortTermBackend,mK,"local"),longTermBackend:Jh(t.longTermBackend,gK,"local"),autoSaveSession:xi(t.autoSaveSession),knowledgebase:xi(t.knowledgebase),knowledgebaseBackend:Jh(t.knowledgebaseBackend,yK,"local"),tracing:xi(t.tracing),tracingExporters:_u(t.tracingExporters).filter(o=>bK.has(o)),enableA2ui:xi(t.enableA2ui),deployment:{feishuEnabled:xi(r.feishuEnabled)},subAgents:i,selectedSkills:Array.isArray(t.selectedSkills)?t.selectedSkills.map(o=>{const a=o&&typeof o=="object"?o:{};return{slug:it(a.slug),name:it(a.name)||it(a.slug),namespace:it(a.namespace)||"public"}}).filter(o=>!!o.slug):[]}}function vK(e){var n,r,i,s,o,a,l,c,d,u,h,p;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(g=>({name:g.name,description:g.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(g=>{var w,m,x,y;const b={name:g.name,transport:g.transport};return(w=g.url)!=null&&w.trim()&&(b.url=g.url.trim()),(m=g.authToken)!=null&&m.trim()&&(b.authToken=g.authToken.trim()),(x=g.command)!=null&&x.trim()&&(b.command=g.command.trim()),(y=g.args)!=null&&y.length&&(b.args=g.args),b})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((d=e.tracingExporters)!=null&&d.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(u=e.deployment)!=null&&u.feishuEnabled&&(t.deployment={feishuEnabled:!0}),(h=e.selectedSkills)!=null&&h.length&&(t.selectedSkills=e.selectedSkills.map(g=>({slug:g.slug,name:g.name,namespace:g.namespace}))),(p=e.subAgents)!=null&&p.length&&(t.subAgents=e.subAgents.map(g=>{var w,m;const b={name:g.name,description:g.description,instruction:g.instruction};return(w=g.builtinTools)!=null&&w.length&&(b.builtinTools=[...g.builtinTools]),(m=g.customTools)!=null&&m.length&&(b.customTools=g.customTools.map(x=>({name:x.name,description:x.description}))),b})),t}function y1(e){return`# VeADK Agent 结构配置 # 可在「创建 Agent」页通过「导入 YAML」重新载入。 -`+tK(vK(e))}function t2(e){const t=eK(e);return e2(t)}const _K=[{kind:"intelligent",icon:XB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:i$,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:KB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:s$,title:"工作流",desc:"敬请期待",disabled:!0}];function EK({onSelect:e,onImport:t}){const n=S.useRef(null),[r,i]=S.useState(""),s=_K.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const d=await l.text();t(t2(d))}catch(d){i(`导入失败:${d instanceof Error?d.message:String(d)}`)}};return f.jsx(nC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(n$,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const kK="modulepreload",SK=function(e){return"/"+e},b1={},x1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=SK(l),l in b1)return;b1[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const u=document.createElement("link");if(u.rel=c?"stylesheet":kK,c||(u.as="script"),u.crossOrigin="",u.href=l,a&&u.setAttribute("nonce",a),document.head.appendChild(u),c)return new Promise((h,p)=>{u.addEventListener("load",h),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},NK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function TK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Qe(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const w1=2048,ep=20,v1=0;function AK(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),b=t.encode(p.content),w=TK(b),m=b.length,x=[];rn(x,67324752),Qe(x,ep),Qe(x,w1),Qe(x,v1),Qe(x,0),Qe(x,0),rn(x,w),rn(x,m),rn(x,m),Qe(x,g.length),Qe(x,0);const y=Uint8Array.from(x);n.push(y,g,b),r.push({nameBytes:g,dataBytes:b,crc:w,size:m,offset:i}),i+=y.length+g.length+b.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Qe(g,ep),Qe(g,ep),Qe(g,w1),Qe(g,v1),Qe(g,0),Qe(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Qe(g,p.nameBytes.length),Qe(g,0),Qe(g,0),Qe(g,0),Qe(g,0),rn(g,0),rn(g,p.offset);const b=Uint8Array.from(g);o.push(b,p.nameBytes),a+=b.length+p.nameBytes.length}const l=[];rn(l,101010256),Qe(l,0),Qe(l,0),Qe(l,r.length),Qe(l,r.length),rn(l,a),rn(l,s),Qe(l,0);const c=[...n,...o,Uint8Array.from(l)],d=c.reduce((p,g)=>p+g.length,0),u=new Uint8Array(d);let h=0;for(const p of c)u.set(p,h),h+=p.length;return new Blob([u],{type:"application/zip"})}tn.registerLanguage("python",AA);tn.registerLanguage("typescript",FA);tn.registerLanguage("javascript",_A);tn.registerLanguage("json",EA);tn.registerLanguage("yaml",zA);tn.registerLanguage("markdown",TA);tn.registerLanguage("bash",gA);tn.registerLanguage("ini",yA);tn.registerLanguage("dockerfile",SV);tn.registerLanguage("makefile",NA);const CK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},_1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function E1(e){return e.replace(/&/g,"&").replace(//g,">")}function MK(e){const n=(e.split("/").pop()??e).toLowerCase();if(_1[n])return _1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return CK[i]??null}function k1(e,t){try{const n=MK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:E1(e)}catch{return E1(e)}}const tp=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function IK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function OK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function Jm(e="",t=""){return{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,key:e,value:t}}const S1=new Set(["FEISHU_APP_ID","FEISHU_APP_SECRET"]);function N1(e){return e?[Jm("FEISHU_APP_ID",""),Jm("FEISHU_APP_SECRET","")]:[]}function z0({project:e,onChange:t,onDeploy:n,onAgentAdded:r,feishuEnabled:i=!1}){var ue,ae,se,ye;const s=typeof t=="function",[o,a]=S.useState(((ae=(ue=e==null?void 0:e.files)==null?void 0:ue[0])==null?void 0:ae.path)??null),[l,c]=S.useState(new Set),[d,u]=S.useState(!1),[h,p]=S.useState(""),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,E]=S.useState({}),[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(()=>N1(i)),[R,$]=S.useState(!1),O=S.useRef(null);S.useEffect(()=>{if(!i){P(Y=>Y.filter(W=>!W.key.startsWith("TOOL_FEISHU_CHANNEL_")&&!S1.has(W.key)));return}P(Y=>{const W=new Map(Y.map(le=>[le.key,le])),F=N1(!0),G=[...Y];for(const le of F)W.has(le.key)||G.push(le);return G})},[i]);const j=S.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:IK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const M=e.files.find(Y=>Y.path===o)??null;function B(Y){c(W=>{const F=new Set(W);return F.has(Y)?F.delete(Y):F.add(Y),F})}function L(Y,W){t&&(t({...e,files:Y}),W!==void 0&&a(W))}function D(Y){M&&L(e.files.map(W=>W.path===M.path?{...W,content:Y}:W))}function k(){const Y=h.trim();if(u(!1),p(""),!!Y){if(e.files.some(W=>W.path===Y)){a(Y);return}L([...e.files,{path:Y,content:""}],Y)}}function V(){if(!M)return;const Y=window.prompt("重命名文件",M.path),W=Y==null?void 0:Y.trim();!W||W===M.path||e.files.some(F=>F.path===W)||L(e.files.map(F=>F.path===M.path?{...F,path:W}:F),W)}function H(){var W;if(!M)return;const Y=e.files.filter(F=>F.path!==M.path);L(Y,((W=Y[0])==null?void 0:W.path)??null)}function T(Y,W){P(F=>F.map(G=>G.id===Y?{...G,...W}:G))}function U(Y){P(W=>W.filter(F=>F.id!==Y))}function X(){P(Y=>[...Y,Jm()])}function Z(){return A.map(Y=>({key:Y.key.trim(),value:Y.value})).filter(Y=>Y.key.length>0)}async function J(){if(!n||g)return;const Y=Z();if(i){const W=new Map(Y.map(F=>[F.key,F.value.trim()]));if(!W.get("TOOL_FEISHU_CHANNEL_APP_ID")&&!W.get("FEISHU_APP_ID")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。");return}if(!W.get("TOOL_FEISHU_CHANNEL_APP_SECRET")&&!W.get("FEISHU_APP_SECRET")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。");return}}m(null),y(null),E({}),C(null),b(!0);try{const W=await n(e,F=>{E(G=>({...G,[F.phase]:F})),C(F.phase)},i?{im:{feishu:{enabled:!0}},envs:Y}:{envs:Y});y(W),C(null)}catch(W){m(W instanceof Error?W.message:String(W))}finally{b(!1)}}async function q(){if(!(!x||N)){I(!0),m(null);try{const{addConnection:Y,remoteAppId:W,loadConnections:F}=await x1(async()=>{const{addConnection:le,remoteAppId:me,loadConnections:pe}=await Promise.resolve().then(()=>Uw);return{addConnection:le,remoteAppId:me,loadConnections:pe}},void 0),G=await Y(x.agentName,x.url,x.apikey,"");if(G.apps.length===0)m("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const le={...G,appLabels:{[G.apps[0]]:x.agentName}},pe=F().map(be=>be.id===G.id?le:be);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(pe));const{registerConnections:Le}=await x1(async()=>{const{registerConnections:be}=await Promise.resolve().then(()=>Uw);return{registerConnections:be}},void 0);if(Le(pe),r){const be=W(G.id,G.apps[0]);r(be,x.agentName)}else alert(`🎉 Agent "${x.agentName}" 已添加到左上角下拉列表!`)}}catch(Y){m(`添加 Agent 失败:${Y instanceof Error?Y.message:String(Y)}`)}finally{I(!1)}}}function ee(){const Y=AK(e.files),W=URL.createObjectURL(Y),F=document.createElement("a");F.href=W,F.download=`${e.name||"project"}.zip`,document.body.appendChild(F),F.click(),document.body.removeChild(F),URL.revokeObjectURL(W)}function ce(Y,W,F){return OK(Y).map(G=>{const le=F?`${F}/${G.name}`:G.name,me=G.path!==void 0,pe={paddingLeft:8+W*14};if(me){const be=G.path===o;return f.jsxs("button",{type:"button",className:`pp-row pp-file${be?" pp-active":""}`,style:pe,onClick:()=>a(G.path),title:G.path,children:[f.jsx(DB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:G.name})]},le)}const Le=l.has(le);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:pe,onClick:()=>B(le),children:[f.jsx(Gn,{className:`pp-ic pp-chevron${Le?"":" pp-open"}`}),f.jsx(BB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:G.name})]}),!Le&&ce(G,W+1,le)]},le)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),s&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),p("")},children:f.jsx(LB,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[d&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:h,onChange:Y=>p(Y.target.value),onBlur:k,onKeyDown:Y=>{Y.key==="Enter"&&k(),Y.key==="Escape"&&(u(!1),p(""))}}),e.files.length===0&&!d?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):ce(j,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:M==null?void 0:M.path,children:(M==null?void 0:M.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[s&&M&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:V,children:f.jsx(JB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:H,children:f.jsx(Do,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:ee,children:[f.jsx(MB,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:J,disabled:g,children:[g?f.jsx(bt,{className:"pp-ic spin"}):f.jsx(fl,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(g||x||Object.keys(v).length>0)&&f.jsx("ol",{className:"pp-steps",children:tp.map((Y,W)=>{const F=_?tp.findIndex(pe=>pe.phase===_):-1,G=!!w&&(F===-1?W===0:W===F);let le;x?le="done":G?le="failed":F===-1?le=g?"active":"pending":WY.phase===_))==null?void 0:se.label)??_}阶段):`:"",w]}),x&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:x.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:x.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:x.apikey})]}),((ye=x.feishuChannel)==null?void 0:ye.enabled)&&f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"飞书 Channel"}),f.jsxs("code",{children:["runtime 内启用 (",x.feishuChannel.transport,")"]})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:q,disabled:N,children:[N?f.jsx(bt,{className:"pp-ic spin"}):null,N?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:M==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):s?f.jsxs("div",{className:"pp-editor-wrap",children:[f.jsx("pre",{className:"pp-hl hljs","aria-hidden":"true",ref:O,children:f.jsx("code",{dangerouslySetInnerHTML:{__html:k1(M.content,M.path)}})}),f.jsx("textarea",{className:"pp-input",spellCheck:!1,value:M.content,onChange:Y=>D(Y.target.value),onScroll:Y=>{const W=O.current;W&&(W.scrollTop=Y.currentTarget.scrollTop,W.scrollLeft=Y.currentTarget.scrollLeft)}})]}):f.jsx("pre",{className:"pp-pre hljs",children:f.jsx("code",{dangerouslySetInnerHTML:{__html:k1(M.content,M.path)}})})})]}),n&&f.jsxs("aside",{className:"pp-env-panel","aria-label":"环境变量",children:[f.jsxs("div",{className:"pp-env-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"pp-env-title",children:"环境变量"}),i&&f.jsx("div",{className:"pp-env-sub",children:"飞书 Channel 已开启,只需要填写 FEISHU_APP_ID 和 FEISHU_APP_SECRET。"})]}),f.jsx("button",{type:"button",className:"pp-icon-btn",title:R?"隐藏值":"显示值",onClick:()=>$(Y=>!Y),children:R?f.jsx(RB,{className:"pp-ic"}):f.jsx(Ky,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-env-table",children:[f.jsxs("div",{className:"pp-env-row pp-env-row-head",children:[f.jsx("span",{children:"Key"}),f.jsx("span",{children:"Value"}),f.jsx("span",{})]}),A.length===0?f.jsx("div",{className:"pp-env-empty",children:"暂无环境变量"}):A.map(Y=>{const W=i&&S1.has(Y.key),F=Y.key==="FEISHU_APP_ID"?"cli_xxx":Y.key==="FEISHU_APP_SECRET"?"输入 App Secret":"VALUE";return f.jsxs("div",{className:"pp-env-row",children:[f.jsx("input",{className:W?"pp-env-key-fixed":void 0,value:Y.key,placeholder:"KEY",readOnly:W,disabled:g,autoComplete:"off",title:W?"飞书必填变量":void 0,onChange:G=>T(Y.id,{key:G.currentTarget.value})}),f.jsx("input",{type:R?"text":"password",value:Y.value,placeholder:F,disabled:g,autoComplete:"off",onChange:G=>T(Y.id,{value:G.currentTarget.value})}),W?f.jsx("span",{className:"pp-env-remove-placeholder"}):f.jsx("button",{type:"button",className:"pp-icon-btn pp-env-remove",title:"删除变量",disabled:g,onClick:()=>U(Y.id),children:f.jsx(Fl,{className:"pp-ic"})})]},Y.id)})]}),f.jsxs("button",{type:"button",className:"pp-env-add",onClick:X,disabled:g,children:[f.jsx(ss,{className:"pp-ic"}),"添加变量"]})]})]})}const T1="dogfooding",np="dogfooding",rp="dogfooding_b";let RK=0;const ip=()=>++RK;function A1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function LK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function C1(e){const t=[],n=LK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return WC(e2(o))}catch{}return null}function PK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=S.useState([{id:ip(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(null),[h,p]=S.useState(null),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,E]=S.useState(!1),[_,C]=S.useState(!1),[N,I]=S.useState({}),A=S.useRef(null),P=S.useRef(null),R=S.useRef(null),$=S.useRef(null),O=S.useRef(null);S.useEffect(()=>{const U=$.current;U&&U.scrollTo({top:U.scrollHeight,behavior:"smooth"})},[i,l]),S.useEffect(()=>{const U=O.current;U&&(U.style.height="auto",U.style.height=Math.min(U.scrollHeight,160)+"px")},[o]);const j=U=>s(X=>[...X,{id:ip(),role:"assistant",text:U}]);async function M(){if(A.current)return A.current;const U=await Cm(T1,e);return A.current=U,U}async function B(U,X){if(X.current)return X.current;const Z=await Cm(U,e);return X.current=Z,Z}async function L(U,X){if(!N[U])try{const Z=await Xy(X);I(J=>({...J,[U]:Z.model||X}))}catch{I(Z=>({...Z,[U]:X}))}}async function D(U,X,Z){const J=await B(U,X);let q=Gr();for await(const ce of ad({appName:U,userId:e,sessionId:J,text:Z}))q=hl(q,ce);const ee=A1(q).trim();return{project:C1(ee),finalText:ee}}const k=async(U,X,Z)=>qN(U.name,U.files,{region:"cn-beijing",projectName:"default"},{...Z,onStage:X}),V=async()=>{const U=o.trim();if(!(!U||l)){if(s(X=>[...X,{id:ip(),role:"user",text:U}]),a(""),u(null),c(!0),g){m(null),y(null),E(!0),C(!0),L("a",np),L("b",rp);const X=D(np,P,U).then(({project:J})=>(m(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>E(!1)),Z=D(rp,R,U).then(({project:J})=>(y(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>C(!1));try{const[J,q]=await Promise.all([X,Z]),ee=[J?`方案 A:${J.name}`:null,q?`方案 B:${q.name}`:null].filter(Boolean);ee.length?j(`已生成两个方案(${ee.join(",")}),请在右侧对比后采用其一。`):j("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const X=await M();let Z=Gr();for await(const ee of ad({appName:T1,userId:e,sessionId:X,text:U}))Z=hl(Z,ee);const J=A1(Z).trim(),q=C1(J);q?(p(q),j(`已生成项目:${q.name}(${q.files.length} 个文件),可在右侧预览和编辑。`)):j(J||"(助手没有返回内容,请再描述一下你的需求。)")}catch(X){const Z=X instanceof Error?X.message:String(X);u(Z),j(`抱歉,调用智能构建助手失败:${Z}`)}finally{c(!1)}}},H=U=>{const X=U==="a"?w:x;if(!X)return;p(X),b(!1),m(null),y(null),E(!1),C(!1);const Z=U==="a"?"A":"B",J=U==="a"?N.a:N.b;j(`已采用方案 ${Z}(${J??(U==="a"?np:rp)}),可继续编辑。`)},T=U=>{U.key==="Enter"&&!U.shiftKey&&!U.nativeEvent.isComposing&&(U.preventDefault(),V())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:$,children:[f.jsx(fy,{initial:!1,children:i.map(U=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${U.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[U.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:U.role==="assistant"?f.jsx(k0,{text:U.text}):U.text})]},U.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),d&&f.jsxs("div",{className:"ic-error",children:[f.jsx(TB,{className:"ic-error-icon"}),d]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:O,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:U=>a(U.target.value),onKeyDown:T,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void V(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(e$,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:U=>b(U.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(M1,{side:"a",project:w,loading:v,model:N.a,onAdopt:()=>H("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(M1,{side:"b",project:x,loading:_,model:N.b,onAdopt:()=>H("b")})]}):h?f.jsx(z0,{project:h,onChange:p,onDeploy:k,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(jB,{className:"ic-preview-empty-glyph"}),f.jsx(Qd,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function M1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(bt,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(z0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}const n2="/skillhub/v1/skills";async function DK(e,t="public"){const n=e.trim(),r=`${n2}?query=${encodeURIComponent(n)}&namespace=${encodeURIComponent(t)}`,i=await fetch(r,{headers:{accept:"application/json"}});if(!i.ok)throw new Error(`搜索失败 (${i.status})`);return((await i.json()).Skills??[]).map(o=>{var a;return{id:o.Id??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function jK(e,t="public"){const n=`${n2}/download/${e}?namespace=${encodeURIComponent(t)}`,r=await fetch(n);if(!r.ok)throw new Error(`下载技能失败 (${r.status})`);const i=new Uint8Array(await r.arrayBuffer()),s=await $K(i),o=`skills/${e.split("/").pop()||"skill"}`;return s.filter(a=>!a.name.endsWith("/")).map(a=>({path:`${o}/${a.name}`,content:a.text}))}function wi(e,t){return e[t]|e[t+1]<<8}function aa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function BK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function $K(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(aa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=wi(e,n+10);let i=aa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;ae==="sequential"||e==="parallel"||e==="loop",U0=e=>e==="a2a";function R1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx(Hy,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function sp({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function zK({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(fy,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(ss,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function UK({selected:e,onChange:t}){const[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(!1),[l,c]=S.useState(null),[d,u]=S.useState(!1),h=w=>e.some(m=>m.slug===w),p=w=>{h(w.slug)?t(e.filter(m=>m.slug!==w.slug)):t([...e,{slug:w.slug,name:w.name,namespace:w.namespace}])},g=w=>t(e.filter(m=>m.slug!==w)),b=async w=>{a(!0),c(null),u(!0);try{const m=await DK(w);s(m)}catch(m){c(m instanceof Error?m.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return S.useEffect(()=>{const w=n.trim();if(!w){s([]),u(!1),c(null);return}const m=setTimeout(()=>b(w),300);return()=>clearTimeout(m)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Am,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:w=>r(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),n.trim()&&b(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&b(n),disabled:!n.trim()||o,children:[o?f.jsx(bt,{className:"cw-i cw-spin"}):f.jsx(Am,{className:"cw-i"}),"搜索"]})]}),e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(fy,{initial:!1,children:e.map(w=>f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(Qd,{className:"cw-i cw-i-sm"}),w.name,f.jsx("button",{type:"button",className:"cw-pill-x",onClick:()=>g(w.slug),"aria-label":`移除 ${w.name}`,children:f.jsx(Fl,{className:"cw-i cw-i-sm"})})]},w.slug))})})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx($N,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(w=>{const m=h(w.slug);return f.jsxs("button",{type:"button",className:`cw-skill-result ${m?"is-on":""}`,onClick:()=>p(w),"aria-pressed":m,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:m?f.jsx(Hy,{className:"cw-i cw-i-sm"}):f.jsx(ss,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:w.name}),w.description&&f.jsx("span",{className:"cw-skill-result-desc",children:w.description}),w.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:w.sourceRepo})]})]},w.id||w.slug)})}):d&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!d&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}function vi({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const L1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function VK(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function Eu(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Zl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Zl(s[r],i,n),{...e,subAgents:s}}function HK(e,t){return Zl(e,t,n=>({...n,subAgents:[...n.subAgents,ds()]}))}function KK(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Zl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function qK(e,t,n,r){return Zl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const GK=e=>e==="sequential"||e==="loop",i2=e=>!U0(e.agentType),WK=3,YK=e=>eg.find(t=>t.id===(e??"llm"))??eg[0];function s2(e){return e.name.trim().length===0?"缺少名称":U0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:r2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function o2(e,t=[]){const n=[],r=s2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),i2(e)&&e.subAgents.forEach((i,s)=>n.push(...o2(i,[...t,s]))),n}function a2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=Eu(e,t),o=YK(s.agentType),a=o.icon,l=t.length===0,c=L1(t,n),d=i2(s),u=d&&t.length{const y=HK(e,t),v=Eu(y,t).subAgents.length-1;i(y,[...t,v])},p=()=>i(KK(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&GK(Eu(e,g).agentType),[w,m]=S.useState(!1),x=y=>{y.preventDefault(),y.stopPropagation(),m(!1);const v=y.dataTransfer.getData("application/x-agent-path");if(!v)return;let E;try{E=JSON.parse(v)}catch{return}if(!L1(E.slice(0,-1),g))return;const _=E[E.length-1],C=t[t.length-1];_!==C&&i(qK(e,g,_,C),[...g,C])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${b?"is-draggable":""} ${w?"is-dragover":""} ${s2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:b,onDragStart:b?y=>{y.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),y.dataTransfer.effectAllowed="move",y.stopPropagation()}:void 0,onDragOver:b?y=>{y.preventDefault(),m(!0)}:void 0,onDragLeave:b?()=>m(!1):void 0,onDrop:b?x:void 0,onClick:()=>r(t),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[u&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:y=>{y.stopPropagation(),h()},children:f.jsx(ss,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:y=>{y.stopPropagation(),p()},children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]})]}),d&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((y,v)=>f.jsx(a2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function XK({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){var ye,Y,W;const[s,o]=S.useState(()=>r??ds()),[a,l]=S.useState(!1),[c,d]=S.useState(null),[u,h]=S.useState(!1),[p,g]=S.useState("type"),b=S.useRef(null),[w,m]=S.useState(""),x=async F=>{var le;const G=(le=F.target.files)==null?void 0:le[0];if(F.target.value="",!!G){m("");try{const me=await G.text();o(t2(me)),v([]),l(!1)}catch(me){m(`导入失败:${me instanceof Error?me.message:String(me)}`)}}},[y,v]=S.useState([]),E=S.useRef(null),_=S.useRef({}),C=S.useRef(null);C.current||(C.current=({meta:F,children:G})=>f.jsxs("section",{ref:le=>{_.current[F.id]=le},id:`cw-sec-${F.id}`,"data-step-id":F.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[F.label,F.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),G]}));const N=VK(s,y)?y:[],I=Eu(s,N),A=F=>o(G=>Zl(G,N,le=>({...le,...F}))),P=(F,G)=>{o(F),G&&v(G)},R=I.builtinTools??[],$=I.mcpTools??[],O=I.tracingExporters??[],j=I.selectedSkills??[],M=F=>A({builtinTools:R.includes(F)?R.filter(G=>G!==F):[...R,F]}),B=F=>{const G=O.includes(F)?O.filter(le=>le!==F):[...O,F];A({tracingExporters:G,tracing:G.length>0?!0:I.tracing})},L=F=>o(G=>({...G,deployment:{...G.deployment??{feishuEnabled:!1},...F}})),D=r2(I.agentType),k=U0(I.agentType),V=I.name.trim().length===0,H=I.instruction.trim().length===0,T=(I.a2aUrl??"").trim().length===0,U=S.useMemo(()=>o2(s),[s]),X=U.length===0,Z=S.useMemo(()=>{var F,G,le,me;return{type:!0,basic:!V&&(D||k||!H),model:!!((F=I.modelName)!=null&&F.trim()||(G=I.modelProvider)!=null&&G.trim()||(le=I.modelApiBase)!=null&&le.trim()),tools:R.length>0||$.length>0,skills:j.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,deploy:!0,subagents:(((me=I.subAgents)==null?void 0:me.length)??0)>0,review:X}},[I,V,H,D,k,X,R,$,j]),J=D||k?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing",...N.length===0?["deploy"]:[]],q=O1.filter(F=>J.includes(F.id)),ee=q.findIndex(F=>F.id===p),ce=F=>{var G;(G=_.current[F])==null||G.scrollIntoView({behavior:"smooth",block:"start"})};S.useEffect(()=>{if(c)return;const F=E.current;if(!F)return;const G=new IntersectionObserver(le=>{var Le,be;const pe=(be=(Le=le.filter(Be=>Be.isIntersecting).sort((Be,Pe)=>Be.boundingClientRect.top-Pe.boundingClientRect.top)[0])==null?void 0:Le.target)==null?void 0:be.dataset.stepId;pe&&g(pe)},{root:F,rootMargin:"0px 0px -65% 0px",threshold:0});for(const le of Object.values(_.current))le&&G.observe(le);return()=>G.disconnect()},[c]);const ue=async()=>{if(!X){l(!0),U[0]&&v(U[0].path);return}const F=WC(s),G=[],le=new Set,me=pe=>{for(const Le of pe.selectedSkills??[]){const be=`${Le.namespace}/${Le.slug}`;le.has(be)||(le.add(be),G.push(Le))}(pe.subAgents??[]).forEach(me)};if(me(s),G.length>0){h(!0);try{const pe=await Promise.all(G.map(be=>jK(be.slug,be.namespace).catch(Be=>(console.warn(`下载技能失败:${be.name}`,Be),[])))),Le=new Set(F.files.map(be=>be.path));for(const be of pe)for(const Be of be)Le.has(Be.path)||(F.files.push(Be),Le.add(Be.path))}finally{h(!1)}}d(F)};if(c){const F=async(G,le,me)=>qN(G.name,G.files,{region:"cn-beijing",projectName:"default"},{...me,author:i,onStage:le});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>d(null),children:[f.jsx(PN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(fl,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(z0,{project:c,onChange:d,onDeploy:F,onAgentAdded:n,feishuEnabled:!!((ye=s.deployment)!=null&&ye.feishuEnabled)})})]})}const ae=C.current,se=F=>O1.find(G=>G.id===F);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(a2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:P})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:eg.map(F=>{const G=(I.agentType??"llm")===F.id,le=F.icon;return f.jsxs("label",{className:`cw-typeradio-item ${G?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:G,onChange:()=>A({agentType:F.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(le,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:F.label})]})})]},F.id)})}),U.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",U.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:U.map(F=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v(F.path)},children:[F.name," · ",F.problem]},F.path.join(".")+F.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:E,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(ae,{meta:se("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&V?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:F=>A({name:F.target.value})}),a&&V&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:F=>A({description:F.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),D?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:F=>A({maxIterations:Math.max(1,Number(F.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):k?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&T?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:F=>A({a2aUrl:F.target.value})}),a&&T?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&H?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… +`+tK(vK(e))}function t2(e){const t=eK(e);return e2(t)}const _K=[{kind:"intelligent",icon:XB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:i$,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:KB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:s$,title:"工作流",desc:"敬请期待",disabled:!0}];function kK({onSelect:e,onImport:t}){const n=S.useRef(null),[r,i]=S.useState(""),s=_K.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const d=await l.text();t(t2(d))}catch(d){i(`导入失败:${d instanceof Error?d.message:String(d)}`)}};return f.jsx(nC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(n$,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const EK="modulepreload",SK=function(e){return"/"+e},b1={},x1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=SK(l),l in b1)return;b1[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const u=document.createElement("link");if(u.rel=c?"stylesheet":EK,c||(u.as="script"),u.crossOrigin="",u.href=l,a&&u.setAttribute("nonce",a),document.head.appendChild(u),c)return new Promise((h,p)=>{u.addEventListener("load",h),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},NK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function TK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Xe(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const w1=2048,ep=20,v1=0;function AK(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),b=t.encode(p.content),w=TK(b),m=b.length,x=[];rn(x,67324752),Xe(x,ep),Xe(x,w1),Xe(x,v1),Xe(x,0),Xe(x,0),rn(x,w),rn(x,m),rn(x,m),Xe(x,g.length),Xe(x,0);const y=Uint8Array.from(x);n.push(y,g,b),r.push({nameBytes:g,dataBytes:b,crc:w,size:m,offset:i}),i+=y.length+g.length+b.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Xe(g,ep),Xe(g,ep),Xe(g,w1),Xe(g,v1),Xe(g,0),Xe(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Xe(g,p.nameBytes.length),Xe(g,0),Xe(g,0),Xe(g,0),Xe(g,0),rn(g,0),rn(g,p.offset);const b=Uint8Array.from(g);o.push(b,p.nameBytes),a+=b.length+p.nameBytes.length}const l=[];rn(l,101010256),Xe(l,0),Xe(l,0),Xe(l,r.length),Xe(l,r.length),rn(l,a),rn(l,s),Xe(l,0);const c=[...n,...o,Uint8Array.from(l)],d=c.reduce((p,g)=>p+g.length,0),u=new Uint8Array(d);let h=0;for(const p of c)u.set(p,h),h+=p.length;return new Blob([u],{type:"application/zip"})}tn.registerLanguage("python",AA);tn.registerLanguage("typescript",FA);tn.registerLanguage("javascript",_A);tn.registerLanguage("json",kA);tn.registerLanguage("yaml",zA);tn.registerLanguage("markdown",TA);tn.registerLanguage("bash",gA);tn.registerLanguage("ini",yA);tn.registerLanguage("dockerfile",SV);tn.registerLanguage("makefile",NA);const CK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},_1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function k1(e){return e.replace(/&/g,"&").replace(//g,">")}function MK(e){const n=(e.split("/").pop()??e).toLowerCase();if(_1[n])return _1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return CK[i]??null}function E1(e,t){try{const n=MK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:k1(e)}catch{return k1(e)}}const tp=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function IK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function OK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function Jm(e="",t=""){return{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,key:e,value:t}}const S1=new Set(["FEISHU_APP_ID","FEISHU_APP_SECRET"]);function N1(e){return e?[Jm("FEISHU_APP_ID",""),Jm("FEISHU_APP_SECRET","")]:[]}function z0({project:e,onChange:t,onDeploy:n,onAgentAdded:r,feishuEnabled:i=!1}){var ce,ae,se,ye;const s=typeof t=="function",[o,a]=S.useState(((ae=(ce=e==null?void 0:e.files)==null?void 0:ce[0])==null?void 0:ae.path)??null),[l,c]=S.useState(new Set),[d,u]=S.useState(!1),[h,p]=S.useState(""),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,k]=S.useState({}),[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(()=>N1(i)),[R,F]=S.useState(!1),O=S.useRef(null);S.useEffect(()=>{if(!i){P(W=>W.filter($=>!$.key.startsWith("TOOL_FEISHU_CHANNEL_")&&!S1.has($.key)));return}P(W=>{const $=W.filter(pe=>!pe.key.startsWith("TOOL_FEISHU_CHANNEL_")),G=new Map($.map(pe=>[pe.key,pe])),X=N1(!0),me=[...$];for(const pe of X)G.has(pe.key)||me.push(pe);return me})},[i]);const j=S.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:IK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const M=e.files.find(W=>W.path===o)??null;function B(W){c($=>{const G=new Set($);return G.has(W)?G.delete(W):G.add(W),G})}function L(W,$){t&&(t({...e,files:W}),$!==void 0&&a($))}function D(W){M&&L(e.files.map($=>$.path===M.path?{...$,content:W}:$))}function E(){const W=h.trim();if(u(!1),p(""),!!W){if(e.files.some($=>$.path===W)){a(W);return}L([...e.files,{path:W,content:""}],W)}}function V(){if(!M)return;const W=window.prompt("重命名文件",M.path),$=W==null?void 0:W.trim();!$||$===M.path||e.files.some(G=>G.path===$)||L(e.files.map(G=>G.path===M.path?{...G,path:$}:G),$)}function H(){var $;if(!M)return;const W=e.files.filter(G=>G.path!==M.path);L(W,(($=W[0])==null?void 0:$.path)??null)}function T(W,$){P(G=>G.map(X=>X.id===W?{...X,...$}:X))}function U(W){P($=>$.filter(G=>G.id!==W))}function Y(){P(W=>[...W,Jm()])}function Z(){return A.map(W=>({key:W.key.trim(),value:W.value})).filter(W=>W.key.length>0)}async function J(){if(!n||g)return;const W=Z();if(i){const $=new Map(W.map(G=>[G.key,G.value.trim()]));if(!$.get("FEISHU_APP_ID")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。");return}if(!$.get("FEISHU_APP_SECRET")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。");return}}m(null),y(null),k({}),C(null),b(!0);try{const $=await n(e,G=>{k(X=>({...X,[G.phase]:G})),C(G.phase)},i?{im:{feishu:{enabled:!0}},envs:W}:{envs:W});y($),C(null)}catch($){m($ instanceof Error?$.message:String($))}finally{b(!1)}}async function q(){if(!(!x||N)){I(!0),m(null);try{const{addConnection:W,remoteAppId:$,loadConnections:G}=await x1(async()=>{const{addConnection:me,remoteAppId:pe,loadConnections:de}=await Promise.resolve().then(()=>Uw);return{addConnection:me,remoteAppId:pe,loadConnections:de}},void 0),X=await W(x.agentName,x.url,x.apikey,"");if(X.apps.length===0)m("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const me={...X,appLabels:{[X.apps[0]]:x.agentName}},de=G().map(_e=>_e.id===X.id?me:_e);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(de));const{registerConnections:Ae}=await x1(async()=>{const{registerConnections:_e}=await Promise.resolve().then(()=>Uw);return{registerConnections:_e}},void 0);if(Ae(de),r){const _e=$(X.id,X.apps[0]);r(_e,x.agentName)}else alert(`🎉 Agent "${x.agentName}" 已添加到左上角下拉列表!`)}}catch(W){m(`添加 Agent 失败:${W instanceof Error?W.message:String(W)}`)}finally{I(!1)}}}function ee(){const W=AK(e.files),$=URL.createObjectURL(W),G=document.createElement("a");G.href=$,G.download=`${e.name||"project"}.zip`,document.body.appendChild(G),G.click(),document.body.removeChild(G),URL.revokeObjectURL($)}function le(W,$,G){return OK(W).map(X=>{const me=G?`${G}/${X.name}`:X.name,pe=X.path!==void 0,de={paddingLeft:8+$*14};if(pe){const _e=X.path===o;return f.jsxs("button",{type:"button",className:`pp-row pp-file${_e?" pp-active":""}`,style:de,onClick:()=>a(X.path),title:X.path,children:[f.jsx(DB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:X.name})]},me)}const Ae=l.has(me);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:de,onClick:()=>B(me),children:[f.jsx(Gn,{className:`pp-ic pp-chevron${Ae?"":" pp-open"}`}),f.jsx(BB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:X.name})]}),!Ae&&le(X,$+1,me)]},me)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),s&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),p("")},children:f.jsx(LB,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[d&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:h,onChange:W=>p(W.target.value),onBlur:E,onKeyDown:W=>{W.key==="Enter"&&E(),W.key==="Escape"&&(u(!1),p(""))}}),e.files.length===0&&!d?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):le(j,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:M==null?void 0:M.path,children:(M==null?void 0:M.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[s&&M&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:V,children:f.jsx(JB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:H,children:f.jsx(Do,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:ee,children:[f.jsx(MB,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:J,disabled:g,children:[g?f.jsx(bt,{className:"pp-ic spin"}):f.jsx(fl,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(g||x||Object.keys(v).length>0)&&f.jsx("ol",{className:"pp-steps",children:tp.map((W,$)=>{const G=_?tp.findIndex(de=>de.phase===_):-1,X=!!w&&(G===-1?$===0:$===G);let me;x?me="done":X?me="failed":G===-1?me=g?"active":"pending":$W.phase===_))==null?void 0:se.label)??_}阶段):`:"",w]}),x&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:x.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:x.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:x.apikey})]}),((ye=x.feishuChannel)==null?void 0:ye.enabled)&&f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"飞书 Channel"}),f.jsxs("code",{children:["runtime 内启用 (",x.feishuChannel.transport,")"]})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:q,disabled:N,children:[N?f.jsx(bt,{className:"pp-ic spin"}):null,N?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:M==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):s?f.jsxs("div",{className:"pp-editor-wrap",children:[f.jsx("pre",{className:"pp-hl hljs","aria-hidden":"true",ref:O,children:f.jsx("code",{dangerouslySetInnerHTML:{__html:E1(M.content,M.path)}})}),f.jsx("textarea",{className:"pp-input",spellCheck:!1,value:M.content,onChange:W=>D(W.target.value),onScroll:W=>{const $=O.current;$&&($.scrollTop=W.currentTarget.scrollTop,$.scrollLeft=W.currentTarget.scrollLeft)}})]}):f.jsx("pre",{className:"pp-pre hljs",children:f.jsx("code",{dangerouslySetInnerHTML:{__html:E1(M.content,M.path)}})})})]}),n&&f.jsxs("aside",{className:"pp-env-panel","aria-label":"环境变量",children:[f.jsxs("div",{className:"pp-env-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"pp-env-title",children:"环境变量"}),i&&f.jsx("div",{className:"pp-env-sub",children:"飞书 Channel 已开启,请填写 FEISHU_APP_ID 和 FEISHU_APP_SECRET。"})]}),f.jsx("button",{type:"button",className:"pp-icon-btn",title:R?"隐藏值":"显示值",onClick:()=>F(W=>!W),children:R?f.jsx(RB,{className:"pp-ic"}):f.jsx(Ky,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-env-table",children:[f.jsxs("div",{className:"pp-env-row pp-env-row-head",children:[f.jsx("span",{children:"Key"}),f.jsx("span",{children:"Value"}),f.jsx("span",{})]}),A.length===0?f.jsx("div",{className:"pp-env-empty",children:"暂无环境变量"}):A.map(W=>{const $=i&&S1.has(W.key),G=W.key==="FEISHU_APP_ID"?"cli_xxx":W.key==="FEISHU_APP_SECRET"?"输入 App Secret":"VALUE";return f.jsxs("div",{className:"pp-env-row",children:[f.jsx("input",{className:$?"pp-env-key-fixed":void 0,value:W.key,placeholder:"KEY",readOnly:$,disabled:g,autoComplete:"off",title:$?"飞书必填变量":void 0,onChange:X=>T(W.id,{key:X.currentTarget.value})}),f.jsx("input",{type:R?"text":"password",value:W.value,placeholder:G,disabled:g,autoComplete:"off",onChange:X=>T(W.id,{value:X.currentTarget.value})}),$?f.jsx("span",{className:"pp-env-remove-placeholder"}):f.jsx("button",{type:"button",className:"pp-icon-btn pp-env-remove",title:"删除变量",disabled:g,onClick:()=>U(W.id),children:f.jsx(Fl,{className:"pp-ic"})})]},W.id)})]}),f.jsxs("button",{type:"button",className:"pp-env-add",onClick:Y,disabled:g,children:[f.jsx(ss,{className:"pp-ic"}),"添加变量"]})]})]})}const T1="dogfooding",np="dogfooding",rp="dogfooding_b";let RK=0;const ip=()=>++RK;function A1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function LK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function C1(e){const t=[],n=LK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return WC(e2(o))}catch{}return null}function PK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=S.useState([{id:ip(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(null),[h,p]=S.useState(null),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,k]=S.useState(!1),[_,C]=S.useState(!1),[N,I]=S.useState({}),A=S.useRef(null),P=S.useRef(null),R=S.useRef(null),F=S.useRef(null),O=S.useRef(null);S.useEffect(()=>{const U=F.current;U&&U.scrollTo({top:U.scrollHeight,behavior:"smooth"})},[i,l]),S.useEffect(()=>{const U=O.current;U&&(U.style.height="auto",U.style.height=Math.min(U.scrollHeight,160)+"px")},[o]);const j=U=>s(Y=>[...Y,{id:ip(),role:"assistant",text:U}]);async function M(){if(A.current)return A.current;const U=await Cm(T1,e);return A.current=U,U}async function B(U,Y){if(Y.current)return Y.current;const Z=await Cm(U,e);return Y.current=Z,Z}async function L(U,Y){if(!N[U])try{const Z=await Xy(Y);I(J=>({...J,[U]:Z.model||Y}))}catch{I(Z=>({...Z,[U]:Y}))}}async function D(U,Y,Z){const J=await B(U,Y);let q=Gr();for await(const le of ad({appName:U,userId:e,sessionId:J,text:Z}))q=hl(q,le);const ee=A1(q).trim();return{project:C1(ee),finalText:ee}}const E=async(U,Y,Z)=>qN(U.name,U.files,{region:"cn-beijing",projectName:"default"},{...Z,onStage:Y}),V=async()=>{const U=o.trim();if(!(!U||l)){if(s(Y=>[...Y,{id:ip(),role:"user",text:U}]),a(""),u(null),c(!0),g){m(null),y(null),k(!0),C(!0),L("a",np),L("b",rp);const Y=D(np,P,U).then(({project:J})=>(m(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>k(!1)),Z=D(rp,R,U).then(({project:J})=>(y(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>C(!1));try{const[J,q]=await Promise.all([Y,Z]),ee=[J?`方案 A:${J.name}`:null,q?`方案 B:${q.name}`:null].filter(Boolean);ee.length?j(`已生成两个方案(${ee.join(",")}),请在右侧对比后采用其一。`):j("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const Y=await M();let Z=Gr();for await(const ee of ad({appName:T1,userId:e,sessionId:Y,text:U}))Z=hl(Z,ee);const J=A1(Z).trim(),q=C1(J);q?(p(q),j(`已生成项目:${q.name}(${q.files.length} 个文件),可在右侧预览和编辑。`)):j(J||"(助手没有返回内容,请再描述一下你的需求。)")}catch(Y){const Z=Y instanceof Error?Y.message:String(Y);u(Z),j(`抱歉,调用智能构建助手失败:${Z}`)}finally{c(!1)}}},H=U=>{const Y=U==="a"?w:x;if(!Y)return;p(Y),b(!1),m(null),y(null),k(!1),C(!1);const Z=U==="a"?"A":"B",J=U==="a"?N.a:N.b;j(`已采用方案 ${Z}(${J??(U==="a"?np:rp)}),可继续编辑。`)},T=U=>{U.key==="Enter"&&!U.shiftKey&&!U.nativeEvent.isComposing&&(U.preventDefault(),V())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:F,children:[f.jsx(fy,{initial:!1,children:i.map(U=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${U.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[U.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:U.role==="assistant"?f.jsx(E0,{text:U.text}):U.text})]},U.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),d&&f.jsxs("div",{className:"ic-error",children:[f.jsx(TB,{className:"ic-error-icon"}),d]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:O,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:U=>a(U.target.value),onKeyDown:T,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void V(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(e$,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:U=>b(U.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(M1,{side:"a",project:w,loading:v,model:N.a,onAdopt:()=>H("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(M1,{side:"b",project:x,loading:_,model:N.b,onAdopt:()=>H("b")})]}):h?f.jsx(z0,{project:h,onChange:p,onDeploy:E,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(jB,{className:"ic-preview-empty-glyph"}),f.jsx(Qd,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function M1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(bt,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(z0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}const n2="/skillhub/v1/skills";async function DK(e,t="public"){const n=e.trim(),r=`${n2}?query=${encodeURIComponent(n)}&namespace=${encodeURIComponent(t)}`,i=await fetch(r,{headers:{accept:"application/json"}});if(!i.ok)throw new Error(`搜索失败 (${i.status})`);return((await i.json()).Skills??[]).map(o=>{var a;return{id:o.Id??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function jK(e,t="public"){const n=`${n2}/download/${e}?namespace=${encodeURIComponent(t)}`,r=await fetch(n);if(!r.ok)throw new Error(`下载技能失败 (${r.status})`);const i=new Uint8Array(await r.arrayBuffer()),s=await $K(i),o=`skills/${e.split("/").pop()||"skill"}`;return s.filter(a=>!a.name.endsWith("/")).map(a=>({path:`${o}/${a.name}`,content:a.text}))}function wi(e,t){return e[t]|e[t+1]<<8}function aa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function BK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function $K(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(aa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=wi(e,n+10);let i=aa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;ae==="sequential"||e==="parallel"||e==="loop",U0=e=>e==="a2a";function R1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx(Hy,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function sp({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function zK({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(fy,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(ss,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function UK({selected:e,onChange:t}){const[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(!1),[l,c]=S.useState(null),[d,u]=S.useState(!1),h=w=>e.some(m=>m.slug===w),p=w=>{h(w.slug)?t(e.filter(m=>m.slug!==w.slug)):t([...e,{slug:w.slug,name:w.name,namespace:w.namespace}])},g=w=>t(e.filter(m=>m.slug!==w)),b=async w=>{a(!0),c(null),u(!0);try{const m=await DK(w);s(m)}catch(m){c(m instanceof Error?m.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return S.useEffect(()=>{const w=n.trim();if(!w){s([]),u(!1),c(null);return}const m=setTimeout(()=>b(w),300);return()=>clearTimeout(m)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Am,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:w=>r(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),n.trim()&&b(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&b(n),disabled:!n.trim()||o,children:[o?f.jsx(bt,{className:"cw-i cw-spin"}):f.jsx(Am,{className:"cw-i"}),"搜索"]})]}),e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(fy,{initial:!1,children:e.map(w=>f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(Qd,{className:"cw-i cw-i-sm"}),w.name,f.jsx("button",{type:"button",className:"cw-pill-x",onClick:()=>g(w.slug),"aria-label":`移除 ${w.name}`,children:f.jsx(Fl,{className:"cw-i cw-i-sm"})})]},w.slug))})})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx($N,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(w=>{const m=h(w.slug);return f.jsxs("button",{type:"button",className:`cw-skill-result ${m?"is-on":""}`,onClick:()=>p(w),"aria-pressed":m,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:m?f.jsx(Hy,{className:"cw-i cw-i-sm"}):f.jsx(ss,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:w.name}),w.description&&f.jsx("span",{className:"cw-skill-result-desc",children:w.description}),w.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:w.sourceRepo})]})]},w.id||w.slug)})}):d&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!d&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}function vi({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const L1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function VK(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function ku(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Zl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Zl(s[r],i,n),{...e,subAgents:s}}function HK(e,t){return Zl(e,t,n=>({...n,subAgents:[...n.subAgents,ds()]}))}function KK(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Zl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function qK(e,t,n,r){return Zl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const GK=e=>e==="sequential"||e==="loop",i2=e=>!U0(e.agentType),WK=3,YK=e=>eg.find(t=>t.id===(e??"llm"))??eg[0];function s2(e){return e.name.trim().length===0?"缺少名称":U0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:r2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function o2(e,t=[]){const n=[],r=s2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),i2(e)&&e.subAgents.forEach((i,s)=>n.push(...o2(i,[...t,s]))),n}function a2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=ku(e,t),o=YK(s.agentType),a=o.icon,l=t.length===0,c=L1(t,n),d=i2(s),u=d&&t.length{const y=HK(e,t),v=ku(y,t).subAgents.length-1;i(y,[...t,v])},p=()=>i(KK(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&GK(ku(e,g).agentType),[w,m]=S.useState(!1),x=y=>{y.preventDefault(),y.stopPropagation(),m(!1);const v=y.dataTransfer.getData("application/x-agent-path");if(!v)return;let k;try{k=JSON.parse(v)}catch{return}if(!L1(k.slice(0,-1),g))return;const _=k[k.length-1],C=t[t.length-1];_!==C&&i(qK(e,g,_,C),[...g,C])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${b?"is-draggable":""} ${w?"is-dragover":""} ${s2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:b,onDragStart:b?y=>{y.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),y.dataTransfer.effectAllowed="move",y.stopPropagation()}:void 0,onDragOver:b?y=>{y.preventDefault(),m(!0)}:void 0,onDragLeave:b?()=>m(!1):void 0,onDrop:b?x:void 0,onClick:()=>r(t),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[u&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:y=>{y.stopPropagation(),h()},children:f.jsx(ss,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:y=>{y.stopPropagation(),p()},children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]})]}),d&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((y,v)=>f.jsx(a2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function XK({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){var ye,W;const[s,o]=S.useState(()=>r??ds()),[a,l]=S.useState(!1),[c,d]=S.useState(null),[u,h]=S.useState(!1),[p,g]=S.useState("type"),b=S.useRef(null),[w,m]=S.useState(""),x=async $=>{var X;const G=(X=$.target.files)==null?void 0:X[0];if($.target.value="",!!G){m("");try{const me=await G.text();o(t2(me)),v([]),l(!1)}catch(me){m(`导入失败:${me instanceof Error?me.message:String(me)}`)}}},[y,v]=S.useState([]),k=S.useRef(null),_=S.useRef({}),C=S.useRef(null);C.current||(C.current=({meta:$,children:G})=>f.jsxs("section",{ref:X=>{_.current[$.id]=X},id:`cw-sec-${$.id}`,"data-step-id":$.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[$.label,$.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),G]}));const N=VK(s,y)?y:[],I=ku(s,N),A=$=>o(G=>Zl(G,N,X=>({...X,...$}))),P=($,G)=>{o($),G&&v(G)},R=I.builtinTools??[],F=I.mcpTools??[],O=I.tracingExporters??[],j=I.selectedSkills??[],M=$=>A({builtinTools:R.includes($)?R.filter(G=>G!==$):[...R,$]}),B=$=>{const G=O.includes($)?O.filter(X=>X!==$):[...O,$];A({tracingExporters:G,tracing:G.length>0?!0:I.tracing})},L=$=>o(G=>({...G,deployment:{...G.deployment??{feishuEnabled:!1},...$}})),D=r2(I.agentType),E=U0(I.agentType),V=I.name.trim().length===0,H=I.instruction.trim().length===0,T=(I.a2aUrl??"").trim().length===0,U=S.useMemo(()=>o2(s),[s]),Y=U.length===0,Z=S.useMemo(()=>{var $,G,X,me;return{type:!0,basic:!V&&(D||E||!H),model:!!(($=I.modelName)!=null&&$.trim()||(G=I.modelProvider)!=null&&G.trim()||(X=I.modelApiBase)!=null&&X.trim()),tools:R.length>0||F.length>0,skills:j.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,deploy:!0,subagents:(((me=I.subAgents)==null?void 0:me.length)??0)>0,review:Y}},[I,V,H,D,E,Y,R,F,j]),J=D||E?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing",...N.length===0?["deploy"]:[]],q=O1.filter($=>J.includes($.id)),ee=q.findIndex($=>$.id===p),le=$=>{var G;(G=_.current[$])==null||G.scrollIntoView({behavior:"smooth",block:"start"})};S.useEffect(()=>{if(c)return;const $=k.current;if(!$)return;const G=new IntersectionObserver(X=>{var de,Ae;const pe=(Ae=(de=X.filter(_e=>_e.isIntersecting).sort((_e,mt)=>_e.boundingClientRect.top-mt.boundingClientRect.top)[0])==null?void 0:de.target)==null?void 0:Ae.dataset.stepId;pe&&g(pe)},{root:$,rootMargin:"0px 0px -65% 0px",threshold:0});for(const X of Object.values(_.current))X&&G.observe(X);return()=>G.disconnect()},[c]);const ce=async()=>{if(!Y){l(!0),U[0]&&v(U[0].path);return}const $=WC(s),G=[],X=new Set,me=pe=>{for(const de of pe.selectedSkills??[]){const Ae=`${de.namespace}/${de.slug}`;X.has(Ae)||(X.add(Ae),G.push(de))}(pe.subAgents??[]).forEach(me)};if(me(s),G.length>0){h(!0);try{const pe=await Promise.all(G.map(Ae=>jK(Ae.slug,Ae.namespace).catch(_e=>(console.warn(`下载技能失败:${Ae.name}`,_e),[])))),de=new Set($.files.map(Ae=>Ae.path));for(const Ae of pe)for(const _e of Ae)de.has(_e.path)||($.files.push(_e),de.add(_e.path))}finally{h(!1)}}d($)};if(c){const $=async(G,X,me)=>qN(G.name,G.files,{region:"cn-beijing",projectName:"default"},{...me,author:i,onStage:X});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>d(null),children:[f.jsx(PN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(fl,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(z0,{project:c,onChange:d,onDeploy:$,onAgentAdded:n,feishuEnabled:!!((ye=s.deployment)!=null&&ye.feishuEnabled)})})]})}const ae=C.current,se=$=>O1.find(G=>G.id===$);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(a2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:P})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:eg.map($=>{const G=(I.agentType??"llm")===$.id,X=$.icon;return f.jsxs("label",{className:`cw-typeradio-item ${G?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:G,onChange:()=>A({agentType:$.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(X,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:$.label})]})})]},$.id)})}),U.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",U.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:U.map($=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v($.path)},children:[$.name," · ",$.problem]},$.path.join(".")+$.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:k,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(ae,{meta:se("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&V?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:$=>A({name:$.target.value})}),a&&V&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:$=>A({description:$.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),D?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:$=>A({maxIterations:Math.max(1,Number($.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):E?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&T?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:$=>A({a2aUrl:$.target.value})}),a&&T?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&H?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… 你的目标是…… 约束: -- ……`,onChange:F=>A({instruction:F.target.value})}),a&&H?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!D&&!k&&f.jsxs(f.Fragment,{children:[f.jsx(ae,{meta:se("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:F=>A({modelName:F.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:F=>A({modelProvider:F.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:F=>A({modelApiBase:F.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(ae,{meta:se("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(R1,{items:UC,selected:R,onToggle:M})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(zK,{tools:$,onChange:F=>A({mcpTools:F})})]})]})}),f.jsx(ae,{meta:se("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 skills/ 目录。"}),f.jsx(UK,{selected:j,onChange:F=>A({selectedSkills:F})})]})}),f.jsx(ae,{meta:se("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.memory.shortTerm,onChange:F=>A({memory:{...I.memory,shortTerm:F}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:FN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(sp,{options:VC,value:I.shortTermBackend,onChange:F=>A({shortTermBackend:F})})]}),f.jsx(vi,{checked:I.memory.longTerm,onChange:F=>A({memory:{...I.memory,longTerm:F}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:gu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(sp,{options:HC,value:I.longTermBackend,onChange:F=>A({longTermBackend:F})}),f.jsx(vi,{checked:!!I.autoSaveSession,onChange:F=>A({autoSaveSession:F}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:gu})]})]})}),f.jsx(ae,{meta:se("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.knowledgebase,onChange:F=>A({knowledgebase:F}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:gu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(sp,{options:KC,value:I.knowledgebaseBackend,onChange:F=>A({knowledgebaseBackend:F})})]})]})}),f.jsx(ae,{meta:se("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.tracing,onChange:F=>A({tracing:F}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:Ky}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(R1,{items:qC,selected:O,onToggle:B})]}),f.jsx(vi,{checked:I.enableA2ui,onChange:F=>A({enableA2ui:F}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:HB})]})}),N.length===0&&f.jsx(ae,{meta:se("deploy"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:!!((Y=s.deployment)!=null&&Y.feishuEnabled),onChange:F=>L({feishuEnabled:F}),title:"连接飞书",desc:"部署后在同一个 AgentKit runtime 内启动飞书 Channel,用飞书消息触发当前 Agent。",icon:Xd}),((W=s.deployment)==null?void 0:W.feishuEnabled)&&f.jsx("div",{className:"cw-field cw-subfield",children:f.jsx("span",{className:"cw-help",children:"App ID、App Secret 等运行时变量请在生成项目后的预览页右侧“环境变量”面板中填写。"})})]})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(ee,0)/Math.max(q.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),q.map(F=>{const G=F.id===p,le=Z[F.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${G?"is-active":""} ${le?"is-done":""}`,onClick:()=>ce(F.id),"aria-current":G?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:F.label}),F.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:F.hint})]})]})},F.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:X?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),U[0]&&v(U[0].path)},children:["待补全(",U.length,"):",U[0].name," · ",U[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[w&&f.jsx("span",{className:"cw-footer-importerr",children:w}),f.jsx("input",{ref:b,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:x}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var F;return(F=b.current)==null?void 0:F.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(PB,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:ue,disabled:!X||u,children:u?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(fl,{className:"cw-i"}),"生成项目"]})})]})]})]})}function hr(e){return{...ds(),...e}}const QK=[{id:"support",icon:zB,draft:hr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:SB,draft:hr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:VB,draft:hr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:AB,draft:hr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:QB,draft:hr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:r$,draft:hr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[hr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),hr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),hr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function ZK(e){const t=[];return e.tools.length&&t.push({icon:Wy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:kB,label:"记忆"}),e.knowledgebase&&t.push({icon:EB,label:"知识库"}),e.tracing&&t.push({icon:wB,label:"观测"}),e.subAgents.length&&t.push({icon:ZB,label:`子Agent ${e.subAgents.length}`}),t}function JK({onBack:e,onCreate:t}){const[n,r]=S.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(t7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(e7,{onPick:r})})}function e7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:QK.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function t7({template:e,onBack:t,onCreate:n}){const[r,i]=S.useState(e.draft.name),s=e.icon,o=ZK(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(PN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:n7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Gn,{className:"icon"})]})]})]})}function n7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function mt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function pf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}ku.prototype=pf.prototype={constructor:ku,on:function(e,t){var n=this._,r=i7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),D1.hasOwnProperty(t)?{space:D1[t],local:e}:e}function o7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tg&&t.documentElement.namespaceURI===tg?t.createElement(e):t.createElementNS(n,e)}}function a7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function l2(e){var t=mf(e);return(t.local?a7:o7)(t)}function l7(){}function V0(e){return e==null?l7:function(){return this.querySelector(e)}}function c7(e){typeof e!="function"&&(e=V0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=y&&(y=x+1);!(E=w[y])&&++y=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function L7(e){e||(e=P7);function t(u,h){return u&&h?e(u.__data__,h.__data__):!u-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function D7(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function j7(){return Array.from(this)}function B7(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Y7:typeof t=="function"?Q7:X7)(e,t,n??"")):_o(this.node(),e)}function _o(e,t){return e.style.getPropertyValue(t)||h2(e).getComputedStyle(e,null).getPropertyValue(t)}function J7(e){return function(){delete this[e]}}function eq(e,t){return function(){this[e]=t}}function tq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function nq(e,t){return arguments.length>1?this.each((t==null?J7:typeof t=="function"?tq:eq)(e,t)):this.node()[e]}function p2(e){return e.trim().split(/^|\s+/)}function H0(e){return e.classList||new m2(e)}function m2(e){this._node=e,this._names=p2(e.getAttribute("class")||"")}m2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function g2(e,t){for(var n=H0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function ng(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}ng.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fq(e){return!e.ctrlKey&&!e.button}function zq(){return this.parentNode}function Uq(e,t){return t??{x:e.x,y:e.y}}function Vq(){return navigator.maxTouchPoints||"ontouchstart"in this}function _2(){var e=Fq,t=zq,n=Uq,r=Vq,i={},s=pf("start","drag","end"),o=0,a,l,c,d,u=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",w).on("touchmove.drag",m,$q).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,E){if(!(d||!e.call(this,v,E))){var _=y(this,t.call(this,v,E),v,E,"mouse");_&&(an(v.view).on("mousemove.drag",g,wl).on("mouseup.drag",b,wl),w2(v.view),op(v),c=!1,a=v.clientX,l=v.clientY,_("start",v))}}function g(v){if(ro(v),!c){var E=v.clientX-a,_=v.clientY-l;c=E*E+_*_>u}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),v2(v.view,c),ro(v),i.mouse("end",v)}function w(v,E){if(e.call(this,v,E)){var _=v.changedTouches,C=t.call(this,v,E),N=_.length,I,A;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Gc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Gc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Kq.exec(e))?new Qt(t[1],t[2],t[3],1):(t=qq.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Gq.exec(e))?Gc(t[1],t[2],t[3],t[4]):(t=Wq.exec(e))?Gc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Yq.exec(e))?V1(t[1],t[2]/100,t[3]/100,1):(t=Xq.exec(e))?V1(t[1],t[2]/100,t[3]/100,t[4]):j1.hasOwnProperty(e)?F1(j1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function F1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Gc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function Jq(e){return e instanceof ec||(e=Qi(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function rg(e,t,n,r){return arguments.length===1?Jq(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}K0(Qt,rg,E2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(zi(this.r),zi(this.g),zi(this.b),wd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:z1,formatHex:z1,formatHex8:eG,formatRgb:U1,toString:U1}));function z1(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}`}function eG(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}${Pi((isNaN(this.opacity)?1:this.opacity)*255)}`}function U1(){const e=wd(this.opacity);return`${e===1?"rgb(":"rgba("}${zi(this.r)}, ${zi(this.g)}, ${zi(this.b)}${e===1?")":`, ${e})`}`}function wd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pi(e){return e=zi(e),(e<16?"0":"")+e.toString(16)}function V1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $n(e,t,n,r)}function k2(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof ec||(e=Qi(e)),!e)return new $n;if(e instanceof $n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new $n(o,a,l,e.opacity)}function tG(e,t,n,r){return arguments.length===1?k2(e):new $n(e,t,n,r??1)}function $n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}K0($n,tG,E2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new $n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(ap(e>=240?e-240:e+120,i,r),ap(e,i,r),ap(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n(H1(this.h),Wc(this.s),Wc(this.l),wd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wd(this.opacity);return`${e===1?"hsl(":"hsla("}${H1(this.h)}, ${Wc(this.s)*100}%, ${Wc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function H1(e){return e=(e||0)%360,e<0?e+360:e}function Wc(e){return Math.max(0,Math.min(1,e||0))}function ap(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const q0=e=>()=>e;function nG(e,t){return function(n){return e+n*t}}function rG(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function iG(e){return(e=+e)==1?S2:function(t,n){return n-t?rG(t,n,e):q0(isNaN(t)?n:t)}}function S2(e,t){var n=t-e;return n?nG(e,n):q0(isNaN(e)?t:e)}const vd=function e(t){var n=iG(t);function r(i,s){var o=n((i=rg(i)).r,(s=rg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=S2(i.opacity,s.opacity);return function(d){return i.r=o(d),i.g=a(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r}(1);function sG(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=lp.lastIndex;return n180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(i(u)+"rotate(",null,r)-2,x:er(c,d)})):d&&u.push(i(u)+"rotate("+d+r)}function a(c,d,u,h){c!==d?h.push({i:u.push(i(u)+"skewX(",null,r)-2,x:er(c,d)}):d&&u.push(i(u)+"skewX("+d+r)}function l(c,d,u,h,p,g){if(c!==u||d!==h){var b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,u)},{i:b-2,x:er(d,h)})}else(u!==1||h!==1)&&p.push(i(p)+"scale("+u+","+h+")")}return function(c,d){var u=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,h),o(c.rotate,d.rotate,u,h),a(c.skewX,d.skewX,u,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(p){for(var g=-1,b=h.length,w;++g=0&&e._call.call(void 0,t),e=e._next;--Eo}function G1(){Zi=(Ed=El.now())+gf,Eo=xa=0;try{wG()}finally{Eo=0,_G(),Zi=0}}function vG(){var e=El.now(),t=e-Ed;t>C2&&(gf-=t,Ed=e)}function _G(){for(var e,t=_d,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_d=n);wa=e,og(r)}function og(e){if(!Eo){xa&&(xa=clearTimeout(xa));var t=e-Zi;t>24?(e<1/0&&(xa=setTimeout(G1,e-El.now()-gf)),la&&(la=clearInterval(la))):(la||(Ed=El.now(),la=setInterval(vG,C2)),Eo=1,M2(G1))}}function W1(e,t,n){var r=new kd;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var EG=pf("start","end","cancel","interrupt"),kG=[],O2=0,Y1=1,ag=2,Nu=3,X1=4,lg=5,Tu=6;function yf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;SG(e,n,{name:t,index:r,group:i,on:EG,tween:kG,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:O2})}function W0(e,t){var n=Yn(e,t);if(n.state>O2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Nu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function SG(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=I2(s,0,n.time);function s(c){n.state=Y1,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var d,u,h,p;if(n.state!==Y1)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Nu)return W1(o);p.state===X1?(p.state=Tu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+dag&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function tW(e,t,n){var r,i,s=eW(t)?W0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function nW(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(tW(n,e,t))}function rW(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function iW(){return this.on("end.remove",rW(this._id))}function sW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=V0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function MW(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function wr(e,t,n){this.k=e,this.x=t,this.y=n}wr.prototype={constructor:wr,scale:function(e){return e===1?this:new wr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var bf=new wr(1,0,0);D2.prototype=wr.prototype;function D2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return bf;return e.__zoom}function cp(e){e.stopImmediatePropagation()}function ca(e){e.preventDefault(),e.stopImmediatePropagation()}function IW(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function OW(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Q1(){return this.__zoom||bf}function RW(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function LW(){return navigator.maxTouchPoints||"ontouchstart"in this}function PW(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function j2(){var e=IW,t=OW,n=PW,r=RW,i=LW,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Su,c=pf("start","zoom","end"),d,u,h,p=500,g=150,b=0,w=10;function m(O){O.property("__zoom",Q1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",P).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",$).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(O,j,M,B){var L=O.selection?O.selection():O;L.property("__zoom",Q1),O!==L?E(O,j,M,B):L.interrupt().each(function(){_(this,arguments).event(B).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},m.scaleBy=function(O,j,M,B){m.scaleTo(O,function(){var L=this.__zoom.k,D=typeof j=="function"?j.apply(this,arguments):j;return L*D},M,B)},m.scaleTo=function(O,j,M,B){m.transform(O,function(){var L=t.apply(this,arguments),D=this.__zoom,k=M==null?v(L):typeof M=="function"?M.apply(this,arguments):M,V=D.invert(k),H=typeof j=="function"?j.apply(this,arguments):j;return n(y(x(D,H),k,V),L,o)},M,B)},m.translateBy=function(O,j,M,B){m.transform(O,function(){return n(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,B)},m.translateTo=function(O,j,M,B,L){m.transform(O,function(){var D=t.apply(this,arguments),k=this.__zoom,V=B==null?v(D):typeof B=="function"?B.apply(this,arguments):B;return n(bf.translate(V[0],V[1]).scale(k.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof M=="function"?-M.apply(this,arguments):-M),D,o)},B,L)};function x(O,j){return j=Math.max(s[0],Math.min(s[1],j)),j===O.k?O:new wr(j,O.x,O.y)}function y(O,j,M){var B=j[0]-M[0]*O.k,L=j[1]-M[1]*O.k;return B===O.x&&L===O.y?O:new wr(O.k,B,L)}function v(O){return[(+O[0][0]+ +O[1][0])/2,(+O[0][1]+ +O[1][1])/2]}function E(O,j,M,B){O.on("start.zoom",function(){_(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(B).end()}).tween("zoom",function(){var L=this,D=arguments,k=_(L,D).event(B),V=t.apply(L,D),H=M==null?v(V):typeof M=="function"?M.apply(L,D):M,T=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),U=L.__zoom,X=typeof j=="function"?j.apply(L,D):j,Z=l(U.invert(H).concat(T/U.k),X.invert(H).concat(T/X.k));return function(J){if(J===1)J=X;else{var q=Z(J),ee=T/q[2];J=new wr(ee,H[0]-q[0]*ee,H[1]-q[1]*ee)}k.zoom(null,J)}})}function _(O,j,M){return!M&&O.__zooming||new C(O,j)}function C(O,j){this.that=O,this.args=j,this.active=0,this.sourceEvent=null,this.extent=t.apply(O,j),this.taps=0}C.prototype={event:function(O){return O&&(this.sourceEvent=O),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(O,j){return this.mouse&&O!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&O!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&O!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(O){var j=an(this.that).datum();c.call(O,this.that,new MW(O,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),j)}};function N(O,...j){if(!e.apply(this,arguments))return;var M=_(this,j).event(O),B=this.__zoom,L=Math.max(s[0],Math.min(s[1],B.k*Math.pow(2,r.apply(this,arguments)))),D=jn(O);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=B.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(B.k===L)return;M.mouse=[D,B.invert(D)],Au(this),M.start()}ca(O),M.wheel=setTimeout(k,g),M.zoom("mouse",n(y(x(B,L),M.mouse[0],M.mouse[1]),M.extent,o));function k(){M.wheel=null,M.end()}}function I(O,...j){if(h||!e.apply(this,arguments))return;var M=O.currentTarget,B=_(this,j,!0).event(O),L=an(O.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",T,!0),D=jn(O,M),k=O.clientX,V=O.clientY;w2(O.view),cp(O),B.mouse=[D,this.__zoom.invert(D)],Au(this),B.start();function H(U){if(ca(U),!B.moved){var X=U.clientX-k,Z=U.clientY-V;B.moved=X*X+Z*Z>b}B.event(U).zoom("mouse",n(y(B.that.__zoom,B.mouse[0]=jn(U,M),B.mouse[1]),B.extent,o))}function T(U){L.on("mousemove.zoom mouseup.zoom",null),v2(U.view,B.moved),ca(U),B.event(U).end()}}function A(O,...j){if(e.apply(this,arguments)){var M=this.__zoom,B=jn(O.changedTouches?O.changedTouches[0]:O,this),L=M.invert(B),D=M.k*(O.shiftKey?.5:2),k=n(y(x(M,D),B,L),t.apply(this,j),o);ca(O),a>0?an(this).transition().duration(a).call(E,k,B,O):an(this).call(m.transform,k,B,O)}}function P(O,...j){if(e.apply(this,arguments)){var M=O.touches,B=M.length,L=_(this,j,O.changedTouches.length===B).event(O),D,k,V,H;for(cp(O),k=0;k`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},kl=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],B2=["Enter"," ","Escape"],$2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ko;(function(e){e.Strict="strict",e.Loose="loose"})(ko||(ko={}));var Ui;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ui||(Ui={}));var Sl;(function(e){e.Partial="partial",e.Full="full"})(Sl||(Sl={}));const F2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Hr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Hr||(Hr={}));var Nl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Nl||(Nl={}));var ge;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ge||(ge={}));const Z1={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top};function z2(e){return e===null?null:e?"valid":"invalid"}const U2=e=>"id"in e&&"source"in e&&"target"in e,DW=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),X0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tc=(e,t=[0,0])=>{const{width:n,height:r}=Rr(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},jW=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):X0(i)?i:t.nodeLookup.get(i.id));const a=o?Sd(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return xf(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return wf(n)},nc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=xf(n,Sd(i)),r=!0)}),r?wf(n):{x:0,y:0,width:0,height:0}},Q0=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...Ho(t,[n,r,i]),width:t.width/i,height:t.height/i},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:h=!1}=c;if(o&&!u||h)continue;const p=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,b=Tl(a,No(c)),w=(p??0)*(g??0),m=s&&b>0;(!c.internals.handleBounds||m||b>=w||c.dragging)&&l.push(c)}return l},BW=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function $W(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function FW({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=$W(e,o),l=nc(a),c=J0(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function V2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let u=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(u=[[l,c],[l+p,c+g]])}else a&&es(o.extent)&&(u=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=es(u)?Ji(t,u,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*d[0],y:h.y-c+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function zW({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(b=>b.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=BW(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!i)return{edges:d,nodes:o};const u=await i({nodes:o,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:o}:{edges:[],nodes:[]}:u}const So=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ji=(e={x:0,y:0},t,n)=>({x:So(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:So(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function H2(e,t,n){const{width:r,height:i}=Rr(n),{x:s,y:o}=n.internals.positionAbsolute;return Ji(e,[[s,o],[s+r,o+i]],t)}const J1=(e,t,n)=>en?-So(Math.abs(e-n),1,t)/t:0,Z0=(e,t,n=15,r=40)=>{const i=J1(e.x,r,t.width-r)*n,s=J1(e.y,r,t.height-r)*n;return[i,s]},xf=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),cg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),wf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),No=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Sd=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},K2=(e,t)=>wf(xf(cg(e),cg(t))),Tl=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},e_=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),q2=(e,t)=>(n,r)=>{},rc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ho=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?rc(a,o):a},To=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function vs(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function UW(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=vs(e,n),i=vs(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=vs(e.top??e.y??0,n),i=vs(e.bottom??e.y??0,n),s=vs(e.left??e.x??0,t),o=vs(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function VW(e,t,n,r,i,s){const{x:o,y:a}=To(e,[t,n,r]),{x:l,y:c}=To({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-l,u=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const J0=(e,t,n,r,i,s)=>{const o=UW(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),d=So(c,r,i),u=e.x+e.width/2,h=e.y+e.height/2,p=t/2-u*d,g=n/2-h*d,b=VW(e,p,g,d,t,n),w={left:Math.min(b.left-o.left,0),top:Math.min(b.top-o.top,0),right:Math.min(b.right-o.right,0),bottom:Math.min(b.bottom-o.bottom,0)};return{x:p-w.left+w.right,y:g-w.top+w.bottom,zoom:d}},Al=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function es(e){return e!=null&&e!=="parent"}function Rr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function G2(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function W2(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function t_(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function HW(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function KW(e){return{...$2,...e||{}}}function za(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=Ho({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?rc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const eb=e=>({width:e.offsetWidth,height:e.offsetHeight}),Y2=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qW=["INPUT","SELECT","TEXTAREA"];function X2(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:qW.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Q2=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=Q2(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},n_=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...eb(o)}})};function Z2({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function Qc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function r_({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case ge.Left:return[t-Qc(t-r,s),n];case ge.Right:return[t+Qc(r-t,s),n];case ge.Top:return[t,n-Qc(n-i,s)];case ge.Bottom:return[t,n+Qc(i-n,s)]}}function J2({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top,curvature:o=.25}){const[a,l]=r_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,d]=r_({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[u,h,p,g]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${i}`,u,h,p,g]}function eM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const YW=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,XW=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),QW=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||YW;let i;return U2(e)?i={...e}:i={...e,id:r(e)},XW(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function tM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=eM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const i_={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}},ZW=({source:e,sourcePosition:t=ge.Bottom,target:n})=>t===ge.Left||t===ge.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function JW({source:e,sourcePosition:t=ge.Bottom,target:n,targetPosition:r=ge.Top,center:i,offset:s,stepPosition:o}){const a=i_[t],l=i_[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=ZW({source:c,sourcePosition:t,target:d}),h=u.x!==0?"x":"y",p=u[h];let g=[],b,w;const m={x:0,y:0},x={x:0,y:0},[,,y,v]=eM({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(b=i.x??c.x+(d.x-c.x)*o,w=i.y??(c.y+d.y)/2):(b=i.x??(c.x+d.x)/2,w=i.y??c.y+(d.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,y:d.y}],I=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:d.y}],I=[{x:d.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const O=Math.abs(e[h]-n[h]);if(O<=s){const j=Math.min(s-1,s-O);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*j:x[h]=(d[h]>n[h]?-1:1)*j}}if(t!==r){const O=h==="x"?"y":"x",j=a[h]===l[O],M=c[O]>d[O],B=c[O]=$?(b=(A.x+P.x)/2,w=g[0].y):(b=g[0].x,w=(A.y+P.y)/2)}const E={x:c.x+m.x,y:c.y+m.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],b,w,y,v]}function eY(e,t,n,r){const i=Math.min(s_(e,t)/2,s_(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function dg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function nY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=dg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const nM=1e3,rY=10,tb={nodeOrigin:[0,0],nodeExtent:kl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},iY={...tb,checkEquality:!0};function nb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function sY(e,t,n){const r=nb(tb,n);for(const i of e.values())if(i.parentId)ib(i,e,t,r);else{const s=tc(i,r.nodeOrigin),o=es(i.extent)?i.extent:r.nodeExtent,a=Ji(s,o,Rr(i));i.internals.positionAbsolute=a}}function oY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function rb(e){return e==="manual"}function fg(e,t,n,r={}){var d,u;const i=nb(iY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!rb(i.zIndexMode)?nM:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=tc(h,i.nodeOrigin),b=es(h.extent)?h.extent:i.nodeExtent,w=Ji(g,b,Rr(h));p={...i.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(u=h.measured)==null?void 0:u.height},internals:{positionAbsolute:w,handleBounds:oY(h,p),z:rM(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&ib(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function aY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ib(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=nb(tb,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aY(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*rY),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const u=s&&!rb(l)?nM:0,{x:h,y:p,z:g}=lY(e,d,o,a,u,l),{positionAbsolute:b}=e.internals,w=h!==b.x||p!==b.y;(w||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:p}:b,z:g}})}function rM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return rb(n)?r:r+(e.selected?t:0)}function lY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=Rr(e),c=tc(e,n),d=es(e.extent)?Ji(c,e.extent,l):c;let u=Ji({x:o+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=H2(u,l,t));const h=rM(e,i,s),p=t.internals.z??0;return{x:u.x,y:u.y,z:p>=h?p+1:h}}function sb(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??No(l),d=K2(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var y;const d=l.internals.positionAbsolute,u=Rr(l),h=l.origin??r,p=a.x0||g>0||m||x)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+x}}),(y=n.get(c))==null||y.forEach(v=>{e.some(E=>E.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(u.width0){const p=sb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function uY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function c_(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function iM(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,d=`${s}-${a}--${i}-${o}`;c_("source",l,d,e,i,o),c_("target",l,c,e,s,a),t.set(r.id,r)}}function sM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:sM(n,t):!1}function u_(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function dY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!sM(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function up({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,d]of t){const u=(o=n.get(c))==null?void 0:o.internals.userNode;u&&i.push({...u,position:d.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function fY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=rc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function hY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,h=null,p=!1,g=!1,b=null;function w({noDragClassName:x,handleSelector:y,domNode:v,isSelectable:E,nodeId:_,nodeClickDistance:C=0}){h=an(v);function N({x:R,y:$}){const{nodeLookup:O,nodeExtent:j,snapGrid:M,snapToGrid:B,nodeOrigin:L,onNodeDrag:D,onSelectionDrag:k,onError:V,updateNodePositions:H}=t();s={x:R,y:$};let T=!1;const U=a.size>1,X=U&&j?cg(nc(a)):null,Z=U&&B?fY({dragItems:a,snapGrid:M,x:R,y:$}):null;for(const[J,q]of a){if(!O.has(J))continue;let ee={x:R-q.distance.x,y:$-q.distance.y};B&&(ee=Z?{x:Math.round(ee.x+Z.x),y:Math.round(ee.y+Z.y)}:rc(ee,M));let ce=null;if(U&&j&&!q.extent&&X){const{positionAbsolute:se}=q.internals,ye=se.x-X.x+j[0][0],Y=se.x+q.measured.width-X.x2+j[1][0],W=se.y-X.y+j[0][1],F=se.y+q.measured.height-X.y2+j[1][1];ce=[[ye,W],[Y,F]]}const{position:ue,positionAbsolute:ae}=V2({nodeId:J,nextPosition:ee,nodeLookup:O,nodeExtent:ce||j,nodeOrigin:L,onError:V});T=T||q.position.x!==ue.x||q.position.y!==ue.y,q.position=ue,q.internals.positionAbsolute=ae}if(g=g||T,!!T&&(H(a,!0),b&&(r||D||!_&&k))){const[J,q]=up({nodeId:_,dragItems:a,nodeLookup:O});r==null||r(b,a,J,q),D==null||D(b,J,q),_||k==null||k(b,q)}}async function I(){if(!d)return;const{transform:R,panBy:$,autoPanSpeed:O,autoPanOnNodeDrag:j}=t();if(!j){l=!1,cancelAnimationFrame(o);return}const[M,B]=Z0(c,d,O);(M!==0||B!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-B/R[2],await $({x:M,y:B})&&N(s)),o=requestAnimationFrame(I)}function A(R){var U;const{nodeLookup:$,multiSelectionActive:O,nodesDraggable:j,transform:M,snapGrid:B,snapToGrid:L,selectNodesOnDrag:D,onNodeDragStart:k,onSelectionDragStart:V,unselectNodesAndEdges:H}=t();u=!0,(!D||!E)&&!O&&_&&((U=$.get(_))!=null&&U.selected||H()),E&&D&&_&&(e==null||e(_));const T=za(R.sourceEvent,{transform:M,snapGrid:B,snapToGrid:L,containerBounds:d});if(s=T,a=dY($,j,T,_),a.size>0&&(n||k||!_&&V)){const[X,Z]=up({nodeId:_,dragItems:a,nodeLookup:$});n==null||n(R.sourceEvent,a,X,Z),k==null||k(R.sourceEvent,X,Z),_||V==null||V(R.sourceEvent,Z)}}const P=_2().clickDistance(C).on("start",R=>{const{domNode:$,nodeDragThreshold:O,transform:j,snapGrid:M,snapToGrid:B}=t();d=($==null?void 0:$.getBoundingClientRect())||null,p=!1,g=!1,b=R.sourceEvent,O===0&&A(R),s=za(R.sourceEvent,{transform:j,snapGrid:M,snapToGrid:B,containerBounds:d}),c=zn(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:$,transform:O,snapGrid:j,snapToGrid:M,nodeDragThreshold:B,nodeLookup:L}=t(),D=za(R.sourceEvent,{transform:O,snapGrid:j,snapToGrid:M,containerBounds:d});if(b=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||_&&!L.has(_))&&(p=!0),!p){if(!l&&$&&u&&(l=!0,I()),!u){const k=zn(R.sourceEvent,d),V=k.x-c.x,H=k.y-c.y;Math.sqrt(V*V+H*H)>B&&A(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&u&&(c=zn(R.sourceEvent,d),N(D))}}).on("end",R=>{if(!u||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:$,updateNodePositions:O,onNodeDragStop:j,onSelectionDragStop:M}=t();if(g&&(O(a,!1),g=!1),i||j||!_&&M){const[B,L]=up({nodeId:_,dragItems:a,nodeLookup:$,dragging:!1});i==null||i(R.sourceEvent,a,B,L),j==null||j(R.sourceEvent,B,L),_||M==null||M(R.sourceEvent,L)}}}).filter(R=>{const $=R.target;return!R.button&&(!x||!u_($,`.${x}`,v))&&(!y||u_($,y,v))});h.call(P)}function m(){h==null||h.on(".drag",null)}return{update:w,destroy:m}}function pY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Tl(i,No(s))>0&&r.push(s);return r}const mY=250;function gY(e,t,n,r){var a,l;let i=[],s=1/0;const o=pY(e,n,t+mY);for(const c of o){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:h,y:p}=ts(c,u,u.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(d=>d.type===c)??i[0]}return i[0]}function oM(e,t,n,r,i,s=!1){var c,d,u;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((u=o.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ts(o,l,l.position,!0)}:l}function aM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function yY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const lM=()=>!0;function bY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:b,onConnectEnd:w,isValidConnection:m=lM,onReconnectEnd:x,updateConnection:y,getTransform:v,getFromHandle:E,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:N}){const I=Y2(e.target);let A=0,P;const{x:R,y:$}=zn(e),O=aM(s,N),j=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!j||!O)return;const B=oM(i,O,r,l,t);if(!B)return;let L=zn(e,j),D=!1,k=null,V=!1,H=null;function T(){if(!d||!j)return;const[ue,ae]=Z0(L,j,_);h({x:ue,y:ae}),A=requestAnimationFrame(T)}const U={...B,nodeId:i,type:O,position:B.position},X=l.get(i);let J={inProgress:!0,isValid:null,from:ts(X,U,ge.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:X,to:L,toHandle:null,toPosition:Z1[U.position],toNode:null,pointer:L};function q(){M=!0,y(J),g==null||g(e,{nodeId:i,handleId:r,handleType:O})}C===0&&q();function ee(ue){if(!M){const{x:F,y:G}=zn(ue),le=F-R,me=G-$;if(!(le*le+me*me>C*C))return;q()}if(!E()||!U){ce(ue);return}const ae=v();L=zn(ue,j),P=gY(Ho(L,ae,!1,[1,1]),n,l,U),D||(T(),D=!0);const se=cM(ue,{handle:P,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:u,nodeLookup:l});H=se.handleDomNode,k=se.connection,V=yY(!!P,se.isValid);const ye=l.get(i),Y=ye?ts(ye,U,ge.Left,!0):J.from,W={...J,from:Y,isValid:V,to:se.toHandle&&V?To({x:se.toHandle.x,y:se.toHandle.y},ae):L,toHandle:se.toHandle,toPosition:V&&se.toHandle?se.toHandle.position:Z1[U.position],toNode:se.toHandle?l.get(se.toHandle.nodeId):null,pointer:L};y(W),J=W}function ce(ue){if(!("touches"in ue&&ue.touches.length>0)){if(M){(P||H)&&k&&V&&(b==null||b(k));const{inProgress:ae,...se}=J,ye={...se,toPosition:J.toHandle?J.toPosition:null};w==null||w(ue,ye),s&&(x==null||x(ue,ye))}p(),cancelAnimationFrame(A),D=!1,V=!1,k=null,H=null,I.removeEventListener("mousemove",ee),I.removeEventListener("mouseup",ce),I.removeEventListener("touchmove",ee),I.removeEventListener("touchend",ce)}}I.addEventListener("mousemove",ee),I.addEventListener("mouseup",ce),I.addEventListener("touchmove",ee),I.addEventListener("touchend",ce)}function cM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=lM,nodeLookup:d}){const u=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),b=o.elementFromPoint(p,g),w=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:h,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const x=aM(void 0,w),y=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),E=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!x)return m;const C={source:u?y:r,sourceHandle:u?v:i,target:u?r:y,targetHandle:u?i:v};m.connection=C;const I=E&&_&&(n===ko.Strict?u&&x==="source"||!u&&x==="target":y!==r||v!==i);m.isValid=I&&c(C),m.toHandle=oM(y,x,v,d,n,!0)}return m}const hg={onPointerDown:bY,isValid:cM};function xY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:h=!0,inversePan:p=!1}){const g=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const v=n(),E=y.sourceEvent.ctrlKey&&Al()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,C=v[2]*Math.pow(2,_*E);t.scaleTo(C)};let b=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(b=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},m=y=>{const v=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const E=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[E[0]-b[0],E[1]-b[1]];b=E;const C=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-_[0]*C,y:v[1]-_[1]*C},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},x=j2().on("start",w).on("zoom",u?m:null).on("zoom.wheel",h?g:null);i.call(x,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const vf=e=>({x:e.x,y:e.y,zoom:e.k}),dp=({x:e,y:t,zoom:n})=>bf.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),uM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),wY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,fp=(e,t=0,n=wY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},dM=e=>{const t=e.ctrlKey&&Al()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function vY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(qs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&o){const w=jn(d),m=dM(d),x=u*Math.pow(2,m);r.scaleTo(n,x,w,d);return}const h=d.deltaMode===1?20:1;let p=i===Ui.Vertical?0:d.deltaX*h,g=i===Ui.Horizontal?0:d.deltaY*h;!Al()&&d.shiftKey&&i!==Ui.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/u)*s,-(g/u)*s,{internal:!0});const b=vf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,b),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,b))}}function _Y({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=qs(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function EY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=vf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function kY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&uM(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,vf(s.transform)))}}function SY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&uM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=vf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function NY({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var w;const h=e||t,p=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(qs(u,`${c}-flow__node`)||qs(u,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||d&&!g||qs(u,a)&&g||qs(u,l)&&(!g||i&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((w=u.touches)==null?void 0:w.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const b=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&b}}function TY({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=j2().scaleExtent([t,n]).translateExtent(r),h=an(e).call(u);x({x:i.x,y:i.y,zoom:So(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),g=h.on("dblclick.zoom");u.wheelDelta(dM);async function b(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).transform(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}function w({noWheelClassName:P,noPanClassName:R,onPaneContextMenu:$,userSelectionActive:O,panOnScroll:j,panOnDrag:M,panOnScrollMode:B,panOnScrollSpeed:L,preventScrolling:D,zoomOnPinch:k,zoomOnScroll:V,zoomOnDoubleClick:H,zoomActivationKeyPressed:T,lib:U,onTransformChange:X,connectionInProgress:Z,paneClickDistance:J,selectionOnDrag:q}){O&&!c.isZoomingOrPanning&&m();const ee=j&&!T&&!O;u.clickDistance(q?1/0:!Fn(J)||J<0?0:J);const ce=ee?vY({zoomPanValues:c,noWheelClassName:P,d3Selection:h,d3Zoom:u,panOnScrollMode:B,panOnScrollSpeed:L,zoomOnPinch:k,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):_Y({noWheelClassName:P,preventScrolling:D,d3ZoomHandler:p});h.on("wheel.zoom",ce,{passive:!1});const ue=EY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});u.on("start",ue);const ae=kY({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!$,onPanZoom:s,onTransformChange:X});u.on("zoom",ae);const se=SY({zoomPanValues:c,panOnDrag:M,panOnScroll:j,onPaneContextMenu:$,onPanZoomEnd:a,onDraggingChange:l});u.on("end",se);const ye=NY({zoomActivationKeyPressed:T,panOnDrag:M,zoomOnScroll:V,panOnScroll:j,zoomOnDoubleClick:H,zoomOnPinch:k,userSelectionActive:O,noPanClassName:R,noWheelClassName:P,lib:U,connectionInProgress:Z});u.filter(ye),H?h.on("dblclick.zoom",g):h.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function x(P,R,$){const O=dp(P),j=u==null?void 0:u.constrain()(O,R,$);return j&&await b(j),j}async function y(P,R){const $=dp(P);return await b($,R),$}function v(P){if(h){const R=dp(P),$=h.property("__zoom");($.k!==P.zoom||$.x!==P.x||$.y!==P.y)&&(u==null||u.transform(h,R,null,{sync:!0}))}}function E(){const P=h?D2(h.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function _(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleTo(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}async function C(P,R){return h?new Promise($=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleBy(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>$(!0)),P)}):!1}function N(P){u==null||u.scaleExtent(P)}function I(P){u==null||u.translateExtent(P)}function A(P){const R=!Fn(P)||P<0?0:P;u==null||u.clickDistance(R)}return{update:w,destroy:m,setViewport:y,setViewportConstrained:x,getViewport:E,scaleTo:_,scaleBy:C,setScaleExtent:N,setTranslateExtent:I,syncViewport:v,setClickDistance:A}}var Ao;(function(e){e.Line="line",e.Handle="handle"})(Ao||(Ao={}));function AY({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function d_(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Dr(e,t){return Math.max(0,t-e)}function jr(e,t){return Math.max(0,e-t)}function Zc(e,t,n){return Math.max(0,t-e,e-n)}function f_(e,t){return e?!t:t}function CY(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,h=d&&u,{xSnapped:p,ySnapped:g}=n,{minWidth:b,maxWidth:w,minHeight:m,maxHeight:x}=r,{x:y,y:v,width:E,height:_,aspectRatio:C}=e;let N=Math.floor(d?p-e.pointerX:0),I=Math.floor(u?g-e.pointerY:0);const A=E+(l?-N:N),P=_+(c?-I:I),R=-s[0]*E,$=-s[1]*_;let O=Zc(A,b,w),j=Zc(P,m,x);if(o){let L=0,D=0;l&&N<0?L=Dr(y+N+R,o[0][0]):!l&&N>0&&(L=jr(y+A+R,o[1][0])),c&&I<0?D=Dr(v+I+$,o[0][1]):!c&&I>0&&(D=jr(v+P+$,o[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(a){let L=0,D=0;l&&N>0?L=jr(y+N,a[0][0]):!l&&N<0&&(L=Dr(y+A,a[1][0])),c&&I>0?D=jr(v+I,a[0][1]):!c&&I<0&&(D=Dr(v+P,a[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(i){if(d){const L=Zc(A/C,m,x)*C;if(O=Math.max(O,L),o){let D=0;!l&&!c||l&&!c&&h?D=jr(v+$+A/C,o[1][1])*C:D=Dr(v+$+(l?N:-N)/C,o[0][1])*C,O=Math.max(O,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=Dr(v+A/C,a[1][1])*C:D=jr(v+(l?N:-N)/C,a[0][1])*C,O=Math.max(O,D)}}if(u){const L=Zc(P*C,b,w)/C;if(j=Math.max(j,L),o){let D=0;!l&&!c||c&&!l&&h?D=jr(y+P*C+R,o[1][0])/C:D=Dr(y+(c?I:-I)*C+R,o[0][0])/C,j=Math.max(j,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=Dr(y+P*C,a[1][0])/C:D=jr(y+(c?I:-I)*C,a[0][0])/C,j=Math.max(j,D)}}}I=I+(I<0?j:-j),N=N+(N<0?O:-O),i&&(h?A>P*C?I=(f_(l,c)?-N:N)/C:N=(f_(l,c)?-I:I)*C:d?(I=N/C,c=l):(N=I*C,l=c));const M=l?y+N:y,B=c?v+I:v;return{width:E+(l?-N:N),height:_+(c?-I:I),x:s[0]*N*(l?-1:1)+M,y:s[1]*I*(c?-1:1)+B}}const fM={width:0,height:0,x:0,y:0},MY={...fM,pointerX:0,pointerY:0,aspectRatio:1};function IY(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function OY({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:d_("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:b,shouldResize:w}){let m={...fM},x={...MY};o={boundaries:d,resizeDirection:h,keepAspectRatio:u,controlDirection:d_(c)};let y,v=null,E=[],_,C,N,I=!1;const A=_2().on("start",P=>{const{nodeLookup:R,transform:$,snapGrid:O,snapToGrid:j,nodeOrigin:M,paneDomNode:B}=n();if(y=R.get(t),!y)return;v=(B==null?void 0:B.getBoundingClientRect())??null;const{xSnapped:L,ySnapped:D}=za(P.sourceEvent,{transform:$,snapGrid:O,snapToGrid:j,containerBounds:v});m={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},x={...m,pointerX:L,pointerY:D,aspectRatio:m.width/m.height},_=void 0,C=es(y.extent)?y.extent:void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=R.get(y.parentId)),_&&y.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),E=[],N=void 0;for(const[k,V]of R)if(V.parentId===t&&(E.push({id:k,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const H=IY(V,y,V.origin??M);N?N=[[Math.min(H[0][0],N[0][0]),Math.min(H[0][1],N[0][1])],[Math.max(H[1][0],N[1][0]),Math.max(H[1][1],N[1][1])]]:N=H}p==null||p(P,{...m})}).on("drag",P=>{const{transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j}=n(),M=za(P.sourceEvent,{transform:R,snapGrid:$,snapToGrid:O,containerBounds:v}),B=[];if(!y)return;const{x:L,y:D,width:k,height:V}=m,H={},T=y.origin??j,{width:U,height:X,x:Z,y:J}=CY(x,o.controlDirection,M,o.boundaries,o.keepAspectRatio,T,C,N),q=U!==k,ee=X!==V,ce=Z!==L&&q,ue=J!==D&ⅇif(!ce&&!ue&&!q&&!ee)return;if((ce||ue||T[0]===1||T[1]===1)&&(H.x=ce?Z:m.x,H.y=ue?J:m.y,m.x=H.x,m.y=H.y,E.length>0)){const Y=Z-L,W=J-D;for(const F of E)F.position={x:F.position.x-Y+T[0]*(U-k),y:F.position.y-W+T[1]*(X-V)},B.push(F)}if((q||ee)&&(H.width=q&&(!o.resizeDirection||o.resizeDirection==="horizontal")?U:m.width,H.height=ee&&(!o.resizeDirection||o.resizeDirection==="vertical")?X:m.height,m.width=H.width,m.height=H.height),_&&y.expandParent){const Y=T[0]*(H.width??0);H.x&&H.x{I&&(b==null||b(P,{...m}),i==null||i({...m}),I=!1)});s.call(A)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var hM={exports:{}},pM={},mM={exports:{}},gM={};/** +- ……`,onChange:$=>A({instruction:$.target.value})}),a&&H?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!D&&!E&&f.jsxs(f.Fragment,{children:[f.jsx(ae,{meta:se("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:$=>A({modelName:$.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:$=>A({modelProvider:$.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:$=>A({modelApiBase:$.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(ae,{meta:se("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(R1,{items:UC,selected:R,onToggle:M})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(zK,{tools:F,onChange:$=>A({mcpTools:$})})]})]})}),f.jsx(ae,{meta:se("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 skills/ 目录。"}),f.jsx(UK,{selected:j,onChange:$=>A({selectedSkills:$})})]})}),f.jsx(ae,{meta:se("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.memory.shortTerm,onChange:$=>A({memory:{...I.memory,shortTerm:$}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:FN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(sp,{options:VC,value:I.shortTermBackend,onChange:$=>A({shortTermBackend:$})})]}),f.jsx(vi,{checked:I.memory.longTerm,onChange:$=>A({memory:{...I.memory,longTerm:$}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:gu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(sp,{options:HC,value:I.longTermBackend,onChange:$=>A({longTermBackend:$})}),f.jsx(vi,{checked:!!I.autoSaveSession,onChange:$=>A({autoSaveSession:$}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:gu})]})]})}),f.jsx(ae,{meta:se("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.knowledgebase,onChange:$=>A({knowledgebase:$}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:gu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(sp,{options:KC,value:I.knowledgebaseBackend,onChange:$=>A({knowledgebaseBackend:$})})]})]})}),f.jsx(ae,{meta:se("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.tracing,onChange:$=>A({tracing:$}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:Ky}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(R1,{items:qC,selected:O,onToggle:B})]}),f.jsx(vi,{checked:I.enableA2ui,onChange:$=>A({enableA2ui:$}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:HB})]})}),N.length===0&&f.jsx(ae,{meta:se("deploy"),children:f.jsx("div",{className:"cw-form cw-toggle-stack",children:f.jsx(vi,{checked:!!((W=s.deployment)!=null&&W.feishuEnabled),onChange:$=>L({feishuEnabled:$}),title:"连接飞书",desc:"部署后可通过飞书消息触发当前 Agent。",icon:Xd})})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(ee,0)/Math.max(q.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),q.map($=>{const G=$.id===p,X=Z[$.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${G?"is-active":""} ${X?"is-done":""}`,onClick:()=>le($.id),"aria-current":G?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:$.label}),$.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:$.hint})]})]})},$.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:Y?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),U[0]&&v(U[0].path)},children:["待补全(",U.length,"):",U[0].name," · ",U[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[w&&f.jsx("span",{className:"cw-footer-importerr",children:w}),f.jsx("input",{ref:b,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:x}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var $;return($=b.current)==null?void 0:$.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(PB,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:ce,disabled:!Y||u,children:u?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(fl,{className:"cw-i"}),"生成项目"]})})]})]})]})}function hr(e){return{...ds(),...e}}const QK=[{id:"support",icon:zB,draft:hr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:SB,draft:hr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:VB,draft:hr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:AB,draft:hr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:QB,draft:hr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:r$,draft:hr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[hr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),hr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),hr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function ZK(e){const t=[];return e.tools.length&&t.push({icon:Wy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:EB,label:"记忆"}),e.knowledgebase&&t.push({icon:kB,label:"知识库"}),e.tracing&&t.push({icon:wB,label:"观测"}),e.subAgents.length&&t.push({icon:ZB,label:`子Agent ${e.subAgents.length}`}),t}function JK({onBack:e,onCreate:t}){const[n,r]=S.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(t7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(e7,{onPick:r})})}function e7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:QK.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function t7({template:e,onBack:t,onCreate:n}){const[r,i]=S.useState(e.draft.name),s=e.icon,o=ZK(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(PN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:n7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Gn,{className:"icon"})]})]})]})}function n7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function pt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function pf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Eu.prototype=pf.prototype={constructor:Eu,on:function(e,t){var n=this._,r=i7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),D1.hasOwnProperty(t)?{space:D1[t],local:e}:e}function o7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tg&&t.documentElement.namespaceURI===tg?t.createElement(e):t.createElementNS(n,e)}}function a7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function l2(e){var t=mf(e);return(t.local?a7:o7)(t)}function l7(){}function V0(e){return e==null?l7:function(){return this.querySelector(e)}}function c7(e){typeof e!="function"&&(e=V0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=y&&(y=x+1);!(k=w[y])&&++y=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function L7(e){e||(e=P7);function t(u,h){return u&&h?e(u.__data__,h.__data__):!u-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function D7(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function j7(){return Array.from(this)}function B7(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Y7:typeof t=="function"?Q7:X7)(e,t,n??"")):_o(this.node(),e)}function _o(e,t){return e.style.getPropertyValue(t)||h2(e).getComputedStyle(e,null).getPropertyValue(t)}function J7(e){return function(){delete this[e]}}function eq(e,t){return function(){this[e]=t}}function tq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function nq(e,t){return arguments.length>1?this.each((t==null?J7:typeof t=="function"?tq:eq)(e,t)):this.node()[e]}function p2(e){return e.trim().split(/^|\s+/)}function H0(e){return e.classList||new m2(e)}function m2(e){this._node=e,this._names=p2(e.getAttribute("class")||"")}m2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function g2(e,t){for(var n=H0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function ng(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}ng.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fq(e){return!e.ctrlKey&&!e.button}function zq(){return this.parentNode}function Uq(e,t){return t??{x:e.x,y:e.y}}function Vq(){return navigator.maxTouchPoints||"ontouchstart"in this}function _2(){var e=Fq,t=zq,n=Uq,r=Vq,i={},s=pf("start","drag","end"),o=0,a,l,c,d,u=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",w).on("touchmove.drag",m,$q).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,k){if(!(d||!e.call(this,v,k))){var _=y(this,t.call(this,v,k),v,k,"mouse");_&&(an(v.view).on("mousemove.drag",g,wl).on("mouseup.drag",b,wl),w2(v.view),op(v),c=!1,a=v.clientX,l=v.clientY,_("start",v))}}function g(v){if(ro(v),!c){var k=v.clientX-a,_=v.clientY-l;c=k*k+_*_>u}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),v2(v.view,c),ro(v),i.mouse("end",v)}function w(v,k){if(e.call(this,v,k)){var _=v.changedTouches,C=t.call(this,v,k),N=_.length,I,A;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Gc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Gc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Kq.exec(e))?new Qt(t[1],t[2],t[3],1):(t=qq.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Gq.exec(e))?Gc(t[1],t[2],t[3],t[4]):(t=Wq.exec(e))?Gc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Yq.exec(e))?V1(t[1],t[2]/100,t[3]/100,1):(t=Xq.exec(e))?V1(t[1],t[2]/100,t[3]/100,t[4]):j1.hasOwnProperty(e)?F1(j1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function F1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Gc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function Jq(e){return e instanceof ec||(e=Qi(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function rg(e,t,n,r){return arguments.length===1?Jq(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}K0(Qt,rg,k2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(zi(this.r),zi(this.g),zi(this.b),wd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:z1,formatHex:z1,formatHex8:eG,formatRgb:U1,toString:U1}));function z1(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}`}function eG(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}${Pi((isNaN(this.opacity)?1:this.opacity)*255)}`}function U1(){const e=wd(this.opacity);return`${e===1?"rgb(":"rgba("}${zi(this.r)}, ${zi(this.g)}, ${zi(this.b)}${e===1?")":`, ${e})`}`}function wd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pi(e){return e=zi(e),(e<16?"0":"")+e.toString(16)}function V1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $n(e,t,n,r)}function E2(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof ec||(e=Qi(e)),!e)return new $n;if(e instanceof $n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new $n(o,a,l,e.opacity)}function tG(e,t,n,r){return arguments.length===1?E2(e):new $n(e,t,n,r??1)}function $n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}K0($n,tG,k2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new $n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(ap(e>=240?e-240:e+120,i,r),ap(e,i,r),ap(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n(H1(this.h),Wc(this.s),Wc(this.l),wd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wd(this.opacity);return`${e===1?"hsl(":"hsla("}${H1(this.h)}, ${Wc(this.s)*100}%, ${Wc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function H1(e){return e=(e||0)%360,e<0?e+360:e}function Wc(e){return Math.max(0,Math.min(1,e||0))}function ap(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const q0=e=>()=>e;function nG(e,t){return function(n){return e+n*t}}function rG(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function iG(e){return(e=+e)==1?S2:function(t,n){return n-t?rG(t,n,e):q0(isNaN(t)?n:t)}}function S2(e,t){var n=t-e;return n?nG(e,n):q0(isNaN(e)?t:e)}const vd=function e(t){var n=iG(t);function r(i,s){var o=n((i=rg(i)).r,(s=rg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=S2(i.opacity,s.opacity);return function(d){return i.r=o(d),i.g=a(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r}(1);function sG(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=lp.lastIndex;return n180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(i(u)+"rotate(",null,r)-2,x:er(c,d)})):d&&u.push(i(u)+"rotate("+d+r)}function a(c,d,u,h){c!==d?h.push({i:u.push(i(u)+"skewX(",null,r)-2,x:er(c,d)}):d&&u.push(i(u)+"skewX("+d+r)}function l(c,d,u,h,p,g){if(c!==u||d!==h){var b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,u)},{i:b-2,x:er(d,h)})}else(u!==1||h!==1)&&p.push(i(p)+"scale("+u+","+h+")")}return function(c,d){var u=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,h),o(c.rotate,d.rotate,u,h),a(c.skewX,d.skewX,u,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(p){for(var g=-1,b=h.length,w;++g=0&&e._call.call(void 0,t),e=e._next;--ko}function G1(){Zi=(kd=kl.now())+gf,ko=xa=0;try{wG()}finally{ko=0,_G(),Zi=0}}function vG(){var e=kl.now(),t=e-kd;t>C2&&(gf-=t,kd=e)}function _G(){for(var e,t=_d,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_d=n);wa=e,og(r)}function og(e){if(!ko){xa&&(xa=clearTimeout(xa));var t=e-Zi;t>24?(e<1/0&&(xa=setTimeout(G1,e-kl.now()-gf)),la&&(la=clearInterval(la))):(la||(kd=kl.now(),la=setInterval(vG,C2)),ko=1,M2(G1))}}function W1(e,t,n){var r=new Ed;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var kG=pf("start","end","cancel","interrupt"),EG=[],O2=0,Y1=1,ag=2,Nu=3,X1=4,lg=5,Tu=6;function yf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;SG(e,n,{name:t,index:r,group:i,on:kG,tween:EG,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:O2})}function W0(e,t){var n=Yn(e,t);if(n.state>O2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Nu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function SG(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=I2(s,0,n.time);function s(c){n.state=Y1,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var d,u,h,p;if(n.state!==Y1)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Nu)return W1(o);p.state===X1?(p.state=Tu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+dag&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function tW(e,t,n){var r,i,s=eW(t)?W0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function nW(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(tW(n,e,t))}function rW(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function iW(){return this.on("end.remove",rW(this._id))}function sW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=V0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function MW(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function wr(e,t,n){this.k=e,this.x=t,this.y=n}wr.prototype={constructor:wr,scale:function(e){return e===1?this:new wr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var bf=new wr(1,0,0);D2.prototype=wr.prototype;function D2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return bf;return e.__zoom}function cp(e){e.stopImmediatePropagation()}function ca(e){e.preventDefault(),e.stopImmediatePropagation()}function IW(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function OW(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Q1(){return this.__zoom||bf}function RW(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function LW(){return navigator.maxTouchPoints||"ontouchstart"in this}function PW(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function j2(){var e=IW,t=OW,n=PW,r=RW,i=LW,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Su,c=pf("start","zoom","end"),d,u,h,p=500,g=150,b=0,w=10;function m(O){O.property("__zoom",Q1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",P).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(O,j,M,B){var L=O.selection?O.selection():O;L.property("__zoom",Q1),O!==L?k(O,j,M,B):L.interrupt().each(function(){_(this,arguments).event(B).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},m.scaleBy=function(O,j,M,B){m.scaleTo(O,function(){var L=this.__zoom.k,D=typeof j=="function"?j.apply(this,arguments):j;return L*D},M,B)},m.scaleTo=function(O,j,M,B){m.transform(O,function(){var L=t.apply(this,arguments),D=this.__zoom,E=M==null?v(L):typeof M=="function"?M.apply(this,arguments):M,V=D.invert(E),H=typeof j=="function"?j.apply(this,arguments):j;return n(y(x(D,H),E,V),L,o)},M,B)},m.translateBy=function(O,j,M,B){m.transform(O,function(){return n(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,B)},m.translateTo=function(O,j,M,B,L){m.transform(O,function(){var D=t.apply(this,arguments),E=this.__zoom,V=B==null?v(D):typeof B=="function"?B.apply(this,arguments):B;return n(bf.translate(V[0],V[1]).scale(E.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof M=="function"?-M.apply(this,arguments):-M),D,o)},B,L)};function x(O,j){return j=Math.max(s[0],Math.min(s[1],j)),j===O.k?O:new wr(j,O.x,O.y)}function y(O,j,M){var B=j[0]-M[0]*O.k,L=j[1]-M[1]*O.k;return B===O.x&&L===O.y?O:new wr(O.k,B,L)}function v(O){return[(+O[0][0]+ +O[1][0])/2,(+O[0][1]+ +O[1][1])/2]}function k(O,j,M,B){O.on("start.zoom",function(){_(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(B).end()}).tween("zoom",function(){var L=this,D=arguments,E=_(L,D).event(B),V=t.apply(L,D),H=M==null?v(V):typeof M=="function"?M.apply(L,D):M,T=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),U=L.__zoom,Y=typeof j=="function"?j.apply(L,D):j,Z=l(U.invert(H).concat(T/U.k),Y.invert(H).concat(T/Y.k));return function(J){if(J===1)J=Y;else{var q=Z(J),ee=T/q[2];J=new wr(ee,H[0]-q[0]*ee,H[1]-q[1]*ee)}E.zoom(null,J)}})}function _(O,j,M){return!M&&O.__zooming||new C(O,j)}function C(O,j){this.that=O,this.args=j,this.active=0,this.sourceEvent=null,this.extent=t.apply(O,j),this.taps=0}C.prototype={event:function(O){return O&&(this.sourceEvent=O),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(O,j){return this.mouse&&O!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&O!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&O!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(O){var j=an(this.that).datum();c.call(O,this.that,new MW(O,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),j)}};function N(O,...j){if(!e.apply(this,arguments))return;var M=_(this,j).event(O),B=this.__zoom,L=Math.max(s[0],Math.min(s[1],B.k*Math.pow(2,r.apply(this,arguments)))),D=jn(O);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=B.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(B.k===L)return;M.mouse=[D,B.invert(D)],Au(this),M.start()}ca(O),M.wheel=setTimeout(E,g),M.zoom("mouse",n(y(x(B,L),M.mouse[0],M.mouse[1]),M.extent,o));function E(){M.wheel=null,M.end()}}function I(O,...j){if(h||!e.apply(this,arguments))return;var M=O.currentTarget,B=_(this,j,!0).event(O),L=an(O.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",T,!0),D=jn(O,M),E=O.clientX,V=O.clientY;w2(O.view),cp(O),B.mouse=[D,this.__zoom.invert(D)],Au(this),B.start();function H(U){if(ca(U),!B.moved){var Y=U.clientX-E,Z=U.clientY-V;B.moved=Y*Y+Z*Z>b}B.event(U).zoom("mouse",n(y(B.that.__zoom,B.mouse[0]=jn(U,M),B.mouse[1]),B.extent,o))}function T(U){L.on("mousemove.zoom mouseup.zoom",null),v2(U.view,B.moved),ca(U),B.event(U).end()}}function A(O,...j){if(e.apply(this,arguments)){var M=this.__zoom,B=jn(O.changedTouches?O.changedTouches[0]:O,this),L=M.invert(B),D=M.k*(O.shiftKey?.5:2),E=n(y(x(M,D),B,L),t.apply(this,j),o);ca(O),a>0?an(this).transition().duration(a).call(k,E,B,O):an(this).call(m.transform,E,B,O)}}function P(O,...j){if(e.apply(this,arguments)){var M=O.touches,B=M.length,L=_(this,j,O.changedTouches.length===B).event(O),D,E,V,H;for(cp(O),E=0;E`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},El=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],B2=["Enter"," ","Escape"],$2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Eo;(function(e){e.Strict="strict",e.Loose="loose"})(Eo||(Eo={}));var Ui;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ui||(Ui={}));var Sl;(function(e){e.Partial="partial",e.Full="full"})(Sl||(Sl={}));const F2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Hr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Hr||(Hr={}));var Nl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Nl||(Nl={}));var ge;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ge||(ge={}));const Z1={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top};function z2(e){return e===null?null:e?"valid":"invalid"}const U2=e=>"id"in e&&"source"in e&&"target"in e,DW=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),X0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tc=(e,t=[0,0])=>{const{width:n,height:r}=Rr(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},jW=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):X0(i)?i:t.nodeLookup.get(i.id));const a=o?Sd(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return xf(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return wf(n)},nc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=xf(n,Sd(i)),r=!0)}),r?wf(n):{x:0,y:0,width:0,height:0}},Q0=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...Ho(t,[n,r,i]),width:t.width/i,height:t.height/i},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:h=!1}=c;if(o&&!u||h)continue;const p=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,b=Tl(a,No(c)),w=(p??0)*(g??0),m=s&&b>0;(!c.internals.handleBounds||m||b>=w||c.dragging)&&l.push(c)}return l},BW=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function $W(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function FW({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=$W(e,o),l=nc(a),c=J0(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function V2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let u=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(u=[[l,c],[l+p,c+g]])}else a&&es(o.extent)&&(u=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=es(u)?Ji(t,u,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*d[0],y:h.y-c+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function zW({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(b=>b.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=BW(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!i)return{edges:d,nodes:o};const u=await i({nodes:o,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:o}:{edges:[],nodes:[]}:u}const So=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ji=(e={x:0,y:0},t,n)=>({x:So(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:So(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function H2(e,t,n){const{width:r,height:i}=Rr(n),{x:s,y:o}=n.internals.positionAbsolute;return Ji(e,[[s,o],[s+r,o+i]],t)}const J1=(e,t,n)=>en?-So(Math.abs(e-n),1,t)/t:0,Z0=(e,t,n=15,r=40)=>{const i=J1(e.x,r,t.width-r)*n,s=J1(e.y,r,t.height-r)*n;return[i,s]},xf=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),cg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),wf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),No=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Sd=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},K2=(e,t)=>wf(xf(cg(e),cg(t))),Tl=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},e_=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),q2=(e,t)=>(n,r)=>{},rc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ho=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?rc(a,o):a},To=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function vs(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function UW(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=vs(e,n),i=vs(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=vs(e.top??e.y??0,n),i=vs(e.bottom??e.y??0,n),s=vs(e.left??e.x??0,t),o=vs(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function VW(e,t,n,r,i,s){const{x:o,y:a}=To(e,[t,n,r]),{x:l,y:c}=To({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-l,u=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const J0=(e,t,n,r,i,s)=>{const o=UW(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),d=So(c,r,i),u=e.x+e.width/2,h=e.y+e.height/2,p=t/2-u*d,g=n/2-h*d,b=VW(e,p,g,d,t,n),w={left:Math.min(b.left-o.left,0),top:Math.min(b.top-o.top,0),right:Math.min(b.right-o.right,0),bottom:Math.min(b.bottom-o.bottom,0)};return{x:p-w.left+w.right,y:g-w.top+w.bottom,zoom:d}},Al=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function es(e){return e!=null&&e!=="parent"}function Rr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function G2(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function W2(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function t_(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function HW(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function KW(e){return{...$2,...e||{}}}function za(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=Ho({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?rc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const eb=e=>({width:e.offsetWidth,height:e.offsetHeight}),Y2=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qW=["INPUT","SELECT","TEXTAREA"];function X2(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:qW.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Q2=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=Q2(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},n_=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...eb(o)}})};function Z2({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function Qc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function r_({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case ge.Left:return[t-Qc(t-r,s),n];case ge.Right:return[t+Qc(r-t,s),n];case ge.Top:return[t,n-Qc(n-i,s)];case ge.Bottom:return[t,n+Qc(i-n,s)]}}function J2({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top,curvature:o=.25}){const[a,l]=r_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,d]=r_({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[u,h,p,g]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${i}`,u,h,p,g]}function eM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const YW=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,XW=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),QW=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||YW;let i;return U2(e)?i={...e}:i={...e,id:r(e)},XW(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function tM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=eM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const i_={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}},ZW=({source:e,sourcePosition:t=ge.Bottom,target:n})=>t===ge.Left||t===ge.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function JW({source:e,sourcePosition:t=ge.Bottom,target:n,targetPosition:r=ge.Top,center:i,offset:s,stepPosition:o}){const a=i_[t],l=i_[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=ZW({source:c,sourcePosition:t,target:d}),h=u.x!==0?"x":"y",p=u[h];let g=[],b,w;const m={x:0,y:0},x={x:0,y:0},[,,y,v]=eM({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(b=i.x??c.x+(d.x-c.x)*o,w=i.y??(c.y+d.y)/2):(b=i.x??(c.x+d.x)/2,w=i.y??c.y+(d.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,y:d.y}],I=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:d.y}],I=[{x:d.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const O=Math.abs(e[h]-n[h]);if(O<=s){const j=Math.min(s-1,s-O);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*j:x[h]=(d[h]>n[h]?-1:1)*j}}if(t!==r){const O=h==="x"?"y":"x",j=a[h]===l[O],M=c[O]>d[O],B=c[O]=F?(b=(A.x+P.x)/2,w=g[0].y):(b=g[0].x,w=(A.y+P.y)/2)}const k={x:c.x+m.x,y:c.y+m.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...k.x!==g[0].x||k.y!==g[0].y?[k]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],b,w,y,v]}function eY(e,t,n,r){const i=Math.min(s_(e,t)/2,s_(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function dg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function nY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=dg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const nM=1e3,rY=10,tb={nodeOrigin:[0,0],nodeExtent:El,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},iY={...tb,checkEquality:!0};function nb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function sY(e,t,n){const r=nb(tb,n);for(const i of e.values())if(i.parentId)ib(i,e,t,r);else{const s=tc(i,r.nodeOrigin),o=es(i.extent)?i.extent:r.nodeExtent,a=Ji(s,o,Rr(i));i.internals.positionAbsolute=a}}function oY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function rb(e){return e==="manual"}function fg(e,t,n,r={}){var d,u;const i=nb(iY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!rb(i.zIndexMode)?nM:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=tc(h,i.nodeOrigin),b=es(h.extent)?h.extent:i.nodeExtent,w=Ji(g,b,Rr(h));p={...i.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(u=h.measured)==null?void 0:u.height},internals:{positionAbsolute:w,handleBounds:oY(h,p),z:rM(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&ib(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function aY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ib(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=nb(tb,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aY(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*rY),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const u=s&&!rb(l)?nM:0,{x:h,y:p,z:g}=lY(e,d,o,a,u,l),{positionAbsolute:b}=e.internals,w=h!==b.x||p!==b.y;(w||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:p}:b,z:g}})}function rM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return rb(n)?r:r+(e.selected?t:0)}function lY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=Rr(e),c=tc(e,n),d=es(e.extent)?Ji(c,e.extent,l):c;let u=Ji({x:o+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=H2(u,l,t));const h=rM(e,i,s),p=t.internals.z??0;return{x:u.x,y:u.y,z:p>=h?p+1:h}}function sb(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??No(l),d=K2(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var y;const d=l.internals.positionAbsolute,u=Rr(l),h=l.origin??r,p=a.x0||g>0||m||x)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+x}}),(y=n.get(c))==null||y.forEach(v=>{e.some(k=>k.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(u.width0){const p=sb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function uY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function c_(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function iM(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,d=`${s}-${a}--${i}-${o}`;c_("source",l,d,e,i,o),c_("target",l,c,e,s,a),t.set(r.id,r)}}function sM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:sM(n,t):!1}function u_(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function dY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!sM(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function up({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,d]of t){const u=(o=n.get(c))==null?void 0:o.internals.userNode;u&&i.push({...u,position:d.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function fY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=rc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function hY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,h=null,p=!1,g=!1,b=null;function w({noDragClassName:x,handleSelector:y,domNode:v,isSelectable:k,nodeId:_,nodeClickDistance:C=0}){h=an(v);function N({x:R,y:F}){const{nodeLookup:O,nodeExtent:j,snapGrid:M,snapToGrid:B,nodeOrigin:L,onNodeDrag:D,onSelectionDrag:E,onError:V,updateNodePositions:H}=t();s={x:R,y:F};let T=!1;const U=a.size>1,Y=U&&j?cg(nc(a)):null,Z=U&&B?fY({dragItems:a,snapGrid:M,x:R,y:F}):null;for(const[J,q]of a){if(!O.has(J))continue;let ee={x:R-q.distance.x,y:F-q.distance.y};B&&(ee=Z?{x:Math.round(ee.x+Z.x),y:Math.round(ee.y+Z.y)}:rc(ee,M));let le=null;if(U&&j&&!q.extent&&Y){const{positionAbsolute:se}=q.internals,ye=se.x-Y.x+j[0][0],W=se.x+q.measured.width-Y.x2+j[1][0],$=se.y-Y.y+j[0][1],G=se.y+q.measured.height-Y.y2+j[1][1];le=[[ye,$],[W,G]]}const{position:ce,positionAbsolute:ae}=V2({nodeId:J,nextPosition:ee,nodeLookup:O,nodeExtent:le||j,nodeOrigin:L,onError:V});T=T||q.position.x!==ce.x||q.position.y!==ce.y,q.position=ce,q.internals.positionAbsolute=ae}if(g=g||T,!!T&&(H(a,!0),b&&(r||D||!_&&E))){const[J,q]=up({nodeId:_,dragItems:a,nodeLookup:O});r==null||r(b,a,J,q),D==null||D(b,J,q),_||E==null||E(b,q)}}async function I(){if(!d)return;const{transform:R,panBy:F,autoPanSpeed:O,autoPanOnNodeDrag:j}=t();if(!j){l=!1,cancelAnimationFrame(o);return}const[M,B]=Z0(c,d,O);(M!==0||B!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-B/R[2],await F({x:M,y:B})&&N(s)),o=requestAnimationFrame(I)}function A(R){var U;const{nodeLookup:F,multiSelectionActive:O,nodesDraggable:j,transform:M,snapGrid:B,snapToGrid:L,selectNodesOnDrag:D,onNodeDragStart:E,onSelectionDragStart:V,unselectNodesAndEdges:H}=t();u=!0,(!D||!k)&&!O&&_&&((U=F.get(_))!=null&&U.selected||H()),k&&D&&_&&(e==null||e(_));const T=za(R.sourceEvent,{transform:M,snapGrid:B,snapToGrid:L,containerBounds:d});if(s=T,a=dY(F,j,T,_),a.size>0&&(n||E||!_&&V)){const[Y,Z]=up({nodeId:_,dragItems:a,nodeLookup:F});n==null||n(R.sourceEvent,a,Y,Z),E==null||E(R.sourceEvent,Y,Z),_||V==null||V(R.sourceEvent,Z)}}const P=_2().clickDistance(C).on("start",R=>{const{domNode:F,nodeDragThreshold:O,transform:j,snapGrid:M,snapToGrid:B}=t();d=(F==null?void 0:F.getBoundingClientRect())||null,p=!1,g=!1,b=R.sourceEvent,O===0&&A(R),s=za(R.sourceEvent,{transform:j,snapGrid:M,snapToGrid:B,containerBounds:d}),c=zn(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:F,transform:O,snapGrid:j,snapToGrid:M,nodeDragThreshold:B,nodeLookup:L}=t(),D=za(R.sourceEvent,{transform:O,snapGrid:j,snapToGrid:M,containerBounds:d});if(b=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||_&&!L.has(_))&&(p=!0),!p){if(!l&&F&&u&&(l=!0,I()),!u){const E=zn(R.sourceEvent,d),V=E.x-c.x,H=E.y-c.y;Math.sqrt(V*V+H*H)>B&&A(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&u&&(c=zn(R.sourceEvent,d),N(D))}}).on("end",R=>{if(!u||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:F,updateNodePositions:O,onNodeDragStop:j,onSelectionDragStop:M}=t();if(g&&(O(a,!1),g=!1),i||j||!_&&M){const[B,L]=up({nodeId:_,dragItems:a,nodeLookup:F,dragging:!1});i==null||i(R.sourceEvent,a,B,L),j==null||j(R.sourceEvent,B,L),_||M==null||M(R.sourceEvent,L)}}}).filter(R=>{const F=R.target;return!R.button&&(!x||!u_(F,`.${x}`,v))&&(!y||u_(F,y,v))});h.call(P)}function m(){h==null||h.on(".drag",null)}return{update:w,destroy:m}}function pY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Tl(i,No(s))>0&&r.push(s);return r}const mY=250;function gY(e,t,n,r){var a,l;let i=[],s=1/0;const o=pY(e,n,t+mY);for(const c of o){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:h,y:p}=ts(c,u,u.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(d=>d.type===c)??i[0]}return i[0]}function oM(e,t,n,r,i,s=!1){var c,d,u;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((u=o.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ts(o,l,l.position,!0)}:l}function aM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function yY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const lM=()=>!0;function bY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:b,onConnectEnd:w,isValidConnection:m=lM,onReconnectEnd:x,updateConnection:y,getTransform:v,getFromHandle:k,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:N}){const I=Y2(e.target);let A=0,P;const{x:R,y:F}=zn(e),O=aM(s,N),j=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!j||!O)return;const B=oM(i,O,r,l,t);if(!B)return;let L=zn(e,j),D=!1,E=null,V=!1,H=null;function T(){if(!d||!j)return;const[ce,ae]=Z0(L,j,_);h({x:ce,y:ae}),A=requestAnimationFrame(T)}const U={...B,nodeId:i,type:O,position:B.position},Y=l.get(i);let J={inProgress:!0,isValid:null,from:ts(Y,U,ge.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Y,to:L,toHandle:null,toPosition:Z1[U.position],toNode:null,pointer:L};function q(){M=!0,y(J),g==null||g(e,{nodeId:i,handleId:r,handleType:O})}C===0&&q();function ee(ce){if(!M){const{x:G,y:X}=zn(ce),me=G-R,pe=X-F;if(!(me*me+pe*pe>C*C))return;q()}if(!k()||!U){le(ce);return}const ae=v();L=zn(ce,j),P=gY(Ho(L,ae,!1,[1,1]),n,l,U),D||(T(),D=!0);const se=cM(ce,{handle:P,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:u,nodeLookup:l});H=se.handleDomNode,E=se.connection,V=yY(!!P,se.isValid);const ye=l.get(i),W=ye?ts(ye,U,ge.Left,!0):J.from,$={...J,from:W,isValid:V,to:se.toHandle&&V?To({x:se.toHandle.x,y:se.toHandle.y},ae):L,toHandle:se.toHandle,toPosition:V&&se.toHandle?se.toHandle.position:Z1[U.position],toNode:se.toHandle?l.get(se.toHandle.nodeId):null,pointer:L};y($),J=$}function le(ce){if(!("touches"in ce&&ce.touches.length>0)){if(M){(P||H)&&E&&V&&(b==null||b(E));const{inProgress:ae,...se}=J,ye={...se,toPosition:J.toHandle?J.toPosition:null};w==null||w(ce,ye),s&&(x==null||x(ce,ye))}p(),cancelAnimationFrame(A),D=!1,V=!1,E=null,H=null,I.removeEventListener("mousemove",ee),I.removeEventListener("mouseup",le),I.removeEventListener("touchmove",ee),I.removeEventListener("touchend",le)}}I.addEventListener("mousemove",ee),I.addEventListener("mouseup",le),I.addEventListener("touchmove",ee),I.addEventListener("touchend",le)}function cM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=lM,nodeLookup:d}){const u=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),b=o.elementFromPoint(p,g),w=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:h,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const x=aM(void 0,w),y=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),k=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!x)return m;const C={source:u?y:r,sourceHandle:u?v:i,target:u?r:y,targetHandle:u?i:v};m.connection=C;const I=k&&_&&(n===Eo.Strict?u&&x==="source"||!u&&x==="target":y!==r||v!==i);m.isValid=I&&c(C),m.toHandle=oM(y,x,v,d,n,!0)}return m}const hg={onPointerDown:bY,isValid:cM};function xY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:h=!0,inversePan:p=!1}){const g=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const v=n(),k=y.sourceEvent.ctrlKey&&Al()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,C=v[2]*Math.pow(2,_*k);t.scaleTo(C)};let b=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(b=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},m=y=>{const v=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const k=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[k[0]-b[0],k[1]-b[1]];b=k;const C=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-_[0]*C,y:v[1]-_[1]*C},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},x=j2().on("start",w).on("zoom",u?m:null).on("zoom.wheel",h?g:null);i.call(x,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const vf=e=>({x:e.x,y:e.y,zoom:e.k}),dp=({x:e,y:t,zoom:n})=>bf.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),uM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),wY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,fp=(e,t=0,n=wY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},dM=e=>{const t=e.ctrlKey&&Al()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function vY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(qs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&o){const w=jn(d),m=dM(d),x=u*Math.pow(2,m);r.scaleTo(n,x,w,d);return}const h=d.deltaMode===1?20:1;let p=i===Ui.Vertical?0:d.deltaX*h,g=i===Ui.Horizontal?0:d.deltaY*h;!Al()&&d.shiftKey&&i!==Ui.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/u)*s,-(g/u)*s,{internal:!0});const b=vf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,b),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,b))}}function _Y({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=qs(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function kY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=vf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function EY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&uM(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,vf(s.transform)))}}function SY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&uM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=vf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function NY({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var w;const h=e||t,p=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(qs(u,`${c}-flow__node`)||qs(u,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||d&&!g||qs(u,a)&&g||qs(u,l)&&(!g||i&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((w=u.touches)==null?void 0:w.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const b=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&b}}function TY({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=j2().scaleExtent([t,n]).translateExtent(r),h=an(e).call(u);x({x:i.x,y:i.y,zoom:So(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),g=h.on("dblclick.zoom");u.wheelDelta(dM);async function b(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).transform(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}function w({noWheelClassName:P,noPanClassName:R,onPaneContextMenu:F,userSelectionActive:O,panOnScroll:j,panOnDrag:M,panOnScrollMode:B,panOnScrollSpeed:L,preventScrolling:D,zoomOnPinch:E,zoomOnScroll:V,zoomOnDoubleClick:H,zoomActivationKeyPressed:T,lib:U,onTransformChange:Y,connectionInProgress:Z,paneClickDistance:J,selectionOnDrag:q}){O&&!c.isZoomingOrPanning&&m();const ee=j&&!T&&!O;u.clickDistance(q?1/0:!Fn(J)||J<0?0:J);const le=ee?vY({zoomPanValues:c,noWheelClassName:P,d3Selection:h,d3Zoom:u,panOnScrollMode:B,panOnScrollSpeed:L,zoomOnPinch:E,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):_Y({noWheelClassName:P,preventScrolling:D,d3ZoomHandler:p});h.on("wheel.zoom",le,{passive:!1});const ce=kY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});u.on("start",ce);const ae=EY({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!F,onPanZoom:s,onTransformChange:Y});u.on("zoom",ae);const se=SY({zoomPanValues:c,panOnDrag:M,panOnScroll:j,onPaneContextMenu:F,onPanZoomEnd:a,onDraggingChange:l});u.on("end",se);const ye=NY({zoomActivationKeyPressed:T,panOnDrag:M,zoomOnScroll:V,panOnScroll:j,zoomOnDoubleClick:H,zoomOnPinch:E,userSelectionActive:O,noPanClassName:R,noWheelClassName:P,lib:U,connectionInProgress:Z});u.filter(ye),H?h.on("dblclick.zoom",g):h.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function x(P,R,F){const O=dp(P),j=u==null?void 0:u.constrain()(O,R,F);return j&&await b(j),j}async function y(P,R){const F=dp(P);return await b(F,R),F}function v(P){if(h){const R=dp(P),F=h.property("__zoom");(F.k!==P.zoom||F.x!==P.x||F.y!==P.y)&&(u==null||u.transform(h,R,null,{sync:!0}))}}function k(){const P=h?D2(h.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function _(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleTo(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}async function C(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleBy(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}function N(P){u==null||u.scaleExtent(P)}function I(P){u==null||u.translateExtent(P)}function A(P){const R=!Fn(P)||P<0?0:P;u==null||u.clickDistance(R)}return{update:w,destroy:m,setViewport:y,setViewportConstrained:x,getViewport:k,scaleTo:_,scaleBy:C,setScaleExtent:N,setTranslateExtent:I,syncViewport:v,setClickDistance:A}}var Ao;(function(e){e.Line="line",e.Handle="handle"})(Ao||(Ao={}));function AY({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function d_(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Dr(e,t){return Math.max(0,t-e)}function jr(e,t){return Math.max(0,e-t)}function Zc(e,t,n){return Math.max(0,t-e,e-n)}function f_(e,t){return e?!t:t}function CY(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,h=d&&u,{xSnapped:p,ySnapped:g}=n,{minWidth:b,maxWidth:w,minHeight:m,maxHeight:x}=r,{x:y,y:v,width:k,height:_,aspectRatio:C}=e;let N=Math.floor(d?p-e.pointerX:0),I=Math.floor(u?g-e.pointerY:0);const A=k+(l?-N:N),P=_+(c?-I:I),R=-s[0]*k,F=-s[1]*_;let O=Zc(A,b,w),j=Zc(P,m,x);if(o){let L=0,D=0;l&&N<0?L=Dr(y+N+R,o[0][0]):!l&&N>0&&(L=jr(y+A+R,o[1][0])),c&&I<0?D=Dr(v+I+F,o[0][1]):!c&&I>0&&(D=jr(v+P+F,o[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(a){let L=0,D=0;l&&N>0?L=jr(y+N,a[0][0]):!l&&N<0&&(L=Dr(y+A,a[1][0])),c&&I>0?D=jr(v+I,a[0][1]):!c&&I<0&&(D=Dr(v+P,a[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(i){if(d){const L=Zc(A/C,m,x)*C;if(O=Math.max(O,L),o){let D=0;!l&&!c||l&&!c&&h?D=jr(v+F+A/C,o[1][1])*C:D=Dr(v+F+(l?N:-N)/C,o[0][1])*C,O=Math.max(O,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=Dr(v+A/C,a[1][1])*C:D=jr(v+(l?N:-N)/C,a[0][1])*C,O=Math.max(O,D)}}if(u){const L=Zc(P*C,b,w)/C;if(j=Math.max(j,L),o){let D=0;!l&&!c||c&&!l&&h?D=jr(y+P*C+R,o[1][0])/C:D=Dr(y+(c?I:-I)*C+R,o[0][0])/C,j=Math.max(j,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=Dr(y+P*C,a[1][0])/C:D=jr(y+(c?I:-I)*C,a[0][0])/C,j=Math.max(j,D)}}}I=I+(I<0?j:-j),N=N+(N<0?O:-O),i&&(h?A>P*C?I=(f_(l,c)?-N:N)/C:N=(f_(l,c)?-I:I)*C:d?(I=N/C,c=l):(N=I*C,l=c));const M=l?y+N:y,B=c?v+I:v;return{width:k+(l?-N:N),height:_+(c?-I:I),x:s[0]*N*(l?-1:1)+M,y:s[1]*I*(c?-1:1)+B}}const fM={width:0,height:0,x:0,y:0},MY={...fM,pointerX:0,pointerY:0,aspectRatio:1};function IY(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function OY({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:d_("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:b,shouldResize:w}){let m={...fM},x={...MY};o={boundaries:d,resizeDirection:h,keepAspectRatio:u,controlDirection:d_(c)};let y,v=null,k=[],_,C,N,I=!1;const A=_2().on("start",P=>{const{nodeLookup:R,transform:F,snapGrid:O,snapToGrid:j,nodeOrigin:M,paneDomNode:B}=n();if(y=R.get(t),!y)return;v=(B==null?void 0:B.getBoundingClientRect())??null;const{xSnapped:L,ySnapped:D}=za(P.sourceEvent,{transform:F,snapGrid:O,snapToGrid:j,containerBounds:v});m={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},x={...m,pointerX:L,pointerY:D,aspectRatio:m.width/m.height},_=void 0,C=es(y.extent)?y.extent:void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=R.get(y.parentId)),_&&y.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),k=[],N=void 0;for(const[E,V]of R)if(V.parentId===t&&(k.push({id:E,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const H=IY(V,y,V.origin??M);N?N=[[Math.min(H[0][0],N[0][0]),Math.min(H[0][1],N[0][1])],[Math.max(H[1][0],N[1][0]),Math.max(H[1][1],N[1][1])]]:N=H}p==null||p(P,{...m})}).on("drag",P=>{const{transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j}=n(),M=za(P.sourceEvent,{transform:R,snapGrid:F,snapToGrid:O,containerBounds:v}),B=[];if(!y)return;const{x:L,y:D,width:E,height:V}=m,H={},T=y.origin??j,{width:U,height:Y,x:Z,y:J}=CY(x,o.controlDirection,M,o.boundaries,o.keepAspectRatio,T,C,N),q=U!==E,ee=Y!==V,le=Z!==L&&q,ce=J!==D&ⅇif(!le&&!ce&&!q&&!ee)return;if((le||ce||T[0]===1||T[1]===1)&&(H.x=le?Z:m.x,H.y=ce?J:m.y,m.x=H.x,m.y=H.y,k.length>0)){const W=Z-L,$=J-D;for(const G of k)G.position={x:G.position.x-W+T[0]*(U-E),y:G.position.y-$+T[1]*(Y-V)},B.push(G)}if((q||ee)&&(H.width=q&&(!o.resizeDirection||o.resizeDirection==="horizontal")?U:m.width,H.height=ee&&(!o.resizeDirection||o.resizeDirection==="vertical")?Y:m.height,m.width=H.width,m.height=H.height),_&&y.expandParent){const W=T[0]*(H.width??0);H.x&&H.x{I&&(b==null||b(P,{...m}),i==null||i({...m}),I=!1)});s.call(A)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var hM={exports:{}},pM={},mM={exports:{}},gM={};/** * @license React * use-sync-external-store-shim.production.js * @@ -1042,11 +932,11 @@ __all__ = ["root_agent"] * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var _f=S,VY=UY;function HY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var KY=typeof Object.is=="function"?Object.is:HY,qY=VY.useSyncExternalStore,GY=_f.useRef,WY=_f.useEffect,YY=_f.useMemo,XY=_f.useDebugValue;pM.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=GY(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=YY(function(){function l(p){if(!c){if(c=!0,d=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return u=g}return u=p}if(g=u,KY(d,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(d=p,g):(d=p,u=b)}var c=!1,d,u,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=qY(e,s[0],s[1]);return WY(function(){o.hasValue=!0,o.value=a},[a]),XY(a),a};hM.exports=pM;var QY=hM.exports;const ZY=Ml(QY),JY={},h_=e=>{let t;const n=new Set,r=(d,u)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=u??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(JY?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},eX=e=>e?h_(e):h_,{useDebugValue:tX}=tE,{useSyncExternalStoreWithSelector:nX}=ZY,rX=e=>e;function yM(e,t=rX,n){const r=nX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tX(r),r}const p_=(e,t)=>{const n=eX(e),r=(i,s=t)=>yM(n,i,s);return Object.assign(r,n),r},iX=(e,t)=>e?p_(e,t):p_;function Ye(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Ef=S.createContext(null),sX=Ef.Provider,bM=qn.error001("react");function Ie(e,t){const n=S.useContext(Ef);if(n===null)throw new Error(bM);return yM(n,e,t)}function Xe(){const e=S.useContext(Ef);if(e===null)throw new Error(bM);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const m_={display:"none"},oX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},xM="react-flow__node-desc",wM="react-flow__edge-desc",aX="react-flow__aria-live",lX=e=>e.ariaLiveMessage,cX=e=>e.ariaLabelConfig;function uX({rfId:e}){const t=Ie(lX);return f.jsx("div",{id:`${aX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:oX,children:t})}function dX({rfId:e,disableKeyboardA11y:t}){const n=Ie(cX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${xM}-${e}`,style:m_,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${wM}-${e}`,style:m_,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(uX,{rfId:e})]})}const kf=S.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:mt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});kf.displayName="Panel";function fX({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(kf,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:f.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Jc=e=>e.id;function pX(e,t){return Ye(e.selectedNodes.map(Jc),t.selectedNodes.map(Jc))&&Ye(e.selectedEdges.map(Jc),t.selectedEdges.map(Jc))}function mX({onSelectionChange:e}){const t=Xe(),{selectedNodes:n,selectedEdges:r}=Ie(hX,pX);return S.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const gX=e=>!!e.onSelectionChangeHandlers;function yX({onSelectionChange:e}){const t=Ie(gX);return e||t?f.jsx(mX,{onSelectionChange:e}):null}const vM=[0,0],bX={x:0,y:0,zoom:1},xX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],g_=[...xX,"rfId"],wX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),y_={translateExtent:kl,nodeOrigin:vM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function vX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Ie(wX,Ye),c=Xe();S.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=y_,a()}),[]);const d=S.useRef(y_);return S.useEffect(()=>{for(const u of g_){const h=e[u],p=d.current[u];h!==p&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?r(h):u==="maxZoom"?i(h):u==="translateExtent"?s(h):u==="nodeExtent"?o(h):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:KW(h)}):u==="fitView"?c.setState({fitViewQueued:h}):u==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[u]:h})))}d.current=e},g_.map(u=>e[u])),null}function b_(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function _X(e){var r;const[t,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const i=b_(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=b_())!=null&&r.matches?"dark":"light"}const x_=typeof document<"u"?document:null;function Cl(e=null,t={target:x_,actInsideInputWithModifier:!0}){const[n,r]=S.useState(!1),i=S.useRef(!1),s=S.useRef(new Set([])),[o,a]=S.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` + */var _f=S,VY=UY;function HY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var KY=typeof Object.is=="function"?Object.is:HY,qY=VY.useSyncExternalStore,GY=_f.useRef,WY=_f.useEffect,YY=_f.useMemo,XY=_f.useDebugValue;pM.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=GY(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=YY(function(){function l(p){if(!c){if(c=!0,d=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return u=g}return u=p}if(g=u,KY(d,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(d=p,g):(d=p,u=b)}var c=!1,d,u,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=qY(e,s[0],s[1]);return WY(function(){o.hasValue=!0,o.value=a},[a]),XY(a),a};hM.exports=pM;var QY=hM.exports;const ZY=Ml(QY),JY={},h_=e=>{let t;const n=new Set,r=(d,u)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=u??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(JY?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},eX=e=>e?h_(e):h_,{useDebugValue:tX}=tk,{useSyncExternalStoreWithSelector:nX}=ZY,rX=e=>e;function yM(e,t=rX,n){const r=nX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tX(r),r}const p_=(e,t)=>{const n=eX(e),r=(i,s=t)=>yM(n,i,s);return Object.assign(r,n),r},iX=(e,t)=>e?p_(e,t):p_;function We(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const kf=S.createContext(null),sX=kf.Provider,bM=qn.error001("react");function Oe(e,t){const n=S.useContext(kf);if(n===null)throw new Error(bM);return yM(n,e,t)}function Ye(){const e=S.useContext(kf);if(e===null)throw new Error(bM);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const m_={display:"none"},oX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},xM="react-flow__node-desc",wM="react-flow__edge-desc",aX="react-flow__aria-live",lX=e=>e.ariaLiveMessage,cX=e=>e.ariaLabelConfig;function uX({rfId:e}){const t=Oe(lX);return f.jsx("div",{id:`${aX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:oX,children:t})}function dX({rfId:e,disableKeyboardA11y:t}){const n=Oe(cX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${xM}-${e}`,style:m_,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${wM}-${e}`,style:m_,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(uX,{rfId:e})]})}const Ef=S.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:pt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});Ef.displayName="Panel";function fX({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(Ef,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:f.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Jc=e=>e.id;function pX(e,t){return We(e.selectedNodes.map(Jc),t.selectedNodes.map(Jc))&&We(e.selectedEdges.map(Jc),t.selectedEdges.map(Jc))}function mX({onSelectionChange:e}){const t=Ye(),{selectedNodes:n,selectedEdges:r}=Oe(hX,pX);return S.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const gX=e=>!!e.onSelectionChangeHandlers;function yX({onSelectionChange:e}){const t=Oe(gX);return e||t?f.jsx(mX,{onSelectionChange:e}):null}const vM=[0,0],bX={x:0,y:0,zoom:1},xX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],g_=[...xX,"rfId"],wX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),y_={translateExtent:El,nodeOrigin:vM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function vX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Oe(wX,We),c=Ye();S.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=y_,a()}),[]);const d=S.useRef(y_);return S.useEffect(()=>{for(const u of g_){const h=e[u],p=d.current[u];h!==p&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?r(h):u==="maxZoom"?i(h):u==="translateExtent"?s(h):u==="nodeExtent"?o(h):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:KW(h)}):u==="fitView"?c.setState({fitViewQueued:h}):u==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[u]:h})))}d.current=e},g_.map(u=>e[u])),null}function b_(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function _X(e){var r;const[t,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const i=b_(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=b_())!=null&&r.matches?"dark":"light"}const x_=typeof document<"u"?document:null;function Cl(e=null,t={target:x_,actInsideInputWithModifier:!0}){const[n,r]=S.useState(!1),i=S.useRef(!1),s=S.useRef(new Set([])),[o,a]=S.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` `).replace(` `,` +`).split(` -`)),d=c.reduce((u,h)=>u.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return S.useEffect(()=>{const l=(t==null?void 0:t.target)??x_,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var w,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&X2(p))return!1;const b=v_(p.code,a);if(s.current.add(p[b]),w_(o,s.current,!1)){const x=((m=(w=p.composedPath)==null?void 0:w.call(p))==null?void 0:m[0])||p.target,y=(x==null?void 0:x.nodeName)==="BUTTON"||(x==null?void 0:x.nodeName)==="A";t.preventDefault!==!1&&(i.current||!y)&&p.preventDefault(),r(!0)}},u=p=>{const g=v_(p.code,a);w_(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function w_(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function v_(e,t){return t.includes(e)?"code":"key"}const EX=()=>{const e=Xe();return S.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=J0(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??i,u=n.snapToGrid??s;return Ho(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=To(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function _M(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)kX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function kX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function EM(e,t){return _M(e,t)}function kM(e,t){return _M(e,t)}function Ti(e,t){return{id:e,type:"select",selected:t}}function Gs(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ti(s.id,o)))}return r}function __({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function E_(e){return{id:e.id,type:"remove"}}const SX=q2();function SM(e,t,n={}){return QW(e,t,{...n,onError:n.onError??SX})}const k_=e=>DW(e),NX=e=>U2(e);function NM(e){return S.forwardRef(e)}const TX=typeof window<"u"?S.useLayoutEffect:S.useEffect;function S_(e){const[t,n]=S.useState(BigInt(0)),[r]=S.useState(()=>AX(()=>n(i=>i+BigInt(1))));return TX(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function AX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const TM=S.createContext(null);function CX({children:e}){const t=Xe(),n=S.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let b=l;for(const m of a)b=typeof m=="function"?m(b):m;let w=__({items:b,lookup:h});for(const m of g.values())w=m(w);d&&c(b),w.length>0?u==null||u(w):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:x,setNodes:y}=t.getState();m&&y(x)})},[]),r=S_(n),i=S.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?c(p):u&&u(__({items:p,lookup:h}))},[]),s=S_(i),o=S.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(TM.Provider,{value:o,children:e})}function MX(){const e=S.useContext(TM);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const IX=e=>!!e.panZoom;function ob(){const e=EX(),t=Xe(),n=MX(),r=Ie(IX),i=S.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),o=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,x;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=k_(u)?u:h.get(u.id),b=g.parentId?W2(g.position,g.measured,g.parentId,h,p):g.position,w={...g,position:b,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((x=g.measured)==null?void 0:x.height)??g.height};return No(w)},c=(u,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&k_(w)?w:{...b,...w}}return b}))},d=(u,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&NX(w)?w:{...b,...w}}return b}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var h;return(h=s(u))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(h=>({...h}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:o,setEdges:a,addNodes:u=>{const h=Array.isArray(u)?u:[u];n.nodeQueue.push(p=>[...p,...h])},addEdges:u=>{const h=Array.isArray(u)?u:[u];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:u=[],edges:h=[],transform:p}=t.getState(),[g,b,w]=p;return{nodes:u.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:w}}},deleteElements:async({nodes:u=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:x,onDelete:y,onBeforeDelete:v}=t.getState(),{nodes:E,edges:_}=await zW({nodesToRemove:u,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),C=_.length>0,N=E.length>0;if(C){const I=_.map(E_);w==null||w(_),x(I)}if(N){const I=E.map(E_);b==null||b(E),m(I)}return(N||C)&&(y==null||y({nodes:E,edges:_})),{deletedNodes:E,deletedEdges:_}},getIntersectingNodes:(u,h=!0,p)=>{const g=e_(u),b=g?u:l(u),w=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const x=t.getState().nodeLookup.get(m.id);if(x&&!g&&(m.id===u.id||!x.internals.positionAbsolute))return!1;const y=No(w?m:x),v=Tl(y,b);return h&&v>0||v>=y.width*y.height||v>=b.width*b.height}):[]},isNodeIntersecting:(u,h,p=!0)=>{const b=e_(u)?u:l(u);if(!b)return!1;const w=Tl(b,h);return p&&w>0||w>=h.width*h.height||w>=b.width*b.height},updateNode:c,updateNodeData:(u,h,p={replace:!1})=>{c(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:d,updateEdgeData:(u,h,p={replace:!1})=>{d(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:u=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return jW(u,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:u,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${u}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${u?h?`-${u}-${h}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const h=t.getState().fitViewResolver??HW();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const N_=e=>e.selected,OX=typeof window<"u"?window:void 0;function RX({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Xe(),{deleteElements:r}=ob(),i=Cl(e,{actInsideInputWithModifier:!1}),s=Cl(t,{target:OX});S.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(N_),edges:o.filter(N_)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function LX(e){const t=Xe();S.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=eb(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Sf={position:"absolute",width:"100%",height:"100%",top:0,left:0},PX=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function DX({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Ui.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:w,onViewportChange:m,isControlledViewport:x,paneClickDistance:y,selectionOnDrag:v}){const E=Xe(),_=S.useRef(null),{userSelectionActive:C,lib:N,connectionInProgress:I}=Ie(PX,Ye),A=Cl(h),P=S.useRef();LX(_);const R=S.useCallback($=>{m==null||m({x:$[0],y:$[1],zoom:$[2]}),x||E.setState({transform:$})},[m,x]);return S.useEffect(()=>{if(_.current){P.current=TY({domNode:_.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>E.setState(B=>B.paneDragging===M?B:{paneDragging:M}),onPanZoomStart:(M,B)=>{const{onViewportChangeStart:L,onMoveStart:D}=E.getState();D==null||D(M,B),L==null||L(B)},onPanZoom:(M,B)=>{const{onViewportChange:L,onMove:D}=E.getState();D==null||D(M,B),L==null||L(B)},onPanZoomEnd:(M,B)=>{const{onViewportChangeEnd:L,onMoveEnd:D}=E.getState();D==null||D(M,B),L==null||L(B)}});const{x:$,y:O,zoom:j}=P.current.getViewport();return E.setState({panZoom:P.current,transform:[$,O,j],domNode:_.current.closest(".react-flow")}),()=>{var M;(M=P.current)==null||M.destroy()}}},[]),S.useEffect(()=>{var $;($=P.current)==null||$.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:A,preventScrolling:p,noPanClassName:w,userSelectionActive:C,noWheelClassName:b,lib:N,onTransformChange:R,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:y})},[e,t,n,r,i,s,o,a,A,p,w,C,b,N,R,I,v,y]),f.jsx("div",{className:"react-flow__renderer",ref:_,style:Sf,children:g})}const jX=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function BX(){const{userSelectionActive:e,userSelectionRect:t}=Ie(jX,Ye);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const pp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},$X=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function FX({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Sl.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:b}){const w=S.useRef(0),m=Xe(),{userSelectionActive:x,elementsSelectable:y,dragging:v,connectionInProgress:E,panBy:_,autoPanSpeed:C}=Ie($X,Ye),N=y&&(e||x),I=S.useRef(null),A=S.useRef(),P=S.useRef(new Set),R=S.useRef(new Set),$=S.useRef(!1),O=S.useRef({x:0,y:0}),j=S.useRef(!1),M=q=>{if($.current||E){$.current=!1;return}c==null||c(q),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},B=q=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){q.preventDefault();return}d==null||d(q)},L=u?q=>u(q):void 0,D=q=>{$.current&&(q.stopPropagation(),$.current=!1)},k=q=>{var F,G;const{domNode:ee,transform:ce}=m.getState();if(A.current=ee==null?void 0:ee.getBoundingClientRect(),!A.current)return;const ue=q.target===I.current;if(!ue&&!!q.target.closest(".nokey")||!e||!(o&&ue||t)||q.button!==0||!q.isPrimary)return;(G=(F=q.target)==null?void 0:F.setPointerCapture)==null||G.call(F,q.pointerId),$.current=!1;const{x:ye,y:Y}=zn(q.nativeEvent,A.current),W=Ho({x:ye,y:Y},ce);m.setState({userSelectionRect:{width:0,height:0,startX:W.x,startY:W.y,x:ye,y:Y}}),ue||(q.stopPropagation(),q.preventDefault())};function V(q,ee){const{userSelectionRect:ce}=m.getState();if(!ce)return;const{transform:ue,nodeLookup:ae,edgeLookup:se,connectionLookup:ye,triggerNodeChanges:Y,triggerEdgeChanges:W,defaultEdgeOptions:F}=m.getState(),G={x:ce.startX,y:ce.startY},{x:le,y:me}=To(G,ue),pe={startX:G.x,startY:G.y,x:qPe.id)),R.current=new Set;const Be=(F==null?void 0:F.selectable)??!0;for(const Pe of P.current){const z=ye.get(Pe);if(z)for(const{edgeId:K}of z.values()){const te=se.get(K);te&&(te.selectable??Be)&&R.current.add(K)}}if(!t_(Le,P.current)){const Pe=Gs(ae,P.current,!0);Y(Pe)}if(!t_(be,R.current)){const Pe=Gs(se,R.current);W(Pe)}m.setState({userSelectionRect:pe,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!i||!A.current)return;const[q,ee]=Z0(O.current,A.current,C);_({x:q,y:ee}).then(ce=>{if(!$.current||!ce){w.current=requestAnimationFrame(H);return}const{x:ue,y:ae}=O.current;V(ue,ae),w.current=requestAnimationFrame(H)})}const T=()=>{cancelAnimationFrame(w.current),w.current=0,j.current=!1};S.useEffect(()=>()=>T(),[]);const U=q=>{const{userSelectionRect:ee,transform:ce,resetSelectedElements:ue}=m.getState();if(!A.current||!ee)return;const{x:ae,y:se}=zn(q.nativeEvent,A.current);O.current={x:ae,y:se};const ye=To({x:ee.startX,y:ee.startY},ce);if(!$.current){const Y=t?0:s;if(Math.hypot(ae-ye.x,se-ye.y)<=Y)return;ue(),a==null||a(q)}$.current=!0,j.current||(H(),j.current=!0),V(ae,se)},X=q=>{var ee,ce;q.button===0&&((ce=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||ce.call(ee,q.pointerId),!x&&q.target===I.current&&m.getState().userSelectionRect&&(M==null||M(q)),m.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(l==null||l(q),m.setState({nodesSelectionActive:P.current.size>0})),T())},Z=q=>{var ee,ce;(ce=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||ce.call(ee,q.pointerId),T()},J=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:mt(["react-flow__pane",{draggable:J,dragging:v,selection:e}]),onClick:N?void 0:pp(M,I),onContextMenu:pp(B,I),onWheel:pp(L,I),onPointerEnter:N?void 0:h,onPointerMove:N?U:p,onPointerUp:N?X:void 0,onPointerCancel:N?Z:void 0,onPointerDownCapture:N?k:void 0,onClickCapture:N?D:void 0,onPointerLeave:g,ref:I,style:Sf,children:[b,f.jsx(BX,{})]})}function pg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):i([e])}function AM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Xe(),[l,c]=S.useState(!1),d=S.useRef();return S.useEffect(()=>{d.current=hY({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{pg({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),S.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,i,o]),l}const zX=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function CM(){const e=Xe();return S.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,h=zX(o),p=i?s[0]:5,g=i?s[1]:5,b=n.direction.x*p*n.factor,w=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let x={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+w};i&&(x=rc(x,s));const{position:y,positionAbsolute:v}=V2({nodeId:m.id,nextPosition:x,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});m.position=y,m.internals.positionAbsolute=v,u.set(m.id,m)}l(u)},[])}const ab=S.createContext(null),UX=ab.Provider;ab.Consumer;const MM=()=>S.useContext(ab),VX=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),HX=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===ko.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:d&&c}};function KX({type:e="source",position:t=ge.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...h},p){var j,M;const g=o||null,b=e==="target",w=Xe(),m=MM(),{connectOnClick:x,noPanClassName:y,rfId:v}=Ie(VX,Ye),{connectingFrom:E,connectingTo:_,clickConnecting:C,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:A,valid:P}=Ie(HX(m,g,e),Ye);m||(M=(j=w.getState()).onError)==null||M.call(j,"010",qn.error010());const R=B=>{const{defaultEdgeOptions:L,onConnect:D,hasDefaultEdges:k}=w.getState(),V={...L,...B};if(k){const{edges:H,setEdges:T,onError:U}=w.getState();T(SM(V,H,{onError:U}))}D==null||D(V),a==null||a(V)},$=B=>{if(!m)return;const L=Q2(B.nativeEvent);if(i&&(L&&B.button===0||!L)){const D=w.getState();hg.onPointerDown(B.nativeEvent,{handleDomNode:B.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:b,handleId:g,nodeId:m,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...k)=>{var V,H;return(H=(V=w.getState()).onConnectEnd)==null?void 0:H.call(V,...k)},updateConnection:D.updateConnection,onConnect:R,isValidConnection:n||((...k)=>{var V,H;return((H=(V=w.getState()).isValidConnection)==null?void 0:H.call(V,...k))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}L?d==null||d(B):u==null||u(B)},O=B=>{const{onClickConnectStart:L,onClickConnectEnd:D,connectionClickStartHandle:k,connectionMode:V,isValidConnection:H,lib:T,rfId:U,nodeLookup:X,connection:Z}=w.getState();if(!m||!k&&!i)return;if(!k){L==null||L(B.nativeEvent,{nodeId:m,handleId:g,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const J=Y2(B.target),q=n||H,{connection:ee,isValid:ce}=hg.isValid(B.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:V,fromNodeId:k.nodeId,fromHandleId:k.id||null,fromType:k.type,isValidConnection:q,flowId:U,doc:J,lib:T,nodeLookup:X});ce&&ee&&R(ee);const ue=structuredClone(Z);delete ue.inProgress,ue.toPosition=ue.toHandle?ue.toHandle.position:null,D==null||D(B,ue),w.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:mt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,c,{source:!b,target:b,connectable:r,connectablestart:i,connectableend:s,clickconnecting:C,connectingfrom:E,connectingto:_,valid:P,connectionindicator:r&&(!I||N)&&(I||A?s:i)}]),onMouseDown:$,onTouchStart:$,onClick:x?O:void 0,ref:p,...h,children:l})}const Mo=S.memo(NM(KX));function qX({data:e,isConnectable:t,sourcePosition:n=ge.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function GX({data:e,isConnectable:t,targetPosition:n=ge.Top,sourcePosition:r=ge.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function WX(){return null}function YX({data:e,isConnectable:t,targetPosition:n=ge.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Nd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},T_={input:qX,default:GX,output:YX,group:WX};function XX(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const QX=e=>{const{width:t,height:n,x:r,y:i}=nc(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function ZX({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Xe(),{width:i,height:s,transformString:o,userSelectionActive:a}=Ie(QX,Ye),l=CM(),c=S.useRef(null);S.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const d=!a&&i!==null&&s!==null;if(AM({nodeRef:c,disabled:!d}),!d)return null;const u=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Nd,p.key)&&(p.preventDefault(),l({direction:Nd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:mt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const A_=typeof window<"u"?window:void 0,JX=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function IM({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:v,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:N,autoPanOnSelection:I,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:$,preventScrolling:O,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:B,disableKeyboardA11y:L,onViewportChange:D,isControlledViewport:k}){const{nodesSelectionActive:V,userSelectionActive:H}=Ie(JX,Ye),T=Cl(c,{target:A_}),U=Cl(b,{target:A_}),X=U||N,Z=U||v,J=d&&X!==!0,q=T||H||J;return RX({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(DX,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:Z,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!T&&X,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:$,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:M,noPanClassName:B,onViewportChange:D,isControlledViewport:k,paneClickDistance:a,selectionOnDrag:J,children:f.jsxs(FX,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:X,autoPanOnSelection:I,isSelecting:!!q,selectionMode:u,selectionKeyPressed:T,paneClickDistance:a,selectionOnDrag:J,children:[e,V&&f.jsx(ZX,{onSelectionContextMenu:j,noPanClassName:B,disableKeyboardA11y:L})]})})}IM.displayName="FlowRenderer";const eQ=S.memo(IM),tQ=e=>t=>e?Q0(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function nQ(e){return Ie(S.useCallback(tQ(e),[e]),Ye)}const rQ=e=>e.updateNodeInternals;function iQ(){const e=Ie(rQ),[t]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return S.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function sQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Xe(),s=S.useRef(null),o=S.useRef(null),a=S.useRef(e.sourcePosition),l=S.useRef(e.targetPosition),c=S.useRef(t),d=n&&!!e.internals.handleBounds;return S.useEffect(()=>{s.current&&!e.hidden&&(!d||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[d,e.hidden]),S.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),S.useEffect(()=>{if(s.current){const u=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(u||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function oQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:b,nodeTypes:w,nodeClickDistance:m,onError:x}){const{node:y,internals:v,isParent:E}=Ie(q=>{const ee=q.nodeLookup.get(e),ce=q.parentLookup.has(e);return{node:ee,internals:ee.internals,isParent:ce}},Ye);let _=y.type||"default",C=(w==null?void 0:w[_])||T_[_];C===void 0&&(x==null||x("003",qn.error003(_)),_="default",C=(w==null?void 0:w.default)||T_.default);const N=!!(y.draggable||a&&typeof y.draggable>"u"),I=!!(y.selectable||l&&typeof y.selectable>"u"),A=!!(y.connectable||c&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),R=Xe(),$=G2(y),O=sQ({node:y,nodeType:_,hasDimensions:$,resizeObserver:u}),j=AM({nodeRef:O,disabled:y.hidden||!N,noDragClassName:h,handleSelector:y.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),M=CM();if(y.hidden)return null;const B=Rr(y),L=XX(y),D=I||N||t||n||r||i,k=n?q=>n(q,{...v.userNode}):void 0,V=r?q=>r(q,{...v.userNode}):void 0,H=i?q=>i(q,{...v.userNode}):void 0,T=s?q=>s(q,{...v.userNode}):void 0,U=o?q=>o(q,{...v.userNode}):void 0,X=q=>{const{selectNodesOnDrag:ee,nodeDragThreshold:ce}=R.getState();I&&(!ee||!N||ce>0)&&pg({id:e,store:R,nodeRef:O}),t&&t(q,{...v.userNode})},Z=q=>{if(!(X2(q.nativeEvent)||g)){if(B2.includes(q.key)&&I){const ee=q.key==="Escape";pg({id:e,store:R,unselect:ee,nodeRef:O})}else if(N&&y.selected&&Object.prototype.hasOwnProperty.call(Nd,q.key)){q.preventDefault();const{ariaLabelConfig:ee}=R.getState();R.setState({ariaLiveMessage:ee["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:Nd[q.key],factor:q.shiftKey?4:1})}}},J=()=>{var ye;if(g||!((ye=O.current)!=null&&ye.matches(":focus-visible")))return;const{transform:q,width:ee,height:ce,autoPanOnNodeFocus:ue,setCenter:ae}=R.getState();if(!ue)return;Q0(new Map([[e,y]]),{x:0,y:0,width:ee,height:ce},q,!0).length>0||ae(y.position.x+B.width/2,y.position.y+B.height/2,{zoom:q[2]})};return f.jsx("div",{className:mt(["react-flow__node",`react-flow__node-${_}`,{[p]:N},y.className,{selected:y.selected,selectable:I,parent:E,draggable:N,dragging:j}]),ref:O,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:$?"visible":"hidden",...y.style,...L},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:k,onMouseMove:V,onMouseLeave:H,onContextMenu:T,onClick:X,onDoubleClick:U,onKeyDown:P?Z:void 0,tabIndex:P?0:void 0,onFocus:P?J:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${xM}-${b}`,"aria-label":y.ariaLabel,...y.domAttributes,children:f.jsx(UX,{value:e,children:f.jsx(C,{id:e,data:y.data,type:_,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:y.selected??!1,selectable:I,draggable:N,deletable:y.deletable??!0,isConnectable:A,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:v.z,parentId:y.parentId,...B})})})}var aQ=S.memo(oQ);const lQ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OM(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=Ie(lQ,Ye),o=nQ(e.onlyRenderVisibleElements),a=iQ();return f.jsx("div",{className:"react-flow__nodes",style:Sf,children:o.map(l=>f.jsx(aQ,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}OM.displayName="NodeRenderer";const cQ=S.memo(OM);function uQ(e){return Ie(S.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&WW({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),Ye)}const dQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},fQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},C_={[Nl.Arrow]:dQ,[Nl.ArrowClosed]:fQ};function hQ(e){const t=Xe();return S.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(C_,e)?C_[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const pQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=hQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},RM=({defaultColor:e,rfId:t})=>{const n=Ie(s=>s.edges),r=Ie(s=>s.defaultEdgeOptions),i=S.useMemo(()=>nY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(pQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};RM.displayName="MarkerDefinitions";var mQ=S.memo(RM);function LM({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,h]=S.useState({x:1,y:0,width:0,height:0}),p=mt(["react-flow__edge-textwrapper",c]),g=S.useRef(null);return S.useEffect(()=>{if(g.current){const b=g.current.getBBox();h({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:p,visibility:u.width?"visible":"hidden",...d,children:[i&&f.jsx("rect",{width:u.width+2*o[0],x:-o[0],y:-o[1],height:u.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}LM.displayName="EdgeText";const gQ=S.memo(LM);function Nf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...d,d:e,fill:"none",className:mt(["react-flow__edge-path",d.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(gQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function M_({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===ge.Left||e===ge.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function PM({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top}){const[o,a]=M_({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=M_({pos:s,x1:r,y1:i,x2:e,y2:t}),[d,u,h,p]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,d,u,h,p]}function DM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})=>{const[x,y,v]=PM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),E=e.isInternal?void 0:t;return f.jsx(Nf,{id:E,path:x,labelX:y,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})})}const yQ=DM({isInternal:!1}),jM=DM({isInternal:!0});yQ.displayName="SimpleBezierEdge";jM.displayName="SimpleBezierEdgeInternal";function BM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,sourcePosition:p=ge.Bottom,targetPosition:g=ge.Top,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,E]=ug({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:E,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:b,markerStart:w,interactionWidth:x})})}const $M=BM({isInternal:!1}),FM=BM({isInternal:!0});$M.displayName="SmoothStepEdge";FM.displayName="SmoothStepEdgeInternal";function zM(e){return S.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx($M,{...n,id:r,pathOptions:S.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const bQ=zM({isInternal:!1}),UM=zM({isInternal:!0});bQ.displayName="StepEdge";UM.displayName="StepEdgeInternal";function VM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})=>{const[w,m,x]=tM({sourceX:n,sourceY:r,targetX:i,targetY:s}),y=e.isInternal?void 0:t;return f.jsx(Nf,{id:y,path:w,labelX:m,labelY:x,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const xQ=VM({isInternal:!1}),HM=VM({isInternal:!0});xQ.displayName="StraightEdge";HM.displayName="StraightEdgeInternal";function KM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=ge.Bottom,targetPosition:a=ge.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,E]=J2({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:E,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:x})})}const wQ=KM({isInternal:!1}),qM=KM({isInternal:!0});wQ.displayName="BezierEdge";qM.displayName="BezierEdgeInternal";const I_={default:qM,straight:HM,step:UM,smoothstep:FM,simplebezier:jM},O_={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},vQ=(e,t,n)=>n===ge.Left?e-t:n===ge.Right?e+t:e,_Q=(e,t,n)=>n===ge.Top?e-t:n===ge.Bottom?e+t:e,R_="react-flow__edgeupdater";function L_({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:mt([R_,`${R_}-${a}`]),cx:vQ(t,r,e),cy:_Q(n,r,e),r,stroke:"transparent",fill:"transparent"})}function EQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:h,setUpdateHover:p}){const g=Xe(),b=(v,E)=>{if(v.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:N,connectionRadius:I,lib:A,onConnectStart:P,cancelConnection:R,nodeLookup:$,rfId:O,panBy:j,updateConnection:M}=g.getState(),B=E.type==="target",L=(V,H)=>{h(!1),u==null||u(V,n,E.type,H)},D=V=>c==null?void 0:c(n,V),k=(V,H)=>{h(!0),d==null||d(v,n,E.type),P==null||P(V,H)};hg.onPointerDown(v.nativeEvent,{autoPanOnConnect:_,connectionMode:N,connectionRadius:I,domNode:C,handleId:E.id,nodeId:E.nodeId,nodeLookup:$,isTarget:B,edgeUpdaterType:E.type,lib:A,flowId:O,cancelConnection:R,panBy:j,isValidConnection:(...V)=>{var H,T;return((T=(H=g.getState()).isValidConnection)==null?void 0:T.call(H,...V))??!0},onConnect:D,onConnectStart:k,onConnectEnd:(...V)=>{var H,T;return(T=(H=g.getState()).onConnectEnd)==null?void 0:T.call(H,...V)},onReconnectEnd:L,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),x=()=>p(!0),y=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(L_,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:w,onMouseEnter:x,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&f.jsx(L_,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:x,onMouseOut:y,type:"target"})]})}function kQ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:b,noPanClassName:w,onError:m,disableKeyboardA11y:x}){let y=Ie(ae=>ae.edgeLookup.get(e));const v=Ie(ae=>ae.defaultEdgeOptions);y=v?{...v,...y}:y;let E=y.type||"default",_=(b==null?void 0:b[E])||I_[E];_===void 0&&(m==null||m("011",qn.error011(E)),E="default",_=(b==null?void 0:b.default)||I_.default);const C=!!(y.focusable||t&&typeof y.focusable>"u"),N=typeof u<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),I=!!(y.selectable||r&&typeof y.selectable>"u"),A=S.useRef(null),[P,R]=S.useState(!1),[$,O]=S.useState(!1),j=Xe(),{zIndex:M,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H}=Ie(S.useCallback(ae=>{const se=ae.nodeLookup.get(y.source),ye=ae.nodeLookup.get(y.target);if(!se||!ye)return{zIndex:y.zIndex,...O_};const Y=tY({id:e,sourceNode:se,targetNode:ye,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:ae.connectionMode,onError:m});return{zIndex:GW({selected:y.selected,zIndex:y.zIndex,sourceNode:se,targetNode:ye,elevateOnSelect:ae.elevateEdgesOnSelect,zIndexMode:ae.zIndexMode}),...Y||O_}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Ye),T=S.useMemo(()=>y.markerStart?`url('#${dg(y.markerStart,g)}')`:void 0,[y.markerStart,g]),U=S.useMemo(()=>y.markerEnd?`url('#${dg(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||B===null||L===null||D===null||k===null)return null;const X=ae=>{var W;const{addSelectedEdges:se,unselectNodesAndEdges:ye,multiSelectionActive:Y}=j.getState();I&&(j.setState({nodesSelectionActive:!1}),y.selected&&Y?(ye({nodes:[],edges:[y]}),(W=A.current)==null||W.blur()):se([e])),i&&i(ae,y)},Z=s?ae=>{s(ae,{...y})}:void 0,J=o?ae=>{o(ae,{...y})}:void 0,q=a?ae=>{a(ae,{...y})}:void 0,ee=l?ae=>{l(ae,{...y})}:void 0,ce=c?ae=>{c(ae,{...y})}:void 0,ue=ae=>{var se;if(!x&&B2.includes(ae.key)&&I){const{unselectNodesAndEdges:ye,addSelectedEdges:Y}=j.getState();ae.key==="Escape"?((se=A.current)==null||se.blur(),ye({edges:[y]})):Y([e])}};return f.jsx("svg",{style:{zIndex:M},children:f.jsxs("g",{className:mt(["react-flow__edge",`react-flow__edge-${E}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!I&&!i,updating:P,selectable:I}]),onClick:X,onDoubleClick:Z,onContextMenu:J,onMouseEnter:q,onMouseMove:ee,onMouseLeave:ce,onKeyDown:C?ue:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${wM}-${g}`:void 0,ref:A,...y.domAttributes,children:[!$&&f.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:I,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:T,markerEnd:U,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),N&&f.jsx(EQ,{edge:y,isReconnectable:N,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,sourceX:B,sourceY:L,targetX:D,targetY:k,sourcePosition:V,targetPosition:H,setUpdateHover:R,setReconnecting:O})]})})}var SQ=S.memo(kQ);const NQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function GM({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:b}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,onError:y}=Ie(NQ,Ye),v=uQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(mQ,{defaultColor:e,rfId:n}),v.map(E=>f.jsx(SQ,{id:E,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:b},E))]})}GM.displayName="EdgeRenderer";const TQ=S.memo(GM),AQ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function CQ({children:e}){const t=Ie(AQ);return f.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function MQ(e){const t=ob(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const IQ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function OQ(e){const t=Ie(IQ),n=Xe();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function RQ(e){return e.connection.inProgress?{...e.connection,to:Ho(e.connection.to,e.transform)}:{...e.connection}}function LQ(e){return RQ}function PQ(e){const t=LQ();return Ie(t,Ye)}const DQ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jQ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Ie(DQ,Ye);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:mt(["react-flow__connection",z2(a)]),children:f.jsx(WM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const WM=({style:e,type:t=Hr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:h,pointer:p}=PQ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:z2(r),toNode:d,toHandle:u,pointer:p});let g="";const b={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Hr.Bezier:[g]=J2(b);break;case Hr.SimpleBezier:[g]=PM(b);break;case Hr.Step:[g]=ug({...b,borderRadius:0});break;case Hr.SmoothStep:[g]=ug(b);break;default:[g]=tM(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};WM.displayName="ConnectionLine";const BQ={};function P_(e=BQ){S.useRef(e),Xe(),S.useEffect(()=>{},[e])}function $Q(){Xe(),S.useRef(!1),S.useEffect(()=>{},[])}function YM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:A,defaultViewport:P,translateExtent:R,minZoom:$,maxZoom:O,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:B,zoomOnPinch:L,panOnScroll:D,panOnScrollSpeed:k,panOnScrollMode:V,zoomOnDoubleClick:H,panOnDrag:T,autoPanOnSelection:U,onPaneClick:X,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneScroll:ee,onPaneContextMenu:ce,paneClickDistance:ue,nodeClickDistance:ae,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:Y,onEdgeMouseLeave:W,reconnectRadius:F,onReconnect:G,onReconnectStart:le,onReconnectEnd:me,noDragClassName:pe,noWheelClassName:Le,noPanClassName:be,disableKeyboardA11y:Be,nodeExtent:Pe,rfId:z,viewport:K,onViewportChange:te}){return P_(e),P_(t),$Q(),MQ(n),OQ(K),f.jsx(eQ,{onPaneClick:X,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneContextMenu:ce,onPaneScroll:ee,paneClickDistance:ue,deleteKeyCode:N,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:A,zoomOnScroll:B,zoomOnPinch:L,zoomOnDoubleClick:H,panOnScroll:D,panOnScrollSpeed:k,panOnScrollMode:V,panOnDrag:T,autoPanOnSelection:U,defaultViewport:P,translateExtent:R,minZoom:$,maxZoom:O,onSelectionContextMenu:u,preventScrolling:j,noDragClassName:pe,noWheelClassName:Le,noPanClassName:be,disableKeyboardA11y:Be,onViewportChange:te,isControlledViewport:!!K,children:f.jsxs(CQ,{children:[f.jsx(TQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:G,onReconnectStart:le,onReconnectEnd:me,onlyRenderVisibleElements:I,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:Y,onEdgeMouseLeave:W,reconnectRadius:F,defaultMarkerColor:M,noPanClassName:be,disableKeyboardA11y:Be,rfId:z}),f.jsx(jQ,{style:b,type:g,component:w,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(cQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:ae,onlyRenderVisibleElements:I,noPanClassName:be,noDragClassName:pe,disableKeyboardA11y:Be,nodeExtent:Pe,rfId:z}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}YM.displayName="GraphView";const FQ=S.memo(YM),zQ=q2(),D_=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,b=new Map,w=new Map,m=r??t??[],x=n??e??[],y=d??[0,0],v=u??kl;iM(b,w,m);const{nodesInitialized:E}=fg(x,p,g,{nodeOrigin:y,nodeExtent:v,zIndexMode:h});let _=[0,0,1];if(o&&i&&s){const C=nc(p,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:N,y:I,zoom:A}=J0(C,i,s,l,c,(a==null?void 0:a.padding)??.1);_=[N,I,A]}return{rfId:"1",width:i??0,height:s??0,transform:_,nodes:x,nodesInitialized:E,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:w,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:kl,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ko.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...F2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:zQ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:$2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},UQ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h})=>iX((p,g)=>{async function b(){const{nodeLookup:w,panZoom:m,fitViewOptions:x,fitViewResolver:y,width:v,height:E,minZoom:_,maxZoom:C}=g();m&&(await FW({nodes:w,width:v,height:E,panZoom:m,minZoom:_,maxZoom:C},x),y==null||y.resolve(!0),p({fitViewResolver:null}))}return{...D_({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:w=>{const{nodeLookup:m,parentLookup:x,nodeOrigin:y,elevateNodesOnSelect:v,fitViewQueued:E,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:N,hasSelectedNodes:I}=fg(w,m,x,{nodeOrigin:y,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:_}),A=C&&I;E&&N?(b(),p({nodes:w,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):p({nodes:w,nodesInitialized:N,nodesSelectionActive:A})},setEdges:w=>{const{connectionLookup:m,edgeLookup:x}=g();iM(m,x,w),p({edges:w})},setDefaultNodesAndEdges:(w,m)=>{if(w){const{setNodes:x}=g();x(w),p({hasDefaultNodes:!0})}if(m){const{setEdges:x}=g();x(m),p({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:m,nodeLookup:x,parentLookup:y,domNode:v,nodeOrigin:E,nodeExtent:_,debug:C,fitViewQueued:N,zIndexMode:I}=g(),{changes:A,updatedInternals:P}=cY(w,x,y,v,E,_,I);P&&(sY(x,y,{nodeOrigin:E,nodeExtent:_,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(A==null?void 0:A.length)>0&&(C&&console.log("React Flow: trigger node changes",A),m==null||m(A)))},updateNodePositions:(w,m=!1)=>{const x=[];let y=[];const{nodeLookup:v,triggerNodeChanges:E,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:N}=g();for(const[I,A]of w){const P=v.get(I),R=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(A!=null&&A.position)),$={id:I,type:"position",position:R?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:m};if(P&&_.inProgress&&_.fromNode.id===P.id){const O=ts(P,_.fromHandle,ge.Left,!0);C({..._,from:O})}R&&P.parentId&&x.push({id:I,parentId:P.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),y.push($)}if(x.length>0){const{parentLookup:I,nodeOrigin:A}=g(),P=sb(x,v,I,A);y.push(...P)}for(const I of N.values())y=I(y);E(y)},triggerNodeChanges:w=>{const{onNodesChange:m,setNodes:x,nodes:y,hasDefaultNodes:v,debug:E}=g();if(w!=null&&w.length){if(v){const _=EM(w,y);x(_)}E&&console.log("React Flow: trigger node changes",w),m==null||m(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:m,setEdges:x,edges:y,hasDefaultEdges:v,debug:E}=g();if(w!=null&&w.length){if(v){const _=kM(w,y);x(_)}E&&console.log("React Flow: trigger edge changes",w),m==null||m(w)}},addSelectedNodes:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const _=w.map(C=>Ti(C,!0));v(_);return}v(Gs(y,new Set([...w]),!0)),E(Gs(x))},addSelectedEdges:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const _=w.map(C=>Ti(C,!0));E(_);return}E(Gs(x,new Set([...w]))),v(Gs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:m}={})=>{const{edges:x,nodes:y,nodeLookup:v,triggerNodeChanges:E,triggerEdgeChanges:_}=g(),C=w||y,N=m||x,I=[];for(const P of C){if(!P.selected)continue;const R=v.get(P.id);R&&(R.selected=!1),I.push(Ti(P.id,!1))}const A=[];for(const P of N)P.selected&&A.push(Ti(P.id,!1));E(I),_(A)},setMinZoom:w=>{const{panZoom:m,maxZoom:x}=g();m==null||m.setScaleExtent([w,x]),p({minZoom:w})},setMaxZoom:w=>{const{panZoom:m,minZoom:x}=g();m==null||m.setScaleExtent([x,w]),p({maxZoom:w})},setTranslateExtent:w=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(w),p({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:m,triggerNodeChanges:x,triggerEdgeChanges:y,elementsSelectable:v}=g();if(!v)return;const E=m.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]),_=w.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]);x(E),y(_)},setNodeExtent:w=>{const{nodes:m,nodeLookup:x,parentLookup:y,nodeOrigin:v,elevateNodesOnSelect:E,nodeExtent:_,zIndexMode:C}=g();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(fg(m,x,y,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:C}),p({nodeExtent:w}))},panBy:w=>{const{transform:m,width:x,height:y,panZoom:v,translateExtent:E}=g();return uY({delta:w,panZoom:v,transform:m,translateExtent:E,width:x,height:y})},setCenter:async(w,m,x)=>{const{width:y,height:v,maxZoom:E,panZoom:_}=g();if(!_)return!1;const C=typeof(x==null?void 0:x.zoom)<"u"?x.zoom:E;return await _.setViewport({x:y/2-w*C,y:v/2-m*C,zoom:C},{duration:x==null?void 0:x.duration,ease:x==null?void 0:x.ease,interpolate:x==null?void 0:x.interpolate}),!0},cancelConnection:()=>{p({connection:{...F2}})},updateConnection:w=>{p({connection:w})},reset:()=>p({...D_()})}},Object.is);function XM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:p}){const[g]=S.useState(()=>UQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:h}));return f.jsx(sX,{value:g,children:f.jsx(CX,{children:p})})}function VQ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p}){return S.useContext(Ef)?f.jsx(f.Fragment,{children:e}):f.jsx(XM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p,children:e})}const HQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function KQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onSelectionChange:$,onSelectionDragStart:O,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onBeforeDelete:k,connectionMode:V,connectionLineType:H=Hr.Bezier,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:X,deleteKeyCode:Z="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:q=!1,selectionMode:ee=Sl.Full,panActivationKeyCode:ce="Space",multiSelectionKeyCode:ue=Al()?"Meta":"Control",zoomActivationKeyCode:ae=Al()?"Meta":"Control",snapToGrid:se,snapGrid:ye,onlyRenderVisibleElements:Y=!1,selectNodesOnDrag:W,nodesDraggable:F,autoPanOnNodeFocus:G,nodesConnectable:le,nodesFocusable:me,nodeOrigin:pe=vM,edgesFocusable:Le,edgesReconnectable:be,elementsSelectable:Be=!0,defaultViewport:Pe=bX,minZoom:z=.5,maxZoom:K=2,translateExtent:te=kl,preventScrolling:oe=!0,nodeExtent:ve,defaultMarkerColor:Re="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:_t=!0,panOnScroll:Mn=!1,panOnScrollSpeed:ur=.5,panOnScrollMode:ut=Ui.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs=1,nodeClickDistance:hs=0,children:Of,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df=10,onNodesChange:ac,onEdgesChange:Q,noDragClassName:ne="nodrag",noWheelClassName:fe="nowheel",noPanClassName:Ce="nopan",fitView:Ge,fitViewOptions:xe,connectOnClick:Et,attributionPosition:xt,proOptions:Ee,defaultEdgeOptions:Ve,elevateNodesOnSelect:Ae=!0,elevateEdgesOnSelect:dt=!1,disableKeyboardA11y:dr=!1,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanOnSelection:yn=!0,autoPanSpeed:gi,connectionRadius:lc,isValidConnection:rI,onError:iI,style:sI,id:lb,nodeDragThreshold:oI,connectionDragThreshold:aI,viewport:lI,onViewportChange:cI,width:uI,height:dI,colorMode:fI="light",debug:hI,onScroll:cc,ariaLabelConfig:pI,zIndexMode:cb="basic",...mI},gI){const jf=lb||"1",yI=_X(fI),bI=S.useCallback(ub=>{ub.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),cc==null||cc(ub)},[cc]);return f.jsx("div",{"data-testid":"rf__wrapper",...mI,onScroll:bI,style:{...sI,...HQ},ref:gI,className:mt(["react-flow",i,yI]),id:lb,role:"application",children:f.jsxs(VQ,{nodes:e,edges:t,width:uI,height:dI,fitView:Ge,fitViewOptions:xe,minZoom:z,maxZoom:K,nodeOrigin:pe,nodeExtent:ve,zIndexMode:cb,children:[f.jsx(vX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:F,autoPanOnNodeFocus:G,nodesConnectable:le,nodesFocusable:me,edgesFocusable:Le,edgesReconnectable:be,elementsSelectable:Be,elevateNodesOnSelect:Ae,elevateEdgesOnSelect:dt,minZoom:z,maxZoom:K,nodeExtent:ve,onNodesChange:ac,onEdgesChange:Q,snapToGrid:se,snapGrid:ye,connectionMode:V,translateExtent:te,connectOnClick:Et,defaultEdgeOptions:Ve,fitView:Ge,fitViewOptions:xe,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:j,onSelectionDragStart:O,onSelectionDragStop:M,onMove:d,onMoveStart:u,onMoveEnd:h,noPanClassName:Ce,nodeOrigin:pe,rfId:jf,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanSpeed:gi,onError:iI,connectionRadius:lc,isValidConnection:rI,selectNodesOnDrag:W,nodeDragThreshold:oI,connectionDragThreshold:aI,onBeforeDelete:k,debug:hI,ariaLabelConfig:pI,zIndexMode:cb}),f.jsx(FQ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:o,connectionLineType:H,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:X,selectionKeyCode:J,selectionOnDrag:q,selectionMode:ee,deleteKeyCode:Z,multiSelectionKeyCode:ue,panActivationKeyCode:ce,zoomActivationKeyCode:ae,onlyRenderVisibleElements:Y,defaultViewport:Pe,translateExtent:te,minZoom:z,maxZoom:K,preventScrolling:oe,zoomOnScroll:$t,zoomOnPinch:_t,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:ur,panOnScrollMode:ut,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs,nodeClickDistance:hs,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df,defaultMarkerColor:Re,noDragClassName:ne,noWheelClassName:fe,noPanClassName:Ce,rfId:jf,disableKeyboardA11y:dr,nodeExtent:ve,viewport:lI,onViewportChange:cI}),f.jsx(yX,{onSelectionChange:$}),Of,f.jsx(fX,{proOptions:Ee,position:xt}),f.jsx(dX,{rfId:jf,disableKeyboardA11y:dr})]})})}var qQ=NM(KQ);function GQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>EM(i,s)),[]);return[t,n,r]}function WQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>kM(i,s)),[]);return[t,n,r]}function YQ({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:mt(["react-flow__background-pattern",n,r])})}function XQ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:mt(["react-flow__background-pattern","dots",t])})}var si;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(si||(si={}));const QQ={[si.Dots]:1,[si.Lines]:1,[si.Cross]:6},ZQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function QM({id:e,variant:t=si.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:d}){const u=S.useRef(null),{transform:h,patternId:p}=Ie(ZQ,Ye),g=r||QQ[t],b=t===si.Dots,w=t===si.Cross,m=Array.isArray(n)?n:[n,n],x=[m[0]*h[2]||1,m[1]*h[2]||1],y=g*h[2],v=Array.isArray(s)?s:[s,s],E=w?[y,y]:x,_=[v[0]*h[2]||1+E[0]/2,v[1]*h[2]||1+E[1]/2],C=`${p}${e||""}`;return f.jsxs("svg",{className:mt(["react-flow__background",c]),style:{...l,...Sf,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:u,"data-testid":"rf__background",children:[f.jsx("pattern",{id:C,x:h[0]%x[0],y:h[1]%x[1],width:x[0],height:x[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:b?f.jsx(XQ,{radius:y/2,className:d}):f.jsx(YQ,{dimensions:E,lineWidth:i,variant:t,className:d})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}QM.displayName="Background";const JQ=S.memo(QM);function eZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function tZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function nZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function iZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function eu({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:mt(["react-flow__controls-button",t]),...n,children:e})}const sZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ZM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:h="vertical","aria-label":p}){const g=Xe(),{isInteractive:b,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:x}=Ie(sZ,Ye),{zoomIn:y,zoomOut:v,fitView:E}=ob(),_=()=>{y(),s==null||s()},C=()=>{v(),o==null||o()},N=()=>{E(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),l==null||l(!b)},A=h==="horizontal"?"horizontal":"vertical";return f.jsxs(kf,{className:mt(["react-flow__controls",A,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":p??x["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(eu,{onClick:_,className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(eZ,{})}),f.jsx(eu,{onClick:C,className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:w,children:f.jsx(tZ,{})})]}),n&&f.jsx(eu,{className:"react-flow__controls-fitview",onClick:N,title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:f.jsx(nZ,{})}),r&&f.jsx(eu,{className:"react-flow__controls-interactive",onClick:I,title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:b?f.jsx(iZ,{}):f.jsx(rZ,{})}),d]})}ZM.displayName="Controls";const oZ=S.memo(ZM);function aZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:h,onClick:p}){const{background:g,backgroundColor:b}=s||{},w=o||g||b;return f.jsx("rect",{className:mt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:r,height:i,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:u,onClick:p?m=>p(m,e):void 0})}const lZ=S.memo(aZ),cZ=e=>e.nodes.map(t=>t.id),mp=e=>e instanceof Function?e:()=>e;function uZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=lZ,onClick:o}){const a=Ie(cZ,Ye),l=mp(t),c=mp(e),d=mp(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(fZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:u},h))})}function dZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:h,height:p}=Ie(g=>{const b=g.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const w=b.internals.userNode,{x:m,y:x}=b.internals.positionAbsolute,{width:y,height:v}=Rr(w);return{node:w,x:m,y:x,width:y,height:v}},Ye);return!c||c.hidden||!G2(c)?null:f.jsx(a,{x:d,y:u,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const fZ=S.memo(dZ);var hZ=S.memo(uZ);const pZ=200,mZ=150,gZ=e=>!e.hidden,yZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?K2(nc(e.nodeLookup,{filter:gZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},bZ="react-flow__minimap-desc";function JM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:b=!1,zoomable:w=!1,ariaLabel:m,inversePan:x,zoomStep:y=1,offsetScale:v=5}){const E=Xe(),_=S.useRef(null),{boundingRect:C,viewBB:N,rfId:I,panZoom:A,translateExtent:P,flowWidth:R,flowHeight:$,ariaLabelConfig:O}=Ie(yZ,Ye),j=(e==null?void 0:e.width)??pZ,M=(e==null?void 0:e.height)??mZ,B=C.width/j,L=C.height/M,D=Math.max(B,L),k=D*j,V=D*M,H=v*D,T=C.x-(k-C.width)/2-H,U=C.y-(V-C.height)/2-H,X=k+H*2,Z=V+H*2,J=`${bZ}-${I}`,q=S.useRef(0),ee=S.useRef();q.current=D,S.useEffect(()=>{if(_.current&&A)return ee.current=xY({domNode:_.current,panZoom:A,getTransform:()=>E.getState().transform,getViewScale:()=>q.current}),()=>{var se;(se=ee.current)==null||se.destroy()}},[A]),S.useEffect(()=>{var se;(se=ee.current)==null||se.update({translateExtent:P,width:R,height:$,inversePan:x,pannable:b,zoomStep:y,zoomable:w})},[b,w,x,y,P,R,$]);const ce=p?se=>{var W;const[ye,Y]=((W=ee.current)==null?void 0:W.pointer(se))||[0,0];p(se,{x:ye,y:Y})}:void 0,ue=g?S.useCallback((se,ye)=>{const Y=E.getState().nodeLookup.get(ye).internals.userNode;g(se,Y)},[]):void 0,ae=m??O["minimap.ariaLabel"];return f.jsx(kf,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*D:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:mt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:j,height:M,viewBox:`${T} ${U} ${X} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:_,onClick:ce,children:[ae&&f.jsx("title",{id:J,children:ae}),f.jsx(hZ,{onClick:ue,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${T-H},${U-H}h${X+H*2}v${Z+H*2}h${-X-H*2}z - M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}JM.displayName="MiniMap";const xZ=S.memo(JM),wZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vZ={[Ao.Line]:"right",[Ao.Handle]:"bottom-right"};function _Z({nodeId:e,position:t,variant:n=Ao.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:b,onResize:w,onResizeEnd:m}){const x=MM(),y=typeof e=="string"?e:x,v=Xe(),E=S.useRef(null),_=n===Ao.Handle,C=Ie(S.useCallback(wZ(_&&p),[_,p]),Ye),N=S.useRef(null),I=t??vZ[n];S.useEffect(()=>{if(!(!E.current||!y))return N.current||(N.current=OY({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j,domNode:M}=v.getState();return{nodeLookup:P,transform:R,snapGrid:$,snapToGrid:O,nodeOrigin:j,paneDomNode:M}},onChange:(P,R)=>{const{triggerNodeChanges:$,nodeLookup:O,parentLookup:j,nodeOrigin:M}=v.getState(),B=[],L={x:P.x,y:P.y},D=O.get(y);if(D&&D.expandParent&&D.parentId){const k=D.origin??M,V=P.width??D.measured.width??0,H=P.height??D.measured.height??0,T={id:D.id,parentId:D.parentId,rect:{width:V,height:H,...W2({x:P.x??D.position.x,y:P.y??D.position.y},{width:V,height:H},D.parentId,O,k)}},U=sb([T],O,j,M);B.push(...U),L.x=P.x?Math.max(k[0]*V,P.x):void 0,L.y=P.y?Math.max(k[1]*H,P.y):void 0}if(L.x!==void 0&&L.y!==void 0){const k={id:y,type:"position",position:{...L}};B.push(k)}if(P.width!==void 0&&P.height!==void 0){const V={id:y,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};B.push(V)}for(const k of R){const V={...k,type:"position"};B.push(V)}$(B)},onEnd:({width:P,height:R})=>{const $={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:R}};v.getState().triggerNodeChanges([$])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:h,onResizeStart:b,onResize:w,onResizeEnd:m,shouldResize:g}),()=>{var P;(P=N.current)==null||P.destroy()}},[I,a,l,c,d,u,b,w,m,g]);const A=I.split("-");return f.jsx("div",{className:mt(["react-flow__resize-control","nodrag",...A,n,r]),ref:E,style:{...i,scale:C,...o&&{[_?"backgroundColor":"borderColor"]:o}},children:s})}S.memo(_Z);const EZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:qB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:vB},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Gy}];let mg=0;function gp(){return mg+=1,`node_${mg}`}function yp(e,t,n){const r=ds();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function kZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:ge.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(go,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:ge.Right,className:"wfb-handle"})]})}const SZ={agentNode:kZ},j_={type:"smoothstep",markerEnd:{type:Nl.ArrowClosed,width:16,height:16}};function NZ({onBack:e,onCreate:t}){const n=S.useRef(null),[r,i]=S.useState(""),[s,o]=S.useState(""),[a,l]=S.useState("sequential"),c=S.useMemo(()=>{mg=0;const R=gp();return yp(R,{x:80,y:120},{name:"agent_1"})},[]),[d,u,h]=GQ([c]),[p,g,b]=WQ([]),[w,m]=S.useState(c.id),x=d.find(R=>R.id===w)??null,y=S.useCallback(R=>g($=>SM({...R,...j_},$)),[g]),v=S.useCallback(()=>{const R=gp(),$=d.length*28,O=yp(R,{x:80+$,y:120+$});u(j=>j.concat(O)),m(R)},[d.length,u]),E=R=>{R.dataTransfer.setData("application/wfb-node","agentNode"),R.dataTransfer.effectAllowed="move"},_=S.useCallback(R=>{R.preventDefault(),R.dataTransfer.dropEffect="move"},[]),C=S.useCallback(R=>{if(R.preventDefault(),R.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const O=n.current.screenToFlowPosition({x:R.clientX,y:R.clientY}),j=gp(),M=yp(j,O);u(B=>B.concat(M)),m(j)},[u]),N=S.useCallback(R=>{w&&u($=>$.map(O=>O.id===w?{...O,data:{...O.data,agent:{...O.data.agent,...R}}}:O))},[w,u]),I=S.useCallback(()=>{w&&(u(R=>R.filter($=>$.id!==w)),g(R=>R.filter($=>$.source!==w&&$.target!==w)),m(null))},[w,u,g]),A=S.useCallback(()=>{const R=d.map(O=>O.data.agent),$={...ds(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:R,workflow:{type:a,nodes:d.map(O=>({id:O.id,agent:O.data.agent})),edges:p.map(O=>({from:O.source,to:O.target}))}};t($)},[d,p,r,s,a,t]),P=d.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:R=>i(R.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:R=>o(R.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:EZ.map(({type:R,label:$,desc:O,Icon:j})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===R?"wfb-type--active":""}`,onClick:()=>l(R),children:[f.jsx(j,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:$}),f.jsx("span",{className:"wfb-type-desc",children:O})]})]},R))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:E,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(FB,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(go,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(ss,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:A,disabled:!P,type:"button",children:[f.jsx(Qd,{className:"icon"}),"创建工作流"]}),f.jsxs(qQ,{nodes:d,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:y,onInit:R=>n.current=R,nodeTypes:SZ,defaultEdgeOptions:j_,onDrop:C,onDragOver:_,onNodeClick:(R,$)=>m($.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(JQ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(oZ,{showInteractive:!1}),f.jsx(xZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:x?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(Do,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.name,onChange:R=>N({name:R.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.description,onChange:R=>N({description:R.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:x.data.agent.instruction,onChange:R=>N({instruction:R.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.tools.join(", "),onChange:R=>N({tools:R.target.value.split(",").map($=>$.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:x.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(go,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",d.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function TZ(e){return f.jsx(XM,{children:f.jsx(NZ,{...e})})}const B_=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function bp(e){let t=0;for(let n=0;n>>0;return B_[t%B_.length]}function AZ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,d)=>c.start_time-d.start_time,s=(c,d)=>({span:c,depth:d,children:(n.get(c.span_id)??[]).sort(i).map(u=>s(u,d+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function CZ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function $_(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const MZ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function F_(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:MZ(t),value:r,long:r.length>80||r.includes(` -`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function IZ({sessionId:e,onClose:t}){const[n,r]=S.useState(null),[i,s]=S.useState(""),[o,a]=S.useState(new Set),[l,c]=S.useState(null);S.useEffect(()=>{r(null),s(""),d$(e).then(m=>{r(m),c(m.length?m.reduce((x,y)=>x.start_time<=y.start_time?x:y).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:d,min:u,total:h}=S.useMemo(()=>AZ(n??[]),[n]),p=S.useMemo(()=>CZ(d,o),[d,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,w=m=>a(x=>{const y=new Set(x);return y.has(m)?y.delete(m):y.add(m),y});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${b.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(Fl,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const x=m.span,y=(x.start_time-u)/h*100,v=Math.max((x.end_time-x.start_time)/h*100,.6),E=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===x.span_id?"active":""}`,onClick:()=>c(x.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${E?"":"hidden"} ${o.has(x.span_id)?"":"open"}`,onClick:_=>{_.stopPropagation(),E&&w(x.span_id)},children:f.jsx(Gn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:bp(x.name)}}),f.jsx("span",{className:"trace-name",title:x.name,children:x.name})]}),f.jsx("span",{className:"trace-dur",children:$_(x.end_time-x.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${y}%`,width:`${v}%`,background:bp(x.name)}})})]},x.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:bp(g.name)}}),$_(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:F_(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),F_(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function OZ(e){return e.toLowerCase()==="github"?f.jsx($B,{className:"icon"}):f.jsx(GB,{className:"icon"})}function RZ({onUsername:e}){const[t,n]=S.useState(null),[r,i]=S.useState("");S.useEffect(()=>{A$().then(n)},[]);const s=k$.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>C$(a.loginUrl),children:[OZ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(DN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function LZ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}as("Button",LZ);function PZ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}as("Card",PZ);const DZ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},jZ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function eI(e){return DZ[e]??"flex-start"}function tI(e){return jZ[e]??"stretch"}function BZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:eI(e.justify),alignItems:tI(e.align)},children:n.map(r=>t.render(r))})}as("Column",BZ);function $Z({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}as("Divider",$Z);const FZ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function zZ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:FZ[t]??"•"})}as("Icon",zZ);function UZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:eI(e.justify),alignItems:tI(e.align??"center")},children:n.map(r=>t.render(r))})}as("Row",UZ);const VZ=new Set(["h1","h2","h3","h4","h5"]);function HZ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=VZ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}as("Text",HZ);const KZ="创建 Agent",qZ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ss={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},GZ=new Set,WZ=[];function z_(){const e=typeof localStorage<"u"?localStorage.getItem(Ss.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function YZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function XZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function QZ(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function nI(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function ZZ(e){if(!e)return"";const t=[];return e.ts&&t.push(nI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function JZ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const eJ="send_a2ui_json_to_client";function tJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===eJ&&t.done):t.kind==="a2ui"?sT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function nJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function rJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const d=c.data;d&&d.veadkOAuth&&typeof d.url=="string"&&o(d.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function iJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function U_({text:e}){const[t,n]=S.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx(Hy,{className:"icon"}):f.jsx(CB,{className:"icon"})})}const V_=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],H_=()=>V_[Math.floor(Math.random()*V_.length)],sJ=20*1024*1024;function oJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function aJ(){const[e,t]=S.useState([]),[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(""),[l,c]=S.useState({}),d=l[o]??[],u=(Q,ne)=>c(fe=>({...fe,[Q]:typeof ne=="function"?ne(fe[Q]??[]):ne})),[h,p]=S.useState(""),[g,b]=S.useState([]),[w,m]=S.useState(()=>new Set),x=S.useRef(new Map),y=(Q,ne)=>m(fe=>{const Ce=new Set(fe);return ne?Ce.add(Q):Ce.delete(Q),Ce}),v=S.useRef(""),[E,_]=S.useState(""),[C,N]=S.useState(!1),[I,A]=S.useState(H_),[P,R]=S.useState(null),[$,O]=S.useState(""),[j,M]=S.useState(),[B,L]=S.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[D,k]=S.useState("local"),[V,H]=S.useState(!1),[T,U]=S.useState(!1),[X,Z]=S.useState({}),[J,q]=S.useState({}),[ee,ce]=S.useState({}),ue=w.has(o),ae=X[o]??"",se=J[o]??GZ,ye=ee[o]??WZ,Y=(Q,ne)=>{var xe,Et,xt,Ee,Ve;const fe=ne.author&&ne.author!=="user"?ne.author:void 0;fe&&(Z(Ae=>({...Ae,[Q]:fe})),q(Ae=>({...Ae,[Q]:new Set(Ae[Q]??[]).add(fe)})),ce(Ae=>{var dt;return(dt=Ae[Q])!=null&&dt.length?Ae:{...Ae,[Q]:[fe]}}));const Ce=((xe=ne.actions)==null?void 0:xe.transferToAgent)??((Et=ne.actions)==null?void 0:Et.transfer_to_agent);Ce&&ce(Ae=>{const dt=Ae[Q]??[];return dt[dt.length-1]===Ce?Ae:{...Ae,[Q]:[...dt,Ce]}}),(((xt=ne.actions)==null?void 0:xt.endOfAgent)??((Ee=ne.actions)==null?void 0:Ee.end_of_agent)??((Ve=ne.actions)==null?void 0:Ve.escalate))&&ce(Ae=>{const dt=Ae[Q]??[];return dt.length<=1?Ae:{...Ae,[Q]:dt.slice(0,-1)}})},[W,F]=S.useState(z_),[G,le]=S.useState(!0),[me,pe]=S.useState(!1),[Le,be]=S.useState(!1),[Be,Pe]=S.useState(!1),[z,K]=S.useState(null),[te,oe]=S.useState(!1),[ve,Re]=S.useState(!1),$t=S.useRef(null),[_t,Mn]=S.useState(()=>{const Q=Wr();return zl(Q),Q}),[ur,ut]=S.useState(!1),In=S.useRef(!1);function At(Q){console.log("create agent draft:",Q),F(null),hs()}function ic(Q,ne){console.log("Agent added, navigating to:",Q,ne),Mn(Wr()),F(null),r(Q)}const{ref:Tf,onScroll:Af}=oT(d);S.useEffect(()=>{I$().then(Q=>{O(Q.userId),M(Q.info),H(!!Q.local),R(Q.status)})},[]),S.useEffect(()=>{p$().then(Q=>{L(Q.features),k(Q.agentsSource),Q.defaultView==="addAgent"&&(F(null),pe(!1),oe(!1),Re(!1),be(!1),Pe(!0))})},[]),S.useEffect(()=>{fetch("/web/runtime-config").then(Q=>Q.ok?Q.json():null).then(Q=>{Q&&le(!!Q.credentials)}).catch(()=>{})},[]);function Cf(Q){N$(Q),O(Q),M({name:Q}),H(!0),R("authenticated")}function Mf(){V?(T$(),O(""),M(void 0),R("unauthenticated")):M$()}S.useEffect(()=>{P!=="unauthenticated"&&c$().then(Q=>{if(t(Q),D==="cloud"){r("");return}const ne=localStorage.getItem(Ss.app),fe=_t.flatMap(xe=>xe.apps.map(Et=>Wi(xe.id,Et))),Ce=ne&&(Q.includes(ne)||fe.includes(ne)),Ge=["web_search_agent","web_demo"].find(xe=>Q.includes(xe))??Q.find(xe=>!/^\d/.test(xe))??Q[0];r(Ce?ne:Ge||"")}).catch(Q=>_(String(Q)))},[P,D]),S.useEffect(()=>{n&&localStorage.setItem(Ss.app,n)},[n]),S.useEffect(()=>{localStorage.setItem(Ss.view,W??"chat")},[W]),S.useEffect(()=>{localStorage.setItem(Ss.session,o),v.current=o},[o]),S.useEffect(()=>()=>x.current.forEach(Q=>Q.abort()),[]),S.useEffect(()=>{!n||!$||(async()=>{const Q=await fs(n);if(!In.current){In.current=!0;const ne=localStorage.getItem(Ss.session)||"";if(z_()===null&&ne&&Q.some(fe=>fe.id===ne)){ps(ne);return}}hs()})()},[n,$]),S.useEffect(()=>{const Q=$t.current;Q&&Q.app===n&&($t.current=null,ps(Q.sid))},[n]);function If(Q,ne){oe(!1),Q===n?ps(ne):($t.current={app:Q,sid:ne},r(Q))}async function fs(Q){try{const ne=await KN(Q,$),fe=await Promise.all(ne.map(Ce=>{var Ge;return(Ge=Ce.events)!=null&&Ge.length?Promise.resolve(Ce):Mm(Q,$,Ce.id)}));return s(fe),fe}catch(ne){return _(String(ne)),[]}}function hs(){_(""),A(H_()),v.current="",a("")}async function Of(Q){var ne;try{(ne=x.current.get(Q))==null||ne.abort(),await u$(n,$,Q),c(fe=>{const{[Q]:Ce,...Ge}=fe;return Ge}),Q===o&&hs(),await fs(n)}catch(fe){_(String(fe))}}async function ps(Q){if(Q!==o&&(v.current=Q,_(""),a(Q),l[Q]===void 0)){U(!0);try{const ne=await Mm(n,$,Q);u(Q,_$(ne.events??[]))}catch(ne){_(String(ne))}finally{U(!1)}}}async function Rf(Q){const ne=[];for(const fe of Array.from(Q)){if(fe.size>sJ){_(`文件过大(>20MB):${fe.name}`);continue}const Ce=await oJ(fe);ne.push({mimeType:fe.type||"application/octet-stream",data:Ce,name:fe.name})}ne.length&&b(fe=>[...fe,...ne])}async function sc(Q,ne=[]){if(!Q.trim()&&ne.length===0||ue||!n||!$)return;_("");let fe=o;if(!fe)try{fe=await Cm(n,$),a(fe);const xe=Date.now()/1e3,Et={id:fe,lastUpdateTime:xe,events:[{author:"user",timestamp:xe,content:{role:"user",parts:[{text:Q}]}}]};s(xt=>[Et,...xt.filter(Ee=>Ee.id!==fe)])}catch(xe){_(String(xe));return}const Ce=new AbortController;x.current.set(fe,Ce),y(fe,!0),v.current=fe;const Ge=[];ne.length&&Ge.push({kind:"attachment",files:ne.map(xe=>({mimeType:xe.mimeType,data:xe.data,name:xe.name}))}),Q.trim()&&Ge.push({kind:"text",text:Q}),u(fe,xe=>[...xe,{role:"user",blocks:Ge,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),Z(xe=>({...xe,[fe]:""})),q(xe=>({...xe,[fe]:new Set})),ce(xe=>({...xe,[fe]:[]}));try{let xe=Gr(),Et=0,xt=Date.now()/1e3;for await(const Ee of ad({appName:n,userId:$,sessionId:fe,text:Q,attachments:ne,signal:Ce.signal})){if(Ce.signal.aborted)break;const Ve=Ee.error??Ee.errorMessage??Ee.error_message;if(typeof Ve=="string"&&Ve){v.current===fe&&_(Ve);break}Y(fe,Ee),xe=hl(xe,Ee);const Ae=Ee.usageMetadata??Ee.usage_metadata;Ae!=null&&Ae.totalTokenCount&&(Et=Ae.totalTokenCount),Ee.timestamp&&(xt=Ee.timestamp);const dt=xe.blocks,dr={tokens:Et||void 0,ts:xt};u(fe,Ko=>{const fr=Ko.slice(),yn=fr[fr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(fr[fr.length-1]={...yn,blocks:dt,meta:dr}),fr})}fs(n)}catch(xe){(xe==null?void 0:xe.name)!=="AbortError"&&!Ce.signal.aborted&&v.current===fe&&_(String(xe))}finally{x.current.get(fe)===Ce&&x.current.delete(fe),y(fe,!1),Z(xe=>({...xe,[fe]:""})),ce(xe=>({...xe,[fe]:[]}))}}function Lf(Q,ne){var Ge,xe;const fe=((Ge=Q==null?void 0:Q.event)==null?void 0:Ge.name)??ne.id,Ce=((xe=Q==null?void 0:Q.event)==null?void 0:xe.context)??{};sc(`[ui-action] ${fe}: ${JSON.stringify(Ce)}`)}async function Pf(Q){if(!Q.authUri)throw new Error("事件中没有授权地址。");if(!n||!$||!o)throw new Error("会话尚未就绪。");const ne=o,fe=await rJ(Q.authUri),Ce=iJ(Q.authConfig,fe),Ge=Ee=>Ee.map(Ve=>Ve.kind==="auth"&&!Ve.done?{...Ve,done:!0}:Ve);u(ne,Ee=>{const Ve=Ee.slice(),Ae=Ve[Ve.length-1];return(Ae==null?void 0:Ae.role)==="assistant"&&(Ve[Ve.length-1]={...Ae,blocks:Ge(Ae.blocks)}),Ve});const xe=d[d.length-1],Et=Ge(xe&&xe.role==="assistant"?xe.blocks:[]),xt=new AbortController;x.current.set(ne,xt),y(ne,!0);try{let Ee=Gr(),Ve=0,Ae=Date.now()/1e3;for await(const dt of ad({appName:n,userId:$,sessionId:o,text:"",functionResponses:[{id:Q.callId,name:"adk_request_credential",response:Ce}],signal:xt.signal})){if(xt.signal.aborted)break;Y(ne,dt),Ee=hl(Ee,dt);const dr=dt.usageMetadata??dt.usage_metadata;dr!=null&&dr.totalTokenCount&&(Ve=dr.totalTokenCount),dt.timestamp&&(Ae=dt.timestamp);const Ko=[...Et,...Ee.blocks];u(ne,fr=>{var lc;const yn=fr.slice(),gi=yn[yn.length-1];return(gi==null?void 0:gi.role)==="assistant"&&(yn[yn.length-1]={...gi,blocks:Ko,meta:{tokens:Ve||((lc=gi.meta)==null?void 0:lc.tokens),ts:Ae}}),yn})}fs(n)}catch(Ee){(Ee==null?void 0:Ee.name)!=="AbortError"&&!xt.signal.aborted&&v.current===ne&&_(String(Ee))}finally{x.current.get(ne)===xt&&x.current.delete(ne),y(ne,!1),Z(Ee=>({...Ee,[ne]:""})),ce(Ee=>({...Ee,[ne]:[]}))}}if(P===null)return f.jsx("div",{className:"boot"});if(P==="unauthenticated")return f.jsx(RZ,{onUsername:Cf});const oc=JN(e,_t),ms=Q=>{var ne;return((ne=oc.find(fe=>fe.id===Q))==null?void 0:ne.label)??Q},mi=_t.find(Q=>Q.runtimeId&&Q.apps.some(ne=>Wi(Q.id,ne)===n)),Df=mi&&mi.runtimeId?{runtimeId:mi.runtimeId,name:mi.name,region:mi.region??"cn-beijing"}:void 0,ac=Q=>{Mn(Wr()),v.current="",a(""),r(Q)};return f.jsxs("div",{className:"layout",children:[f.jsx(nF,{agentsSource:D,localApps:e,currentAgentId:n,currentAgentLabel:n?ms(n):"",currentRuntime:Df,author:String((j==null?void 0:j.email)??$??""),onSelectAgent:ac,features:B,sessions:i,currentSessionId:o,streamingSids:w,onNewChat:()=>{F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!1),hs()},onSearch:()=>{F(null),pe(!1),be(!1),Pe(!1),Re(!1),oe(!0),_("")},onQuickCreate:()=>{v.current="",a(""),pe(!1),be(!1),oe(!1),Re(!1),F(null),K(null),Pe(!0),_("")},onSkillCenter:()=>{F(null),be(!1),Pe(!1),oe(!1),Re(!1),pe(!0),_("")},onAddAgent:()=>{v.current="",F(null),pe(!1),oe(!1),Re(!1),a(""),Pe(!1),be(!0),_("")},onManageAgents:()=>{v.current="",a(""),F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!0),_("")},onPickSession:Q=>{F(null),pe(!1),be(!1),Pe(!1),oe(!1),Re(!1),_(""),ps(Q)},onDeleteSession:Of,userInfo:j,onLogout:Mf}),(()=>{const Q=f.jsx(V8,{value:h,onChange:p,onSubmit:()=>{const ne=h,fe=g;p(""),b([]),sc(ne,fe)},disabled:!n||!$,busy:ue,attachments:g,onAddFiles:Rf,onRemoveAttachment:ne=>b(fe=>fe.filter((Ce,Ge)=>Ge!==ne))});return f.jsxs("main",{className:"main",children:[f.jsx(rF,{apps:oc.map(ne=>ne.id),appName:n,onAppChange:ac,agentLabel:ms,title:Be?"添加 Agent":Le?"添加 AgentKit 智能体":me?"技能中心":te?"搜索":ve?"管理 Agent":W?void 0:n?ms(n):"选择 Agent",crumbs:te||Le||me||Be||!W?void 0:W==="menu"?[{label:KZ,onClick:()=>{F(null),K(null),Pe(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ut(!0)},{label:qZ[W]}]}),E&&f.jsx("div",{className:"error",children:E}),T&&f.jsxs("div",{className:"session-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载会话…"]}),ve?f.jsx(aF,{author:String((j==null?void 0:j.email)??$??"")}):Be?f.jsx(nC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...B.addAgentkit?[{key:"agentkit",icon:YZ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Pe(!1),be(!0)}}]:[],{key:"scratch",icon:XZ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Pe(!1),K(null),F("menu")}}]}):te?f.jsx(q$,{userId:$,appId:n,agentLabel:ms,onOpenSession:If}):Le?f.jsx(oF,{onAdded:ne=>{Mn(Wr()),be(!1),r(ne)},onCancel:()=>be(!1)}):me?f.jsx(D$,{}):W!==null&&!G?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):W==="menu"?f.jsx(EK,{onSelect:ne=>{K(null),F(ne)},onImport:ne=>{K(ne),F("custom")}}):W==="intelligent"?f.jsx(PK,{userId:$,onBack:()=>F("menu"),onCreate:At,onAgentAdded:ic}):W==="custom"?f.jsx(XK,{initialDraft:z??void 0,onBack:()=>F("menu"),onCreate:At,onAgentAdded:ic,author:String((j==null?void 0:j.email)??$??"")}):W==="template"?f.jsx(JK,{onBack:()=>F("menu"),onCreate:At}):W==="workflow"?f.jsx(TZ,{onBack:()=>F("menu"),onCreate:At}):d.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),Q]}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Tf,onScroll:Af,children:d.map((ne,fe)=>{var xe;const Ce=fe===d.length-1;if(ne.role==="user"){const Et=ne.blocks.map(Ee=>Ee.kind==="text"?Ee.text:"").join(""),xt=ne.blocks.flatMap(Ee=>Ee.kind==="attachment"?Ee.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[xt.length>0&&f.jsx("div",{className:"msg-attachments",children:xt.map((Ee,Ve)=>{var Ae;return(Ae=Ee.mimeType)!=null&&Ae.startsWith("image/")&&Ee.data?f.jsx("img",{className:"attachment-thumb",src:`data:${Ee.mimeType};base64,${Ee.data}`,alt:Ee.name??"image"},Ve):f.jsxs("div",{className:"attachment-file",children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:Ee.name??"文件"})]},Ve)})}),Et&&f.jsx("div",{className:"bubble",children:f.jsx(k0,{text:Et})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((xe=ne.meta)==null?void 0:xe.ts)&&f.jsx("span",{className:"meta-text",children:nI(ne.meta.ts)}),f.jsx(U_,{text:Et})]})]},fe)}const Ge=ne.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:Ge?Ce&&ue?f.jsx($8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(U8,{blocks:ne.blocks,onAction:Lf,onAuth:Pf}),!(Ce&&ue)&&!tJ(ne)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Ce&&ue)&&!nJ(ne)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(QZ,{})}),f.jsx(U_,{text:JZ(ne)})]}),ne.meta&&f.jsx("span",{className:"meta-text",children:ZZ(ne.meta)})]})]})},fe)})}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye}),Q]})]})})(),C&&o&&f.jsx(IZ,{sessionId:o,onClose:()=>N(!1)}),ur&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ut(!1),children:f.jsxs("div",{className:"confirm-box",onClick:Q=>Q.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ut(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{K(null),F("menu"),ut(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||xp.createRoot(document.getElementById("root")).render(f.jsx(tE.StrictMode,{children:f.jsx(tL,{reducedMotion:"user",children:f.jsx(aJ,{})})})); +`)),d=c.reduce((u,h)=>u.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return S.useEffect(()=>{const l=(t==null?void 0:t.target)??x_,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var w,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&X2(p))return!1;const b=v_(p.code,a);if(s.current.add(p[b]),w_(o,s.current,!1)){const x=((m=(w=p.composedPath)==null?void 0:w.call(p))==null?void 0:m[0])||p.target,y=(x==null?void 0:x.nodeName)==="BUTTON"||(x==null?void 0:x.nodeName)==="A";t.preventDefault!==!1&&(i.current||!y)&&p.preventDefault(),r(!0)}},u=p=>{const g=v_(p.code,a);w_(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function w_(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function v_(e,t){return t.includes(e)?"code":"key"}const kX=()=>{const e=Ye();return S.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=J0(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??i,u=n.snapToGrid??s;return Ho(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=To(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function _M(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)EX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function EX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function kM(e,t){return _M(e,t)}function EM(e,t){return _M(e,t)}function Ti(e,t){return{id:e,type:"select",selected:t}}function Gs(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ti(s.id,o)))}return r}function __({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function k_(e){return{id:e.id,type:"remove"}}const SX=q2();function SM(e,t,n={}){return QW(e,t,{...n,onError:n.onError??SX})}const E_=e=>DW(e),NX=e=>U2(e);function NM(e){return S.forwardRef(e)}const TX=typeof window<"u"?S.useLayoutEffect:S.useEffect;function S_(e){const[t,n]=S.useState(BigInt(0)),[r]=S.useState(()=>AX(()=>n(i=>i+BigInt(1))));return TX(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function AX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const TM=S.createContext(null);function CX({children:e}){const t=Ye(),n=S.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let b=l;for(const m of a)b=typeof m=="function"?m(b):m;let w=__({items:b,lookup:h});for(const m of g.values())w=m(w);d&&c(b),w.length>0?u==null||u(w):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:x,setNodes:y}=t.getState();m&&y(x)})},[]),r=S_(n),i=S.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?c(p):u&&u(__({items:p,lookup:h}))},[]),s=S_(i),o=S.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(TM.Provider,{value:o,children:e})}function MX(){const e=S.useContext(TM);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const IX=e=>!!e.panZoom;function ob(){const e=kX(),t=Ye(),n=MX(),r=Oe(IX),i=S.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),o=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,x;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=E_(u)?u:h.get(u.id),b=g.parentId?W2(g.position,g.measured,g.parentId,h,p):g.position,w={...g,position:b,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((x=g.measured)==null?void 0:x.height)??g.height};return No(w)},c=(u,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&E_(w)?w:{...b,...w}}return b}))},d=(u,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&NX(w)?w:{...b,...w}}return b}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var h;return(h=s(u))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(h=>({...h}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:o,setEdges:a,addNodes:u=>{const h=Array.isArray(u)?u:[u];n.nodeQueue.push(p=>[...p,...h])},addEdges:u=>{const h=Array.isArray(u)?u:[u];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:u=[],edges:h=[],transform:p}=t.getState(),[g,b,w]=p;return{nodes:u.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:w}}},deleteElements:async({nodes:u=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:x,onDelete:y,onBeforeDelete:v}=t.getState(),{nodes:k,edges:_}=await zW({nodesToRemove:u,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),C=_.length>0,N=k.length>0;if(C){const I=_.map(k_);w==null||w(_),x(I)}if(N){const I=k.map(k_);b==null||b(k),m(I)}return(N||C)&&(y==null||y({nodes:k,edges:_})),{deletedNodes:k,deletedEdges:_}},getIntersectingNodes:(u,h=!0,p)=>{const g=e_(u),b=g?u:l(u),w=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const x=t.getState().nodeLookup.get(m.id);if(x&&!g&&(m.id===u.id||!x.internals.positionAbsolute))return!1;const y=No(w?m:x),v=Tl(y,b);return h&&v>0||v>=y.width*y.height||v>=b.width*b.height}):[]},isNodeIntersecting:(u,h,p=!0)=>{const b=e_(u)?u:l(u);if(!b)return!1;const w=Tl(b,h);return p&&w>0||w>=h.width*h.height||w>=b.width*b.height},updateNode:c,updateNodeData:(u,h,p={replace:!1})=>{c(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:d,updateEdgeData:(u,h,p={replace:!1})=>{d(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:u=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return jW(u,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:u,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${u}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${u?h?`-${u}-${h}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const h=t.getState().fitViewResolver??HW();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const N_=e=>e.selected,OX=typeof window<"u"?window:void 0;function RX({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Ye(),{deleteElements:r}=ob(),i=Cl(e,{actInsideInputWithModifier:!1}),s=Cl(t,{target:OX});S.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(N_),edges:o.filter(N_)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function LX(e){const t=Ye();S.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=eb(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Sf={position:"absolute",width:"100%",height:"100%",top:0,left:0},PX=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function DX({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Ui.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:w,onViewportChange:m,isControlledViewport:x,paneClickDistance:y,selectionOnDrag:v}){const k=Ye(),_=S.useRef(null),{userSelectionActive:C,lib:N,connectionInProgress:I}=Oe(PX,We),A=Cl(h),P=S.useRef();LX(_);const R=S.useCallback(F=>{m==null||m({x:F[0],y:F[1],zoom:F[2]}),x||k.setState({transform:F})},[m,x]);return S.useEffect(()=>{if(_.current){P.current=TY({domNode:_.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>k.setState(B=>B.paneDragging===M?B:{paneDragging:M}),onPanZoomStart:(M,B)=>{const{onViewportChangeStart:L,onMoveStart:D}=k.getState();D==null||D(M,B),L==null||L(B)},onPanZoom:(M,B)=>{const{onViewportChange:L,onMove:D}=k.getState();D==null||D(M,B),L==null||L(B)},onPanZoomEnd:(M,B)=>{const{onViewportChangeEnd:L,onMoveEnd:D}=k.getState();D==null||D(M,B),L==null||L(B)}});const{x:F,y:O,zoom:j}=P.current.getViewport();return k.setState({panZoom:P.current,transform:[F,O,j],domNode:_.current.closest(".react-flow")}),()=>{var M;(M=P.current)==null||M.destroy()}}},[]),S.useEffect(()=>{var F;(F=P.current)==null||F.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:A,preventScrolling:p,noPanClassName:w,userSelectionActive:C,noWheelClassName:b,lib:N,onTransformChange:R,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:y})},[e,t,n,r,i,s,o,a,A,p,w,C,b,N,R,I,v,y]),f.jsx("div",{className:"react-flow__renderer",ref:_,style:Sf,children:g})}const jX=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function BX(){const{userSelectionActive:e,userSelectionRect:t}=Oe(jX,We);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const pp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},$X=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function FX({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Sl.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:b}){const w=S.useRef(0),m=Ye(),{userSelectionActive:x,elementsSelectable:y,dragging:v,connectionInProgress:k,panBy:_,autoPanSpeed:C}=Oe($X,We),N=y&&(e||x),I=S.useRef(null),A=S.useRef(),P=S.useRef(new Set),R=S.useRef(new Set),F=S.useRef(!1),O=S.useRef({x:0,y:0}),j=S.useRef(!1),M=q=>{if(F.current||k){F.current=!1;return}c==null||c(q),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},B=q=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){q.preventDefault();return}d==null||d(q)},L=u?q=>u(q):void 0,D=q=>{F.current&&(q.stopPropagation(),F.current=!1)},E=q=>{var G,X;const{domNode:ee,transform:le}=m.getState();if(A.current=ee==null?void 0:ee.getBoundingClientRect(),!A.current)return;const ce=q.target===I.current;if(!ce&&!!q.target.closest(".nokey")||!e||!(o&&ce||t)||q.button!==0||!q.isPrimary)return;(X=(G=q.target)==null?void 0:G.setPointerCapture)==null||X.call(G,q.pointerId),F.current=!1;const{x:ye,y:W}=zn(q.nativeEvent,A.current),$=Ho({x:ye,y:W},le);m.setState({userSelectionRect:{width:0,height:0,startX:$.x,startY:$.y,x:ye,y:W}}),ce||(q.stopPropagation(),q.preventDefault())};function V(q,ee){const{userSelectionRect:le}=m.getState();if(!le)return;const{transform:ce,nodeLookup:ae,edgeLookup:se,connectionLookup:ye,triggerNodeChanges:W,triggerEdgeChanges:$,defaultEdgeOptions:G}=m.getState(),X={x:le.startX,y:le.startY},{x:me,y:pe}=To(X,ce),de={startX:X.x,startY:X.y,x:qPe.id)),R.current=new Set;const mt=(G==null?void 0:G.selectable)??!0;for(const Pe of P.current){const z=ye.get(Pe);if(z)for(const{edgeId:K}of z.values()){const te=se.get(K);te&&(te.selectable??mt)&&R.current.add(K)}}if(!t_(Ae,P.current)){const Pe=Gs(ae,P.current,!0);W(Pe)}if(!t_(_e,R.current)){const Pe=Gs(se,R.current);$(Pe)}m.setState({userSelectionRect:de,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!i||!A.current)return;const[q,ee]=Z0(O.current,A.current,C);_({x:q,y:ee}).then(le=>{if(!F.current||!le){w.current=requestAnimationFrame(H);return}const{x:ce,y:ae}=O.current;V(ce,ae),w.current=requestAnimationFrame(H)})}const T=()=>{cancelAnimationFrame(w.current),w.current=0,j.current=!1};S.useEffect(()=>()=>T(),[]);const U=q=>{const{userSelectionRect:ee,transform:le,resetSelectedElements:ce}=m.getState();if(!A.current||!ee)return;const{x:ae,y:se}=zn(q.nativeEvent,A.current);O.current={x:ae,y:se};const ye=To({x:ee.startX,y:ee.startY},le);if(!F.current){const W=t?0:s;if(Math.hypot(ae-ye.x,se-ye.y)<=W)return;ce(),a==null||a(q)}F.current=!0,j.current||(H(),j.current=!0),V(ae,se)},Y=q=>{var ee,le;q.button===0&&((le=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||le.call(ee,q.pointerId),!x&&q.target===I.current&&m.getState().userSelectionRect&&(M==null||M(q)),m.setState({userSelectionActive:!1,userSelectionRect:null}),F.current&&(l==null||l(q),m.setState({nodesSelectionActive:P.current.size>0})),T())},Z=q=>{var ee,le;(le=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||le.call(ee,q.pointerId),T()},J=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:pt(["react-flow__pane",{draggable:J,dragging:v,selection:e}]),onClick:N?void 0:pp(M,I),onContextMenu:pp(B,I),onWheel:pp(L,I),onPointerEnter:N?void 0:h,onPointerMove:N?U:p,onPointerUp:N?Y:void 0,onPointerCancel:N?Z:void 0,onPointerDownCapture:N?E:void 0,onClickCapture:N?D:void 0,onPointerLeave:g,ref:I,style:Sf,children:[b,f.jsx(BX,{})]})}function pg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):i([e])}function AM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Ye(),[l,c]=S.useState(!1),d=S.useRef();return S.useEffect(()=>{d.current=hY({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{pg({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),S.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,i,o]),l}const zX=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function CM(){const e=Ye();return S.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,h=zX(o),p=i?s[0]:5,g=i?s[1]:5,b=n.direction.x*p*n.factor,w=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let x={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+w};i&&(x=rc(x,s));const{position:y,positionAbsolute:v}=V2({nodeId:m.id,nextPosition:x,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});m.position=y,m.internals.positionAbsolute=v,u.set(m.id,m)}l(u)},[])}const ab=S.createContext(null),UX=ab.Provider;ab.Consumer;const MM=()=>S.useContext(ab),VX=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),HX=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===Eo.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:d&&c}};function KX({type:e="source",position:t=ge.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...h},p){var j,M;const g=o||null,b=e==="target",w=Ye(),m=MM(),{connectOnClick:x,noPanClassName:y,rfId:v}=Oe(VX,We),{connectingFrom:k,connectingTo:_,clickConnecting:C,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:A,valid:P}=Oe(HX(m,g,e),We);m||(M=(j=w.getState()).onError)==null||M.call(j,"010",qn.error010());const R=B=>{const{defaultEdgeOptions:L,onConnect:D,hasDefaultEdges:E}=w.getState(),V={...L,...B};if(E){const{edges:H,setEdges:T,onError:U}=w.getState();T(SM(V,H,{onError:U}))}D==null||D(V),a==null||a(V)},F=B=>{if(!m)return;const L=Q2(B.nativeEvent);if(i&&(L&&B.button===0||!L)){const D=w.getState();hg.onPointerDown(B.nativeEvent,{handleDomNode:B.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:b,handleId:g,nodeId:m,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...E)=>{var V,H;return(H=(V=w.getState()).onConnectEnd)==null?void 0:H.call(V,...E)},updateConnection:D.updateConnection,onConnect:R,isValidConnection:n||((...E)=>{var V,H;return((H=(V=w.getState()).isValidConnection)==null?void 0:H.call(V,...E))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}L?d==null||d(B):u==null||u(B)},O=B=>{const{onClickConnectStart:L,onClickConnectEnd:D,connectionClickStartHandle:E,connectionMode:V,isValidConnection:H,lib:T,rfId:U,nodeLookup:Y,connection:Z}=w.getState();if(!m||!E&&!i)return;if(!E){L==null||L(B.nativeEvent,{nodeId:m,handleId:g,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const J=Y2(B.target),q=n||H,{connection:ee,isValid:le}=hg.isValid(B.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:V,fromNodeId:E.nodeId,fromHandleId:E.id||null,fromType:E.type,isValidConnection:q,flowId:U,doc:J,lib:T,nodeLookup:Y});le&&ee&&R(ee);const ce=structuredClone(Z);delete ce.inProgress,ce.toPosition=ce.toHandle?ce.toHandle.position:null,D==null||D(B,ce),w.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:pt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,c,{source:!b,target:b,connectable:r,connectablestart:i,connectableend:s,clickconnecting:C,connectingfrom:k,connectingto:_,valid:P,connectionindicator:r&&(!I||N)&&(I||A?s:i)}]),onMouseDown:F,onTouchStart:F,onClick:x?O:void 0,ref:p,...h,children:l})}const Mo=S.memo(NM(KX));function qX({data:e,isConnectable:t,sourcePosition:n=ge.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function GX({data:e,isConnectable:t,targetPosition:n=ge.Top,sourcePosition:r=ge.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function WX(){return null}function YX({data:e,isConnectable:t,targetPosition:n=ge.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Nd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},T_={input:qX,default:GX,output:YX,group:WX};function XX(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const QX=e=>{const{width:t,height:n,x:r,y:i}=nc(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function ZX({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ye(),{width:i,height:s,transformString:o,userSelectionActive:a}=Oe(QX,We),l=CM(),c=S.useRef(null);S.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const d=!a&&i!==null&&s!==null;if(AM({nodeRef:c,disabled:!d}),!d)return null;const u=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Nd,p.key)&&(p.preventDefault(),l({direction:Nd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:pt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const A_=typeof window<"u"?window:void 0,JX=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function IM({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:v,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:N,autoPanOnSelection:I,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:F,preventScrolling:O,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:B,disableKeyboardA11y:L,onViewportChange:D,isControlledViewport:E}){const{nodesSelectionActive:V,userSelectionActive:H}=Oe(JX,We),T=Cl(c,{target:A_}),U=Cl(b,{target:A_}),Y=U||N,Z=U||v,J=d&&Y!==!0,q=T||H||J;return RX({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(DX,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:Z,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!T&&Y,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:F,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:M,noPanClassName:B,onViewportChange:D,isControlledViewport:E,paneClickDistance:a,selectionOnDrag:J,children:f.jsxs(FX,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:Y,autoPanOnSelection:I,isSelecting:!!q,selectionMode:u,selectionKeyPressed:T,paneClickDistance:a,selectionOnDrag:J,children:[e,V&&f.jsx(ZX,{onSelectionContextMenu:j,noPanClassName:B,disableKeyboardA11y:L})]})})}IM.displayName="FlowRenderer";const eQ=S.memo(IM),tQ=e=>t=>e?Q0(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function nQ(e){return Oe(S.useCallback(tQ(e),[e]),We)}const rQ=e=>e.updateNodeInternals;function iQ(){const e=Oe(rQ),[t]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return S.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function sQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Ye(),s=S.useRef(null),o=S.useRef(null),a=S.useRef(e.sourcePosition),l=S.useRef(e.targetPosition),c=S.useRef(t),d=n&&!!e.internals.handleBounds;return S.useEffect(()=>{s.current&&!e.hidden&&(!d||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[d,e.hidden]),S.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),S.useEffect(()=>{if(s.current){const u=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(u||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function oQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:b,nodeTypes:w,nodeClickDistance:m,onError:x}){const{node:y,internals:v,isParent:k}=Oe(q=>{const ee=q.nodeLookup.get(e),le=q.parentLookup.has(e);return{node:ee,internals:ee.internals,isParent:le}},We);let _=y.type||"default",C=(w==null?void 0:w[_])||T_[_];C===void 0&&(x==null||x("003",qn.error003(_)),_="default",C=(w==null?void 0:w.default)||T_.default);const N=!!(y.draggable||a&&typeof y.draggable>"u"),I=!!(y.selectable||l&&typeof y.selectable>"u"),A=!!(y.connectable||c&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),R=Ye(),F=G2(y),O=sQ({node:y,nodeType:_,hasDimensions:F,resizeObserver:u}),j=AM({nodeRef:O,disabled:y.hidden||!N,noDragClassName:h,handleSelector:y.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),M=CM();if(y.hidden)return null;const B=Rr(y),L=XX(y),D=I||N||t||n||r||i,E=n?q=>n(q,{...v.userNode}):void 0,V=r?q=>r(q,{...v.userNode}):void 0,H=i?q=>i(q,{...v.userNode}):void 0,T=s?q=>s(q,{...v.userNode}):void 0,U=o?q=>o(q,{...v.userNode}):void 0,Y=q=>{const{selectNodesOnDrag:ee,nodeDragThreshold:le}=R.getState();I&&(!ee||!N||le>0)&&pg({id:e,store:R,nodeRef:O}),t&&t(q,{...v.userNode})},Z=q=>{if(!(X2(q.nativeEvent)||g)){if(B2.includes(q.key)&&I){const ee=q.key==="Escape";pg({id:e,store:R,unselect:ee,nodeRef:O})}else if(N&&y.selected&&Object.prototype.hasOwnProperty.call(Nd,q.key)){q.preventDefault();const{ariaLabelConfig:ee}=R.getState();R.setState({ariaLiveMessage:ee["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:Nd[q.key],factor:q.shiftKey?4:1})}}},J=()=>{var ye;if(g||!((ye=O.current)!=null&&ye.matches(":focus-visible")))return;const{transform:q,width:ee,height:le,autoPanOnNodeFocus:ce,setCenter:ae}=R.getState();if(!ce)return;Q0(new Map([[e,y]]),{x:0,y:0,width:ee,height:le},q,!0).length>0||ae(y.position.x+B.width/2,y.position.y+B.height/2,{zoom:q[2]})};return f.jsx("div",{className:pt(["react-flow__node",`react-flow__node-${_}`,{[p]:N},y.className,{selected:y.selected,selectable:I,parent:k,draggable:N,dragging:j}]),ref:O,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:F?"visible":"hidden",...y.style,...L},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:E,onMouseMove:V,onMouseLeave:H,onContextMenu:T,onClick:Y,onDoubleClick:U,onKeyDown:P?Z:void 0,tabIndex:P?0:void 0,onFocus:P?J:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${xM}-${b}`,"aria-label":y.ariaLabel,...y.domAttributes,children:f.jsx(UX,{value:e,children:f.jsx(C,{id:e,data:y.data,type:_,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:y.selected??!1,selectable:I,draggable:N,deletable:y.deletable??!0,isConnectable:A,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:v.z,parentId:y.parentId,...B})})})}var aQ=S.memo(oQ);const lQ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OM(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=Oe(lQ,We),o=nQ(e.onlyRenderVisibleElements),a=iQ();return f.jsx("div",{className:"react-flow__nodes",style:Sf,children:o.map(l=>f.jsx(aQ,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}OM.displayName="NodeRenderer";const cQ=S.memo(OM);function uQ(e){return Oe(S.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&WW({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),We)}const dQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},fQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},C_={[Nl.Arrow]:dQ,[Nl.ArrowClosed]:fQ};function hQ(e){const t=Ye();return S.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(C_,e)?C_[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const pQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=hQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},RM=({defaultColor:e,rfId:t})=>{const n=Oe(s=>s.edges),r=Oe(s=>s.defaultEdgeOptions),i=S.useMemo(()=>nY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(pQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};RM.displayName="MarkerDefinitions";var mQ=S.memo(RM);function LM({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,h]=S.useState({x:1,y:0,width:0,height:0}),p=pt(["react-flow__edge-textwrapper",c]),g=S.useRef(null);return S.useEffect(()=>{if(g.current){const b=g.current.getBBox();h({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:p,visibility:u.width?"visible":"hidden",...d,children:[i&&f.jsx("rect",{width:u.width+2*o[0],x:-o[0],y:-o[1],height:u.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}LM.displayName="EdgeText";const gQ=S.memo(LM);function Nf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...d,d:e,fill:"none",className:pt(["react-flow__edge-path",d.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(gQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function M_({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===ge.Left||e===ge.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function PM({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top}){const[o,a]=M_({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=M_({pos:s,x1:r,y1:i,x2:e,y2:t}),[d,u,h,p]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,d,u,h,p]}function DM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})=>{const[x,y,v]=PM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),k=e.isInternal?void 0:t;return f.jsx(Nf,{id:k,path:x,labelX:y,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})})}const yQ=DM({isInternal:!1}),jM=DM({isInternal:!0});yQ.displayName="SimpleBezierEdge";jM.displayName="SimpleBezierEdgeInternal";function BM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,sourcePosition:p=ge.Bottom,targetPosition:g=ge.Top,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,k]=ug({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:k,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:b,markerStart:w,interactionWidth:x})})}const $M=BM({isInternal:!1}),FM=BM({isInternal:!0});$M.displayName="SmoothStepEdge";FM.displayName="SmoothStepEdgeInternal";function zM(e){return S.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx($M,{...n,id:r,pathOptions:S.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const bQ=zM({isInternal:!1}),UM=zM({isInternal:!0});bQ.displayName="StepEdge";UM.displayName="StepEdgeInternal";function VM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})=>{const[w,m,x]=tM({sourceX:n,sourceY:r,targetX:i,targetY:s}),y=e.isInternal?void 0:t;return f.jsx(Nf,{id:y,path:w,labelX:m,labelY:x,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const xQ=VM({isInternal:!1}),HM=VM({isInternal:!0});xQ.displayName="StraightEdge";HM.displayName="StraightEdgeInternal";function KM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=ge.Bottom,targetPosition:a=ge.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,k]=J2({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:k,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:x})})}const wQ=KM({isInternal:!1}),qM=KM({isInternal:!0});wQ.displayName="BezierEdge";qM.displayName="BezierEdgeInternal";const I_={default:qM,straight:HM,step:UM,smoothstep:FM,simplebezier:jM},O_={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},vQ=(e,t,n)=>n===ge.Left?e-t:n===ge.Right?e+t:e,_Q=(e,t,n)=>n===ge.Top?e-t:n===ge.Bottom?e+t:e,R_="react-flow__edgeupdater";function L_({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:pt([R_,`${R_}-${a}`]),cx:vQ(t,r,e),cy:_Q(n,r,e),r,stroke:"transparent",fill:"transparent"})}function kQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:h,setUpdateHover:p}){const g=Ye(),b=(v,k)=>{if(v.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:N,connectionRadius:I,lib:A,onConnectStart:P,cancelConnection:R,nodeLookup:F,rfId:O,panBy:j,updateConnection:M}=g.getState(),B=k.type==="target",L=(V,H)=>{h(!1),u==null||u(V,n,k.type,H)},D=V=>c==null?void 0:c(n,V),E=(V,H)=>{h(!0),d==null||d(v,n,k.type),P==null||P(V,H)};hg.onPointerDown(v.nativeEvent,{autoPanOnConnect:_,connectionMode:N,connectionRadius:I,domNode:C,handleId:k.id,nodeId:k.nodeId,nodeLookup:F,isTarget:B,edgeUpdaterType:k.type,lib:A,flowId:O,cancelConnection:R,panBy:j,isValidConnection:(...V)=>{var H,T;return((T=(H=g.getState()).isValidConnection)==null?void 0:T.call(H,...V))??!0},onConnect:D,onConnectStart:E,onConnectEnd:(...V)=>{var H,T;return(T=(H=g.getState()).onConnectEnd)==null?void 0:T.call(H,...V)},onReconnectEnd:L,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),x=()=>p(!0),y=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(L_,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:w,onMouseEnter:x,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&f.jsx(L_,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:x,onMouseOut:y,type:"target"})]})}function EQ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:b,noPanClassName:w,onError:m,disableKeyboardA11y:x}){let y=Oe(ae=>ae.edgeLookup.get(e));const v=Oe(ae=>ae.defaultEdgeOptions);y=v?{...v,...y}:y;let k=y.type||"default",_=(b==null?void 0:b[k])||I_[k];_===void 0&&(m==null||m("011",qn.error011(k)),k="default",_=(b==null?void 0:b.default)||I_.default);const C=!!(y.focusable||t&&typeof y.focusable>"u"),N=typeof u<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),I=!!(y.selectable||r&&typeof y.selectable>"u"),A=S.useRef(null),[P,R]=S.useState(!1),[F,O]=S.useState(!1),j=Ye(),{zIndex:M,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H}=Oe(S.useCallback(ae=>{const se=ae.nodeLookup.get(y.source),ye=ae.nodeLookup.get(y.target);if(!se||!ye)return{zIndex:y.zIndex,...O_};const W=tY({id:e,sourceNode:se,targetNode:ye,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:ae.connectionMode,onError:m});return{zIndex:GW({selected:y.selected,zIndex:y.zIndex,sourceNode:se,targetNode:ye,elevateOnSelect:ae.elevateEdgesOnSelect,zIndexMode:ae.zIndexMode}),...W||O_}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),We),T=S.useMemo(()=>y.markerStart?`url('#${dg(y.markerStart,g)}')`:void 0,[y.markerStart,g]),U=S.useMemo(()=>y.markerEnd?`url('#${dg(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||B===null||L===null||D===null||E===null)return null;const Y=ae=>{var $;const{addSelectedEdges:se,unselectNodesAndEdges:ye,multiSelectionActive:W}=j.getState();I&&(j.setState({nodesSelectionActive:!1}),y.selected&&W?(ye({nodes:[],edges:[y]}),($=A.current)==null||$.blur()):se([e])),i&&i(ae,y)},Z=s?ae=>{s(ae,{...y})}:void 0,J=o?ae=>{o(ae,{...y})}:void 0,q=a?ae=>{a(ae,{...y})}:void 0,ee=l?ae=>{l(ae,{...y})}:void 0,le=c?ae=>{c(ae,{...y})}:void 0,ce=ae=>{var se;if(!x&&B2.includes(ae.key)&&I){const{unselectNodesAndEdges:ye,addSelectedEdges:W}=j.getState();ae.key==="Escape"?((se=A.current)==null||se.blur(),ye({edges:[y]})):W([e])}};return f.jsx("svg",{style:{zIndex:M},children:f.jsxs("g",{className:pt(["react-flow__edge",`react-flow__edge-${k}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!I&&!i,updating:P,selectable:I}]),onClick:Y,onDoubleClick:Z,onContextMenu:J,onMouseEnter:q,onMouseMove:ee,onMouseLeave:le,onKeyDown:C?ce:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${wM}-${g}`:void 0,ref:A,...y.domAttributes,children:[!F&&f.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:I,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:T,markerEnd:U,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),N&&f.jsx(kQ,{edge:y,isReconnectable:N,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H,setUpdateHover:R,setReconnecting:O})]})})}var SQ=S.memo(EQ);const NQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function GM({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:b}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,onError:y}=Oe(NQ,We),v=uQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(mQ,{defaultColor:e,rfId:n}),v.map(k=>f.jsx(SQ,{id:k,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:b},k))]})}GM.displayName="EdgeRenderer";const TQ=S.memo(GM),AQ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function CQ({children:e}){const t=Oe(AQ);return f.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function MQ(e){const t=ob(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const IQ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function OQ(e){const t=Oe(IQ),n=Ye();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function RQ(e){return e.connection.inProgress?{...e.connection,to:Ho(e.connection.to,e.transform)}:{...e.connection}}function LQ(e){return RQ}function PQ(e){const t=LQ();return Oe(t,We)}const DQ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jQ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Oe(DQ,We);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:pt(["react-flow__connection",z2(a)]),children:f.jsx(WM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const WM=({style:e,type:t=Hr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:h,pointer:p}=PQ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:z2(r),toNode:d,toHandle:u,pointer:p});let g="";const b={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Hr.Bezier:[g]=J2(b);break;case Hr.SimpleBezier:[g]=PM(b);break;case Hr.Step:[g]=ug({...b,borderRadius:0});break;case Hr.SmoothStep:[g]=ug(b);break;default:[g]=tM(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};WM.displayName="ConnectionLine";const BQ={};function P_(e=BQ){S.useRef(e),Ye(),S.useEffect(()=>{},[e])}function $Q(){Ye(),S.useRef(!1),S.useEffect(()=>{},[])}function YM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:A,defaultViewport:P,translateExtent:R,minZoom:F,maxZoom:O,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:B,zoomOnPinch:L,panOnScroll:D,panOnScrollSpeed:E,panOnScrollMode:V,zoomOnDoubleClick:H,panOnDrag:T,autoPanOnSelection:U,onPaneClick:Y,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneScroll:ee,onPaneContextMenu:le,paneClickDistance:ce,nodeClickDistance:ae,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:W,onEdgeMouseLeave:$,reconnectRadius:G,onReconnect:X,onReconnectStart:me,onReconnectEnd:pe,noDragClassName:de,noWheelClassName:Ae,noPanClassName:_e,disableKeyboardA11y:mt,nodeExtent:Pe,rfId:z,viewport:K,onViewportChange:te}){return P_(e),P_(t),$Q(),MQ(n),OQ(K),f.jsx(eQ,{onPaneClick:Y,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneContextMenu:le,onPaneScroll:ee,paneClickDistance:ce,deleteKeyCode:N,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:A,zoomOnScroll:B,zoomOnPinch:L,zoomOnDoubleClick:H,panOnScroll:D,panOnScrollSpeed:E,panOnScrollMode:V,panOnDrag:T,autoPanOnSelection:U,defaultViewport:P,translateExtent:R,minZoom:F,maxZoom:O,onSelectionContextMenu:u,preventScrolling:j,noDragClassName:de,noWheelClassName:Ae,noPanClassName:_e,disableKeyboardA11y:mt,onViewportChange:te,isControlledViewport:!!K,children:f.jsxs(CQ,{children:[f.jsx(TQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:X,onReconnectStart:me,onReconnectEnd:pe,onlyRenderVisibleElements:I,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:W,onEdgeMouseLeave:$,reconnectRadius:G,defaultMarkerColor:M,noPanClassName:_e,disableKeyboardA11y:mt,rfId:z}),f.jsx(jQ,{style:b,type:g,component:w,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(cQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:ae,onlyRenderVisibleElements:I,noPanClassName:_e,noDragClassName:de,disableKeyboardA11y:mt,nodeExtent:Pe,rfId:z}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}YM.displayName="GraphView";const FQ=S.memo(YM),zQ=q2(),D_=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,b=new Map,w=new Map,m=r??t??[],x=n??e??[],y=d??[0,0],v=u??El;iM(b,w,m);const{nodesInitialized:k}=fg(x,p,g,{nodeOrigin:y,nodeExtent:v,zIndexMode:h});let _=[0,0,1];if(o&&i&&s){const C=nc(p,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:N,y:I,zoom:A}=J0(C,i,s,l,c,(a==null?void 0:a.padding)??.1);_=[N,I,A]}return{rfId:"1",width:i??0,height:s??0,transform:_,nodes:x,nodesInitialized:k,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:w,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:El,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Eo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...F2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:zQ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:$2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},UQ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h})=>iX((p,g)=>{async function b(){const{nodeLookup:w,panZoom:m,fitViewOptions:x,fitViewResolver:y,width:v,height:k,minZoom:_,maxZoom:C}=g();m&&(await FW({nodes:w,width:v,height:k,panZoom:m,minZoom:_,maxZoom:C},x),y==null||y.resolve(!0),p({fitViewResolver:null}))}return{...D_({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:w=>{const{nodeLookup:m,parentLookup:x,nodeOrigin:y,elevateNodesOnSelect:v,fitViewQueued:k,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:N,hasSelectedNodes:I}=fg(w,m,x,{nodeOrigin:y,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:_}),A=C&&I;k&&N?(b(),p({nodes:w,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):p({nodes:w,nodesInitialized:N,nodesSelectionActive:A})},setEdges:w=>{const{connectionLookup:m,edgeLookup:x}=g();iM(m,x,w),p({edges:w})},setDefaultNodesAndEdges:(w,m)=>{if(w){const{setNodes:x}=g();x(w),p({hasDefaultNodes:!0})}if(m){const{setEdges:x}=g();x(m),p({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:m,nodeLookup:x,parentLookup:y,domNode:v,nodeOrigin:k,nodeExtent:_,debug:C,fitViewQueued:N,zIndexMode:I}=g(),{changes:A,updatedInternals:P}=cY(w,x,y,v,k,_,I);P&&(sY(x,y,{nodeOrigin:k,nodeExtent:_,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(A==null?void 0:A.length)>0&&(C&&console.log("React Flow: trigger node changes",A),m==null||m(A)))},updateNodePositions:(w,m=!1)=>{const x=[];let y=[];const{nodeLookup:v,triggerNodeChanges:k,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:N}=g();for(const[I,A]of w){const P=v.get(I),R=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(A!=null&&A.position)),F={id:I,type:"position",position:R?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:m};if(P&&_.inProgress&&_.fromNode.id===P.id){const O=ts(P,_.fromHandle,ge.Left,!0);C({..._,from:O})}R&&P.parentId&&x.push({id:I,parentId:P.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),y.push(F)}if(x.length>0){const{parentLookup:I,nodeOrigin:A}=g(),P=sb(x,v,I,A);y.push(...P)}for(const I of N.values())y=I(y);k(y)},triggerNodeChanges:w=>{const{onNodesChange:m,setNodes:x,nodes:y,hasDefaultNodes:v,debug:k}=g();if(w!=null&&w.length){if(v){const _=kM(w,y);x(_)}k&&console.log("React Flow: trigger node changes",w),m==null||m(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:m,setEdges:x,edges:y,hasDefaultEdges:v,debug:k}=g();if(w!=null&&w.length){if(v){const _=EM(w,y);x(_)}k&&console.log("React Flow: trigger edge changes",w),m==null||m(w)}},addSelectedNodes:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:k}=g();if(m){const _=w.map(C=>Ti(C,!0));v(_);return}v(Gs(y,new Set([...w]),!0)),k(Gs(x))},addSelectedEdges:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:k}=g();if(m){const _=w.map(C=>Ti(C,!0));k(_);return}k(Gs(x,new Set([...w]))),v(Gs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:m}={})=>{const{edges:x,nodes:y,nodeLookup:v,triggerNodeChanges:k,triggerEdgeChanges:_}=g(),C=w||y,N=m||x,I=[];for(const P of C){if(!P.selected)continue;const R=v.get(P.id);R&&(R.selected=!1),I.push(Ti(P.id,!1))}const A=[];for(const P of N)P.selected&&A.push(Ti(P.id,!1));k(I),_(A)},setMinZoom:w=>{const{panZoom:m,maxZoom:x}=g();m==null||m.setScaleExtent([w,x]),p({minZoom:w})},setMaxZoom:w=>{const{panZoom:m,minZoom:x}=g();m==null||m.setScaleExtent([x,w]),p({maxZoom:w})},setTranslateExtent:w=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(w),p({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:m,triggerNodeChanges:x,triggerEdgeChanges:y,elementsSelectable:v}=g();if(!v)return;const k=m.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]),_=w.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]);x(k),y(_)},setNodeExtent:w=>{const{nodes:m,nodeLookup:x,parentLookup:y,nodeOrigin:v,elevateNodesOnSelect:k,nodeExtent:_,zIndexMode:C}=g();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(fg(m,x,y,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:C}),p({nodeExtent:w}))},panBy:w=>{const{transform:m,width:x,height:y,panZoom:v,translateExtent:k}=g();return uY({delta:w,panZoom:v,transform:m,translateExtent:k,width:x,height:y})},setCenter:async(w,m,x)=>{const{width:y,height:v,maxZoom:k,panZoom:_}=g();if(!_)return!1;const C=typeof(x==null?void 0:x.zoom)<"u"?x.zoom:k;return await _.setViewport({x:y/2-w*C,y:v/2-m*C,zoom:C},{duration:x==null?void 0:x.duration,ease:x==null?void 0:x.ease,interpolate:x==null?void 0:x.interpolate}),!0},cancelConnection:()=>{p({connection:{...F2}})},updateConnection:w=>{p({connection:w})},reset:()=>p({...D_()})}},Object.is);function XM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:p}){const[g]=S.useState(()=>UQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:h}));return f.jsx(sX,{value:g,children:f.jsx(CX,{children:p})})}function VQ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p}){return S.useContext(kf)?f.jsx(f.Fragment,{children:e}):f.jsx(XM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p,children:e})}const HQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function KQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onSelectionChange:F,onSelectionDragStart:O,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onBeforeDelete:E,connectionMode:V,connectionLineType:H=Hr.Bezier,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:Y,deleteKeyCode:Z="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:q=!1,selectionMode:ee=Sl.Full,panActivationKeyCode:le="Space",multiSelectionKeyCode:ce=Al()?"Meta":"Control",zoomActivationKeyCode:ae=Al()?"Meta":"Control",snapToGrid:se,snapGrid:ye,onlyRenderVisibleElements:W=!1,selectNodesOnDrag:$,nodesDraggable:G,autoPanOnNodeFocus:X,nodesConnectable:me,nodesFocusable:pe,nodeOrigin:de=vM,edgesFocusable:Ae,edgesReconnectable:_e,elementsSelectable:mt=!0,defaultViewport:Pe=bX,minZoom:z=.5,maxZoom:K=2,translateExtent:te=El,preventScrolling:oe=!0,nodeExtent:we,defaultMarkerColor:Le="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:_t=!0,panOnScroll:Mn=!1,panOnScrollSpeed:ur=.5,panOnScrollMode:ct=Ui.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs=1,nodeClickDistance:hs=0,children:Of,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df=10,onNodesChange:ac,onEdgesChange:Q,noDragClassName:ne="nodrag",noWheelClassName:fe="nowheel",noPanClassName:Me="nopan",fitView:qe,fitViewOptions:be,connectOnClick:kt,attributionPosition:xt,proOptions:ke,defaultEdgeOptions:Ue,elevateNodesOnSelect:Ce=!0,elevateEdgesOnSelect:ut=!1,disableKeyboardA11y:dr=!1,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanOnSelection:yn=!0,autoPanSpeed:gi,connectionRadius:lc,isValidConnection:rI,onError:iI,style:sI,id:lb,nodeDragThreshold:oI,connectionDragThreshold:aI,viewport:lI,onViewportChange:cI,width:uI,height:dI,colorMode:fI="light",debug:hI,onScroll:cc,ariaLabelConfig:pI,zIndexMode:cb="basic",...mI},gI){const jf=lb||"1",yI=_X(fI),bI=S.useCallback(ub=>{ub.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),cc==null||cc(ub)},[cc]);return f.jsx("div",{"data-testid":"rf__wrapper",...mI,onScroll:bI,style:{...sI,...HQ},ref:gI,className:pt(["react-flow",i,yI]),id:lb,role:"application",children:f.jsxs(VQ,{nodes:e,edges:t,width:uI,height:dI,fitView:qe,fitViewOptions:be,minZoom:z,maxZoom:K,nodeOrigin:de,nodeExtent:we,zIndexMode:cb,children:[f.jsx(vX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:G,autoPanOnNodeFocus:X,nodesConnectable:me,nodesFocusable:pe,edgesFocusable:Ae,edgesReconnectable:_e,elementsSelectable:mt,elevateNodesOnSelect:Ce,elevateEdgesOnSelect:ut,minZoom:z,maxZoom:K,nodeExtent:we,onNodesChange:ac,onEdgesChange:Q,snapToGrid:se,snapGrid:ye,connectionMode:V,translateExtent:te,connectOnClick:kt,defaultEdgeOptions:Ue,fitView:qe,fitViewOptions:be,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:j,onSelectionDragStart:O,onSelectionDragStop:M,onMove:d,onMoveStart:u,onMoveEnd:h,noPanClassName:Me,nodeOrigin:de,rfId:jf,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanSpeed:gi,onError:iI,connectionRadius:lc,isValidConnection:rI,selectNodesOnDrag:$,nodeDragThreshold:oI,connectionDragThreshold:aI,onBeforeDelete:E,debug:hI,ariaLabelConfig:pI,zIndexMode:cb}),f.jsx(FQ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:o,connectionLineType:H,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:Y,selectionKeyCode:J,selectionOnDrag:q,selectionMode:ee,deleteKeyCode:Z,multiSelectionKeyCode:ce,panActivationKeyCode:le,zoomActivationKeyCode:ae,onlyRenderVisibleElements:W,defaultViewport:Pe,translateExtent:te,minZoom:z,maxZoom:K,preventScrolling:oe,zoomOnScroll:$t,zoomOnPinch:_t,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:ur,panOnScrollMode:ct,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs,nodeClickDistance:hs,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df,defaultMarkerColor:Le,noDragClassName:ne,noWheelClassName:fe,noPanClassName:Me,rfId:jf,disableKeyboardA11y:dr,nodeExtent:we,viewport:lI,onViewportChange:cI}),f.jsx(yX,{onSelectionChange:F}),Of,f.jsx(fX,{proOptions:ke,position:xt}),f.jsx(dX,{rfId:jf,disableKeyboardA11y:dr})]})})}var qQ=NM(KQ);function GQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>kM(i,s)),[]);return[t,n,r]}function WQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>EM(i,s)),[]);return[t,n,r]}function YQ({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:pt(["react-flow__background-pattern",n,r])})}function XQ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:pt(["react-flow__background-pattern","dots",t])})}var si;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(si||(si={}));const QQ={[si.Dots]:1,[si.Lines]:1,[si.Cross]:6},ZQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function QM({id:e,variant:t=si.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:d}){const u=S.useRef(null),{transform:h,patternId:p}=Oe(ZQ,We),g=r||QQ[t],b=t===si.Dots,w=t===si.Cross,m=Array.isArray(n)?n:[n,n],x=[m[0]*h[2]||1,m[1]*h[2]||1],y=g*h[2],v=Array.isArray(s)?s:[s,s],k=w?[y,y]:x,_=[v[0]*h[2]||1+k[0]/2,v[1]*h[2]||1+k[1]/2],C=`${p}${e||""}`;return f.jsxs("svg",{className:pt(["react-flow__background",c]),style:{...l,...Sf,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:u,"data-testid":"rf__background",children:[f.jsx("pattern",{id:C,x:h[0]%x[0],y:h[1]%x[1],width:x[0],height:x[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:b?f.jsx(XQ,{radius:y/2,className:d}):f.jsx(YQ,{dimensions:k,lineWidth:i,variant:t,className:d})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}QM.displayName="Background";const JQ=S.memo(QM);function eZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function tZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function nZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function iZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function eu({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:pt(["react-flow__controls-button",t]),...n,children:e})}const sZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ZM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:h="vertical","aria-label":p}){const g=Ye(),{isInteractive:b,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:x}=Oe(sZ,We),{zoomIn:y,zoomOut:v,fitView:k}=ob(),_=()=>{y(),s==null||s()},C=()=>{v(),o==null||o()},N=()=>{k(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),l==null||l(!b)},A=h==="horizontal"?"horizontal":"vertical";return f.jsxs(Ef,{className:pt(["react-flow__controls",A,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":p??x["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(eu,{onClick:_,className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(eZ,{})}),f.jsx(eu,{onClick:C,className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:w,children:f.jsx(tZ,{})})]}),n&&f.jsx(eu,{className:"react-flow__controls-fitview",onClick:N,title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:f.jsx(nZ,{})}),r&&f.jsx(eu,{className:"react-flow__controls-interactive",onClick:I,title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:b?f.jsx(iZ,{}):f.jsx(rZ,{})}),d]})}ZM.displayName="Controls";const oZ=S.memo(ZM);function aZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:h,onClick:p}){const{background:g,backgroundColor:b}=s||{},w=o||g||b;return f.jsx("rect",{className:pt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:r,height:i,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:u,onClick:p?m=>p(m,e):void 0})}const lZ=S.memo(aZ),cZ=e=>e.nodes.map(t=>t.id),mp=e=>e instanceof Function?e:()=>e;function uZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=lZ,onClick:o}){const a=Oe(cZ,We),l=mp(t),c=mp(e),d=mp(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(fZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:u},h))})}function dZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:h,height:p}=Oe(g=>{const b=g.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const w=b.internals.userNode,{x:m,y:x}=b.internals.positionAbsolute,{width:y,height:v}=Rr(w);return{node:w,x:m,y:x,width:y,height:v}},We);return!c||c.hidden||!G2(c)?null:f.jsx(a,{x:d,y:u,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const fZ=S.memo(dZ);var hZ=S.memo(uZ);const pZ=200,mZ=150,gZ=e=>!e.hidden,yZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?K2(nc(e.nodeLookup,{filter:gZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},bZ="react-flow__minimap-desc";function JM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:b=!1,zoomable:w=!1,ariaLabel:m,inversePan:x,zoomStep:y=1,offsetScale:v=5}){const k=Ye(),_=S.useRef(null),{boundingRect:C,viewBB:N,rfId:I,panZoom:A,translateExtent:P,flowWidth:R,flowHeight:F,ariaLabelConfig:O}=Oe(yZ,We),j=(e==null?void 0:e.width)??pZ,M=(e==null?void 0:e.height)??mZ,B=C.width/j,L=C.height/M,D=Math.max(B,L),E=D*j,V=D*M,H=v*D,T=C.x-(E-C.width)/2-H,U=C.y-(V-C.height)/2-H,Y=E+H*2,Z=V+H*2,J=`${bZ}-${I}`,q=S.useRef(0),ee=S.useRef();q.current=D,S.useEffect(()=>{if(_.current&&A)return ee.current=xY({domNode:_.current,panZoom:A,getTransform:()=>k.getState().transform,getViewScale:()=>q.current}),()=>{var se;(se=ee.current)==null||se.destroy()}},[A]),S.useEffect(()=>{var se;(se=ee.current)==null||se.update({translateExtent:P,width:R,height:F,inversePan:x,pannable:b,zoomStep:y,zoomable:w})},[b,w,x,y,P,R,F]);const le=p?se=>{var $;const[ye,W]=(($=ee.current)==null?void 0:$.pointer(se))||[0,0];p(se,{x:ye,y:W})}:void 0,ce=g?S.useCallback((se,ye)=>{const W=k.getState().nodeLookup.get(ye).internals.userNode;g(se,W)},[]):void 0,ae=m??O["minimap.ariaLabel"];return f.jsx(Ef,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*D:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:pt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:j,height:M,viewBox:`${T} ${U} ${Y} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:_,onClick:le,children:[ae&&f.jsx("title",{id:J,children:ae}),f.jsx(hZ,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${T-H},${U-H}h${Y+H*2}v${Z+H*2}h${-Y-H*2}z + M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}JM.displayName="MiniMap";const xZ=S.memo(JM),wZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vZ={[Ao.Line]:"right",[Ao.Handle]:"bottom-right"};function _Z({nodeId:e,position:t,variant:n=Ao.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:b,onResize:w,onResizeEnd:m}){const x=MM(),y=typeof e=="string"?e:x,v=Ye(),k=S.useRef(null),_=n===Ao.Handle,C=Oe(S.useCallback(wZ(_&&p),[_,p]),We),N=S.useRef(null),I=t??vZ[n];S.useEffect(()=>{if(!(!k.current||!y))return N.current||(N.current=OY({domNode:k.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j,domNode:M}=v.getState();return{nodeLookup:P,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j,paneDomNode:M}},onChange:(P,R)=>{const{triggerNodeChanges:F,nodeLookup:O,parentLookup:j,nodeOrigin:M}=v.getState(),B=[],L={x:P.x,y:P.y},D=O.get(y);if(D&&D.expandParent&&D.parentId){const E=D.origin??M,V=P.width??D.measured.width??0,H=P.height??D.measured.height??0,T={id:D.id,parentId:D.parentId,rect:{width:V,height:H,...W2({x:P.x??D.position.x,y:P.y??D.position.y},{width:V,height:H},D.parentId,O,E)}},U=sb([T],O,j,M);B.push(...U),L.x=P.x?Math.max(E[0]*V,P.x):void 0,L.y=P.y?Math.max(E[1]*H,P.y):void 0}if(L.x!==void 0&&L.y!==void 0){const E={id:y,type:"position",position:{...L}};B.push(E)}if(P.width!==void 0&&P.height!==void 0){const V={id:y,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};B.push(V)}for(const E of R){const V={...E,type:"position"};B.push(V)}F(B)},onEnd:({width:P,height:R})=>{const F={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:R}};v.getState().triggerNodeChanges([F])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:h,onResizeStart:b,onResize:w,onResizeEnd:m,shouldResize:g}),()=>{var P;(P=N.current)==null||P.destroy()}},[I,a,l,c,d,u,b,w,m,g]);const A=I.split("-");return f.jsx("div",{className:pt(["react-flow__resize-control","nodrag",...A,n,r]),ref:k,style:{...i,scale:C,...o&&{[_?"backgroundColor":"borderColor"]:o}},children:s})}S.memo(_Z);const kZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:qB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:vB},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Gy}];let mg=0;function gp(){return mg+=1,`node_${mg}`}function yp(e,t,n){const r=ds();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function EZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:ge.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(go,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:ge.Right,className:"wfb-handle"})]})}const SZ={agentNode:EZ},j_={type:"smoothstep",markerEnd:{type:Nl.ArrowClosed,width:16,height:16}};function NZ({onBack:e,onCreate:t}){const n=S.useRef(null),[r,i]=S.useState(""),[s,o]=S.useState(""),[a,l]=S.useState("sequential"),c=S.useMemo(()=>{mg=0;const R=gp();return yp(R,{x:80,y:120},{name:"agent_1"})},[]),[d,u,h]=GQ([c]),[p,g,b]=WQ([]),[w,m]=S.useState(c.id),x=d.find(R=>R.id===w)??null,y=S.useCallback(R=>g(F=>SM({...R,...j_},F)),[g]),v=S.useCallback(()=>{const R=gp(),F=d.length*28,O=yp(R,{x:80+F,y:120+F});u(j=>j.concat(O)),m(R)},[d.length,u]),k=R=>{R.dataTransfer.setData("application/wfb-node","agentNode"),R.dataTransfer.effectAllowed="move"},_=S.useCallback(R=>{R.preventDefault(),R.dataTransfer.dropEffect="move"},[]),C=S.useCallback(R=>{if(R.preventDefault(),R.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const O=n.current.screenToFlowPosition({x:R.clientX,y:R.clientY}),j=gp(),M=yp(j,O);u(B=>B.concat(M)),m(j)},[u]),N=S.useCallback(R=>{w&&u(F=>F.map(O=>O.id===w?{...O,data:{...O.data,agent:{...O.data.agent,...R}}}:O))},[w,u]),I=S.useCallback(()=>{w&&(u(R=>R.filter(F=>F.id!==w)),g(R=>R.filter(F=>F.source!==w&&F.target!==w)),m(null))},[w,u,g]),A=S.useCallback(()=>{const R=d.map(O=>O.data.agent),F={...ds(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:R,workflow:{type:a,nodes:d.map(O=>({id:O.id,agent:O.data.agent})),edges:p.map(O=>({from:O.source,to:O.target}))}};t(F)},[d,p,r,s,a,t]),P=d.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:R=>i(R.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:R=>o(R.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:kZ.map(({type:R,label:F,desc:O,Icon:j})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===R?"wfb-type--active":""}`,onClick:()=>l(R),children:[f.jsx(j,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:F}),f.jsx("span",{className:"wfb-type-desc",children:O})]})]},R))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:k,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(FB,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(go,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(ss,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:A,disabled:!P,type:"button",children:[f.jsx(Qd,{className:"icon"}),"创建工作流"]}),f.jsxs(qQ,{nodes:d,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:y,onInit:R=>n.current=R,nodeTypes:SZ,defaultEdgeOptions:j_,onDrop:C,onDragOver:_,onNodeClick:(R,F)=>m(F.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(JQ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(oZ,{showInteractive:!1}),f.jsx(xZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:x?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(Do,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.name,onChange:R=>N({name:R.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.description,onChange:R=>N({description:R.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:x.data.agent.instruction,onChange:R=>N({instruction:R.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.tools.join(", "),onChange:R=>N({tools:R.target.value.split(",").map(F=>F.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:x.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(go,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",d.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function TZ(e){return f.jsx(XM,{children:f.jsx(NZ,{...e})})}const B_=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function bp(e){let t=0;for(let n=0;n>>0;return B_[t%B_.length]}function AZ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,d)=>c.start_time-d.start_time,s=(c,d)=>({span:c,depth:d,children:(n.get(c.span_id)??[]).sort(i).map(u=>s(u,d+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function CZ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function $_(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const MZ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function F_(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:MZ(t),value:r,long:r.length>80||r.includes(` +`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function IZ({sessionId:e,onClose:t}){const[n,r]=S.useState(null),[i,s]=S.useState(""),[o,a]=S.useState(new Set),[l,c]=S.useState(null);S.useEffect(()=>{r(null),s(""),d$(e).then(m=>{r(m),c(m.length?m.reduce((x,y)=>x.start_time<=y.start_time?x:y).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:d,min:u,total:h}=S.useMemo(()=>AZ(n??[]),[n]),p=S.useMemo(()=>CZ(d,o),[d,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,w=m=>a(x=>{const y=new Set(x);return y.has(m)?y.delete(m):y.add(m),y});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${b.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(Fl,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const x=m.span,y=(x.start_time-u)/h*100,v=Math.max((x.end_time-x.start_time)/h*100,.6),k=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===x.span_id?"active":""}`,onClick:()=>c(x.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${k?"":"hidden"} ${o.has(x.span_id)?"":"open"}`,onClick:_=>{_.stopPropagation(),k&&w(x.span_id)},children:f.jsx(Gn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:bp(x.name)}}),f.jsx("span",{className:"trace-name",title:x.name,children:x.name})]}),f.jsx("span",{className:"trace-dur",children:$_(x.end_time-x.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${y}%`,width:`${v}%`,background:bp(x.name)}})})]},x.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:bp(g.name)}}),$_(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:F_(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),F_(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function OZ(e){return e.toLowerCase()==="github"?f.jsx($B,{className:"icon"}):f.jsx(GB,{className:"icon"})}function RZ({onUsername:e}){const[t,n]=S.useState(null),[r,i]=S.useState("");S.useEffect(()=>{A$().then(n)},[]);const s=E$.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>C$(a.loginUrl),children:[OZ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(DN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function LZ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}as("Button",LZ);function PZ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}as("Card",PZ);const DZ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},jZ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function eI(e){return DZ[e]??"flex-start"}function tI(e){return jZ[e]??"stretch"}function BZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:eI(e.justify),alignItems:tI(e.align)},children:n.map(r=>t.render(r))})}as("Column",BZ);function $Z({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}as("Divider",$Z);const FZ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function zZ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:FZ[t]??"•"})}as("Icon",zZ);function UZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:eI(e.justify),alignItems:tI(e.align??"center")},children:n.map(r=>t.render(r))})}as("Row",UZ);const VZ=new Set(["h1","h2","h3","h4","h5"]);function HZ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=VZ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}as("Text",HZ);const KZ="创建 Agent",qZ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ss={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},GZ=new Set,WZ=[];function z_(){const e=typeof localStorage<"u"?localStorage.getItem(Ss.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function YZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function XZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function QZ(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function nI(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function ZZ(e){if(!e)return"";const t=[];return e.ts&&t.push(nI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function JZ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const eJ="send_a2ui_json_to_client";function tJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===eJ&&t.done):t.kind==="a2ui"?sT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function nJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function rJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const d=c.data;d&&d.veadkOAuth&&typeof d.url=="string"&&o(d.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function iJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function U_({text:e}){const[t,n]=S.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx(Hy,{className:"icon"}):f.jsx(CB,{className:"icon"})})}const V_=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],H_=()=>V_[Math.floor(Math.random()*V_.length)],sJ=20*1024*1024;function oJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function aJ(){const[e,t]=S.useState([]),[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(""),[l,c]=S.useState({}),d=l[o]??[],u=(Q,ne)=>c(fe=>({...fe,[Q]:typeof ne=="function"?ne(fe[Q]??[]):ne})),[h,p]=S.useState(""),[g,b]=S.useState([]),[w,m]=S.useState(()=>new Set),x=S.useRef(new Map),y=(Q,ne)=>m(fe=>{const Me=new Set(fe);return ne?Me.add(Q):Me.delete(Q),Me}),v=S.useRef(""),[k,_]=S.useState(""),[C,N]=S.useState(!1),[I,A]=S.useState(H_),[P,R]=S.useState(null),[F,O]=S.useState(""),[j,M]=S.useState(),[B,L]=S.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[D,E]=S.useState("local"),[V,H]=S.useState(!1),[T,U]=S.useState(!1),[Y,Z]=S.useState({}),[J,q]=S.useState({}),[ee,le]=S.useState({}),ce=w.has(o),ae=Y[o]??"",se=J[o]??GZ,ye=ee[o]??WZ,W=(Q,ne)=>{var be,kt,xt,ke,Ue;const fe=ne.author&&ne.author!=="user"?ne.author:void 0;fe&&(Z(Ce=>({...Ce,[Q]:fe})),q(Ce=>({...Ce,[Q]:new Set(Ce[Q]??[]).add(fe)})),le(Ce=>{var ut;return(ut=Ce[Q])!=null&&ut.length?Ce:{...Ce,[Q]:[fe]}}));const Me=((be=ne.actions)==null?void 0:be.transferToAgent)??((kt=ne.actions)==null?void 0:kt.transfer_to_agent);Me&&le(Ce=>{const ut=Ce[Q]??[];return ut[ut.length-1]===Me?Ce:{...Ce,[Q]:[...ut,Me]}}),(((xt=ne.actions)==null?void 0:xt.endOfAgent)??((ke=ne.actions)==null?void 0:ke.end_of_agent)??((Ue=ne.actions)==null?void 0:Ue.escalate))&&le(Ce=>{const ut=Ce[Q]??[];return ut.length<=1?Ce:{...Ce,[Q]:ut.slice(0,-1)}})},[$,G]=S.useState(z_),[X,me]=S.useState(!0),[pe,de]=S.useState(!1),[Ae,_e]=S.useState(!1),[mt,Pe]=S.useState(!1),[z,K]=S.useState(null),[te,oe]=S.useState(!1),[we,Le]=S.useState(!1),$t=S.useRef(null),[_t,Mn]=S.useState(()=>{const Q=Wr();return zl(Q),Q}),[ur,ct]=S.useState(!1),In=S.useRef(!1);function At(Q){console.log("create agent draft:",Q),G(null),hs()}function ic(Q,ne){console.log("Agent added, navigating to:",Q,ne),Mn(Wr()),G(null),r(Q)}const{ref:Tf,onScroll:Af}=oT(d);S.useEffect(()=>{I$().then(Q=>{O(Q.userId),M(Q.info),H(!!Q.local),R(Q.status)})},[]),S.useEffect(()=>{p$().then(Q=>{L(Q.features),E(Q.agentsSource),Q.defaultView==="addAgent"&&(G(null),de(!1),oe(!1),Le(!1),_e(!1),Pe(!0))})},[]),S.useEffect(()=>{fetch("/web/runtime-config").then(Q=>Q.ok?Q.json():null).then(Q=>{Q&&me(!!Q.credentials)}).catch(()=>{})},[]);function Cf(Q){N$(Q),O(Q),M({name:Q}),H(!0),R("authenticated")}function Mf(){V?(T$(),O(""),M(void 0),R("unauthenticated")):M$()}S.useEffect(()=>{P!=="unauthenticated"&&c$().then(Q=>{if(t(Q),D==="cloud"){r("");return}const ne=localStorage.getItem(Ss.app),fe=_t.flatMap(be=>be.apps.map(kt=>Wi(be.id,kt))),Me=ne&&(Q.includes(ne)||fe.includes(ne)),qe=["web_search_agent","web_demo"].find(be=>Q.includes(be))??Q.find(be=>!/^\d/.test(be))??Q[0];r(Me?ne:qe||"")}).catch(Q=>_(String(Q)))},[P,D]),S.useEffect(()=>{n&&localStorage.setItem(Ss.app,n)},[n]),S.useEffect(()=>{localStorage.setItem(Ss.view,$??"chat")},[$]),S.useEffect(()=>{localStorage.setItem(Ss.session,o),v.current=o},[o]),S.useEffect(()=>()=>x.current.forEach(Q=>Q.abort()),[]),S.useEffect(()=>{!n||!F||(async()=>{const Q=await fs(n);if(!In.current){In.current=!0;const ne=localStorage.getItem(Ss.session)||"";if(z_()===null&&ne&&Q.some(fe=>fe.id===ne)){ps(ne);return}}hs()})()},[n,F]),S.useEffect(()=>{const Q=$t.current;Q&&Q.app===n&&($t.current=null,ps(Q.sid))},[n]);function If(Q,ne){oe(!1),Q===n?ps(ne):($t.current={app:Q,sid:ne},r(Q))}async function fs(Q){try{const ne=await KN(Q,F),fe=await Promise.all(ne.map(Me=>{var qe;return(qe=Me.events)!=null&&qe.length?Promise.resolve(Me):Mm(Q,F,Me.id)}));return s(fe),fe}catch(ne){return _(String(ne)),[]}}function hs(){_(""),A(H_()),v.current="",a("")}async function Of(Q){var ne;try{(ne=x.current.get(Q))==null||ne.abort(),await u$(n,F,Q),c(fe=>{const{[Q]:Me,...qe}=fe;return qe}),Q===o&&hs(),await fs(n)}catch(fe){_(String(fe))}}async function ps(Q){if(Q!==o&&(v.current=Q,_(""),a(Q),l[Q]===void 0)){U(!0);try{const ne=await Mm(n,F,Q);u(Q,_$(ne.events??[]))}catch(ne){_(String(ne))}finally{U(!1)}}}async function Rf(Q){const ne=[];for(const fe of Array.from(Q)){if(fe.size>sJ){_(`文件过大(>20MB):${fe.name}`);continue}const Me=await oJ(fe);ne.push({mimeType:fe.type||"application/octet-stream",data:Me,name:fe.name})}ne.length&&b(fe=>[...fe,...ne])}async function sc(Q,ne=[]){if(!Q.trim()&&ne.length===0||ce||!n||!F)return;_("");let fe=o;if(!fe)try{fe=await Cm(n,F),a(fe);const be=Date.now()/1e3,kt={id:fe,lastUpdateTime:be,events:[{author:"user",timestamp:be,content:{role:"user",parts:[{text:Q}]}}]};s(xt=>[kt,...xt.filter(ke=>ke.id!==fe)])}catch(be){_(String(be));return}const Me=new AbortController;x.current.set(fe,Me),y(fe,!0),v.current=fe;const qe=[];ne.length&&qe.push({kind:"attachment",files:ne.map(be=>({mimeType:be.mimeType,data:be.data,name:be.name}))}),Q.trim()&&qe.push({kind:"text",text:Q}),u(fe,be=>[...be,{role:"user",blocks:qe,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),Z(be=>({...be,[fe]:""})),q(be=>({...be,[fe]:new Set})),le(be=>({...be,[fe]:[]}));try{let be=Gr(),kt=0,xt=Date.now()/1e3;for await(const ke of ad({appName:n,userId:F,sessionId:fe,text:Q,attachments:ne,signal:Me.signal})){if(Me.signal.aborted)break;const Ue=ke.error??ke.errorMessage??ke.error_message;if(typeof Ue=="string"&&Ue){v.current===fe&&_(Ue);break}W(fe,ke),be=hl(be,ke);const Ce=ke.usageMetadata??ke.usage_metadata;Ce!=null&&Ce.totalTokenCount&&(kt=Ce.totalTokenCount),ke.timestamp&&(xt=ke.timestamp);const ut=be.blocks,dr={tokens:kt||void 0,ts:xt};u(fe,Ko=>{const fr=Ko.slice(),yn=fr[fr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(fr[fr.length-1]={...yn,blocks:ut,meta:dr}),fr})}fs(n)}catch(be){(be==null?void 0:be.name)!=="AbortError"&&!Me.signal.aborted&&v.current===fe&&_(String(be))}finally{x.current.get(fe)===Me&&x.current.delete(fe),y(fe,!1),Z(be=>({...be,[fe]:""})),le(be=>({...be,[fe]:[]}))}}function Lf(Q,ne){var qe,be;const fe=((qe=Q==null?void 0:Q.event)==null?void 0:qe.name)??ne.id,Me=((be=Q==null?void 0:Q.event)==null?void 0:be.context)??{};sc(`[ui-action] ${fe}: ${JSON.stringify(Me)}`)}async function Pf(Q){if(!Q.authUri)throw new Error("事件中没有授权地址。");if(!n||!F||!o)throw new Error("会话尚未就绪。");const ne=o,fe=await rJ(Q.authUri),Me=iJ(Q.authConfig,fe),qe=ke=>ke.map(Ue=>Ue.kind==="auth"&&!Ue.done?{...Ue,done:!0}:Ue);u(ne,ke=>{const Ue=ke.slice(),Ce=Ue[Ue.length-1];return(Ce==null?void 0:Ce.role)==="assistant"&&(Ue[Ue.length-1]={...Ce,blocks:qe(Ce.blocks)}),Ue});const be=d[d.length-1],kt=qe(be&&be.role==="assistant"?be.blocks:[]),xt=new AbortController;x.current.set(ne,xt),y(ne,!0);try{let ke=Gr(),Ue=0,Ce=Date.now()/1e3;for await(const ut of ad({appName:n,userId:F,sessionId:o,text:"",functionResponses:[{id:Q.callId,name:"adk_request_credential",response:Me}],signal:xt.signal})){if(xt.signal.aborted)break;W(ne,ut),ke=hl(ke,ut);const dr=ut.usageMetadata??ut.usage_metadata;dr!=null&&dr.totalTokenCount&&(Ue=dr.totalTokenCount),ut.timestamp&&(Ce=ut.timestamp);const Ko=[...kt,...ke.blocks];u(ne,fr=>{var lc;const yn=fr.slice(),gi=yn[yn.length-1];return(gi==null?void 0:gi.role)==="assistant"&&(yn[yn.length-1]={...gi,blocks:Ko,meta:{tokens:Ue||((lc=gi.meta)==null?void 0:lc.tokens),ts:Ce}}),yn})}fs(n)}catch(ke){(ke==null?void 0:ke.name)!=="AbortError"&&!xt.signal.aborted&&v.current===ne&&_(String(ke))}finally{x.current.get(ne)===xt&&x.current.delete(ne),y(ne,!1),Z(ke=>({...ke,[ne]:""})),le(ke=>({...ke,[ne]:[]}))}}if(P===null)return f.jsx("div",{className:"boot"});if(P==="unauthenticated")return f.jsx(RZ,{onUsername:Cf});const oc=JN(e,_t),ms=Q=>{var ne;return((ne=oc.find(fe=>fe.id===Q))==null?void 0:ne.label)??Q},mi=_t.find(Q=>Q.runtimeId&&Q.apps.some(ne=>Wi(Q.id,ne)===n)),Df=mi&&mi.runtimeId?{runtimeId:mi.runtimeId,name:mi.name,region:mi.region??"cn-beijing"}:void 0,ac=Q=>{Mn(Wr()),v.current="",a(""),r(Q)};return f.jsxs("div",{className:"layout",children:[f.jsx(nF,{agentsSource:D,localApps:e,currentAgentId:n,currentAgentLabel:n?ms(n):"",currentRuntime:Df,author:String((j==null?void 0:j.email)??F??""),onSelectAgent:ac,features:B,sessions:i,currentSessionId:o,streamingSids:w,onNewChat:()=>{G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!1),hs()},onSearch:()=>{G(null),de(!1),_e(!1),Pe(!1),Le(!1),oe(!0),_("")},onQuickCreate:()=>{v.current="",a(""),de(!1),_e(!1),oe(!1),Le(!1),G(null),K(null),Pe(!0),_("")},onSkillCenter:()=>{G(null),_e(!1),Pe(!1),oe(!1),Le(!1),de(!0),_("")},onAddAgent:()=>{v.current="",G(null),de(!1),oe(!1),Le(!1),a(""),Pe(!1),_e(!0),_("")},onManageAgents:()=>{v.current="",a(""),G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!0),_("")},onPickSession:Q=>{G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!1),_(""),ps(Q)},onDeleteSession:Of,userInfo:j,onLogout:Mf}),(()=>{const Q=f.jsx(V8,{value:h,onChange:p,onSubmit:()=>{const ne=h,fe=g;p(""),b([]),sc(ne,fe)},disabled:!n||!F,busy:ce,attachments:g,onAddFiles:Rf,onRemoveAttachment:ne=>b(fe=>fe.filter((Me,qe)=>qe!==ne))});return f.jsxs("main",{className:"main",children:[f.jsx(rF,{apps:oc.map(ne=>ne.id),appName:n,onAppChange:ac,agentLabel:ms,title:mt?"添加 Agent":Ae?"添加 AgentKit 智能体":pe?"技能中心":te?"搜索":we?"管理 Agent":$?void 0:n?ms(n):"选择 Agent",crumbs:te||Ae||pe||mt||!$?void 0:$==="menu"?[{label:KZ,onClick:()=>{G(null),K(null),Pe(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ct(!0)},{label:qZ[$]}]}),k&&f.jsx("div",{className:"error",children:k}),T&&f.jsxs("div",{className:"session-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载会话…"]}),we?f.jsx(aF,{author:String((j==null?void 0:j.email)??F??"")}):mt?f.jsx(nC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...B.addAgentkit?[{key:"agentkit",icon:YZ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Pe(!1),_e(!0)}}]:[],{key:"scratch",icon:XZ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Pe(!1),K(null),G("menu")}}]}):te?f.jsx(q$,{userId:F,appId:n,agentLabel:ms,onOpenSession:If}):Ae?f.jsx(oF,{onAdded:ne=>{Mn(Wr()),_e(!1),r(ne)},onCancel:()=>_e(!1)}):pe?f.jsx(D$,{}):$!==null&&!X?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):$==="menu"?f.jsx(kK,{onSelect:ne=>{K(null),G(ne)},onImport:ne=>{K(ne),G("custom")}}):$==="intelligent"?f.jsx(PK,{userId:F,onBack:()=>G("menu"),onCreate:At,onAgentAdded:ic}):$==="custom"?f.jsx(XK,{initialDraft:z??void 0,onBack:()=>G("menu"),onCreate:At,onAgentAdded:ic,author:String((j==null?void 0:j.email)??F??"")}):$==="template"?f.jsx(JK,{onBack:()=>G("menu"),onCreate:At}):$==="workflow"?f.jsx(TZ,{onBack:()=>G("menu"),onCreate:At}):d.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),Q]}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Tf,onScroll:Af,children:d.map((ne,fe)=>{var be;const Me=fe===d.length-1;if(ne.role==="user"){const kt=ne.blocks.map(ke=>ke.kind==="text"?ke.text:"").join(""),xt=ne.blocks.flatMap(ke=>ke.kind==="attachment"?ke.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[xt.length>0&&f.jsx("div",{className:"msg-attachments",children:xt.map((ke,Ue)=>{var Ce;return(Ce=ke.mimeType)!=null&&Ce.startsWith("image/")&&ke.data?f.jsx("img",{className:"attachment-thumb",src:`data:${ke.mimeType};base64,${ke.data}`,alt:ke.name??"image"},Ue):f.jsxs("div",{className:"attachment-file",children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:ke.name??"文件"})]},Ue)})}),kt&&f.jsx("div",{className:"bubble",children:f.jsx(E0,{text:kt})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((be=ne.meta)==null?void 0:be.ts)&&f.jsx("span",{className:"meta-text",children:nI(ne.meta.ts)}),f.jsx(U_,{text:kt})]})]},fe)}const qe=ne.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:qe?Me&&ce?f.jsx($8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(U8,{blocks:ne.blocks,onAction:Lf,onAuth:Pf}),!(Me&&ce)&&!tJ(ne)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Me&&ce)&&!nJ(ne)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(QZ,{})}),f.jsx(U_,{text:JZ(ne)})]}),ne.meta&&f.jsx("span",{className:"meta-text",children:ZZ(ne.meta)})]})]})},fe)})}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye}),Q]})]})})(),C&&o&&f.jsx(IZ,{sessionId:o,onClose:()=>N(!1)}),ur&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ct(!1),children:f.jsxs("div",{className:"confirm-box",onClick:Q=>Q.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ct(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{K(null),G("menu"),ct(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||xp.createRoot(document.getElementById("root")).render(f.jsx(tk.StrictMode,{children:f.jsx(tL,{reducedMotion:"user",children:f.jsx(aJ,{})})})); diff --git a/veadk/webui/assets/index-WghPsgMg.css b/veadk/webui/assets/index-WghPsgMg.css new file mode 100644 index 00000000..db430d3c --- /dev/null +++ b/veadk/webui/assets/index-WghPsgMg.css @@ -0,0 +1,10 @@ +.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-env-panel{flex:0 0 400px;width:400px;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--secondary) / .28)}.pp-env-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.pp-env-title{font-size:15px;font-weight:700;color:hsl(var(--foreground))}.pp-env-sub{margin-top:5px;max-width:292px;font-size:12px;line-height:1.45;color:hsl(var(--muted-foreground))}.pp-env-table{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:0;padding:10px 16px 12px}.pp-env-row{display:grid;grid-template-columns:minmax(142px,1.08fr) minmax(120px,1fr) 30px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid hsl(var(--border) / .72)}.pp-env-row-head{position:sticky;top:0;z-index:1;padding:0 0 6px;border:none;background:hsl(var(--secondary) / .28);color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.pp-env-row input{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:12px}.pp-env-row input:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px}.pp-env-key-fixed{border-color:hsl(var(--border))!important;background:hsl(var(--card))!important;color:hsl(var(--foreground))!important;cursor:default}.pp-env-row input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 2px hsl(var(--ring) / .1)}.pp-env-row input:disabled,.pp-env-row button:disabled,.pp-env-add:disabled{opacity:.55;cursor:default}.pp-env-empty{padding:26px 12px;color:hsl(var(--muted-foreground));font-size:12px;text-align:center;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card))}.pp-env-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 16px 14px;height:38px;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pp-env-add:hover:not(:disabled){background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .22)}.pp-env-remove{width:30px;height:30px}.pp-env-remove-placeholder{display:block;width:30px;height:30px}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-hl,.pp-input{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55;white-space:pre;-moz-tab-size:2;tab-size:2;box-sizing:border-box;border:none}.pp-pre code,.pp-hl code,.pp-input{font:inherit;-moz-tab-size:inherit;tab-size:inherit}.pp-pre{flex:1;width:100%;height:100%;overflow:auto}.pp-pre code{background:none;padding:0}.pp-editor-wrap{position:relative;flex:1;min-width:0;min-height:0;width:100%;height:100%}.pp-hl{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;pointer-events:none}.pp-hl code{background:none;padding:0}.pp-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;resize:none;outline:none;background:transparent;color:transparent;caret-color:hsl(var(--foreground))}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/index.html b/veadk/webui/index.html index 05334208..766f7c6a 100644 --- a/veadk/webui/index.html +++ b/veadk/webui/index.html @@ -4,8 +4,8 @@ VeADK Web - - + +
From 218fd8c897838e14991295f791bc8eca5cc954c6 Mon Sep 17 00:00:00 2001 From: zhengchuyi Date: Fri, 17 Jul 2026 14:44:56 +0800 Subject: [PATCH 3/5] feat: support Feishu channel deployment in generated agents --- veadk/webui/assets/index-BLimiirV.css | 10 + veadk/webui/assets/index-CKv78sD7.js | 942 ------------------------- veadk/webui/assets/index-CSD9mE1w.css | 10 - veadk/webui/assets/index-D58rpHH8.js | 794 --------------------- veadk/webui/assets/index-DkAOnguw.js | 957 ++++++++++++++++++++++++++ veadk/webui/assets/index-WghPsgMg.css | 10 - veadk/webui/index.html | 4 +- 7 files changed, 969 insertions(+), 1758 deletions(-) create mode 100644 veadk/webui/assets/index-BLimiirV.css delete mode 100644 veadk/webui/assets/index-CKv78sD7.js delete mode 100644 veadk/webui/assets/index-CSD9mE1w.css delete mode 100644 veadk/webui/assets/index-D58rpHH8.js create mode 100644 veadk/webui/assets/index-DkAOnguw.js delete mode 100644 veadk/webui/assets/index-WghPsgMg.css diff --git a/veadk/webui/assets/index-BLimiirV.css b/veadk/webui/assets/index-BLimiirV.css new file mode 100644 index 00000000..5e0833b8 --- /dev/null +++ b/veadk/webui/assets/index-BLimiirV.css @@ -0,0 +1,10 @@ +.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-env-panel{flex:0 0 400px;width:400px;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--secondary) / .28)}.pp-env-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.pp-env-title{font-size:15px;font-weight:700;color:hsl(var(--foreground))}.pp-env-sub{margin-top:5px;max-width:292px;font-size:12px;line-height:1.45;color:hsl(var(--muted-foreground))}.pp-env-table{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:0;padding:10px 16px 12px}.pp-env-row{display:grid;grid-template-columns:minmax(142px,1.08fr) minmax(120px,1fr) 30px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid hsl(var(--border) / .72)}.pp-env-row-head{position:sticky;top:0;z-index:1;padding:0 0 6px;border:none;background:hsl(var(--secondary) / .28);color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.pp-env-row input{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:12px}.pp-env-row input:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px}.pp-env-key-fixed{border-color:hsl(var(--border))!important;background:hsl(var(--card))!important;color:hsl(var(--foreground))!important;cursor:default}.pp-env-row input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 2px hsl(var(--ring) / .1)}.pp-env-row input:disabled,.pp-env-row button:disabled,.pp-env-add:disabled{opacity:.55;cursor:default}.pp-env-empty{padding:26px 12px;color:hsl(var(--muted-foreground));font-size:12px;text-align:center;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card))}.pp-env-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 16px 14px;height:38px;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pp-env-add:hover:not(:disabled){background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .22)}.pp-env-remove{width:30px;height:30px}.pp-env-remove-placeholder{display:block;width:30px;height:30px}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-textarea{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:400;font-style:normal;font-variant-ligatures:none;line-height:1.55;letter-spacing:normal;tab-size:2;-moz-tab-size:2;box-sizing:border-box;border:none;overflow:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.pp-pre{flex:1;width:100%;height:100%;white-space:pre}.pp-pre,.pp-pre *{font-weight:400!important;font-style:normal!important}.pp-textarea{flex:1;width:100%;height:100%;resize:none;outline:none;background:hsl(var(--background));color:hsl(var(--foreground));white-space:pre;word-wrap:normal;overflow-wrap:normal}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}.cw-skillspane{display:flex;flex-direction:column;gap:10px}.cw-skill-sourcetabs{display:inline-flex;gap:6px;flex-wrap:wrap}.cw-skill-pickertab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:9px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .15s,color .15s,border-color .15s}.cw-skill-pickertab:hover{border-color:hsl(var(--foreground) / .3);color:hsl(var(--foreground))}.cw-skill-pickertab.is-on{background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground))}.cw-skill-tabbody{margin-top:2px}.cw-pill-source{font-size:10.5px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .12);margin-left:4px;line-height:1.4}.cw-pill .cw-i{opacity:.85}.cw-local-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}.cw-local-hint{margin:0 0 8px;font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-skillspace-select{width:100%;margin-bottom:10px}.cw-skill-result-version{color:hsl(var(--muted-foreground));font-weight:400;font-size:11px;margin-left:4px}.cw-skill-result-repo .cw-i{vertical-align:-2px;margin-right:2px}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/assets/index-CKv78sD7.js b/veadk/webui/assets/index-CKv78sD7.js deleted file mode 100644 index cafd3062..00000000 --- a/veadk/webui/assets/index-CKv78sD7.js +++ /dev/null @@ -1,942 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Cu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ml(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var K_={exports:{}},Td={},q_={exports:{}},Te={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Il=Symbol.for("react.element"),xI=Symbol.for("react.portal"),wI=Symbol.for("react.fragment"),vI=Symbol.for("react.strict_mode"),_I=Symbol.for("react.profiler"),kI=Symbol.for("react.provider"),EI=Symbol.for("react.context"),SI=Symbol.for("react.forward_ref"),NI=Symbol.for("react.suspense"),TI=Symbol.for("react.memo"),AI=Symbol.for("react.lazy"),db=Symbol.iterator;function CI(e){return e===null||typeof e!="object"?null:(e=db&&e[db]||e["@@iterator"],typeof e=="function"?e:null)}var G_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},W_=Object.assign,Y_={};function Io(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}Io.prototype.isReactComponent={};Io.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Io.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function X_(){}X_.prototype=Io.prototype;function gg(e,t,n){this.props=e,this.context=t,this.refs=Y_,this.updater=n||G_}var yg=gg.prototype=new X_;yg.constructor=gg;W_(yg,Io.prototype);yg.isPureReactComponent=!0;var fb=Array.isArray,Q_=Object.prototype.hasOwnProperty,bg={current:null},Z_={key:!0,ref:!0,__self:!0,__source:!0};function J_(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)Q_.call(t,r)&&!Z_.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,H=L[V];if(0>>1;Vi(Y,E))Zi(J,Y)?(L[V]=J,L[Z]=E,V=Z):(L[V]=Y,L[U]=E,V=U);else if(Zi(J,E))L[V]=J,L[Z]=E,V=Z;else break e}}return D}function i(L,D){var E=L.sortIndex-D.sortIndex;return E!==0?E:L.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],d=1,u=null,h=3,p=!1,g=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(L){for(var D=n(c);D!==null;){if(D.callback===null)r(c);else if(D.startTime<=L)r(c),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(c)}}function v(L){if(b=!1,y(L),!g)if(n(l)!==null)g=!0,M(k);else{var D=n(c);D!==null&&B(v,D.startTime-L)}}function k(L,D){g=!1,b&&(b=!1,m(N),N=-1),p=!0;var E=h;try{for(y(D),u=n(l);u!==null&&(!(u.expirationTime>D)||L&&!P());){var V=u.callback;if(typeof V=="function"){u.callback=null,h=u.priorityLevel;var H=V(u.expirationTime<=D);D=e.unstable_now(),typeof H=="function"?u.callback=H:u===n(l)&&r(l),y(D)}else r(l);u=n(l)}if(u!==null)var T=!0;else{var U=n(c);U!==null&&B(v,U.startTime-D),T=!1}return T}finally{u=null,h=E,p=!1}}var _=!1,C=null,N=-1,I=5,A=-1;function P(){return!(e.unstable_now()-AL||125V?(L.sortIndex=E,t(c,L),n(l)===null&&L===n(c)&&(b?(m(N),N=-1):b=!0,B(v,E-V))):(L.sortIndex=H,t(l,L),g||p||(g=!0,M(k))),L},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(L){var D=h;return function(){var E=h;h=D;try{return L.apply(this,arguments)}finally{h=E}}}})(sk);ik.exports=sk;var FI=ik.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zI=S,fn=FI;function re(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wp=Object.prototype.hasOwnProperty,UI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pb={},mb={};function VI(e){return wp.call(mb,e)?!0:wp.call(pb,e)?!1:UI.test(e)?mb[e]=!0:(pb[e]=!0,!1)}function HI(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function KI(e,t,n,r){if(t===null||typeof t>"u"||HI(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Gt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Gt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Gt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Gt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Gt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Gt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Gt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Gt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Gt(e,5,!1,e.toLowerCase(),null,!1,!1)});var wg=/[\-:]([a-z])/g;function vg(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(wg,vg);Tt[t]=new Gt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Gt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Gt(e,1,!1,e.toLowerCase(),null,!0,!0)});function _g(e,t,n,r){var i=Tt.hasOwnProperty(t)?Tt[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Ff=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ua(e):""}function qI(e){switch(e.tag){case 5:return ua(e.type);case 16:return ua("Lazy");case 13:return ua("Suspense");case 19:return ua("SuspenseList");case 0:case 2:case 15:return e=zf(e.type,!1),e;case 11:return e=zf(e.type.render,!1),e;case 1:return e=zf(e.type,!0),e;default:return""}}function Ep(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 Ts:return"Fragment";case Ns:return"Portal";case vp:return"Profiler";case kg:return"StrictMode";case _p:return"Suspense";case kp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case lk:return(e.displayName||"Context")+".Consumer";case ak:return(e._context.displayName||"Context")+".Provider";case Eg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Sg:return t=e.displayName||null,t!==null?t:Ep(e.type)||"Memo";case $r:t=e._payload,e=e._init;try{return Ep(e(t))}catch{}}return null}function GI(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 Ep(t);case 8:return t===kg?"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 oi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function uk(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function WI(e){var t=uk(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fc(e){e._valueTracker||(e._valueTracker=WI(e))}function dk(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=uk(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Mu(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 Sp(e,t){var n=t.checked;return et({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function yb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=oi(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 fk(e,t){t=t.checked,t!=null&&_g(e,"checked",t,!1)}function Np(e,t){fk(e,t);var n=oi(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")?Tp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tp(e,t.type,oi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function bb(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 Tp(e,t,n){(t!=="number"||Mu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var da=Array.isArray;function Ws(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=hc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Va(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var va={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},YI=["Webkit","ms","Moz","O"];Object.keys(va).forEach(function(e){YI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),va[t]=va[e]})});function gk(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||va.hasOwnProperty(e)&&va[e]?(""+t).trim():t+"px"}function yk(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=gk(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var XI=et({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 Mp(e,t){if(t){if(XI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(re(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(re(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(re(61))}if(t.style!=null&&typeof t.style!="object")throw Error(re(62))}}function Ip(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 Op=null;function Ng(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rp=null,Ys=null,Xs=null;function vb(e){if(e=Ll(e)){if(typeof Rp!="function")throw Error(re(280));var t=e.stateNode;t&&(t=Od(t),Rp(e.stateNode,e.type,t))}}function bk(e){Ys?Xs?Xs.push(e):Xs=[e]:Ys=e}function xk(){if(Ys){var e=Ys,t=Xs;if(Xs=Ys=null,vb(e),t)for(e=0;e>>=0,e===0?32:31-(aO(e)/lO|0)|0}var pc=64,mc=4194304;function fa(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 Lu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=fa(a):(s&=o,s!==0&&(r=fa(s)))}else o=n&~i,o!==0?r=fa(o):s!==0&&(r=fa(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ol(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function fO(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=ka),Mb=" ",Ib=!1;function $k(e,t){switch(e){case"keyup":return FO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fk(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var As=!1;function UO(e,t){switch(e){case"compositionend":return Fk(t);case"keypress":return t.which!==32?null:(Ib=!0,Mb);case"textInput":return e=t.data,e===Mb&&Ib?null:e;default:return null}}function VO(e,t){if(As)return e==="compositionend"||!Lg&&$k(e,t)?(e=jk(),iu=Ig=Kr=null,As=!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)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=Pb(n)}}function Hk(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Hk(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Kk(){for(var e=window,t=Mu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mu(e.document)}return t}function Pg(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 ZO(e){var t=Kk(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Hk(n.ownerDocument.documentElement,n)){if(r!==null&&Pg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Db(n,s);var o=Db(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Cs=null,$p=null,Sa=null,Fp=!1;function jb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fp||Cs==null||Cs!==Mu(r)||(r=Cs,"selectionStart"in r&&Pg(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}),Sa&&Ya(Sa,r)||(Sa=r,r=ju($p,"onSelect"),0Os||(e.current=qp[Os],qp[Os]=null,Os--)}function Fe(e,t){Os++,qp[Os]=e.current,e.current=t}var ai={},Pt=di(ai),Zt=di(!1),Vi=ai;function oo(e,t){var n=e.type.contextTypes;if(!n)return ai;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function $u(){He(Zt),He(Pt)}function Hb(e,t,n){if(Pt.current!==ai)throw Error(re(168));Fe(Pt,t),Fe(Zt,n)}function eE(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(re(108,GI(e)||"Unknown",i));return et({},n,r)}function Fu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ai,Vi=Pt.current,Fe(Pt,e),Fe(Zt,Zt.current),!0}function Kb(e,t,n){var r=e.stateNode;if(!r)throw Error(re(169));n?(e=eE(e,t,Vi),r.__reactInternalMemoizedMergedChildContext=e,He(Zt),He(Pt),Fe(Pt,e)):He(Zt),Fe(Zt,n)}var gr=null,Rd=!1,th=!1;function tE(e){gr===null?gr=[e]:gr.push(e)}function uR(e){Rd=!0,tE(e)}function fi(){if(!th&&gr!==null){th=!0;var e=0,t=De;try{var n=gr;for(De=1;e>=o,i-=o,yr=1<<32-Un(t)+i|n<N?(I=C,C=null):I=C.sibling;var A=h(m,C,y[N],v);if(A===null){C===null&&(C=I);break}e&&C&&A.alternate===null&&t(m,C),x=s(A,x,N),_===null?k=A:_.sibling=A,_=A,C=I}if(N===y.length)return n(m,C),Ge&&_i(m,N),k;if(C===null){for(;NN?(I=C,C=null):I=C.sibling;var P=h(m,C,A.value,v);if(P===null){C===null&&(C=I);break}e&&C&&P.alternate===null&&t(m,C),x=s(P,x,N),_===null?k=P:_.sibling=P,_=P,C=I}if(A.done)return n(m,C),Ge&&_i(m,N),k;if(C===null){for(;!A.done;N++,A=y.next())A=u(m,A.value,v),A!==null&&(x=s(A,x,N),_===null?k=A:_.sibling=A,_=A);return Ge&&_i(m,N),k}for(C=r(m,C);!A.done;N++,A=y.next())A=p(C,m,N,A.value,v),A!==null&&(e&&A.alternate!==null&&C.delete(A.key===null?N:A.key),x=s(A,x,N),_===null?k=A:_.sibling=A,_=A);return e&&C.forEach(function(R){return t(m,R)}),Ge&&_i(m,N),k}function w(m,x,y,v){if(typeof y=="object"&&y!==null&&y.type===Ts&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case dc:e:{for(var k=y.key,_=x;_!==null;){if(_.key===k){if(k=y.type,k===Ts){if(_.tag===7){n(m,_.sibling),x=i(_,y.props.children),x.return=m,m=x;break e}}else if(_.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===$r&&Wb(k)===_.type){n(m,_.sibling),x=i(_,y.props),x.ref=Qo(m,_,y),x.return=m,m=x;break e}n(m,_);break}else t(m,_);_=_.sibling}y.type===Ts?(x=ji(y.props.children,m.mode,v,y.key),x.return=m,m=x):(v=fu(y.type,y.key,y.props,null,m.mode,v),v.ref=Qo(m,x,y),v.return=m,m=v)}return o(m);case Ns:e:{for(_=y.key;x!==null;){if(x.key===_)if(x.tag===4&&x.stateNode.containerInfo===y.containerInfo&&x.stateNode.implementation===y.implementation){n(m,x.sibling),x=i(x,y.children||[]),x.return=m,m=x;break e}else{n(m,x);break}else t(m,x);x=x.sibling}x=ch(y,m.mode,v),x.return=m,m=x}return o(m);case $r:return _=y._init,w(m,x,_(y._payload),v)}if(da(y))return g(m,x,y,v);if(qo(y))return b(m,x,y,v);_c(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,x!==null&&x.tag===6?(n(m,x.sibling),x=i(x,y),x.return=m,m=x):(n(m,x),x=lh(y,m.mode,v),x.return=m,m=x),o(m)):n(m,x)}return w}var lo=sE(!0),oE=sE(!1),Vu=di(null),Hu=null,Ps=null,$g=null;function Fg(){$g=Ps=Hu=null}function zg(e){var t=Vu.current;He(Vu),e._currentValue=t}function Yp(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 Zs(e,t){Hu=e,$g=Ps=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if($g!==e)if(e={context:e,memoizedValue:t,next:null},Ps===null){if(Hu===null)throw Error(re(308));Ps=e,Hu.dependencies={lanes:0,firstContext:e}}else Ps=Ps.next=e;return t}var Mi=null;function Ug(e){Mi===null?Mi=[e]:Mi.push(e)}function aE(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ug(t)):(n.next=i.next,i.next=n),t.interleaved=n,Tr(e,r)}function Tr(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 Fr=!1;function Vg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lE(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 vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ei(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Re&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Tr(e,n)}return i=r.interleaved,i===null?(t.next=t,Ug(r)):(t.next=i.next,i.next=t),r.interleaved=t,Tr(e,n)}function ou(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,Ag(e,n)}}function Yb(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Ku(e,t,n,r){var i=e.updateQueue;Fr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=c:a.next=c,d.lastBaseUpdate=l))}if(s!==null){var u=i.baseState;o=0,d=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.payload,typeof g=="function"){u=g.call(p,u,h);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=b.payload,h=typeof g=="function"?g.call(p,u,h):g,h==null)break e;u=et({},u,h);break e;case 2:Fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(c=d=p,l=u):d=d.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);qi|=o,e.lanes=o,e.memoizedState=u}}function Xb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=rh.transition;rh.transition={};try{e(!1),t()}finally{De=n,rh.transition=r}}function SE(){return An().memoizedState}function pR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},NE(e))TE(t,n);else if(n=aE(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),AE(n,t,r)}}function mR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(NE(e))TE(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Ug(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=aE(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),AE(n,t,r))}}function NE(e){var t=e.alternate;return e===Je||t!==null&&t===Je}function TE(e,t){Na=Gu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function AE(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ag(e,n)}}var Wu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},gR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:Zb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lu(4194308,4,wE.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lu(4194308,4,e,t)},useInsertionEffect:function(e,t){return lu(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=pR.bind(null,Je,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:Qb,useDebugValue:Qg,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=Qb(!1),t=e[0];return e=hR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Je,i=Zn();if(Ge){if(n===void 0)throw Error(re(407));n=n()}else{if(n=t(),vt===null)throw Error(re(349));Ki&30||fE(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Zb(pE.bind(null,r,s,e),[e]),r.flags|=2048,rl(9,hE.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=vt.identifierPrefix;if(Ge){var n=br,r=yr;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=tl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Za]=r,BE(e,t,!1,!1),t.stateNode=e;e:{switch(o=Ip(n,r),n){case"dialog":Ve("cancel",e),Ve("close",e),i=r;break;case"iframe":case"object":case"embed":Ve("load",e),i=r;break;case"video":case"audio":for(i=0;ifo&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304)}else{if(!r)if(e=qu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Zo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ge)return Mt(t),null}else 2*st()-s.renderingStartTime>fo&&n!==1073741824&&(t.flags|=128,r=!0,Zo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=st(),t.sibling=null,n=Qe.current,Fe(Qe,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ry(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(Mt(t),t.subtreeFlags&6&&(t.flags|=8192)):Mt(t),null;case 24:return null;case 25:return null}throw Error(re(156,t.tag))}function ER(e,t){switch(jg(t),t.tag){case 1:return Jt(t.type)&&$u(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return co(),He(Zt),He(Pt),qg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Kg(t),null;case 13:if(He(Qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(re(340));ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He(Qe),null;case 4:return co(),null;case 10:return zg(t.type._context),null;case 22:case 23:return ry(),null;case 24:return null;default:return null}}var Ec=!1,Ot=!1,SR=typeof WeakSet=="function"?WeakSet:Set,he=null;function Ds(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){nt(e,t,r)}else n.current=null}function im(e,t,n){try{n()}catch(r){nt(e,t,r)}}var cx=!1;function NR(e,t){if(zp=Pu,e=Kk(),Pg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,d=0,u=e,h=null;t:for(;;){for(var p;u!==n||i!==0&&u.nodeType!==3||(a=o+i),u!==s||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(p=u.firstChild)!==null;)h=u,u=p;for(;;){if(u===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++d===r&&(l=o),(p=u.nextSibling)!==null)break;u=h,h=u.parentNode}u=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Up={focusedElem:e,selectionRange:n},Pu=!1,he=t;he!==null;)if(t=he,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,he=e;else for(;he!==null;){t=he;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var b=g.memoizedProps,w=g.memoizedState,m=t.stateNode,x=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),w);m.__reactInternalSnapshotBeforeUpdate=x}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(re(163))}}catch(v){nt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,he=e;break}he=t.return}return g=cx,cx=!1,g}function Ta(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&im(t,n,s)}i=i.next}while(i!==r)}}function Dd(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 sm(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 zE(e){var t=e.alternate;t!==null&&(e.alternate=null,zE(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Za],delete t[Kp],delete t[lR],delete t[cR])),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 UE(e){return e.tag===5||e.tag===3||e.tag===4}function ux(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||UE(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 om(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=Bu));else if(r!==4&&(e=e.child,e!==null))for(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}function am(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(am(e,t,n),e=e.sibling;e!==null;)am(e,t,n),e=e.sibling}var Et=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)VE(e,t,n),n=n.sibling}function VE(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Ad,n)}catch{}switch(n.tag){case 5:Ot||Ds(n,t);case 6:var r=Et,i=Dn;Et=null,Lr(e,t,n),Et=r,Dn=i,Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Et.removeChild(n.stateNode));break;case 18:Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?eh(e.parentNode,n):e.nodeType===1&&eh(e,n),Ga(e)):eh(Et,n.stateNode));break;case 4:r=Et,i=Dn,Et=n.stateNode.containerInfo,Dn=!0,Lr(e,t,n),Et=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&im(n,t,o),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Ot&&(Ds(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){nt(n,t,a)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Lr(e,t,n),Ot=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function dx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new SR),t.forEach(function(r){var i=PR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=st()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Qu=0,Re&6)throw Error(re(331));var i=Re;for(Re|=4,he=e.current;he!==null;){var s=he,o=s.child;if(he.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lst()-ty?Di(e,0):ey|=n),en(e,t)}function QE(e,t){t===0&&(e.mode&1?(t=mc,mc<<=1,!(mc&130023424)&&(mc=4194304)):t=1);var n=Ht();e=Tr(e,t),e!==null&&(Ol(e,t,n),en(e,n))}function LR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),QE(e,n)}function PR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(re(314))}r!==null&&r.delete(t),QE(e,n)}var ZE;ZE=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,_R(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,Ge&&t.flags&1048576&&nE(t,Uu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cu(e,t),e=t.pendingProps;var i=oo(t,Pt.current);Zs(t,n),i=Wg(null,t,r,e,i,n);var s=Yg();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Fu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Vg(t),i.updater=Pd,t.stateNode=i,i._reactInternals=t,Qp(t,r,e,n),t=em(null,t,r,!0,s,n)):(t.tag=0,Ge&&s&&Dg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(cu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=jR(r),e=Pn(r,e),i){case 0:t=Jp(null,t,r,e,n);break e;case 1:t=ox(null,t,r,e,n);break e;case 11:t=ix(null,t,r,e,n);break e;case 14:t=sx(null,t,r,Pn(r.type,e),n);break e}throw Error(re(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),Jp(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ox(e,t,r,i,n);case 3:e:{if(PE(t),e===null)throw Error(re(387));r=t.pendingProps,s=t.memoizedState,i=s.element,lE(e,t),Ku(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=uo(Error(re(423)),t),t=ax(e,t,r,n,i);break e}else if(r!==i){i=uo(Error(re(424)),t),t=ax(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,Ge=!0,Bn=null,n=oE(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ao(),r===i){t=Ar(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return cE(t),e===null&&Wp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Vp(r,i)?o=null:s!==null&&Vp(r,s)&&(t.flags|=32),LE(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&Wp(t),null;case 13:return DE(e,t,n);case 4:return Hg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=lo(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ix(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,Fe(Vu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=vr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),Yp(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(re(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Yp(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Zs(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),sx(e,t,r,i,n);case 15:return OE(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),cu(e,t),t.tag=1,Jt(r)?(e=!0,Fu(t)):e=!1,Zs(t,n),CE(t,r,i),Qp(t,r,i,n),em(null,t,r,!0,e,n);case 19:return jE(e,t,n);case 22:return RE(e,t,n)}throw Error(re(156,t.tag))};function JE(e,t){return Nk(e,t)}function DR(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 En(e,t,n,r){return new DR(e,t,n,r)}function sy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function jR(e){if(typeof e=="function")return sy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Eg)return 11;if(e===Sg)return 14}return 2}function ri(e,t){var n=e.alternate;return n===null?(n=En(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 fu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")sy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ts:return ji(n.children,i,s,t);case kg:o=8,i|=8;break;case vp:return e=En(12,n,t,i|2),e.elementType=vp,e.lanes=s,e;case _p:return e=En(13,n,t,i),e.elementType=_p,e.lanes=s,e;case kp:return e=En(19,n,t,i),e.elementType=kp,e.lanes=s,e;case ck:return Bd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ak:o=10;break e;case lk:o=9;break e;case Eg:o=11;break e;case Sg:o=14;break e;case $r:o=16,r=null;break e}throw Error(re(130,e==null?e:typeof e,""))}return t=En(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function ji(e,t,n,r){return e=En(7,e,r,t),e.lanes=n,e}function Bd(e,t,n,r){return e=En(22,e,r,t),e.elementType=ck,e.lanes=n,e.stateNode={isHidden:!1},e}function lh(e,t,n){return e=En(6,e,null,t),e.lanes=n,e}function ch(e,t,n){return t=En(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function BR(e,t,n,r,i){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=Vf(0),this.expirationTimes=Vf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function oy(e,t,n,r,i,s,o,a,l){return e=new BR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=En(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vg(s),e}function $R(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rS)}catch(e){console.error(e)}}rS(),rk.exports=mn;var HR=rk.exports,xx=HR;xp.createRoot=xx.createRoot,xp.hydrateRoot=xx.hydrateRoot;const uy=S.createContext({});function Vd(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Hd=S.createContext(null),sl=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class KR extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function qR({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),i=S.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=S.useContext(sl);return S.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return s&&(d.nonce=s),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` - [data-motion-pop-id="${n}"] { - position: absolute !important; - width: ${o}px !important; - height: ${a}px !important; - top: ${l}px !important; - left: ${c}px !important; - } - `),()=>{document.head.removeChild(d)}},[t]),f.jsx(KR,{isPresent:t,childRef:r,sizeRef:i,children:S.cloneElement(e,{ref:r})})}const GR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Vd(WR),l=S.useId(),c=S.useCallback(u=>{a.set(u,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),d=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:u=>(a.set(u,!1),()=>a.delete(u))}),s?[Math.random(),c]:[n,c]);return S.useMemo(()=>{a.forEach((u,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(qR,{isPresent:n,children:e})),f.jsx(Hd.Provider,{value:d,children:e})};function WR(){return new Map}function iS(e=!0){const t=S.useContext(Hd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=S.useId();S.useEffect(()=>{e&&i(s)},[e]);const o=S.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Tc=e=>e.key||"";function wx(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const dy=typeof window<"u",sS=dy?S.useLayoutEffect:S.useEffect,fy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=iS(o),c=S.useMemo(()=>wx(e),[e]),d=o&&!a?[]:c.map(Tc),u=S.useRef(!0),h=S.useRef(c),p=Vd(()=>new Map),[g,b]=S.useState(c),[w,m]=S.useState(c);sS(()=>{u.current=!1,h.current=c;for(let v=0;v{const k=Tc(v),_=o&&!a?!1:c===w||d.includes(k),C=()=>{if(p.has(k))p.set(k,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(y==null||y(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(GR,{isPresent:_,initial:!u.current||n?void 0:!1,custom:_?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:_?void 0:C,children:v},k)})})},un=e=>e;let oS=un;const YR={useManualTiming:!1};function XR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,d=!1,u=!1)=>{const p=u&&r?t:n;return d&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Ac=["read","resolveKeyframes","update","preRender","render","postRender"],QR=40;function aS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Ac.reduce((m,x)=>(m[x]=XR(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:d,render:u,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,QR),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),d.process(i),u.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Ac.reduce((m,x)=>{const y=o[x];return m[x]=(v,k=!1,_=!1)=>(n||g(),y.schedule(v,k,_)),m},{}),cancel:m=>{for(let x=0;xvx[e].some(n=>!!t[n])};function ZR(e){for(const t in e)ho[t]={...ho[t],...e[t]}}const JR=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ed(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||JR.has(e)}let cS=e=>!ed(e);function uS(e){e&&(cS=t=>t.startsWith("on")?!ed(t):e(t))}try{uS(require("@emotion/is-prop-valid").default)}catch{}function eL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(cS(i)||n===!0&&ed(i)||!t&&!ed(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function tL({children:e,isValidProp:t,...n}){t&&uS(t),n={...S.useContext(sl),...n},n.isStatic=Vd(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(sl.Provider,{value:r,children:e})}function nL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Kd=S.createContext({});function ol(e){return typeof e=="string"||Array.isArray(e)}function qd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const hy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],py=["initial",...hy];function Gd(e){return qd(e.animate)||py.some(t=>ol(e[t]))}function dS(e){return!!(Gd(e)||e.variants)}function rL(e,t){if(Gd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ol(n)?n:void 0,animate:ol(r)?r:void 0}}return e.inherit!==!1?t:{}}function iL(e){const{initial:t,animate:n}=rL(e,S.useContext(Kd));return S.useMemo(()=>({initial:t,animate:n}),[_x(t),_x(n)])}function _x(e){return Array.isArray(e)?e.join(" "):e}const sL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function oL(e,t,n){return S.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Bs(n)&&(n.current=r))},[t])}const my=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),aL="framerAppearId",fS="data-"+my(aL),{schedule:gy}=aS(queueMicrotask,!1),hS=S.createContext({});function lL(e,t,n,r,i){var s,o;const{visualElement:a}=S.useContext(Kd),l=S.useContext(lS),c=S.useContext(Hd),d=S.useContext(sl).reducedMotion,u=S.useRef(null);r=r||l.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const h=u.current,p=S.useContext(hS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&cL(u.current,n,i,p);const g=S.useRef(!1);S.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[fS],w=S.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,b)));return sS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),gy.render(h.render),w.current&&h.animationState&&h.animationState.animateChanges())}),S.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,b)}),w.current=!1))}),h}function cL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:pS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Bs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function pS(e){if(e)return e.options.allowProjection!==!1?e.projection:pS(e.parent)}function uL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&ZR(e);function a(c,d){let u;const h={...S.useContext(sl),...c,layoutId:dL(c)},{isStatic:p}=h,g=iL(c),b=r(c,p);if(!p&&dy){fL();const w=hL(h);u=w.MeasureLayout,g.visualElement=lL(i,b,h,t,w.ProjectionNode)}return f.jsxs(Kd.Provider,{value:g,children:[u&&g.visualElement?f.jsx(u,{visualElement:g.visualElement,...h}):null,n(i,c,oL(b,g.visualElement,d),b,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=S.forwardRef(a);return l[sL]=i,l}function dL({layoutId:e}){const t=S.useContext(uy).id;return t&&e!==void 0?t+"-"+e:e}function fL(e,t){S.useContext(lS).strict}function hL(e){const{drag:t,layout:n}=ho;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const pL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function yy(e){return typeof e!="string"||e.includes("-")?!1:!!(pL.indexOf(e)>-1||/[A-Z]/u.test(e))}function kx(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function by(e,t,n,r){if(typeof t=="function"){const[i,s]=kx(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=kx(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const fm=e=>Array.isArray(e),mL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),gL=e=>fm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function hu(e){const t=Rt(e)?e.get():e;return mL(t)?t.toValue():t}function yL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:bL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const mS=e=>(t,n)=>{const r=S.useContext(Kd),i=S.useContext(Hd),s=()=>yL(e,t,r,i);return n?s():Vd(s)};function bL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=hu(s[h]);let{initial:o,animate:a}=e;const l=Gd(e),c=dS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const u=d?a:o;if(u&&typeof u!="boolean"&&!qd(u)){const h=Array.isArray(u)?u:[u];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),yS=gS("--"),xL=gS("var(--"),xy=e=>xL(e)?wL.test(e.split("/*")[0].trim()):!1,wL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,bS=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Cr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},al={...Po,transform:e=>Cr(0,1,e)},Cc={...Po,default:1},Dl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=Dl("deg"),ir=Dl("%"),ve=Dl("px"),vL=Dl("vh"),_L=Dl("vw"),Ex={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},kL={borderWidth:ve,borderTopWidth:ve,borderRightWidth:ve,borderBottomWidth:ve,borderLeftWidth:ve,borderRadius:ve,radius:ve,borderTopLeftRadius:ve,borderTopRightRadius:ve,borderBottomRightRadius:ve,borderBottomLeftRadius:ve,width:ve,maxWidth:ve,height:ve,maxHeight:ve,top:ve,right:ve,bottom:ve,left:ve,padding:ve,paddingTop:ve,paddingRight:ve,paddingBottom:ve,paddingLeft:ve,margin:ve,marginTop:ve,marginRight:ve,marginBottom:ve,marginLeft:ve,backgroundPositionX:ve,backgroundPositionY:ve},EL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Cc,scaleX:Cc,scaleY:Cc,scaleZ:Cc,skew:Br,skewX:Br,skewY:Br,distance:ve,translateX:ve,translateY:ve,translateZ:ve,x:ve,y:ve,z:ve,perspective:ve,transformPerspective:ve,opacity:al,originX:Ex,originY:Ex,originZ:ve},Sx={...Po,transform:Math.round},wy={...kL,...EL,zIndex:Sx,size:ve,fillOpacity:al,strokeOpacity:al,numOctaves:Sx},SL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},NL=Lo.length;function TL(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),xS=()=>({...ky(),attrs:{}}),Ey=e=>typeof e=="string"&&e.toLowerCase()==="svg";function wS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const vS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function _S(e,t,n,r){wS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(vS.has(i)?i:my(i),t.attrs[i])}const td={};function OL(e){Object.assign(td,e)}function kS(e,{layout:t,layoutId:n}){return is.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!td[e]||e==="opacity")}function Sy(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||kS(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function ES(e,t,n){const r=Sy(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Lo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function RL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Tx=["x","y","width","height","cx","cy","r"],LL={useVisualState:mS({scrapeMotionValuesFromProps:ES,createRenderState:xS,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(is.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{RL(n,r),Ke.render(()=>{_y(r,i,Ey(n.tagName),e.transformTemplate),_S(n,r)})})}})},PL={useVisualState:mS({scrapeMotionValuesFromProps:Sy,createRenderState:ky})};function SS(e,t,n){for(const r in t)!Rt(t[r])&&!kS(r,n)&&(e[r]=t[r])}function DL({transformTemplate:e},t){return S.useMemo(()=>{const n=ky();return vy(n,t,e),Object.assign({},n.vars,n.style)},[t])}function jL(e,t){const n=e.style||{},r={};return SS(r,n,e),Object.assign(r,DL(e,t)),r}function BL(e,t){const n={},r=jL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function $L(e,t,n,r){const i=S.useMemo(()=>{const s=xS();return _y(s,t,Ey(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};SS(s,e.style,e),i.style={...s,...i.style}}return i}function FL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(yy(n)?$L:BL)(r,s,o,n),c=eL(r,typeof n=="string",e),d=n!==S.Fragment?{...c,...l,ref:i}:{},{children:u}=r,h=S.useMemo(()=>Rt(u)?u.get():u,[u]);return S.createElement(n,{...d,children:h})}}function zL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...yy(r)?LL:PL,preloadedFeatures:e,useRender:FL(i),createVisualElement:t,Component:r};return uL(o)}}function NS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(pu===void 0&&sr.set(St.isProcessing||YR.useManualTiming?St.timestamp:performance.now()),pu),set:e=>{pu=e,queueMicrotask(UL)}};function Ty(e,t){e.indexOf(t)===-1&&e.push(t)}function Ay(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Cy{constructor(){this.subscriptions=[]}add(t){return Ty(this.subscriptions,t),()=>Ay(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class HL{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=VL(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Cy);const r=this.events[t].add(n);return t==="change"?()=>{r(),Ke.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ax)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ax);return AS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ll(e,t){return new HL(e,t)}function KL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ll(n))}function qL(e,t){const n=Wd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=gL(s[o]);KL(e,o,a)}}function GL(e){return!!(Rt(e)&&e.add)}function hm(e,t){const n=e.getValue("willChange");if(GL(n))return n.add(t)}function CS(e){return e.props[fS]}function My(e){let t;return()=>(t===void 0&&(t=e()),t)}const WL=My(()=>window.ScrollTimeline!==void 0);class YL{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(WL()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class XL extends YL{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const _r=e=>e*1e3,kr=e=>e/1e3;function Iy(e){return typeof e=="function"}function Cx(e,t){e.timeline=t,e.onfinish=null}const Oy=e=>Array.isArray(e)&&typeof e[0]=="number",QL={linearEasing:void 0};function ZL(e,t){const n=My(e);return()=>{var r;return(r=QL[t])!==null&&r!==void 0?r:n()}}const nd=ZL(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),po=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},MS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,pm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:pa([0,.65,.55,1]),circOut:pa([.55,0,1,.45]),backIn:pa([.31,.01,.66,-.59]),backOut:pa([.33,1.53,.69,.99])};function OS(e,t){if(e)return typeof e=="function"&&nd()?MS(e,t):Oy(e)?pa(e):Array.isArray(e)?e.map(n=>OS(n,t)||pm.easeOut):pm[e]}const RS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,JL=1e-7,eP=12;function tP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=RS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>JL&&++atP(s,0,1,e,n);return s=>s===0||s===1?s:RS(i(s),t,r)}const LS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,PS=e=>t=>1-e(1-t),DS=jl(.33,1.53,.69,.99),Ry=PS(DS),jS=LS(Ry),BS=e=>(e*=2)<1?.5*Ry(e):.5*(2-Math.pow(2,-10*(e-1))),Ly=e=>1-Math.sin(Math.acos(e)),$S=PS(Ly),FS=LS(Ly),zS=e=>/^0[^.\s]+$/u.test(e);function nP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||zS(e):!0}const Ma=e=>Math.round(e*1e5)/1e5,Py=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function rP(e){return e==null}const iP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Dy=(e,t)=>n=>!!(typeof n=="string"&&iP.test(n)&&n.startsWith(e)||t&&!rP(n)&&Object.prototype.hasOwnProperty.call(n,t)),US=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Py);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},sP=e=>Cr(0,255,e),dh={...Po,transform:e=>Math.round(sP(e))},Oi={test:Dy("rgb","red"),parse:US("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+dh.transform(e)+", "+dh.transform(t)+", "+dh.transform(n)+", "+Ma(al.transform(r))+")"};function oP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const mm={test:Dy("#"),parse:oP,transform:Oi.transform},$s={test:Dy("hsl","hue"),parse:US("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ma(t))+", "+ir.transform(Ma(n))+", "+Ma(al.transform(r))+")"},It={test:e=>Oi.test(e)||mm.test(e)||$s.test(e),parse:e=>Oi.test(e)?Oi.parse(e):$s.test(e)?$s.parse(e):mm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Oi.transform(e):$s.transform(e)},aP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function lP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Py))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(aP))===null||n===void 0?void 0:n.length)||0)>0}const VS="number",HS="color",cP="var",uP="var(",Mx="${}",dP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function cl(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(dP,l=>(It.test(l)?(r.color.push(s),i.push(HS),n.push(It.parse(l))):l.startsWith(uP)?(r.var.push(s),i.push(cP),n.push(l)):(r.number.push(s),i.push(VS),n.push(parseFloat(l))),++s,Mx)).split(Mx);return{values:n,split:a,indexes:r,types:i}}function KS(e){return cl(e).values}function qS(e){const{split:t,types:n}=cl(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function hP(e){const t=KS(e);return qS(e)(t.map(fP))}const ci={test:lP,parse:KS,createTransformer:qS,getAnimatableNone:hP},pP=new Set(["brightness","contrast","saturate","opacity"]);function mP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Py)||[];if(!r)return e;const i=n.replace(r,"");let s=pP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const gP=/\b([a-z-]*)\(.*?\)/gu,gm={...ci,getAnimatableNone:e=>{const t=e.match(gP);return t?t.map(mP).join(" "):e}},yP={...wy,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:gm,WebkitFilter:gm},jy=e=>yP[e];function GS(e,t){let n=jy(e);return n!==gm&&(n=ci),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const bP=new Set(["auto","none","0"]);function xP(e,t,n){let r=0,i;for(;re===Po||e===ve,Ox=(e,t)=>parseFloat(e.split(", ")[t]),Rx=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Ox(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Ox(s[1],e):0}},wP=new Set(["x","y","z"]),vP=Lo.filter(e=>!wP.has(e));function _P(e){const t=[];return vP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Rx(4,13),y:Rx(5,14)};mo.translateX=mo.x;mo.translateY=mo.y;const Bi=new Set;let ym=!1,bm=!1;function WS(){if(bm){const e=Array.from(Bi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=_P(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}bm=!1,ym=!1,Bi.forEach(e=>e.complete()),Bi.clear()}function YS(){Bi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(bm=!0)})}function kP(){YS(),WS()}class By{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Bi.add(this),ym||(ym=!0,Ke.read(YS),Ke.resolveKeyframes(WS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),EP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function SP(e){const t=EP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function QS(e,t,n=1){const[r,i]=SP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return XS(o)?parseFloat(o):o}return xy(i)?QS(i,t,n+1):i}const ZS=e=>t=>t.test(e),NP={test:e=>e==="auto",parse:e=>e},JS=[Po,ve,ir,Br,_L,vL,NP],Lx=e=>JS.find(ZS(e));class eN extends By{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Px=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ci.test(e)||e==="0")&&!e.startsWith("url("));function TP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Yd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(CP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const MP=40;class tN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>MP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&kP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!AP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Yd(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const xm=2e4;function nN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=xm?1/0:t}const Ze=(e,t,n)=>e+(t-e)*n;function fh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function IP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=fh(l,a,e+1/3),s=fh(l,a,e),o=fh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function rd(e,t){return n=>n>0?t:e}const hh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},OP=[mm,Oi,$s],RP=e=>OP.find(t=>t.test(e));function Dx(e){const t=RP(e);if(!t)return!1;let n=t.parse(e);return t===$s&&(n=IP(n)),n}const jx=(e,t)=>{const n=Dx(e),r=Dx(t);if(!n||!r)return rd(e,t);const i={...n};return s=>(i.red=hh(n.red,r.red,s),i.green=hh(n.green,r.green,s),i.blue=hh(n.blue,r.blue,s),i.alpha=Ze(n.alpha,r.alpha,s),Oi.transform(i))},LP=(e,t)=>n=>t(e(n)),Bl=(...e)=>e.reduce(LP),wm=new Set(["none","hidden"]);function PP(e,t){return wm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function DP(e,t){return n=>Ze(e,t,n)}function $y(e){return typeof e=="number"?DP:typeof e=="string"?xy(e)?rd:It.test(e)?jx:$P:Array.isArray(e)?rN:typeof e=="object"?It.test(e)?jx:jP:rd}function rN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>$y(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function BP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ci.createTransformer(t),r=cl(e),i=cl(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?wm.has(e)&&!i.values.length||wm.has(t)&&!r.values.length?PP(e,t):Bl(rN(BP(r,i),i.values),n):rd(e,t)};function iN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Ze(e,t,n):$y(e)(e,t)}const FP=5;function sN(e,t,n){const r=Math.max(t-FP,0);return AS(n-e(r),t-r)}const tt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ph=.001;function zP({duration:e=tt.duration,bounce:t=tt.bounce,velocity:n=tt.velocity,mass:r=tt.mass}){let i,s,o=1-t;o=Cr(tt.minDamping,tt.maxDamping,o),e=Cr(tt.minDuration,tt.maxDuration,kr(e)),o<1?(i=c=>{const d=c*o,u=d*e,h=d-n,p=vm(c,o),g=Math.exp(-u);return ph-h/p*g},s=c=>{const u=c*o*e,h=u*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-u),b=vm(Math.pow(c,2),o);return(-i(c)+ph>0?-1:1)*((h-p)*g)/b}):(i=c=>{const d=Math.exp(-c*e),u=(c-n)*e+1;return-ph+d*u},s=c=>{const d=Math.exp(-c*e),u=(n-c)*(e*e);return d*u});const a=5/e,l=VP(i,s,a);if(e=_r(e),isNaN(l))return{stiffness:tt.stiffness,damping:tt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const UP=12;function VP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function qP(e){let t={velocity:tt.velocity,stiffness:tt.stiffness,damping:tt.damping,mass:tt.mass,isResolvedFromDuration:!1,...e};if(!Bx(e,KP)&&Bx(e,HP))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Cr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:tt.mass,stiffness:i,damping:s}}else{const n=zP(e);t={...t,...n,mass:tt.mass},t.isResolvedFromDuration=!0}return t}function oN(e=tt.visualDuration,t=tt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:d,duration:u,velocity:h,isResolvedFromDuration:p}=qP({...n,velocity:-kr(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*d)),w=o-s,m=kr(Math.sqrt(l/d)),x=Math.abs(w)<5;r||(r=x?tt.restSpeed.granular:tt.restSpeed.default),i||(i=x?tt.restDelta.granular:tt.restDelta.default);let y;if(b<1){const k=vm(m,b);y=_=>{const C=Math.exp(-b*m*_);return o-C*((g+b*m*w)/k*Math.sin(k*_)+w*Math.cos(k*_))}}else if(b===1)y=k=>o-Math.exp(-m*k)*(w+(g+m*w)*k);else{const k=m*Math.sqrt(b*b-1);y=_=>{const C=Math.exp(-b*m*_),N=Math.min(k*_,300);return o-C*((g+b*m*w)*Math.sinh(N)+k*w*Math.cosh(N))/k}}const v={calculatedDuration:p&&u||null,next:k=>{const _=y(k);if(p)a.done=k>=u;else{let C=0;b<1&&(C=k===0?_r(g):sN(y,k,_));const N=Math.abs(C)<=r,I=Math.abs(o-_)<=i;a.done=N&&I}return a.value=a.done?o:_,a},toString:()=>{const k=Math.min(nN(v),xm),_=MS(C=>v.next(k*C).value,k,30);return k+"ms "+_}};return v}function $x({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:d}){const u=e[0],h={done:!1,value:u},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-b*Math.exp(-N/r),y=N=>m+x(N),v=N=>{const I=x(N),A=y(N);h.done=Math.abs(I)<=c,h.value=h.done?m:A};let k,_;const C=N=>{p(h.value)&&(k=N,_=oN({keyframes:[h.value,g(h.value)],velocity:sN(y,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:d}))};return C(0),{calculatedDuration:null,next:N=>{let I=!1;return!_&&k===void 0&&(I=!0,v(N),C(N)),k!==void 0&&N>=k?_.next(N-k):(!I&&v(N),h)}}}const GP=jl(.42,0,1,1),WP=jl(0,0,.58,1),aN=jl(.42,0,.58,1),YP=e=>Array.isArray(e)&&typeof e[0]!="number",XP={linear:un,easeIn:GP,easeInOut:aN,easeOut:WP,circIn:Ly,circInOut:FS,circOut:$S,backIn:Ry,backInOut:jS,backOut:DS,anticipate:BS},Fx=e=>{if(Oy(e)){oS(e.length===4);const[t,n,r,i]=e;return jl(t,n,r,i)}else if(typeof e=="string")return XP[e];return e};function QP(e,t,n){const r=[],i=n||iN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=QP(t,r,i),l=a.length,c=d=>{if(o&&d1)for(;uc(Cr(e[0],e[s-1],d)):c}function JP(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=po(0,t,r);e.push(Ze(n,1,i))}}function eD(e){const t=[0];return JP(t,e.length-1),t}function tD(e,t){return e.map(n=>n*t)}function nD(e,t){return e.map(()=>t||aN).splice(0,e.length-1)}function id({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=YP(r)?r.map(Fx):Fx(r),s={done:!1,value:t[0]},o=tD(n&&n.length===t.length?n:eD(t),e),a=ZP(o,t,{ease:Array.isArray(i)?i:nD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const rD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Ke.update(t,!0),stop:()=>li(t),now:()=>St.isProcessing?St.timestamp:sr.now()}},iD={decay:$x,inertia:$x,tween:id,keyframes:id,spring:oN},sD=e=>e/100;class Fy extends tN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||By,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Iy(n)?n:iD[n]||id;let l,c;a!==id&&typeof t[0]!="number"&&(l=Bl(sD,iN(t[0],t[1])),t=[0,100]);const d=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=nN(d));const{calculatedDuration:u}=d,h=u+i,p=h*(r+1)-i;return{generator:d,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:u,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:d,resolvedDuration:u}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:b,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),x=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let y=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,d)/u;let I=Math.floor(N),A=N%1;!A&&N>=1&&(A=1),A===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(A=1-A,b&&(A-=b/u)):g==="mirror"&&(v=o)),y=Cr(0,1,A)*u}const k=x?{done:!1,value:l[0]}:v.next(y);a&&(k.value=a(k.value));let{done:_}=k;!x&&c!==null&&(_=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&_);return C&&i!==void 0&&(k.value=Yd(l,this.options,i)),w&&w(k.value),C&&this.finish(),k}get duration(){const{resolved:t}=this;return t?kr(t.calculatedDuration):0}get time(){return kr(this.currentTime)}set time(t){t=_r(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=kr(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=rD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const oD=new Set(["opacity","clipPath","filter","transform"]);function aD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const d=OS(a,i);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const lD=My(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),sd=10,cD=2e4;function uD(e){return Iy(e.type)||e.type==="spring"||!IS(e.ease)}function dD(e,t){const n=new Fy({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&nd()&&fD(s)&&(s=lN[s]),uD(this.options)){const{onComplete:u,onUpdate:h,motionValue:p,element:g,...b}=this.options,w=dD(t,b);t=w.keyframes,t.length===1&&(t[1]=t[0]),r=w.duration,i=w.times,s=w.ease,o="keyframes"}const d=aD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return d.startTime=c??this.calcStartTime(),this.pendingTimeline?(Cx(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:u}=this.options;a.set(Yd(t,this.options,n)),u&&u(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return kr(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return kr(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=_r(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Cx(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:d,onComplete:u,element:h,...p}=this.options,g=new Fy({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=_r(this.time);c.setWithVelocity(g.sample(b-sd).value,g.sample(b).value,sd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return lD()&&r&&oD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const hD={type:"spring",stiffness:500,damping:25,restSpeed:10},pD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),mD={type:"keyframes",duration:.8},gD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},yD=(e,{keyframes:t})=>t.length>2?mD:is.has(e)?e.startsWith("scale")?pD(t[1]):hD:gD;function bD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...d}){return!!Object.keys(d).length}const zy=(e,t,n,r={},i,s)=>o=>{const a=Ny(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-_r(l);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};bD(a)||(d={...d,...yD(e,d)}),d.duration&&(d.duration=_r(d.duration)),d.repeatDelay&&(d.repeatDelay=_r(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let u=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(u=!0)),u&&!s&&t.get()!==void 0){const h=Yd(d.keyframes,a);if(h!==void 0)return Ke.update(()=>{d.onUpdate(h),d.onComplete()}),new XL([])}return!s&&zx.supports(d)?new zx(d):new Fy(d)};function xD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function cN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in l){const h=e.getValue(u,(s=e.latestValues[u])!==null&&s!==void 0?s:null),p=l[u];if(p===void 0||d&&xD(d,u))continue;const g={delay:n,...Ny(o||{},u)};let b=!1;if(window.MotionHandoffAnimation){const m=CS(e);if(m){const x=window.MotionHandoffAnimation(m,u,Ke);x!==null&&(g.startTime=x,b=!0)}}hm(e,u),h.start(zy(u,h,p,e.shouldReduceMotion&&TS.has(u)?{type:!1}:g,e,b));const w=h.animation;w&&c.push(w)}return a&&Promise.all(c).then(()=>{Ke.update(()=>{a&&qL(e,a)})}),c}function _m(e,t,n={}){var r;const i=Wd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(cN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:h}=s;return wD(e,t,d+c,u,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,d]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>d())}else return Promise.all([o(),a(n.delay)])}function wD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(vD).forEach((c,d)=>{c.notify("AnimationStart",t),o.push(_m(c,t,{...s,delay:n+l(d)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function vD(e,t){return e.sortNodePosition(t)}function _D(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>_m(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=_m(e,t,n);else{const i=typeof t=="function"?Wd(e,t,n.custom):t;r=Promise.all(cN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const kD=py.length;function uN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?uN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>_D(e,n,r)))}function TD(e){let t=ND(e),n=Ux(),r=!0;const i=l=>(c,d)=>{var u;const h=Wd(e,d,l==="exit"?(u=e.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(h){const{transition:p,transitionEnd:g,...b}=h;c={...c,...b,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,d=uN(e.parent)||{},u=[],h=new Set;let p={},g=1/0;for(let w=0;wg&&v,I=!1;const A=Array.isArray(y)?y:[y];let P=A.reduce(i(m),{});k===!1&&(P={});const{prevResolvedValues:R={}}=x,F={...R,...P},O=B=>{N=!0,h.has(B)&&(I=!0,h.delete(B)),x.needsAnimating[B]=!0;const L=e.getValue(B);L&&(L.liveStyle=!1)};for(const B in F){const L=P[B],D=R[B];if(p.hasOwnProperty(B))continue;let E=!1;fm(L)&&fm(D)?E=!NS(L,D):E=L!==D,E?L!=null?O(B):h.add(B):L!==void 0&&h.has(B)?O(B):x.protectedKeys[B]=!0}x.prevProp=y,x.prevResolvedValues=P,x.isActive&&(p={...p,...P}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(_&&C)||I)&&u.push(...A.map(B=>({animation:B,options:{type:m}})))}if(h.size){const w={};h.forEach(m=>{const x=e.getBaseTarget(m),y=e.getValue(m);y&&(y.liveStyle=!0),w[m]=x??null}),u.push({animation:w})}let b=!!u.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?t(u):Promise.resolve()}function a(l,c){var d;if(n[l].isActive===c)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const u=o(l);for(const h in n)n[h].protectedKeys={};return u}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Ux(),r=!0}}}function AD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!NS(t,e):!1}function yi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Ux(){return{animate:yi(!0),whileInView:yi(),whileHover:yi(),whileTap:yi(),whileDrag:yi(),whileFocus:yi(),exit:yi()}}class hi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class CD extends hi{constructor(t){super(t),t.animationState||(t.animationState=TD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();qd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let MD=0;class ID extends hi{constructor(){super(...arguments),this.id=MD++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const OD={animation:{Feature:CD},exit:{Feature:ID}},Ln={x:!1,y:!1};function dN(){return Ln.x||Ln.y}function RD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Uy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function ul(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function $l(e){return{point:{x:e.pageX,y:e.pageY}}}const LD=e=>t=>Uy(t)&&e(t,$l(t));function Ia(e,t,n,r){return ul(e,t,LD(n),r)}const Vx=(e,t)=>Math.abs(e-t);function PD(e,t){const n=Vx(e.x,t.x),r=Vx(e.y,t.y);return Math.sqrt(n**2+r**2)}class fN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=gh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=PD(u.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=u,{timestamp:b}=St;this.history.push({...g,timestamp:b});const{onStart:w,onMove:m}=this.handlers;h||(w&&w(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,u)},this.handlePointerMove=(u,h)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=mh(h,this.transformPagePoint),Ke.update(this.updatePoint,!0)},this.handlePointerUp=(u,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=gh(u.type==="pointercancel"?this.lastMoveEventInfo:mh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(u,w),g&&g(u,w)},!Uy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=$l(t),a=mh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=St;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=n;d&&d(t,gh(a,this.history)),this.removeListeners=Bl(Ia(this.contextWindow,"pointermove",this.handlePointerMove),Ia(this.contextWindow,"pointerup",this.handlePointerUp),Ia(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),li(this.updatePoint)}}function mh(e,t){return t?{point:t(e.point)}:e}function Hx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function gh({point:e},t){return{point:e,delta:Hx(e,hN(t)),offset:Hx(e,DD(t)),velocity:jD(t,.1)}}function DD(e){return e[0]}function hN(e){return e[e.length-1]}function jD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=hN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>_r(t)));)n--;if(!r)return{x:0,y:0};const s=kr(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const pN=1e-4,BD=1-pN,$D=1+pN,mN=.01,FD=0-mN,zD=0+mN;function hn(e){return e.max-e.min}function UD(e,t,n){return Math.abs(e-t)<=n}function Kx(e,t,n,r=.5){e.origin=r,e.originPoint=Ze(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Ze(n.min,n.max,e.origin)-e.originPoint,(e.scale>=BD&&e.scale<=$D||isNaN(e.scale))&&(e.scale=1),(e.translate>=FD&&e.translate<=zD||isNaN(e.translate))&&(e.translate=0)}function Oa(e,t,n,r){Kx(e.x,t.x,n.x,r?r.originX:void 0),Kx(e.y,t.y,n.y,r?r.originY:void 0)}function qx(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function VD(e,t,n){qx(e.x,t.x,n.x),qx(e.y,t.y,n.y)}function Gx(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Ra(e,t,n){Gx(e.x,t.x,n.x),Gx(e.y,t.y,n.y)}function HD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Ze(n,e,r.max):Math.min(e,n)),e}function Wx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function KD(e,{top:t,left:n,bottom:r,right:i}){return{x:Wx(e.x,n,i),y:Wx(e.y,t,r)}}function Yx(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=po(t.min,t.max-r,e.min):r>i&&(n=po(e.min,e.max-i,t.min)),Cr(0,1,n)}function WD(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const km=.35;function YD(e=km){return e===!1?e=0:e===!0&&(e=km),{x:Xx(e,"left","right"),y:Xx(e,"top","bottom")}}function Xx(e,t,n){return{min:Qx(e,t),max:Qx(e,n)}}function Qx(e,t){return typeof e=="number"?e:e[t]||0}const Zx=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fs=()=>({x:Zx(),y:Zx()}),Jx=()=>({min:0,max:0}),rt=()=>({x:Jx(),y:Jx()});function xn(e){return[e("x"),e("y")]}function gN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function XD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function QD(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function yh(e){return e===void 0||e===1}function Em({scale:e,scaleX:t,scaleY:n}){return!yh(e)||!yh(t)||!yh(n)}function Ei(e){return Em(e)||yN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function yN(e){return ew(e.x)||ew(e.y)}function ew(e){return e&&e!=="0%"}function od(e,t,n){const r=e-n,i=t*r;return n+i}function tw(e,t,n,r,i){return i!==void 0&&(e=od(e,i,r)),od(e,n,r)+t}function Sm(e,t=0,n=1,r,i){e.min=tw(e.min,t,n,r,i),e.max=tw(e.max,t,n,r,i)}function bN(e,{x:t,y:n}){Sm(e.x,t.translate,t.scale,t.originPoint),Sm(e.y,n.translate,n.scale,n.originPoint)}const nw=.999999999999,rw=1.0000000000001;function ZD(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;anw&&(t.x=1),t.ynw&&(t.y=1)}function zs(e,t){e.min=e.min+t,e.max=e.max+t}function iw(e,t,n,r,i=.5){const s=Ze(e.min,e.max,i);Sm(e,t,n,s,r)}function Us(e,t){iw(e.x,t.x,t.scaleX,t.scale,t.originX),iw(e.y,t.y,t.scaleY,t.scale,t.originY)}function xN(e,t){return gN(QD(e.getBoundingClientRect(),t))}function JD(e,t,n){const r=xN(e,n),{scroll:i}=t;return i&&(zs(r.x,i.offset.x),zs(r.y,i.offset.y)),r}const wN=({current:e})=>e?e.ownerDocument.defaultView:null,ej=new WeakMap;class tj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=rt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=d=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor($l(d).point)},s=(d,u)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xn(w=>{let m=this.getAxisMotionValue(w).get()||0;if(ir.test(m)){const{projection:x}=this.visualElement;if(x&&x.layout){const y=x.layout.layoutBox[w];y&&(m=hn(y)*(parseFloat(m)/100))}}this.originPoint[w]=m}),g&&Ke.postRender(()=>g(d,u)),hm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,u)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:w}=u;if(p&&this.currentDirection===null){this.currentDirection=nj(w),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",u.point,w),this.updateAxis("y",u.point,w),this.visualElement.render(),b&&b(d,u)},a=(d,u)=>this.stop(d,u),l=()=>xn(d=>{var u;return this.getAnimationState(d)==="paused"&&((u=this.getAxisMotionValue(d).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new fN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:wN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&Ke.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Mc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=HD(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Bs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=KD(i.layoutBox,n):this.constraints=!1,this.elastic=YD(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=WD(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Bs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=JD(r,i.root,this.visualElement.getTransformPagePoint());let o=qD(i.layout.layoutBox,s);if(n){const a=n(XD(o));this.hasMutatedConstraints=!!a,a&&(o=gN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=xn(d=>{if(!Mc(d,n,this.currentDirection))return;let u=l&&l[d]||{};o&&(u={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...u};return this.startAxisValueAnimation(d,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return hm(this.visualElement,t),r.start(zy(t,r,0,n,this.visualElement,!1))}stopAnimation(){xn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xn(n=>{const{drag:r}=this.getProps();if(!Mc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Ze(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Bs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=GD({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xn(o=>{if(!Mc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Ze(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;ej.set(this.visualElement,this);const t=this.visualElement.current,n=Ia(t,"pointerdown",l=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Bs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Ke.read(r);const o=ul(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(xn(d=>{const u=this.getAxisMotionValue(d);u&&(this.originPoint[d]+=l[d].translate,u.set(u.get()+l[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=km,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Mc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function nj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class rj extends hi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new tj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const sw=e=>(t,n)=>{e&&Ke.postRender(()=>e(t,n))};class ij extends hi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new fN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:wN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:sw(t),onStart:sw(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&Ke.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ia(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ow(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ea={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(ve.test(e))e=parseFloat(e);else return e;const n=ow(e,t.target.x),r=ow(e,t.target.y);return`${n}% ${r}%`}},sj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ci.parse(e);if(i.length>5)return r;const s=ci.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Ze(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class oj extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;OL(aj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),mu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||Ke.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),gy.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function vN(e){const[t,n]=iS(),r=S.useContext(uy);return f.jsx(oj,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(hS),isPresent:t,safeToRemove:n})}const aj={borderRadius:{...ea,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ea,borderTopRightRadius:ea,borderBottomLeftRadius:ea,borderBottomRightRadius:ea,boxShadow:sj};function lj(e,t,n){const r=Rt(e)?e:ll(e);return r.start(zy("",r,t,n)),r.animation}function cj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const uj=(e,t)=>e.depth-t.depth;class dj{constructor(){this.children=[],this.isDirty=!1}add(t){Ty(this.children,t),this.isDirty=!0}remove(t){Ay(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(uj),this.isDirty=!1,this.children.forEach(t)}}function fj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(li(r),e(s-t))};return Ke.read(r,!0),()=>li(r)}const _N=["TopLeft","TopRight","BottomLeft","BottomRight"],hj=_N.length,aw=e=>typeof e=="string"?parseFloat(e):e,lw=e=>typeof e=="number"||ve.test(e);function pj(e,t,n,r,i,s){i?(e.opacity=Ze(0,n.opacity!==void 0?n.opacity:1,mj(r)),e.opacityExit=Ze(t.opacity!==void 0?t.opacity:1,0,gj(r))):s&&(e.opacity=Ze(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(po(e,t,r))}function uw(e,t){e.min=t.min,e.max=t.max}function bn(e,t){uw(e.x,t.x),uw(e.y,t.y)}function dw(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function fw(e,t,n,r,i){return e-=t,e=od(e,1/n,r),i!==void 0&&(e=od(e,1/i,r)),e}function yj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Ze(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Ze(s.min,s.max,r);e===s&&(a-=t),e.min=fw(e.min,t,n,a,i),e.max=fw(e.max,t,n,a,i)}function hw(e,t,[n,r,i],s,o){yj(e,t[n],t[r],t[i],t.scale,s,o)}const bj=["x","scaleX","originX"],xj=["y","scaleY","originY"];function pw(e,t,n,r){hw(e.x,t,bj,n?n.x:void 0,r?r.x:void 0),hw(e.y,t,xj,n?n.y:void 0,r?r.y:void 0)}function mw(e){return e.translate===0&&e.scale===1}function EN(e){return mw(e.x)&&mw(e.y)}function gw(e,t){return e.min===t.min&&e.max===t.max}function wj(e,t){return gw(e.x,t.x)&&gw(e.y,t.y)}function yw(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function SN(e,t){return yw(e.x,t.x)&&yw(e.y,t.y)}function bw(e){return hn(e.x)/hn(e.y)}function xw(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class vj{constructor(){this.members=[]}add(t){Ty(this.members,t),t.scheduleRender()}remove(t){if(Ay(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function _j(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:d,rotateX:u,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),d&&(r+=`rotate(${d}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ma=typeof window<"u"&&window.MotionDebug!==void 0,bh=["","X","Y","Z"],kj={visibility:"hidden"},ww=1e3;let Ej=0;function xh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function NN(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=CS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Ke,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&NN(r)}function TN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Ej++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ma&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(Tj),this.nodes.forEach(Oj),this.nodes.forEach(Rj),this.nodes.forEach(Aj),ma&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=fj(h,250),mu.hasAnimatedSinceResize&&(mu.hasAnimatedSinceResize=!1,this.nodes.forEach(_w))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||c)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||d.getDefaultTransition()||Bj,{onLayoutAnimationStart:w,onLayoutAnimationComplete:m}=d.getProps(),x=!this.targetLayout||!SN(this.targetLayout,g)||p,y=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,y);const v={...Ny(b,"layout"),onPlay:w,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||_w(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,li(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Lj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&NN(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const k=v/1e3;kw(u.x,o.x,k),kw(u.y,o.y,k),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ra(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Dj(this.relativeTarget,this.relativeTargetOrigin,h,k),y&&wj(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=rt()),bn(y,this.relativeTarget)),b&&(this.animationValues=d,pj(d,c,this.latestValues,k,x,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=k},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(li(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ke.update(()=>{mu.hasAnimatedSinceResize=!0,this.currentAnimation=lj(0,ww,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ww),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:d}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&AN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||rt();const u=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+u;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Us(a,d),Oa(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new vj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&xh("z",o,c,this.animationValues);for(let d=0;d{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(vw),this.root.sharedNodes.clear()}}}function Sj(e){e.updateLayout()}function Nj(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(h);h.min=r[u].min,h.max=h.min+p}):AN(s,n.layoutBox,r)&&xn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(r[u]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+p)});const a=Fs();Oa(a,r,n.layoutBox);const l=Fs();o?Oa(l,e.applyTransform(i,!0),n.measuredBox):Oa(l,r,n.layoutBox);const c=!EN(a);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:p}=u;if(h&&p){const g=rt();Ra(g,n.layoutBox,h.layoutBox);const b=rt();Ra(b,r,p.layoutBox),SN(g,b)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Tj(e){ma&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Aj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Cj(e){e.clearSnapshot()}function vw(e){e.clearMeasurements()}function Mj(e){e.isLayoutDirty=!1}function Ij(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _w(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Oj(e){e.resolveTargetDelta()}function Rj(e){e.calcProjection()}function Lj(e){e.resetSkewAndRotation()}function Pj(e){e.removeLeadSnapshot()}function kw(e,t,n){e.translate=Ze(t.translate,0,n),e.scale=Ze(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Ew(e,t,n,r){e.min=Ze(t.min,n.min,r),e.max=Ze(t.max,n.max,r)}function Dj(e,t,n,r){Ew(e.x,t.x,n.x,r),Ew(e.y,t.y,n.y,r)}function jj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Bj={duration:.45,ease:[.4,0,.1,1]},Sw=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Nw=Sw("applewebkit/")&&!Sw("chrome/")?Math.round:un;function Tw(e){e.min=Nw(e.min),e.max=Nw(e.max)}function $j(e){Tw(e.x),Tw(e.y)}function AN(e,t,n){return e==="position"||e==="preserve-aspect"&&!UD(bw(t),bw(n),.2)}function Fj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const zj=TN({attachResizeListener:(e,t)=>ul(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wh={current:void 0},CN=TN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wh.current){const e=new zj({});e.mount(window),e.setOptions({layoutScroll:!0}),wh.current=e}return wh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Uj={pan:{Feature:ij},drag:{Feature:rj,ProjectionNode:CN,MeasureLayout:vN}};function Vj(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function MN(e,t){const n=Vj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Aw(e){return t=>{t.pointerType==="touch"||dN()||e(t)}}function Hj(e,t,n={}){const[r,i,s]=MN(e,n),o=Aw(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const d=Aw(u=>{c(u),l.removeEventListener("pointerleave",d)});l.addEventListener("pointerleave",d,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Cw(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&Ke.postRender(()=>s(t,$l(t)))}class Kj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Hj(t,n=>(Cw(this.node,n,"Start"),r=>Cw(this.node,r,"End"))))}unmount(){}}class qj extends hi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(ul(this.node.current,"focus",()=>this.onFocus()),ul(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const IN=(e,t)=>t?e===t?!0:IN(e,t.parentElement):!1,Gj=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Wj(e){return Gj.has(e.tagName)||e.tabIndex!==-1}const ga=new WeakSet;function Mw(e){return t=>{t.key==="Enter"&&e(t)}}function vh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const Yj=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Mw(()=>{if(ga.has(n))return;vh(n,"down");const i=Mw(()=>{vh(n,"up")}),s=()=>vh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Iw(e){return Uy(e)&&!dN()}function Xj(e,t,n={}){const[r,i,s]=MN(e,n),o=a=>{const l=a.currentTarget;if(!Iw(a)||ga.has(l))return;ga.add(l);const c=t(a),d=(p,g)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),!(!Iw(p)||!ga.has(l))&&(ga.delete(l),typeof c=="function"&&c(p,{success:g}))},u=p=>{d(p,n.useGlobalTarget||IN(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",u,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!Wj(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>Yj(c,i),i)}),s}function Ow(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&Ke.postRender(()=>s(t,$l(t)))}class Qj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Xj(t,n=>(Ow(this.node,n,"Start"),(r,{success:i})=>Ow(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Nm=new WeakMap,_h=new WeakMap,Zj=e=>{const t=Nm.get(e.target);t&&t(e)},Jj=e=>{e.forEach(Zj)};function eB({root:e,...t}){const n=e||document;_h.has(n)||_h.set(n,{});const r=_h.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Jj,{root:e,...t})),r[i]}function tB(e,t,n){const r=eB(t);return Nm.set(e,n),r.observe(e),()=>{Nm.delete(e),r.unobserve(e)}}const nB={some:0,all:1};class rB extends hi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:nB[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:d,onViewportLeave:u}=this.node.getProps(),h=c?d:u;h&&h(l)};return tB(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(iB(t,n))&&this.startObserver()}unmount(){}}function iB({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const sB={inView:{Feature:rB},tap:{Feature:Qj},focus:{Feature:qj},hover:{Feature:Kj}},oB={layout:{ProjectionNode:CN,MeasureLayout:vN}},Tm={current:null},ON={current:!1};function aB(){if(ON.current=!0,!!dy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Tm.current=e.matches;e.addListener(t),t()}else Tm.current=!1}const lB=[...JS,It,ci],cB=e=>lB.find(ZS(e)),Rw=new WeakMap;function uB(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,ll(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ll(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Lw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class dB{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=By,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),ON.current||aB(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Tm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Rw.delete(this.current),this.projection&&this.projection.unmount(),li(this.notifyUpdate),li(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=is.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&Ke.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in ho){const n=ho[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):rt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ll(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(XS(i)||zS(i))?i=parseFloat(i):!cB(i)&&ci.test(n)&&(i=GS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=by(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Cy),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class RN extends dB{constructor(){super(...arguments),this.KeyframeResolver=eN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function fB(e){return window.getComputedStyle(e)}class hB extends RN{constructor(){super(...arguments),this.type="html",this.renderInstance=wS}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}else{const r=fB(t),i=(yS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return xN(t,n)}build(t,n,r){vy(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Sy(t,n,r)}}class pB extends RN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=rt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(is.has(n)){const r=jy(n);return r&&r.default||0}return n=vS.has(n)?n:my(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return ES(t,n,r)}build(t,n,r){_y(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){_S(t,n,r,i)}mount(t){this.isSVGTag=Ey(t.tagName),super.mount(t)}}const mB=(e,t)=>yy(e)?new pB(t):new hB(t,{allowProjection:e!==S.Fragment}),gB=zL({...OD,...sB,...Uj,...oB},mB),Dt=nL(gB);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yB=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),LN=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var bB={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xB=S.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:s,iconNode:o,...a},l)=>S.createElement("svg",{ref:l,...bB,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:LN("lucide",i),...a},[...o.map(([c,d])=>S.createElement(c,d)),...Array.isArray(s)?s:[s]]));/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ue=(e,t)=>{const n=S.forwardRef(({className:r,...i},s)=>S.createElement(xB,{ref:s,iconNode:t,className:LN(`lucide-${yB(e)}`,r),...i}));return n.displayName=`${e}`,n};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wB=ue("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PN=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vB=ue("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DN=ue("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _B=ue("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const kB=ue("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const go=ue("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vy=ue("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const EB=ue("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const SB=ue("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hy=ue("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jN=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const NB=ue("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gn=ue("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const TB=ue("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const AB=ue("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const CB=ue("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dl=ue("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gu=ue("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const MB=ue("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IB=ue("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const OB=ue("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RB=ue("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ky=ue("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Pw=ue("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LB=ue("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qy=ue("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PB=ue("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DB=ue("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jB=ue("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BB=ue("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BN=ue("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $B=ue("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xd=ue("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FB=ue("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zB=ue("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UB=ue("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $N=ue("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VB=ue("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FN=ue("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const HB=ue("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const KB=ue("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qB=ue("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bt=ue("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const GB=ue("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const WB=ue("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const YB=ue("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const XB=ue("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const QB=ue("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ZB=ue("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const JB=ue("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ss=ue("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zN=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gy=ue("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fl=ue("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Am=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const e$=ue("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const t$=ue("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Dw=ue("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qd=ue("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UN=ue("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Do=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const n$=ue("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const r$=ue("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i$=ue("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const s$=ue("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wy=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fl=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),jw="veadk_auth_qs";let ta=null;function o$(){if(ta!==null)return ta;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(jw,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),ta=e):ta=sessionStorage.getItem(jw)??"",ta}function kh(e){const t=o$();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*VN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` - -`))!==-1;){const a=r.slice(0,o);r=r.slice(o+2);const l=a.split(` -`).filter(c=>c.startsWith("data:")).map(c=>c.slice(5).trimStart()).join(` -`);if(l)try{yield JSON.parse(l)}catch{}}}}const Eh="",Yy=new Map;function a$(e,t){Yy.set(e,t)}function l$(){Yy.clear()}function os(e){const t=Yy.get(e);return t?{app:t.app,ep:{base:t.base,apiKey:t.apiKey,runtimeId:t.runtimeId,region:t.region}}:{app:e,ep:{}}}function jt(e,t={},n={}){if(n.runtimeId){const r=n.region?`${e.includes("?")?"&":"?"}region=${encodeURIComponent(n.region)}`:"";return fetch(kh(`${Eh}/web/runtime-proxy/${n.runtimeId}${e}${r}`),t)}if(n.base){const r={...t.headers};return r["X-AgentKit-Base"]=n.base,n.apiKey&&(r["X-AgentKit-Key"]=n.apiKey),fetch(kh(`${Eh}/agentkit-proxy${e}`),{...t,headers:r})}return fetch(kh(`${Eh}${e}`),t)}async function c$(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function HN(e,t,n){const r=await jt("/list-apps",{},n??{base:e,apiKey:t});if(!r.ok)throw new Error(`list-apps failed: ${r.status}`);return r.json()}async function Cm(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"},r);if(!i.ok)throw new Error(`create session failed: ${i.status}`);return(await i.json()).id}async function KN(e,t){const{app:n,ep:r}=os(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{},r);if(!i.ok)throw new Error(`list sessions failed: ${i.status}`);return i.json()}async function Mm(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{},i);if(!s.ok)throw new Error(`get session failed: ${s.status}`);return s.json()}async function u$(e,t,n){const{app:r,ep:i}=os(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{method:"DELETE"},i);if(!s.ok&&s.status!==404)throw new Error(`delete session failed: ${s.status}`)}async function d$(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function Xy(e){const{app:t,ep:n}=os(e),r=await jt(`/web/agent-info/${t}`,{},n);if(!r.ok)throw new Error(`agent-info failed: ${r.status}`);return r.json()}async function f$(e,t){const{app:n}=os(e),r=await jt(`/web/search?source=web&app_name=${encodeURIComponent(n)}&q=${encodeURIComponent(t)}`);if(!r.ok)throw new Error(`web search failed: ${r.status}`);return r.json()}async function*ad({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=os(e),c=[...i.map(u=>({inlineData:{mimeType:u.mimeType,data:u.data,displayName:u.name}})),...s.map(u=>({functionResponse:{id:u.id,name:u.name,response:u.response}})),...r.trim()?[{text:r}]:[]],d=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!d.ok)throw new Error(`run_sse failed: ${d.status}`);for await(const u of VN(d))yield u}async function qN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??"",im:r==null?void 0:r.im,envs:r==null?void 0:r.envs})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of VN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl,feishuChannel:s.feishuChannel}}async function h$(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Sh={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function p$(){try{const e=await jt("/web/ui-config");if(!e.ok)return Sh;const t=await e.json();return{studio:t.studio??!1,features:{...Sh.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Sh}}async function Nh(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function m$(e,t="cn-beijing"){try{return await HN("","",{runtimeId:e,region:t})}catch{return null}}async function g$(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function GN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const y$="send_a2ui_json_to_client",b$="validated_a2ui_json",Im="adk_request_credential";function x$(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Gr(){return{blocks:[],liveStart:0}}const Bw=e=>e.functionCall??e.function_call,Om=e=>e.functionResponse??e.function_response;function w$(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function v$(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:w$(r.data),name:r.displayName??r.display_name})}return t}function $w(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Th(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function hl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Bw(l)||Om(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&$w(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Bw(l),d=Om(l);if(typeof l.text=="string"&&l.text)$w(n,l.thought?"thinking":"text",l.text);else if(c)if(Th(n),c.name===Im){const u=c.args??{},h=u.authConfig??u.auth_config??u,g=String(u.functionCallId??u.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:x$(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(d){if(Th(n),d.name===Im)for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="tool"&&!h.done&&h.name===d.name){h.done=!0,h.response=d.response;break}}if(d.name===y$){const u=((a=d.response)==null?void 0:a[b$])??[];if(u.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...u):n.push({kind:"a2ui",messages:u})}}}}return Th(n),r=n.length,{blocks:n,liveStart:r}}function _$(e){var r;const t=[];let n=Gr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(d=>{var u;return((u=Om(d))==null?void 0:u.name)===Im})){for(let d=t.length-1;d>=0;d--)if(t[d].role==="assistant"){for(let u=t[d].blocks.length-1;u>=0;u--){const h=t[d].blocks[u];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(d=>d.text).filter(d=>!!d).join(""),l=v$(o);if(!a&&!l.length){n=Gr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Gr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Gr()),n=hl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function k$(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const Qy="veadk_local_user",E$=/^[A-Za-z0-9]{1,16}$/;function S$(){try{return localStorage.getItem(Qy)}catch{return null}}function N$(e){try{localStorage.setItem(Qy,e)}catch{}}function T$(){try{localStorage.removeItem(Qy)}catch{}}async function A$(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function C$(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function M$(){window.location.assign("/oauth2/logout")}async function I$(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=S$();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function O$(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const R$="https://findskill.com/";function L$(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function P$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(L$,{}),"技能中心"]})}function D$(){return f.jsx("iframe",{className:"skill-frame",src:R$,title:"技能中心"})}const j$=50,Fw=48;function B$(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function $$(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function F$(e,t,n){const r=Math.max(0,t-Fw),i=Math.min(e.length,t+n+Fw);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Mm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:d}of B$(a)){const u=l.toLowerCase().indexOf(r);if(u!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:$$(a),snippet:F$(l,u,r.length),role:c,ts:d??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,j$)}async function U$(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await f$(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function V$(e,t,n){return e==="session"?{results:await z$(n.userId,n.appId,t)}:e==="web"?U$(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function WN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function H$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(WN,{}),"智能搜索"]})}const zw=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function K$(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function q$({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var k;const[i,s]=S.useState("session"),[o,a]=S.useState(""),[l,c]=S.useState([]),[d,u]=S.useState(),[h,p]=S.useState(!1),[g,b]=S.useState(!1),w=S.useRef(0);async function m(_,C){const N=_.trim();if(!N)return;const I=++w.current;p(!0),b(!0);let A;try{A=await V$(C,N,{userId:e,appId:t})}catch(P){A={results:[],note:`搜索失败:${String(P)}`}}I===w.current&&(c(A.results),u(A.note),p(!1))}function x(_){s(_),g&&o.trim()&&m(o,_)}const y=(k=zw.find(_=>_.id===i))==null?void 0:k.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(WN,{}),f.jsx("input",{className:"search-input",value:o,onChange:_=>a(_.target.value),onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(bt,{className:"icon spin"}):f.jsx(DN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:zw.map(_=>f.jsxs("button",{className:`search-tab ${i===_.id?"active":""}`,onClick:()=>x(_.id),disabled:!_.ready,title:_.ready?void 0:"即将支持",children:[_.label,!_.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},_.id))}),f.jsx("div",{className:"search-results",children:y?g?h?null:d?f.jsx("div",{className:"search-empty",children:d}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((_,C)=>f.jsx(G$,{result:_,agentLabel:n,onOpen:r},C)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function G$({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(YB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${K$(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Xd,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(OB,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const YN="veadk_agentkit_connections";function Wr(){try{const e=localStorage.getItem(YN);return e?JSON.parse(e):[]}catch{return[]}}function Zy(e){try{localStorage.setItem(YN,JSON.stringify(e))}catch{}}function Wi(e,t){return`agentkit:${e}:${t}`}function XN(e){try{return new URL(e).host}catch{return e}}function zl(e){l$();for(const t of e)for(const n of t.apps)a$(Wi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function QN(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Wr().filter(a=>a.runtimeId!==e),s];return Zy(o),zl(o),s}async function ZN(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await HN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||XN(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Wr().filter(l=>l.base!==i),o];return Zy(a),zl(a),o}function W$(e){const t=Wr().filter(n=>n.id!==e);return Zy(t),zl(t),t}function JN(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Wi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:XN(i.base??"")}}));return[...n,...r]}const Uw=Object.freeze(Object.defineProperty({__proto__:null,addConnection:ZN,addRuntimeConnection:QN,buildAgentEntries:JN,loadConnections:Wr,registerConnections:zl,remoteAppId:Wi,removeConnection:W$},Symbol.toStringTag,{value:"Module"})),Vw=15,Y$=1e4;function Ah(e,t=Y$){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function X$({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,d]=S.useState([]),[u,h]=S.useState([""]),[p,g]=S.useState(0),[b,w]=S.useState(!1),[m,x]=S.useState(null),[y,v]=S.useState(!1),[k,_]=S.useState(""),[C,N]=S.useState(""),[I,A]=S.useState(null),[P,R]=S.useState(new Set),[F,O]=S.useState(o),j=S.useRef(!1),M=S.useCallback(async T=>{if(c[T]){g(T);return}const U=u[T];if(U!==void 0){v(!0),_("");try{const Y=await Ah(Nh(a,{nextToken:U,pageSize:Vw}));d(Z=>{const J=[...Z];return J[T]=Y.runtimes,J}),h(Z=>{const J=[...Z];return Y.nextToken&&(J[T+1]=Y.nextToken),J}),g(T)}catch(Y){_(Y instanceof Error?Y.message:String(Y))}finally{v(!1)}}},[a,u,c]),B=S.useCallback(async()=>{v(!0),_("");try{const T=[];let U="";do{const Y=await Ah(Nh(a,{scope:"mine",nextToken:U,pageSize:100}));T.push(...Y.runtimes),U=Y.nextToken}while(U&&T.length<2e3);x(T)}catch(T){_(T instanceof Error?T.message:String(T))}finally{v(!1)}},[a]);S.useEffect(()=>{e&&r==="cloud"&&!j.current&&(j.current=!0,M(0))},[e,r,M]),S.useEffect(()=>{b&&m===null&&r==="cloud"&&B()},[b,m,r,B]),S.useEffect(()=>{e&&O(o)},[e,o]);function L(){R(new Set),b?(x(null),B()):(d([]),h([""]),g(0),j.current=!0,v(!0),_(""),Ah(Nh(a,{nextToken:"",pageSize:Vw})).then(T=>{d([T.runtimes]),h(T.nextToken?["",T.nextToken]:[""])}).catch(T=>_(T instanceof Error?T.message:String(T))).finally(()=>v(!1)))}const D=!b&&(c[p+1]!==void 0||u[p+1]!==void 0);function E(T){A(T.runtimeId),m$(T.runtimeId,T.region).then(U=>{if(!U||U.length===0){R(J=>new Set(J).add(T.runtimeId));return}const Y=Object.fromEntries(U.map(J=>[J,T.name])),Z=QN(T.runtimeId,T.name,T.region,U,Y);l(Wi(Z.id,U[0])),O({runtimeId:T.runtimeId,name:T.name,region:T.region})}).catch(()=>R(U=>new Set(U).add(T.runtimeId))).finally(()=>A(null))}if(!e)return null;const H=(b?m??[]:c[p]??[]).filter(T=>C?T.name.toLowerCase().includes(C.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Vy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:L,title:"刷新",disabled:y,children:f.jsx(zN,{className:`icon ${y?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Fl,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(T=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${T===s?"active":""}`,onClick:()=>{l(T),t()},children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T})]})},T))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Am,{className:"icon"}),f.jsx("input",{value:C,onChange:T=>N(T.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:T=>w(T.target.checked)}),"只看我创建的"]})]}),k&&f.jsx("div",{className:"agentsel-error",children:k}),f.jsxs("div",{className:"agentsel-listwrap",children:[H.length===0&&!y?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:H.map(T=>{const U=P.has(T.runtimeId),Y=I===T.runtimeId,Z=(F==null?void 0:F.runtimeId)===T.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${Z?"active":""}`,onClick:()=>E(T),disabled:Y,title:T.runtimeId,children:[Y?f.jsx(bt,{className:"icon spin"}):f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:T.name}),T.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),U?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${Z$(T.status)}`,children:T.status||"-"})]})},T.runtimeId)})}),y&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||D)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||y,onClick:()=>void M(p-1),"aria-label":"上一页",children:f.jsx(NB,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!D||y,onClick:()=>void M(p+1),"aria-label":"下一页",children:f.jsx(Gn,{className:"icon"})})]})]})]}),r==="cloud"&&F&&f.jsx(Q$,{runtime:F})]})]})}function Q$({runtime:e}){const[t,n]=S.useState(null),[r,i]=S.useState(!0),[s,o]=S.useState("");S.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),GN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function Z$(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const J$="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function eF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function tF({userInfo:e,onLogout:t}){const[n,r]=S.useState(!1);if(!e)return null;const i=O$(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(WB,{className:"icon"})," 退出登录"]})]})]})]})}function nF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:d,onNewChat:u,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:b,onManageAgents:w,onPickSession:m,onDeleteSession:x,userInfo:y,onLogout:v}){const k=j=>(n==null?void 0:n[j])!==!1,[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(0),R=S.useRef(null),F=()=>{R.current&&P(R.current.offsetTop),I(j=>!j)},O=[...e].sort((j,M)=>(M.lastUpdateTime??0)-(j.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:J$,alt:"","aria-hidden":!0}),"VeADK"]}),d&&(()=>{const j=i==="cloud"&&!o;return f.jsxs("button",{ref:R,className:`agent-row ${j?"agent-row--empty":""}`,onClick:F,title:"切换 Agent",children:[f.jsx(dl,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:j?"请选择 Agent":a||"选择 Agent"}),f.jsx(Gn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),d&&f.jsx(X$,{open:N,onClose:()=>I(!1),anchorTop:A,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:d}),k("newChat")&&f.jsxs("button",{className:"new-chat",onClick:u,children:[f.jsx(ss,{className:"icon"}),"新会话"]}),k("search")&&f.jsx(H$,{onClick:h}),k("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(eF,{}),"添加 Agent"]}),k("skillCenter")&&f.jsx(P$,{onClick:g}),k("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:w,children:[f.jsx(Vy,{className:"icon"}),"管理 Agent"]})]}),k("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[O.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),O.map(j=>f.jsxs("div",{className:`history-item ${j.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(j.id),title:j.id,children:[(r==null?void 0:r.has(j.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:k$(j.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>C(M=>M===j.id?null:j.id),children:f.jsx(IB,{className:"icon"})}),_===j.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>C(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{C(null),x(j.id)},children:[f.jsx(Do,{className:"icon"})," 删除"]})})]})]},j.id))]})]}),f.jsx(tF,{userInfo:y,onLogout:v})]})}function rF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(S.Fragment,{children:[a>0&&f.jsx(Gn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(iF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function iF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=S.useState(!1),[o,a]=S.useState(null),[l,c]=S.useState({}),[d,u]=S.useState(0),h=S.useRef({}),p=w=>r?r(w):w;function g(w){a(w);const m=h.current[w];if(m){const x=m.getBoundingClientRect(),y=m.closest(".agent-dd");if(y){const v=y.getBoundingClientRect();u(x.top-v.top)}}l[w]===void 0&&(c(x=>({...x,[w]:"loading"})),Xy(w).then(x=>c(y=>({...y,[w]:x}))).catch(()=>c(x=>({...x,[w]:"error"}))))}function b(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(w=>!w),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(jN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:b}),f.jsx("div",{className:"agent-dd-menu",children:e.map(w=>f.jsx("div",{ref:m=>h.current[w]=m,className:"agent-dd-row",onMouseEnter:()=>g(w),onMouseLeave:()=>a(m=>m===w?null:m),children:f.jsxs("button",{className:`agent-dd-item ${w===t?"active":""}`,onClick:()=>{n(w),b()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(w)}),w===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},w))}),o&&f.jsx(sF,{state:l[o],top:d})]})]})}function sF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(dl,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(Wy,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Hw={llm:{icon:go,label:"LLM"},sequential:{icon:BN,label:"顺序"},parallel:{icon:UN,label:"并行"},loop:{icon:Gy,label:"循环"},a2a:{icon:Xd,label:"A2A"}};function eT(e){return 1+e.children.reduce((t,n)=>t+eT(n),0)}function tT({node:e,activeAgent:t,seen:n,path:r}){const i=Hw[e.type]??Hw.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((d,u)=>f.jsx(tT,{node:d,activeAgent:t,seen:n,path:r},`${d.name}-${u}`))})]})}function Kw({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=S.useState(null);if(S.useEffect(()=>{let a=!1;if(s(null),!!e)return Xy(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[eT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Gn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(tT,{node:i,activeAgent:t,seen:n,path:o})})]})}function oF({onAdded:e,onCancel:t}){const[n,r]=S.useState(""),[i,s]=S.useState(""),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),u("");try{const g=await ZN(o,n,i,o);if(g.apps.length===0){u("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Wi(g.id,g.apps[0]))}catch(g){u(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),d&&f.jsx("div",{className:"addagent-error",children:d}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(bt,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function aF({author:e}){const[t,n]=S.useState([]),[r,i]=S.useState(!0),[s,o]=S.useState(""),[a,l]=S.useState(null),[c,d]=S.useState(null),[u,h]=S.useState({}),p=S.useCallback(async()=>{i(!0),o("");try{n(await h$(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);S.useEffect(()=>{p()},[p]);async function g(m){h(y=>({...y,[m.runtimeId]:{loading:!0}}));const x={loading:!1};try{x.detail=await GN(m.runtimeId,m.region)}catch(y){x.error=y instanceof Error?y.message:String(y)}x.detail&&(x.graphs=[{name:x.detail.name,description:x.detail.description,type:"llm",model:x.detail.model,tools:[],children:[]}],x.graphNote="仅显示主 Agent(控制面信息)。"),h(y=>({...y,[m.runtimeId]:x}))}function b(m){const x=c===m.runtimeId;d(x?null:m.runtimeId),!x&&!u[m.runtimeId]&&g(m)}async function w(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await g$(m.runtimeId,m.region),n(x=>x.filter(y=>y.runtimeId!==m.runtimeId))}catch(x){o(x instanceof Error?x.message:String(x))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(zN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(bt,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const x=c===m.runtimeId,y=u[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>b(m),"aria-expanded":x,children:[x?f.jsx(jN,{className:"icon"}):f.jsx(Gn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${uF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void w(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(bt,{className:"icon spin"}):f.jsx(Do,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:rT(m.createdAt)})]})]}),x&&f.jsx("div",{className:"manage-detail",children:!y||y.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(bt,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[y.error&&f.jsx("div",{className:"manage-error",children:y.error}),y.detail&&f.jsx(lF,{detail:y.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),y.graphs&&y.graphs.length>0?y.graphs.map((v,k)=>f.jsx(nT,{node:v},k)):f.jsx("div",{className:"manage-tree-note",children:y.graphNote})]})})]},m.runtimeId)})})]})}function lF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",rT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const cF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function nT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:cF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(nT,{node:n,depth:t+1},r))]})}function uF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function rT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const dF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function fF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function hF(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function pF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function Jy(e,t){if(hF(e))return fF(t,e.path);if(pF(e)){const n=dF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=Jy(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function mF(e,t){const n=Jy(e,t);return n==null?"":typeof n=="string"?n:String(n)}const iT=new Map;function as(e,t){iT.set(e,t)}function gF(e){return iT.get(e)}function yF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sJy(r,e.dataModel),resolveString:r=>mF(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=gF(i.component)??bF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function oT(e){const t=S.useRef(null),n=S.useRef(!0),r=28,i=S.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function wF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const vF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_F=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,kF={};function qw(e,t){return(kF.jsx?_F:vF).test(e)}const EF=/[ \t\n\f\r]/g;function SF(e){return typeof e=="object"?e.type==="text"?Gw(e.value):!1:Gw(e)}function Gw(e){return e.replace(EF,"")===""}let Ul=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Ul.prototype.normal={};Ul.prototype.property={};Ul.prototype.space=void 0;function aT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Ul(n,r,t)}function Rm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let NF=0;const Se=ls(),ft=ls(),Lm=ls(),ie=ls(),$e=ls(),eo=ls(),sn=ls();function ls(){return 2**++NF}const Pm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Se,booleanish:ft,commaOrSpaceSeparated:sn,commaSeparated:eo,number:ie,overloadedBoolean:Lm,spaceSeparated:$e},Symbol.toStringTag,{value:"Module"})),Ch=Object.keys(Pm);class e0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),Ww(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&IF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Yw,LF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Yw.test(s)){let o=s.replace(MF,RF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=e0}return new i(r,t)}function RF(e){return"-"+e.toLowerCase()}function LF(e){return e.charAt(1).toUpperCase()}const PF=aT([lT,TF,dT,fT,hT],"html"),t0=aT([lT,AF,dT,fT,hT],"svg");function DF(e){return e.join(" ").trim()}var n0={},Xw=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,jF=/\n/g,BF=/^\s*/,$F=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,FF=/^:\s*/,zF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,UF=/^[;\s]*/,VF=/^\s+|\s+$/g,HF=` -`,Qw="/",Zw="*",Ai="",KF="comment",qF="declaration";function GF(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var b=g.match(jF);b&&(n+=b.length);var w=g.lastIndexOf(HF);r=~w?g.length-w:r+g.length}function s(){var g={line:n,column:r};return function(b){return b.position=new o(g),c(),b}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var b=new Error(t.source+":"+n+":"+r+": "+g);if(b.reason=g,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function l(g){var b=g.exec(e);if(b){var w=b[0];return i(w),e=e.slice(w.length),b}}function c(){l(BF)}function d(g){var b;for(g=g||[];b=u();)b!==!1&&g.push(b);return g}function u(){var g=s();if(!(Qw!=e.charAt(0)||Zw!=e.charAt(1))){for(var b=2;Ai!=e.charAt(b)&&(Zw!=e.charAt(b)||Qw!=e.charAt(b+1));)++b;if(b+=2,Ai===e.charAt(b-1))return a("End of comment missing");var w=e.slice(2,b-2);return r+=2,i(w),e=e.slice(b),r+=2,g({type:KF,comment:w})}}function h(){var g=s(),b=l($F);if(b){if(u(),!l(FF))return a("property missing ':'");var w=l(zF),m=g({type:qF,property:Jw(b[0].replace(Xw,Ai)),value:w?Jw(w[0].replace(Xw,Ai)):Ai});return l(UF),m}}function p(){var g=[];d(g);for(var b;b=h();)b!==!1&&(g.push(b),d(g));return g}return c(),p()}function Jw(e){return e?e.replace(VF,Ai):Ai}var WF=GF,YF=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n0,"__esModule",{value:!0});n0.default=QF;const XF=YF(WF);function QF(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,XF.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var Zd={};Object.defineProperty(Zd,"__esModule",{value:!0});Zd.camelCase=void 0;var ZF=/^--[a-zA-Z0-9_-]+$/,JF=/-([a-z])/g,e3=/^[^-]+$/,t3=/^-(webkit|moz|ms|o|khtml)-/,n3=/^-(ms)-/,r3=function(e){return!e||e3.test(e)||ZF.test(e)},i3=function(e,t){return t.toUpperCase()},ev=function(e,t){return"".concat(t,"-")},s3=function(e,t){return t===void 0&&(t={}),r3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(n3,ev):e=e.replace(t3,ev),e.replace(JF,i3))};Zd.camelCase=s3;var o3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},a3=o3(n0),l3=Zd;function Dm(e,t){var n={};return!e||typeof e!="string"||(0,a3.default)(e,function(r,i){r&&i&&(n[(0,l3.camelCase)(r,t)]=i)}),n}Dm.default=Dm;var c3=Dm;const u3=Ml(c3),pT=mT("end"),r0=mT("start");function mT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function d3(e){const t=r0(e),n=pT(e);if(t&&n)return{start:t,end:n}}function La(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?tv(e.position):"start"in e||"end"in e?tv(e):"line"in e||"column"in e?jm(e):""}function jm(e){return nv(e&&e.line)+":"+nv(e&&e.column)}function tv(e){return jm(e&&e.start)+"-"+jm(e&&e.end)}function nv(e){return e&&typeof e=="number"?e:1}class Bt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=La(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Bt.prototype.file="";Bt.prototype.name="";Bt.prototype.reason="";Bt.prototype.message="";Bt.prototype.stack="";Bt.prototype.column=void 0;Bt.prototype.line=void 0;Bt.prototype.ancestors=void 0;Bt.prototype.cause=void 0;Bt.prototype.fatal=void 0;Bt.prototype.place=void 0;Bt.prototype.ruleId=void 0;Bt.prototype.source=void 0;const i0={}.hasOwnProperty,f3=new Map,h3=/[A-Z]/g,p3=new Set(["table","tbody","thead","tfoot","tr"]),m3=new Set(["td","th"]),gT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function g3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=E3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=k3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?t0:PF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=yT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function yT(e,t,n){if(t.type==="element")return y3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return b3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return w3(e,t,n);if(t.type==="mdxjsEsm")return x3(e,t);if(t.type==="root")return v3(e,t,n);if(t.type==="text")return _3(e,t)}function y3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=xT(e,t.tagName,!1),o=S3(e,t);let a=o0(e,t);return p3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!SF(l):!0})),bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function b3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}pl(e,t.position)}function x3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);pl(e,t.position)}function w3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=t0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:xT(e,t.name,!0),o=N3(e,t),a=o0(e,t);return bT(e,o,s,t),s0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function v3(e,t,n){const r={};return s0(r,o0(e,t)),e.create(t,e.Fragment,r,n)}function _3(e,t){return t.value}function bT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function k3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function E3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=r0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function S3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&i0.call(t.properties,i)){const s=T3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&m3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function N3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else pl(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else pl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function o0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:f3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const sv={}.hasOwnProperty;function vT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=pi(/[A-Za-z]/),Lt=pi(/[\dA-Za-z]/),D3=pi(/[#-'*+\--9=?A-Z^-~]/);function ld(e){return e!==null&&(e<32||e===127)}const Bm=pi(/\d/),j3=pi(/[\dA-Fa-f]/),B3=pi(/[!-/:-@[-`{-~]/);function xe(e){return e!==null&&e<-2}function Be(e){return e!==null&&(e<0||e===32)}function Ne(e){return e===-2||e===-1||e===32}const Jd=pi(new RegExp("\\p{P}|\\p{S}","u")),Yi=pi(/\s/);function pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Bo(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ie(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Ne(l)?(e.enter(n),a(l)):t(l)}function a(l){return Ne(l)&&s++o))return;const C=t.events.length;let N=C,I,A;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){A=t.events[N][1].end;break}I=!0}for(m(r),_=C;_y;){const k=n[v];t.containerState=k[1],k[0].exit.call(t,e)}n.length=y}function x(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function V3(e,t,n){return Ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function yo(e){if(e===null||Be(e)||Yi(e))return 1;if(Jd(e))return 2}function ef(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};av(u,-l),av(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=_n(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=_n(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=_n(c,ef(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=_n(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=_n(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dn(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n0&&Ne(_)?Ie(e,x,"linePrefix",s+1)(_):x(_)}function x(_){return _===null||xe(_)?e.check(lv,b,v)(_):(e.enter("codeFlowValue"),y(_))}function y(_){return _===null||xe(_)?(e.exit("codeFlowValue"),x(_)):(e.consume(_),y)}function v(_){return e.exit("codeFenced"),t(_)}function k(_,C,N){let I=0;return A;function A(j){return _.enter("lineEnding"),_.consume(j),_.exit("lineEnding"),P}function P(j){return _.enter("codeFencedFence"),Ne(j)?Ie(_,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):R(j)}function R(j){return j===a?(_.enter("codeFencedFenceSequence"),F(j)):N(j)}function F(j){return j===a?(I++,_.consume(j),F):I>=o?(_.exit("codeFencedFenceSequence"),Ne(j)?Ie(_,O,"whitespace")(j):O(j)):N(j)}function O(j){return j===null||xe(j)?(_.exit("codeFencedFence"),C(j)):N(j)}}}function t4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Ih={name:"codeIndented",tokenize:r4},n4={partial:!0,tokenize:i4};function r4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Ie(e,s,"linePrefix",5)(c)}function s(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):xe(c)?e.attempt(n4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||xe(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function i4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Ie(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):xe(o)?i(o):n(o)}}const s4={name:"codeText",previous:a4,resolve:o4,tokenize:l4};function o4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&na(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),na(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),na(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function TT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let d=0;return u;function u(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||ld(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||xe(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function b(m){return!d&&(m===null||m===41||Be(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):d999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):xe(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||xe(p)||a++>999?(e.exit("chunkString"),d(p)):(e.consume(p),l||(l=!Ne(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function CT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):xe(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Ie(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||xe(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:d)}function u(h){return h===o||h===92?(e.consume(h),d):d(h)}}function Pa(e,t){let n;return r;function r(i){return xe(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Ne(i)?Ie(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const g4={name:"definition",tokenize:b4},y4={partial:!0,tokenize:x4};function b4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return AT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return Be(p)?Pa(e,c)(p):c(p)}function c(p){return TT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(y4,u,u)(p)}function u(p){return Ne(p)?Ie(e,h,"whitespace")(p):h(p)}function h(p){return p===null||xe(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function x4(e,t,n){return r;function r(a){return Be(a)?Pa(e,i)(a):n(a)}function i(a){return CT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Ne(a)?Ie(e,o,"whitespace")(a):o(a)}function o(a){return a===null||xe(a)?t(a):n(a)}}const w4={name:"hardBreakEscape",tokenize:v4};function v4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return xe(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const _4={name:"headingAtx",resolve:k4,tokenize:E4};function k4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function E4(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Be(d)?(e.exit("atxHeadingSequence"),a(d)):n(d)}function a(d){return d===35?(e.enter("atxHeadingSequence"),l(d)):d===null||xe(d)?(e.exit("atxHeading"),t(d)):Ne(d)?Ie(e,a,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function l(d){return d===35?(e.consume(d),l):(e.exit("atxHeadingSequence"),a(d))}function c(d){return d===null||d===35||Be(d)?(e.exit("atxHeadingText"),a(d)):(e.consume(d),c)}}const S4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],uv=["pre","script","style","textarea"],N4={concrete:!0,name:"htmlFlow",resolveTo:C4,tokenize:M4},T4={partial:!0,tokenize:O4},A4={partial:!0,tokenize:I4};function C4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function M4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(T){return d(T)}function d(T){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(T),u}function u(T){return T===33?(e.consume(T),h):T===47?(e.consume(T),s=!0,b):T===63?(e.consume(T),i=3,r.interrupt?t:E):Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function h(T){return T===45?(e.consume(T),i=2,p):T===91?(e.consume(T),i=5,a=0,g):Vt(T)?(e.consume(T),i=4,r.interrupt?t:E):n(T)}function p(T){return T===45?(e.consume(T),r.interrupt?t:E):n(T)}function g(T){const U="CDATA[";return T===U.charCodeAt(a++)?(e.consume(T),a===U.length?r.interrupt?t:R:g):n(T)}function b(T){return Vt(T)?(e.consume(T),o=String.fromCharCode(T),w):n(T)}function w(T){if(T===null||T===47||T===62||Be(T)){const U=T===47,Y=o.toLowerCase();return!U&&!s&&uv.includes(Y)?(i=1,r.interrupt?t(T):R(T)):S4.includes(o.toLowerCase())?(i=6,U?(e.consume(T),m):r.interrupt?t(T):R(T)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(T):s?x(T):y(T))}return T===45||Lt(T)?(e.consume(T),o+=String.fromCharCode(T),w):n(T)}function m(T){return T===62?(e.consume(T),r.interrupt?t:R):n(T)}function x(T){return Ne(T)?(e.consume(T),x):A(T)}function y(T){return T===47?(e.consume(T),A):T===58||T===95||Vt(T)?(e.consume(T),v):Ne(T)?(e.consume(T),y):A(T)}function v(T){return T===45||T===46||T===58||T===95||Lt(T)?(e.consume(T),v):k(T)}function k(T){return T===61?(e.consume(T),_):Ne(T)?(e.consume(T),k):y(T)}function _(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),l=T,C):Ne(T)?(e.consume(T),_):N(T)}function C(T){return T===l?(e.consume(T),l=null,I):T===null||xe(T)?n(T):(e.consume(T),C)}function N(T){return T===null||T===34||T===39||T===47||T===60||T===61||T===62||T===96||Be(T)?k(T):(e.consume(T),N)}function I(T){return T===47||T===62||Ne(T)?y(T):n(T)}function A(T){return T===62?(e.consume(T),P):n(T)}function P(T){return T===null||xe(T)?R(T):Ne(T)?(e.consume(T),P):n(T)}function R(T){return T===45&&i===2?(e.consume(T),M):T===60&&i===1?(e.consume(T),B):T===62&&i===4?(e.consume(T),V):T===63&&i===3?(e.consume(T),E):T===93&&i===5?(e.consume(T),D):xe(T)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(T4,H,F)(T)):T===null||xe(T)?(e.exit("htmlFlowData"),F(T)):(e.consume(T),R)}function F(T){return e.check(A4,O,H)(T)}function O(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return T===null||xe(T)?F(T):(e.enter("htmlFlowData"),R(T))}function M(T){return T===45?(e.consume(T),E):R(T)}function B(T){return T===47?(e.consume(T),o="",L):R(T)}function L(T){if(T===62){const U=o.toLowerCase();return uv.includes(U)?(e.consume(T),V):R(T)}return Vt(T)&&o.length<8?(e.consume(T),o+=String.fromCharCode(T),L):R(T)}function D(T){return T===93?(e.consume(T),E):R(T)}function E(T){return T===62?(e.consume(T),V):T===45&&i===2?(e.consume(T),E):R(T)}function V(T){return T===null||xe(T)?(e.exit("htmlFlowData"),H(T)):(e.consume(T),V)}function H(T){return e.exit("htmlFlow"),t(T)}}function I4(e,t,n){const r=this;return i;function i(o){return xe(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function O4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Vl,t,n)}}const R4={name:"htmlText",tokenize:L4};function L4(e,t,n){const r=this;let i,s,o;return a;function a(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),l}function l(E){return E===33?(e.consume(E),c):E===47?(e.consume(E),k):E===63?(e.consume(E),y):Vt(E)?(e.consume(E),N):n(E)}function c(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),s=0,g):Vt(E)?(e.consume(E),x):n(E)}function d(E){return E===45?(e.consume(E),p):n(E)}function u(E){return E===null?n(E):E===45?(e.consume(E),h):xe(E)?(o=u,B(E)):(e.consume(E),u)}function h(E){return E===45?(e.consume(E),p):u(E)}function p(E){return E===62?M(E):E===45?h(E):u(E)}function g(E){const V="CDATA[";return E===V.charCodeAt(s++)?(e.consume(E),s===V.length?b:g):n(E)}function b(E){return E===null?n(E):E===93?(e.consume(E),w):xe(E)?(o=b,B(E)):(e.consume(E),b)}function w(E){return E===93?(e.consume(E),m):b(E)}function m(E){return E===62?M(E):E===93?(e.consume(E),m):b(E)}function x(E){return E===null||E===62?M(E):xe(E)?(o=x,B(E)):(e.consume(E),x)}function y(E){return E===null?n(E):E===63?(e.consume(E),v):xe(E)?(o=y,B(E)):(e.consume(E),y)}function v(E){return E===62?M(E):y(E)}function k(E){return Vt(E)?(e.consume(E),_):n(E)}function _(E){return E===45||Lt(E)?(e.consume(E),_):C(E)}function C(E){return xe(E)?(o=C,B(E)):Ne(E)?(e.consume(E),C):M(E)}function N(E){return E===45||Lt(E)?(e.consume(E),N):E===47||E===62||Be(E)?I(E):n(E)}function I(E){return E===47?(e.consume(E),M):E===58||E===95||Vt(E)?(e.consume(E),A):xe(E)?(o=I,B(E)):Ne(E)?(e.consume(E),I):M(E)}function A(E){return E===45||E===46||E===58||E===95||Lt(E)?(e.consume(E),A):P(E)}function P(E){return E===61?(e.consume(E),R):xe(E)?(o=P,B(E)):Ne(E)?(e.consume(E),P):I(E)}function R(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),i=E,F):xe(E)?(o=R,B(E)):Ne(E)?(e.consume(E),R):(e.consume(E),O)}function F(E){return E===i?(e.consume(E),i=void 0,j):E===null?n(E):xe(E)?(o=F,B(E)):(e.consume(E),F)}function O(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||Be(E)?I(E):(e.consume(E),O)}function j(E){return E===47||E===62||Be(E)?I(E):n(E)}function M(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function B(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),L}function L(E){return Ne(E)?Ie(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):D(E)}function D(E){return e.enter("htmlTextData"),o(E)}}const c0={name:"labelEnd",resolveAll:B4,resolveTo:$4,tokenize:F4},P4={tokenize:z4},D4={tokenize:U4},j4={tokenize:V4};function B4(e){let t=-1;const n=[];for(;++t=3&&(c===null||xe(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Ne(c)?Ie(e,a,"whitespace")(c):a(c))}}const Wt={continuation:{tokenize:J4},exit:tz,name:"list",tokenize:Z4},X4={partial:!0,tokenize:nz},Q4={partial:!0,tokenize:ez};function Z4(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Bm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(yu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Bm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Vl,r.interrupt?n:d,e.attempt(X4,h,u))}function d(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function u(p){return Ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function J4(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Vl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ie(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Ne(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Q4,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ie(e,e.attempt(Wt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function ez(e,t,n){const r=this;return Ie(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function tz(e){e.exit(this.containerState.type)}function nz(e,t,n){const r=this;return Ie(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Ne(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const dv={name:"setextUnderline",resolveTo:rz,tokenize:iz};function rz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function iz(e,t,n){const r=this;let i;return s;function s(c){let d=r.events.length,u;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){u=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Ne(c)?Ie(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||xe(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const sz={tokenize:oz};function oz(e){const t=this,n=e.attempt(Vl,r,e.attempt(this.parser.constructs.flowInitial,i,Ie(e,e.attempt(this.parser.constructs.flow,i,e.attempt(d4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const az={resolveAll:IT()},lz=MT("string"),cz=MT("text");function MT(e){return{resolveAll:IT(e==="text"?uz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(d){return c(d)?s(d):a(d)}function a(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),l}function l(d){return c(d)?(n.exit("data"),s(d)):(n.consume(d),l)}function c(d){if(d===null)return!0;const u=i[d];let h=-1;if(u)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function kz(e,t){let n=-1;const r=[];let i;for(;++n0){const Le=te.tokenStack[te.tokenStack.length-1];(Le[1]||hv).call(te,void 0,Le[0])}for(K.position={start:Pr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Pr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},we=-1;++we0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function jz(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Bz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $z(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Bo(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,a+=1,e.footnoteCounts.set(r,a);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function Fz(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function LT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function Uz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={src:Bo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function Vz(e,t){const n={src:Bo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Hz(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Kz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return LT(e,t);const i={href:Bo(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function qz(e,t){const n={href:Bo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Gz(e,t,n){const r=e.all(t),i=n?Wz(n):PT(t),s={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let u;d&&d.type==="element"&&d.tagName==="p"?u=d:(u={type:"element",tagName:"p",properties:{},children:[]},r.unshift(u)),u.children.length>0&&u.children.unshift({type:"text",value:" "}),u.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let a=-1;for(;++a1}function Yz(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=r0(t.children[1]),l=pT(t.children[t.children.length-1]);a&&l&&(o.position={start:a,end:l}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function e5(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,a=o?o.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(gv(t.slice(i),i>0,!1)),s.join("")}function gv(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===pv||s===mv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===pv||s===mv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function r5(e,t){const n={type:"text",value:n5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function i5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const s5={blockquote:Lz,break:Pz,code:Dz,delete:jz,emphasis:Bz,footnoteReference:$z,heading:Fz,html:zz,imageReference:Uz,image:Vz,inlineCode:Hz,linkReference:Kz,link:qz,listItem:Gz,list:Yz,paragraph:Xz,root:Qz,strong:Zz,table:Jz,tableCell:t5,tableRow:e5,text:r5,thematicBreak:i5,toml:Ic,yaml:Ic,definition:Ic,footnoteDefinition:Ic};function Ic(){}const DT=-1,tf=0,Da=1,cd=2,u0=3,d0=4,f0=5,h0=6,jT=7,BT=8,o5=typeof self=="object"?self:globalThis,yv=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new o5[e](t)},a5=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case tf:case DT:return n(o,i);case Da:{const a=n([],i);for(const l of o)a.push(r(l));return a}case cd:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case u0:return n(new Date(o),i);case d0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case f0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case h0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case jT:{const{name:a,message:l}=o;return n(yv(a,l),i)}case BT:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:a}=new Uint8Array(o);return n(new DataView(a),o)}}return n(yv(s,o),i)};return r},bv=e=>a5(new Map,e)(0),ys="",{toString:l5}={},{keys:c5}=Object,ra=e=>{const t=typeof e;if(t!=="object"||!e)return[tf,t];const n=l5.call(e).slice(8,-1);switch(n){case"Array":return[Da,ys];case"Object":return[cd,ys];case"Date":return[u0,ys];case"RegExp":return[d0,ys];case"Map":return[f0,ys];case"Set":return[h0,ys];case"DataView":return[Da,n]}return n.includes("Array")?[Da,n]:n.includes("Error")?[jT,n]:[cd,n]},Oc=([e,t])=>e===tf&&(t==="function"||t==="symbol"),u5=(e,t,n,r)=>{const i=(o,a)=>{const l=r.push(o)-1;return n.set(a,l),l},s=o=>{if(n.has(o))return n.get(o);let[a,l]=ra(o);switch(a){case tf:{let d=o;switch(l){case"bigint":a=BT,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);d=null;break;case"undefined":return i([DT],o)}return i([a,d],o)}case Da:{if(l){let h=o;return l==="DataView"?h=new Uint8Array(o.buffer):l==="ArrayBuffer"&&(h=new Uint8Array(o)),i([l,[...h]],o)}const d=[],u=i([a,d],o);for(const h of o)d.push(s(h));return u}case cd:{if(l)switch(l){case"BigInt":return i([l,o.toString()],o);case"Boolean":case"Number":case"String":return i([l,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const d=[],u=i([a,d],o);for(const h of c5(o))(e||!Oc(ra(o[h])))&&d.push([s(h),s(o[h])]);return u}case u0:return i([a,o.toISOString()],o);case d0:{const{source:d,flags:u}=o;return i([a,{source:d,flags:u}],o)}case f0:{const d=[],u=i([a,d],o);for(const[h,p]of o)(e||!(Oc(ra(h))||Oc(ra(p))))&&d.push([s(h),s(p)]);return u}case h0:{const d=[],u=i([a,d],o);for(const h of o)(e||!Oc(ra(h)))&&d.push(s(h));return u}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},xv=(e,{json:t,lossy:n}={})=>{const r=[];return u5(!(t||n),!!t,new Map,r)(e),r},ud=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?bv(xv(e,t)):structuredClone(e):(e,t)=>bv(xv(e,t));function d5(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function f5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function h5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||d5,r=e.options.footnoteBackLabel||f5,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&g.push({type:"text",value:" "});let x=typeof n=="string"?n:n(l,p);typeof x=="string"&&(x={type:"text",value:x}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,p),className:["data-footnote-backref"]},children:Array.isArray(x)?x:[x]})}const w=d[d.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const x=w.children[w.children.length-1];x&&x.type==="text"?x.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...g)}else d.push(...g);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(d,!0)};e.patch(c,m),a.push(m)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...ud(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` -`}]}}const Hl=function(e){if(e==null)return y5;if(typeof e=="function")return nf(e);if(typeof e=="object")return Array.isArray(e)?p5(e):m5(e);if(typeof e=="string")return g5(e);throw new Error("Expected function, string, or object as test")};function p5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=$T,g,b,w;if((!t||s(l,c,d[d.length-1]||void 0))&&(p=v5(n(l,d)),p[0]===Fm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==w5)for(b=(r?m.children.length:-1)+o,w=d.concat(m);b>-1&&b0&&n.push({type:"text",value:` -`}),n}function wv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function vv(e,t){const n=k5(e,t),r=n.one(e,void 0),i=h5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` -`},i),s}function A5(e,t){return e&&"run"in e?async function(n,r){const i=vv(n,{file:r,...t});await e.run(i,r)}:function(n,r){return vv(n,{file:r,...e||t})}}function _v(e){if(e)throw e}var bu=Object.prototype.hasOwnProperty,zT=Object.prototype.toString,kv=Object.defineProperty,Ev=Object.getOwnPropertyDescriptor,Sv=function(t){return typeof Array.isArray=="function"?Array.isArray(t):zT.call(t)==="[object Array]"},Nv=function(t){if(!t||zT.call(t)!=="[object Object]")return!1;var n=bu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&bu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||bu.call(t,i)},Tv=function(t,n){kv&&n.name==="__proto__"?kv(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Av=function(t,n){if(n==="__proto__")if(bu.call(t,n)){if(Ev)return Ev(t,n).value}else return;return t[n]},C5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,d=!1;for(typeof a=="boolean"&&(d=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const d=c;if(a&&n)throw d;return i(d)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:O5,dirname:R5,extname:L5,join:P5,sep:"/"};function O5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Kl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function R5(e){if(Kl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function L5(e){Kl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function P5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function j5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Kl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const B5={cwd:$5};function $5(){return"/"}function Vm(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function F5(e){if(typeof e=="string")e=new URL(e);else if(!Vm(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return z5(e)}function z5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=d;const b=r[h][1];Um(b)&&Um(p)&&(p=Rh(!0,b,p)),r[h]=[c,p,...g]}}}}const K5=new p0().freeze();function jh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Bh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function $h(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Mv(e){if(!Um(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Iv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Rc(e){return q5(e)?e:new UT(e)}function q5(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function G5(e){return typeof e=="string"||W5(e)}function W5(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Y5="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Ov=[],Rv={allowDangerousHtml:!0},X5=/^(https?|ircs?|mailto|xmpp)$/i,Q5=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Z5(e){const t=J5(e),n=eU(e);return tU(t.runSync(t.parse(n),n),e)}function J5(e){const t=e.rehypePlugins||Ov,n=e.remarkPlugins||Ov,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Rv}:Rv;return K5().use(Rz).use(n).use(A5,r).use(t)}function eU(e){const t=e.children||"",n=new UT;return typeof t=="string"&&(n.value=t),n}function tU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||nU;for(const d of Q5)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Y5+d.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),rf(e,c),g3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(d,u,h){if(d.type==="raw"&&h&&typeof u=="number")return o?h.children.splice(u,1):h.children[u]={type:"text",value:d.value},u;if(d.type==="element"){let p;for(p in Mh)if(Object.hasOwn(Mh,p)&&Object.hasOwn(d.properties,p)){const g=d.properties[p],b=Mh[p];(b===null||b.includes(d.tagName))&&(d.properties[p]=l(String(g||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!p&&r&&typeof u=="number"&&(p=!r(d,u,h)),p&&h&&typeof u=="number")return a&&d.children?h.children.splice(u,1,...d.children):h.children.splice(u,1),u}}}function nU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||X5.test(e.slice(0,t))?e:""}function Lv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function rU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function iU(e,t,n){const i=Hl((n||{}).ignore||[]),s=sU(t);let o=-1;for(;++o0?{type:"text",value:_}:void 0),_===!1?h.lastIndex=v+1:(g!==v&&x.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(_)?x.push(..._):_&&x.push(_),g=v+y[0].length,m=!0),!h.global)break;y=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Lv(e,"(");let s=Lv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function VT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Yi(n)||Jd(n))&&(!t||n!==47)}HT.peek=AU;function wU(){this.buffer()}function vU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function _U(){this.buffer()}function kU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function EU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function SU(e){this.exit(e)}function NU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function TU(e){this.exit(e)}function AU(){return"["}function HT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function CU(){return{enter:{gfmFootnoteCallString:wU,gfmFootnoteCall:vU,gfmFootnoteDefinitionLabelString:_U,gfmFootnoteDefinition:kU},exit:{gfmFootnoteCallString:EU,gfmFootnoteCall:SU,gfmFootnoteDefinitionLabelString:NU,gfmFootnoteDefinition:TU}}}function MU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:HT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),d=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),d(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` -`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?KT:IU))),c(),l}}function IU(e,t,n){return t===0?e:KT(e,t,n)}function KT(e,t,n){return(n?"":" ")+e}const OU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];qT.peek=jU;function RU(){return{canContainEols:["delete"],enter:{strikethrough:PU},exit:{strikethrough:DU}}}function LU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:OU}],handlers:{delete:qT}}}function PU(e){this.enter({type:"delete",children:[]},e)}function DU(e){this.exit(e)}function qT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function jU(){return"~"}function BU(e){return e.length}function $U(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||BU,s=[],o=[],a=[],l=[];let c=0,d=-1;for(;++dc&&(c=e[d].length);++ml[m])&&(l[m]=y)}b.push(x)}o[d]=b,a[d]=w}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=x),p[u]=x),h[u]=y}o.splice(1,0,h),a.splice(1,0,p),d=-1;const g=[];for(;++d "),s.shift(2);const o=n.indentLines(n.containerFlow(e,s.current()),UU);return i(),o}function UU(e,t,n){return">"+(n?"":" ")+e}function VU(e,t){return Dv(e,t.inConstruct,!0)&&!Dv(e,t.notInConstruct,!1)}function Dv(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=s):s=1,i=r+t.length,r=n.indexOf(t,i);return o}function KU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function qU(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function GU(e,t,n,r){const i=qU(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(KU(e,n)){const u=n.enter("codeIndented"),h=n.indentLines(s,WU);return u(),h}const a=n.createTracker(r),l=i.repeat(Math.max(HU(s,i)+1,3)),c=n.enter("codeFenced");let d=a.move(l);if(e.lang){const u=n.enter(`codeFencedLang${o}`);d+=a.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...a.current()})),u()}if(e.lang&&e.meta){const u=n.enter(`codeFencedMeta${o}`);d+=a.move(" "),d+=a.move(n.safe(e.meta,{before:d,after:` -`,encode:["`"],...a.current()})),u()}return d+=a.move(` -`),s&&(d+=a.move(s+` -`)),d+=a.move(l),c(),d}function WU(e,t,n){return(n?"":" ")+e}function m0(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function YU(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("definition");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");return c+=l.move(n.safe(n.associationId(e),{before:c,after:"]",...l.current()})),c+=l.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":` -`,...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),o(),c}function XU(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function ml(e){return"&#x"+e.toString(16).toUpperCase()+";"}function dd(e,t,n){const r=yo(e),i=yo(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}GT.peek=QU;function GT(e,t,n,r){const i=XU(n),s=n.enter("emphasis"),o=n.createTracker(r),a=o.move(i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function QU(e,t,n){return n.options.emphasis||"*"}function ZU(e,t){let n=!1;return rf(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Fm}),!!((!e.depth||e.depth<3)&&a0(e)&&(t.options.setext||n))}function JU(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),s=n.createTracker(r);if(ZU(e,n)){const d=n.enter("headingSetext"),u=n.enter("phrasing"),h=n.containerPhrasing(e,{...s.current(),before:` -`,after:` -`});return u(),d(),h+` -`+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` -`))+1))}const o="#".repeat(i),a=n.enter("headingAtx"),l=n.enter("phrasing");s.move(o+" ");let c=n.containerPhrasing(e,{before:"# ",after:` -`,...s.current()});return/^[\t ]/.test(c)&&(c=ml(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}WT.peek=e6;function WT(e){return e.value||""}function e6(){return"<"}YT.peek=t6;function YT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function t6(){return"!"}XT.peek=n6;function XT(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function n6(){return"!"}QT.peek=r6;function QT(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}JT.peek=i6;function JT(e,t,n,r){const i=m0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(ZT(e,n)){const d=n.stack;n.stack=[],a=n.enter("autolink");let u=o.move("<");return u+=o.move(n.containerPhrasing(e,{before:u,after:">",...o.current()})),u+=o.move(">"),a(),n.stack=d,u}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function i6(e,t,n){return ZT(e,n)?"<":"["}eA.peek=s6;function eA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function s6(){return"["}function g0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function o6(e){const t=g0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function a6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function tA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function l6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?a6(n):g0(n);const a=e.ordered?o==="."?")":".":o6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),tA(n)===o&&d){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),d);return l(),c;function d(u,h,p){return h?(p?"":" ".repeat(o))+u:(p?s:s+" ".repeat(o-s.length))+u}}function d6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const f6=Hl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function h6(e,t,n,r){return(e.children.some(function(o){return f6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function p6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}nA.peek=m6;function nA(e,t,n,r){const i=p6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=dd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=ml(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=dd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+ml(u));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function m6(e,t,n){return n.options.strong||"*"}function g6(e,t,n,r){return n.safe(e.value,r)}function y6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function b6(e,t,n){const r=(tA(n)+(n.options.ruleSpaces?" ":"")).repeat(y6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rA={blockquote:zU,break:jv,code:GU,definition:YU,emphasis:GT,hardBreak:jv,heading:JU,html:WT,image:YT,imageReference:XT,inlineCode:QT,link:JT,linkReference:eA,list:l6,listItem:u6,paragraph:d6,root:h6,strong:nA,text:g6,thematicBreak:b6};function x6(){return{enter:{table:w6,tableData:Bv,tableHeader:Bv,tableRow:_6},exit:{codeText:k6,table:v6,tableData:Vh,tableHeader:Vh,tableRow:Vh}}}function w6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function v6(e){this.exit(e),this.data.inTable=void 0}function _6(e){this.enter({type:"tableRow",children:[]},e)}function Vh(e){this.exit(e)}function Bv(e){this.enter({type:"tableCell",children:[]},e)}function k6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,E6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function E6(e,t){return t==="|"?t:e}function S6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:o,tableCell:l,tableRow:a}};function o(p,g,b,w){return c(d(p,b,w),p.align)}function a(p,g,b,w){const m=u(p,b,w),x=c([m]);return x.slice(0,x.indexOf(` -`))}function l(p,g,b,w){const m=b.enter("tableCell"),x=b.enter("phrasing"),y=b.containerPhrasing(p,{...w,before:s,after:s});return x(),m(),y}function c(p,g){return $U(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function d(p,g,b){const w=p.children;let m=-1;const x=[],y=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const V6={tokenize:Q6,partial:!0};function H6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:W6,continuation:{tokenize:Y6},exit:X6}},text:{91:{name:"gfmFootnoteCall",tokenize:G6},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:K6,resolveTo:q6}}}}function K6(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function q6(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function G6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),l}function l(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(s>999||u===93&&!o||u===null||u===91||Be(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return Be(u)||(o=!0),s++,e.consume(u),u===92?d:c}function d(u){return u===91||u===92||u===93?(e.consume(u),s++,c):c(u)}}function W6(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||Be(g))return n(g);if(g===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return Be(g)||(a=!0),o++,e.consume(g),g===92?u:d}function u(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Ie(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function Y6(e,t,n){return e.check(Vl,t,e.attempt(V6,t,n))}function X6(e){e.exit("gfmFootnoteDefinition")}function Q6(e,t,n){const r=this;return Ie(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function Z6(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),u++,p);if(u<2&&!n)return l(g);const w=o.exit("strikethroughSequenceTemporary"),m=yo(g);return w._open=!m||m===2&&!!b,w._close=!b||b===2&&!!m,a(g)}}}class J6{constructor(){this.map=[]}add(t,n,r){eV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function eV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const O=r.events[P][1].type;if(O==="lineEnding"||O==="linePrefix")P--;else break}const R=P>-1?r.events[P][1].type:null,F=R==="tableHead"||R==="tableRow"?_:l;return F===_&&r.parser.lazy[r.now().line]?n(A):F(A)}function l(A){return e.enter("tableHead"),e.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,s+=1),d(A)}function d(A){return A===null?n(A):xe(A)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),p):n(A):Ne(A)?Ie(e,d,"whitespace")(A):(s+=1,o&&(o=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),u(A)))}function u(A){return A===null||A===124||Be(A)?(e.exit("data"),d(A)):(e.consume(A),A===92?h:u)}function h(A){return A===92||A===124?(e.consume(A),u):u(A)}function p(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),o=!1,Ne(A)?Ie(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?w(A):A===124?(o=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),b):k(A)}function b(A){return Ne(A)?Ie(e,w,"whitespace")(A):w(A)}function w(A){return A===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),m):A===45?(s+=1,m(A)):A===null||xe(A)?v(A):k(A)}function m(A){return A===45?(e.enter("tableDelimiterFiller"),x(A)):k(A)}function x(A){return A===45?(e.consume(A),x):A===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(A))}function y(A){return Ne(A)?Ie(e,v,"whitespace")(A):v(A)}function v(A){return A===124?g(A):A===null||xe(A)?!o||i!==s?k(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):k(A)}function k(A){return n(A)}function _(A){return e.enter("tableRow"),C(A)}function C(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),C):A===null||xe(A)?(e.exit("tableRow"),t(A)):Ne(A)?Ie(e,C,"whitespace")(A):(e.enter("data"),N(A))}function N(A){return A===null||A===124||Be(A)?(e.exit("data"),C(A)):(e.consume(A),A===92?I:N)}function I(A){return A===92||A===124?(e.consume(A),N):N(A)}}function iV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,u;const h=new J6;for(;++nn[2]+1){const g=n[2]+1,b=n[3]-n[2]-1;e.add(g,b,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Fv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const sV={name:"tasklistCheck",tokenize:aV};function oV(){return{text:{91:sV}}}function aV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return Be(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return xe(l)?t(l):Ne(l)?e.check({tokenize:lV},t,n)(l):n(l)}}function lV(e,t,n){return Ie(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function cV(e){return vT([L6(),H6(),Z6(e),nV(),oV()])}const uV={};function dV(e){const t=this,n=e||uV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(cV(n)),s.push(M6()),o.push(I6(n))}const zv=function(e,t,n){const r=Hl(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=d):d&&(c!==void 0&&c>-1&&l.push(` -`.repeat(c)||" "),c=-1,l.push(d))}return l.join("")}function hA(e,t,n){return e.type==="element"?xV(e,t,n):e.type==="text"?n.whitespace==="normal"?pA(e,n):wV(e):[]}function xV(e,t,n){const r=mA(e,n),i=e.children||[];let s=-1,o=[];if(yV(e))return o;let a,l;for(Km(e)||Kv(e)&&zv(t,e,Kv)?l=` -`:gV(e)?(a=2,l=2):fA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},k={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[k,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function TV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=NV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function gA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],m={match:/(\/[a-z._-]+)+/},x=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],y=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],k=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:w,built_in:[...x,...y,"set","shopt",...v,...k]},contains:[p,e.SHEBANG(),g,u,s,o,m,a,l,c,d,n]}}function AV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",w={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:w,contains:m.concat([{begin:/\(/,end:/\)/,keywords:w,contains:m.concat(["self"]),relevance:0}]),relevance:0},y={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:w,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:w,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:w,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:w,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:w}}}function CV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],w=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:w},k={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},_=[k,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],C={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:_.concat([{begin:/\(/,end:/\)/,keywords:v,contains:_.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function MV(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},d={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(d,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},b={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},w=e.inherit(b,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},y=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,x,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+y+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,x],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const IV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),OV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],RV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],LV=[...OV,...RV],PV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),DV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),jV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),BV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function $V(e){const t=e.regex,n=IV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+DV.join("|")+")"},{begin:":(:)?("+jV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+BV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:PV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+LV.join("|")+")\\b"}]}}function FV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function zV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"bA(e,t,n-1))}function VV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+bA("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},d={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,qv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},qv,c]}}const Gv="[A-Za-z$_][0-9A-Za-z$_]*",HV=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],KV=["true","false","null","undefined","NaN","Infinity"],xA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],wA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],vA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],qV=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],GV=[].concat(vA,xA,wA);function _A(e){const t=e.regex,n=(L,{after:D})=>{const E="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const E=L[0].length+L.index,V=L.input[E];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:E})||D.ignoreMatch());let H;const T=L.input.substring(E);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:Gv,keyword:HV,literal:KV,built_in:GV,"variable.language":qV},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),k=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...xA,...wA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...vA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:k,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},F,P,C,j,{match:/\$[(.]/}]}}function kA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Es="[0-9](_*[0-9])*",jc=`\\.(${Es})`,Bc="[0-9a-fA-F](_*[0-9a-fA-F])*",WV={className:"number",variants:[{begin:`(\\b(${Es})((${jc})|\\.)?|(${jc}))[eE][+-]?(${Es})[fFdD]?\\b`},{begin:`\\b(${Es})((${jc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${jc})[fFdD]?\\b`},{begin:`\\b(${Es})[fFdD]\\b`},{begin:`\\b0[xX]((${Bc})\\.?|(${Bc})?\\.(${Bc}))[pP][+-]?(${Es})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Bc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function YV(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=WV,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=u;return h.variants[1].contains=[u],u.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,a,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},c]}}const XV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),QV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ZV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],JV=[...QV,...ZV],e9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),EA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),SA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),t9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),n9=EA.concat(SA).sort().reverse();function r9(e){const t=XV(e),n=n9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(y){return{className:"string",begin:"~?"+y+".*?"+y}},c=function(y,v,k){return{className:y,begin:v,relevance:k}},d={$pattern:/[a-z-]+/,keyword:r,attribute:e9.join(" ")},u={begin:"\\(",end:"\\)",contains:a,keywords:d,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+t9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:d,returnEnd:!0,contains:a,relevance:0}},w={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+JV.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+EA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},x={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,w,x,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function i9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function NA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),h=e.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[n,l];return[c,d,u,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function s9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function o9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},d=[e.BACKSLASH_ESCAPE,s,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(b,w,m="\\1")=>{const x=m==="\\1"?m:t.concat(m,w);return t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,x,/(?:\\.|[^\\\/])*?/,m,r)},p=(b,w,m)=>t.concat(t.concat("(?:",b,")"),w,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:d,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...u,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function a9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),u={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(O,j)=>{j.data._beginMatch=O[1]||O[2]},"on:end":(O,j)=>{j.data._beginMatch!==O[1]&&j.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ -]`,g={scope:"string",variants:[d,c,u,h]},b={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],x=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(O=>{const j=[];return O.forEach(M=>{j.push(M),M.toLowerCase()===M?j.push(M.toUpperCase()):j.push(M.toLowerCase())}),j})(w),built_in:x},k=O=>O.map(j=>j.replace(/\|\d+$/,"")),_={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",k(x).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},C=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),C],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,_]},P={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",k(m).join("\\b|"),"|",k(x).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(P);const R=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,_],F={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...R]},...R,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[F,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,P,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},_,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",F,o,N,e.C_BLOCK_COMMENT_MODE,g,b]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,b]}}function l9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function c9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function AA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},w={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,u,e.HASH_COMMENT_MODE]}]};return c.contains=[u,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,w,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,m,u]}]}}function u9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function d9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function f9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},_=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);d.contains=_,b.contains=_;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:_}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(c).concat(_)}}function h9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:""},s]}}const p9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),m9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],y9=[...m9,...g9],b9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),x9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),w9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),v9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function _9(e){const t=p9(e),n=w9,r=x9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+y9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+v9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:b9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function k9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function E9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,g=[...c,...l].filter(k=>!d.includes(k)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function x(k){return t.concat(/\b/,t.either(...k.map(_=>_.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:x(h),relevance:0};function v(k,{exceptions:_,when:C}={}){const N=C;return _=_||[],k.map(I=>I.match(/\|\d+$/)||_.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:k=>k.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:x(o)},y,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,w]}}function CA(e){return e?typeof e=="string"?e:e.source:null}function ia(e){return je("(?=",e,")")}function je(...e){return e.map(n=>CA(n)).join("")}function S9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(S9(e).capture?"":"?:")+e.map(r=>CA(r)).join("|")+")"}const x0=e=>je(/\b/,e,/\w$/.test(e)?/\b/:/\B/),N9=["Protocol","Type"].map(x0),Wv=["init","self"].map(x0),T9=["Any","Self"],Hh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Yv=["false","nil","true"],A9=["assignment","associativity","higherThan","left","lowerThan","none","right"],C9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Xv=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],MA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),IA=Ft(MA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Kh=je(MA,IA,"*"),OA=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),fd=Ft(OA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=je(OA,fd,"*"),$c=je(/[A-Z]/,fd,"*"),M9=["attached","autoclosure",je(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",je(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],I9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function O9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...N9,...Wv)],className:{2:"keyword"}},s={match:je(/\./,Ft(...Hh)),relevance:0},o=Hh.filter($=>typeof $=="string").concat(["_|0"]),a=Hh.filter($=>typeof $!="string").concat(T9).map(x0),l={variants:[{className:"keyword",match:Ft(...a,...Wv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(C9),literal:Yv},d=[i,s,l],u={match:je(/\./,Ft(...Xv)),relevance:0},h={className:"built_in",match:je(/\b/,Ft(...Xv),/(?=\()/)},p=[u,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Kh},{match:`\\.(\\.|${IA})+`}]},w=[g,b],m="([0-9]_*)+",x="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=($="")=>({className:"subst",variants:[{match:je(/\\/,$,/[0\\tnr"']/)},{match:je(/\\/,$,/u\{[0-9a-fA-F]{1,8}\}/)}]}),k=($="")=>({className:"subst",match:je(/\\/,$,/[\t ]*(?:[\r\n]|\r\n)/)}),_=($="")=>({className:"subst",label:"interpol",begin:je(/\\/,$,/\(/),end:/\)/}),C=($="")=>({begin:je($,/"""/),end:je(/"""/,$),contains:[v($),k($),_($)]}),N=($="")=>({begin:je($,/"/),end:je(/"/,$),contains:[v($),_($)]}),I={className:"string",variants:[C(),C("#"),C("##"),C("###"),N(),N("#"),N("##"),N("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],P={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},R=$=>{const G=je($,/\//),X=je(/\//,$);return{begin:G,end:X,contains:[...A,{scope:"comment",begin:`#(?!.*${X})`,end:/$/}]}},F={scope:"regexp",variants:[R("###"),R("##"),R("#"),P]},O={match:je(/`/,Qn,/`/)},j={className:"variable",match:/\$\d+/},M={className:"variable",match:`\\$${fd}+`},B=[O,j,M],L={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:I9,contains:[...w,y,I]}]}},D={scope:"keyword",match:je(/@/,Ft(...M9),ia(Ft(/\(/,/\s+/)))},E={scope:"meta",match:je(/@/,Qn)},V=[L,D,E],H={match:ia(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:je(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,fd,"+")},{className:"type",match:$c,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:je(/\s+&\s+/,ia($c)),relevance:0}]},T={begin://,keywords:c,contains:[...r,...d,...V,g,H]};H.contains.push(T);const U={match:je(Qn,/\s*:/),keywords:"_|0",relevance:0},Y={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",U,...r,F,...d,...p,...w,y,I,...B,...V,H]},Z={begin://,keywords:"repeat each",contains:[...r,H]},J={begin:Ft(ia(je(Qn,/\s*:/)),ia(je(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},q={begin:/\(/,end:/\)/,keywords:c,contains:[J,...r,...d,...w,y,I,...V,H,Y],endsParent:!0,illegal:/["']/},ee={match:[/(func|macro)/,/\s+/,Ft(O.match,Qn,Kh)],className:{1:"keyword",3:"title.function"},contains:[Z,q,t],illegal:[/\[/,/%/]},le={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,q,t],illegal:/\[|%/},ce={match:[/operator/,/\s+/,Kh],className:{1:"keyword",3:"title"}},ae={begin:[/precedencegroup/,/\s+/,$c],className:{1:"keyword",3:"title"},contains:[H],keywords:[...A9,...Yv],end:/}/},se={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},ye={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},W={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[Z,...d,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:$c},...d],relevance:0}]};for(const $ of I.variants){const G=$.contains.find(me=>me.label==="interpol");G.keywords=c;const X=[...d,...p,...w,y,I,...B];G.contains=[...X,{begin:/\(/,end:/\)/,contains:["self",...X]}]}return{name:"Swift",keywords:c,contains:[...r,ee,le,se,ye,W,ce,ae,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},F,...d,...p,...w,y,I,...B,...V,H,Y]}}const hd="[A-Za-z$_][0-9A-Za-z$_]*",RA=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],LA=["true","false","null","undefined","NaN","Infinity"],PA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],DA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],jA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],BA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],$A=[].concat(jA,PA,DA);function R9(e){const t=e.regex,n=(L,{after:D})=>{const E="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,D)=>{const E=L[0].length+L.index,V=L.input[E];if(V==="<"||V===","){D.ignoreMatch();return}V===">"&&(n(L,{after:E})||D.ignoreMatch());let H;const T=L.input.substring(E);if(H=T.match(/^\s*=/)){D.ignoreMatch();return}if((H=T.match(/^\s+extends\s+/))&&H.index===0){D.ignoreMatch();return}}},a={$pattern:hd,keyword:RA,literal:LA,built_in:$A,"variable.language":BA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},y=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,{match:/\$\d+/},u];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(x,h.contains),k=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),_={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k},C={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...PA,...DA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],illegal:/%/},P={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...jA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},_]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",B={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:k,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,w,x,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},B,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:k}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[_]},F,P,C,j,{match:/\$[(.]/}]}}function FA(e){const t=e.regex,n=R9(e),r=hd,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:hd,keyword:RA.concat(l),literal:LA,built_in:$A.concat(i),"variable.language":BA},d={className:"meta",begin:"@"+r},u=(b,w,m)=>{const x=b.contains.findIndex(y=>y.label===w);if(x===-1)throw new Error("can not find mode to replace");b.contains.splice(x,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(d);const h=n.contains.find(b=>b.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([d,s,o,p]),u(n,"shebang",e.SHEBANG()),u(n,"use_strict",a);const g=n.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function L9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},d={className:"label",begin:/^\w+:/},u=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,d,u,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function P9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function D9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function zA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},w=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,b,s,o],m=[...w];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}const j9={arduino:TV,bash:gA,c:AV,cpp:CV,csharp:MV,css:$V,diff:FV,go:zV,graphql:UV,ini:yA,java:VV,javascript:_A,json:kA,kotlin:YV,less:r9,lua:i9,makefile:NA,markdown:TA,objectivec:s9,perl:o9,php:a9,"php-template":l9,plaintext:c9,python:AA,"python-repl":u9,r:d9,ruby:f9,rust:h9,scss:_9,shell:k9,sql:E9,swift:O9,typescript:FA,vbnet:L9,wasm:P9,xml:D9,yaml:zA};function UA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&UA(n)}),e}let Qv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function VA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const B9="
",Zv=e=>!!e.scope,$9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class F9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=VA(t)}openNode(t){if(!Zv(t))return;const n=$9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Zv(t)&&(this.buffer+=B9)}value(){return this.buffer}span(t){this.buffer+=``}}const Jv=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class w0{constructor(){this.rootNode=Jv(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Jv({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{w0._collapse(n)}))}}class z9 extends w0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new F9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function gl(e){return e?typeof e=="string"?e:e.source:null}function HA(e){return us("(?=",e,")")}function U9(e){return us("(?:",e,")*")}function V9(e){return us("(?:",e,")?")}function us(...e){return e.map(n=>gl(n)).join("")}function H9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function v0(...e){return"("+(H9(e).capture?"":"?:")+e.map(r=>gl(r)).join("|")+")"}function KA(e){return new RegExp(e.toString()+"|").exec("").length-1}function K9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const q9=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=gl(r),o="";for(;s.length>0;){const a=q9.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const G9=/\b\B/,qA="[a-zA-Z]\\w*",k0="[a-zA-Z_]\\w*",GA="\\b\\d+(\\.\\d+)?",WA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",YA="\\b(0b[01]+)",W9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Y9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=us(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yl={begin:"\\\\[\\s\\S]",relevance:0},X9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yl]},Q9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yl]},Z9={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},sf=function(e,t,n={}){const r=Yr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=v0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:us(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},J9=sf("//","$"),e8=sf("/\\*","\\*/"),t8=sf("#","$"),n8={scope:"number",begin:GA,relevance:0},r8={scope:"number",begin:WA,relevance:0},i8={scope:"number",begin:YA,relevance:0},s8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yl,{begin:/\[/,end:/\]/,relevance:0,contains:[yl]}]},o8={scope:"title",begin:qA,relevance:0},a8={scope:"title",begin:k0,relevance:0},l8={begin:"\\.\\s*"+k0,relevance:0},c8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Fc=Object.freeze({__proto__:null,APOS_STRING_MODE:X9,BACKSLASH_ESCAPE:yl,BINARY_NUMBER_MODE:i8,BINARY_NUMBER_RE:YA,COMMENT:sf,C_BLOCK_COMMENT_MODE:e8,C_LINE_COMMENT_MODE:J9,C_NUMBER_MODE:r8,C_NUMBER_RE:WA,END_SAME_AS_BEGIN:c8,HASH_COMMENT_MODE:t8,IDENT_RE:qA,MATCH_NOTHING_RE:G9,METHOD_GUARD:l8,NUMBER_MODE:n8,NUMBER_RE:GA,PHRASAL_WORDS_MODE:Z9,QUOTE_STRING_MODE:Q9,REGEXP_MODE:s8,RE_STARTERS_RE:W9,SHEBANG:Y9,TITLE_MODE:o8,UNDERSCORE_IDENT_RE:k0,UNDERSCORE_TITLE_MODE:a8});function u8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function d8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function f8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=u8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function h8(e,t){Array.isArray(e.illegal)&&(e.illegal=v0(...e.illegal))}function p8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function m8(e,t){e.relevance===void 0&&(e.relevance=1)}const g8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=us(n.beforeMatch,HA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},y8=["of","and","for","in","not","or","if","then","parent","list","value"],b8="keyword";function XA(e,t,n=b8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,XA(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,x8(l[0],l[1])]})}}function x8(e,t){return t?Number(t):w8(e)?0:1}function w8(e){return y8.includes(e.toLowerCase())}const e1={},$i=e=>{console.error(e)},t1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},bs=(e,t)=>{e1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),e1[`${e}/${t}`]=!0)},pd=new Error;function QA(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=KA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function v8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pd;if(typeof e.beginScope!="object"||e.beginScope===null)throw $i("beginScope must be object"),pd;QA(e,e.begin,{key:"beginScope"}),e.begin=_0(e.begin,{joinWith:""})}}function _8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pd;if(typeof e.endScope!="object"||e.endScope===null)throw $i("endScope must be object"),pd;QA(e,e.end,{key:"endScope"}),e.end=_0(e.end,{joinWith:""})}}function k8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function E8(e){k8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),v8(e),_8(e)}function S8(e){function t(o,a){return new RegExp(gl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=KA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(_0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[d8,p8,E8,g8].forEach(d=>d(o,a)),e.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[f8,h8,m8].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=XA(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=gl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return N8(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yr(e.classNameAliases||{}),s(e)}function ZA(e){return e?e.endsWithParent||ZA(e.starts):!1}function N8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ZA(e)?Yr(e,{starts:e.starts?Yr(e.starts):null}):Object.isFrozen(e)?Yr(e):e}var T8="11.11.1";class A8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const qh=VA,n1=Yr,r1=Symbol("nomatch"),C8=7,JA=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:z9};function l(M){return a.noHighlightRe.test(M)}function c(M){let B=M.className+" ";B+=M.parentNode?M.parentNode.className:"";const L=a.languageDetectRe.exec(B);if(L){const D=N(L[1]);return D||(t1(s.replace("{}",L[1])),t1("Falling back to no-highlight mode for this block.",M)),D?L[1]:"no-highlight"}return B.split(/\s+/).find(D=>l(D)||N(D))}function d(M,B,L){let D="",E="";typeof B=="object"?(D=M,L=B.ignoreIllegals,E=B.language):(bs("10.7.0","highlight(lang, code, ...args) has been deprecated."),bs("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),E=M,D=B),L===void 0&&(L=!0);const V={code:D,language:E};O("before:highlight",V);const H=V.result?V.result:u(V.language,V.code,L);return H.code=V.code,O("after:highlight",H),H}function u(M,B,L,D){const E=Object.create(null);function V(z,K){return z.keywords[K]}function H(){if(!X.keywords){pe.addText(de);return}let z=0;X.keywordPatternRe.lastIndex=0;let K=X.keywordPatternRe.exec(de),te="";for(;K;){te+=de.substring(z,K.index);const oe=W.case_insensitive?K[0].toLowerCase():K[0],we=V(X,oe);if(we){const[Le,$t]=we;if(pe.addText(te),te="",E[oe]=(E[oe]||0)+1,E[oe]<=C8&&(Ae+=$t),Le.startsWith("_"))te+=K[0];else{const _t=W.classNameAliases[Le]||Le;Y(K[0],_t)}}else te+=K[0];z=X.keywordPatternRe.lastIndex,K=X.keywordPatternRe.exec(de)}te+=de.substring(z),pe.addText(te)}function T(){if(de==="")return;let z=null;if(typeof X.subLanguage=="string"){if(!t[X.subLanguage]){pe.addText(de);return}z=u(X.subLanguage,de,!0,me[X.subLanguage]),me[X.subLanguage]=z._top}else z=p(de,X.subLanguage.length?X.subLanguage:null);X.relevance>0&&(Ae+=z.relevance),pe.__addSublanguage(z._emitter,z.language)}function U(){X.subLanguage!=null?T():H(),de=""}function Y(z,K){z!==""&&(pe.startScope(K),pe.addText(z),pe.endScope())}function Z(z,K){let te=1;const oe=K.length-1;for(;te<=oe;){if(!z._emit[te]){te++;continue}const we=W.classNameAliases[z[te]]||z[te],Le=K[te];we?Y(Le,we):(de=Le,H(),de=""),te++}}function J(z,K){return z.scope&&typeof z.scope=="string"&&pe.openNode(W.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(Y(de,W.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),de=""):z.beginScope._multi&&(Z(z.beginScope,K),de="")),X=Object.create(z,{parent:{value:X}}),X}function q(z,K,te){let oe=K9(z.endRe,te);if(oe){if(z["on:end"]){const we=new Qv(z);z["on:end"](K,we),we.isMatchIgnored&&(oe=!1)}if(oe){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return q(z.parent,K,te)}function ee(z){return X.matcher.regexIndex===0?(de+=z[0],1):(Pe=!0,0)}function le(z){const K=z[0],te=z.rule,oe=new Qv(te),we=[te.__beforeBegin,te["on:begin"]];for(const Le of we)if(Le&&(Le(z,oe),oe.isMatchIgnored))return ee(K);return te.skip?de+=K:(te.excludeBegin&&(de+=K),U(),!te.returnBegin&&!te.excludeBegin&&(de=K)),J(te,z),te.returnBegin?0:K.length}function ce(z){const K=z[0],te=B.substring(z.index),oe=q(X,z,te);if(!oe)return r1;const we=X;X.endScope&&X.endScope._wrap?(U(),Y(K,X.endScope._wrap)):X.endScope&&X.endScope._multi?(U(),Z(X.endScope,z)):we.skip?de+=K:(we.returnEnd||we.excludeEnd||(de+=K),U(),we.excludeEnd&&(de=K));do X.scope&&pe.closeNode(),!X.skip&&!X.subLanguage&&(Ae+=X.relevance),X=X.parent;while(X!==oe.parent);return oe.starts&&J(oe.starts,z),we.returnEnd?0:K.length}function ae(){const z=[];for(let K=X;K!==W;K=K.parent)K.scope&&z.unshift(K.scope);z.forEach(K=>pe.openNode(K))}let se={};function ye(z,K){const te=K&&K[0];if(de+=z,te==null)return U(),0;if(se.type==="begin"&&K.type==="end"&&se.index===K.index&&te===""){if(de+=B.slice(K.index,K.index+1),!i){const oe=new Error(`0 width match regex (${M})`);throw oe.languageName=M,oe.badRule=se.rule,oe}return 1}if(se=K,K.type==="begin")return le(K);if(K.type==="illegal"&&!L){const oe=new Error('Illegal lexeme "'+te+'" for mode "'+(X.scope||"")+'"');throw oe.mode=X,oe}else if(K.type==="end"){const oe=ce(K);if(oe!==r1)return oe}if(K.type==="illegal"&&te==="")return de+=` -`,1;if(mt>1e5&&mt>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return de+=te,te.length}const W=N(M);if(!W)throw $i(s.replace("{}",M)),new Error('Unknown language: "'+M+'"');const $=S8(W);let G="",X=D||$;const me={},pe=new a.__emitter(a);ae();let de="",Ae=0,_e=0,mt=0,Pe=!1;try{if(W.__emitTokens)W.__emitTokens(B,pe);else{for(X.matcher.considerAll();;){mt++,Pe?Pe=!1:X.matcher.considerAll(),X.matcher.lastIndex=_e;const z=X.matcher.exec(B);if(!z)break;const K=B.substring(_e,z.index),te=ye(K,z);_e=z.index+te}ye(B.substring(_e))}return pe.finalize(),G=pe.toHTML(),{language:M,value:G,relevance:Ae,illegal:!1,_emitter:pe,_top:X}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:M,value:qh(B),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:_e,context:B.slice(_e-100,_e+100),mode:z.mode,resultSoFar:G},_emitter:pe};if(i)return{language:M,value:qh(B),illegal:!1,relevance:0,errorRaised:z,_emitter:pe,_top:X};throw z}}function h(M){const B={value:qh(M),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return B._emitter.addText(M),B}function p(M,B){B=B||a.languages||Object.keys(t);const L=h(M),D=B.filter(N).filter(A).map(U=>u(U,M,!1));D.unshift(L);const E=D.sort((U,Y)=>{if(U.relevance!==Y.relevance)return Y.relevance-U.relevance;if(U.language&&Y.language){if(N(U.language).supersetOf===Y.language)return 1;if(N(Y.language).supersetOf===U.language)return-1}return 0}),[V,H]=E,T=V;return T.secondBest=H,T}function g(M,B,L){const D=B&&n[B]||L;M.classList.add("hljs"),M.classList.add(`language-${D}`)}function b(M){let B=null;const L=c(M);if(l(L))return;if(O("before:highlightElement",{el:M,language:L}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),a.throwUnescapedHTML))throw new A8("One of your code blocks includes unescaped HTML.",M.innerHTML);B=M;const D=B.textContent,E=L?d(D,{language:L,ignoreIllegals:!0}):p(D);M.innerHTML=E.value,M.dataset.highlighted="yes",g(M,L,E.language),M.result={language:E.language,re:E.relevance,relevance:E.relevance},E.secondBest&&(M.secondBest={language:E.secondBest.language,relevance:E.secondBest.relevance}),O("after:highlightElement",{el:M,result:E,text:D})}function w(M){a=n1(a,M)}const m=()=>{v(),bs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){v(),bs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function v(){function M(){v()}if(document.readyState==="loading"){y||window.addEventListener("DOMContentLoaded",M,!1),y=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function k(M,B){let L=null;try{L=B(e)}catch(D){if($i("Language definition for '{}' could not be registered.".replace("{}",M)),i)$i(D);else throw D;L=o}L.name||(L.name=M),t[M]=L,L.rawDefinition=B.bind(null,e),L.aliases&&I(L.aliases,{languageName:M})}function _(M){delete t[M];for(const B of Object.keys(n))n[B]===M&&delete n[B]}function C(){return Object.keys(t)}function N(M){return M=(M||"").toLowerCase(),t[M]||t[n[M]]}function I(M,{languageName:B}){typeof M=="string"&&(M=[M]),M.forEach(L=>{n[L.toLowerCase()]=B})}function A(M){const B=N(M);return B&&!B.disableAutodetect}function P(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=B=>{M["before:highlightBlock"](Object.assign({block:B.el},B))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=B=>{M["after:highlightBlock"](Object.assign({block:B.el},B))})}function R(M){P(M),r.push(M)}function F(M){const B=r.indexOf(M);B!==-1&&r.splice(B,1)}function O(M,B){const L=M;r.forEach(function(D){D[L]&&D[L](B)})}function j(M){return bs("10.7.0","highlightBlock will be removed entirely in v12.0"),bs("10.7.0","Please use highlightElement now."),b(M)}Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:j,configure:w,initHighlighting:m,initHighlightingOnLoad:x,registerLanguage:k,unregisterLanguage:_,listLanguages:C,getLanguage:N,registerAliases:I,autoDetection:A,inherit:n1,addPlugin:R,removePlugin:F}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=T8,e.regex={concat:us,lookahead:HA,either:v0,optional:V9,anyNumberOfTimes:U9};for(const M in Fc)typeof Fc[M]=="object"&&UA(Fc[M]);return Object.assign(e,Fc),e},bo=JA({});bo.newInstance=()=>JA({});var M8=bo;bo.HighlightJS=bo;bo.default=bo;const tn=Ml(M8),i1={},I8="hljs-";function O8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,d){const u=d||i1,h=typeof u.prefix=="string"?u.prefix:I8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:R8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,b=g.data;return b.language=p.language,b.relevance=p.relevance,g}function r(l,c){const u=(c||i1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=w.data.relevance,g=w)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let d;for(d in l)Object.hasOwn(l,d)&&t.registerLanguage(d,l[d])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let d;for(d in l)if(Object.hasOwn(l,d)){const u=l[d];t.registerAliases(typeof u=="string"?u:[...u],{languageName:d})}}}function a(l){return!!t.getLanguage(l)}}class R8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const L8={};function P8(e){const t=e||L8,n=t.aliases,r=t.detect||!1,i=t.languages||j9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=O8(i);if(n&&c.registerAlias(n),o){const d=o.indexOf("-");l=d===-1?o:o.slice(0,d)}return function(d,u){rf(d,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=D8(h);if(b===!1||!b&&!r||b&&s&&s.includes(b))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const w=bV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,w,{prefix:o}):c.highlightAuto(w,{prefix:o,subset:a})}catch(x){const y=x;if(b&&/Unknown language/.test(y.message)){u.message("Cannot highlight as `"+b+"`, it’s not registered",{ancestors:[g,h],cause:y,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw y}!b&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function D8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const E0=S.memo(j8),eC="send_a2ui_json_to_client";function B8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function tC({text:e,done:t}){const[n,r]=S.useState(!t),i=S.useRef(!1);S.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=oT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(B8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Gn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function $8(){return f.jsx(tC,{text:"",done:!1})}function F8({name:e,args:t,response:n,done:r}){const[i,s]=S.useState(!1),o=e===eC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` -…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Gn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function z8({block:e,onAuth:t}){const[n,r]=S.useState(e.done?"done":"idle"),[i,s]=S.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(d){s(d instanceof Error?d.message:String(d)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(Dw,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(Dw,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function U8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(tC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(E0,{text:s})},i):null}case"tool":return r.name===eC&&r.done?null:f.jsx(F8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(z8,{block:r,onAuth:n},i);case"a2ui":return sT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(xF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function V8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=S.useRef(null),c=S.useRef(null),d=S.useRef(null),[u,h]=S.useState(!1);S.useLayoutEffect(()=>{const w=l.current;w&&(w.style.height="auto",w.style.height=`${Math.min(w.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(w){var m;h(!1),(m=w.current)==null||m.click()}function b(w){w.target.files&&w.target.files.length&&o(w.target.files),w.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((w,m)=>f.jsx(H8,{mimeType:w.mimeType,data:w.data,name:w.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(w=>!w),children:f.jsx(ss,{className:"icon"})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(UB,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(d),children:[f.jsx(qy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:w=>t(w.target.value),onKeyDown:w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(bt,{className:"icon spin"}):f.jsx(_B,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:d,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function H8({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(Fl,{className:"icon"})})]})}function nC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Gn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const S0=Symbol.for("yaml.alias"),qm=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),rC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),$o=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Fo=e=>!!e&&typeof e=="object"&&e[Cn]===S0,ql=e=>!!e&&typeof e=="object"&&e[Cn]===qm,Gl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,lt=e=>!!e&&typeof e=="object"&&e[Cn]===rC,ze=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Wl=e=>!!e&&typeof e=="object"&&e[Cn]===$o;function ot(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case $o:return!0}return!1}function at(e){if(e&&typeof e=="object")switch(e[Cn]){case S0:case ii:case ar:case $o:return!0}return!1}const iC=e=>(ze(e)||ot(e))&&!!e.anchor,Ni=Symbol("break visit"),K8=Symbol("skip children"),ja=Symbol("remove node");function zo(e,t){const n=q8(t);ql(e)?Vs(null,e.contents,n,Object.freeze([e]))===ja&&(e.contents=null):Vs(null,e,n,Object.freeze([]))}zo.BREAK=Ni;zo.SKIP=K8;zo.REMOVE=ja;function Vs(e,t,n,r){const i=G8(e,t,n,r);if(at(i)||lt(i))return W8(e,r,i),Vs(e,i,n,r);if(typeof i!="symbol"){if(ot(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>Y8[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+X8(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&&at(t.contents)){const s={};zo(t.contents,(o,a)=>{at(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` -`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function sC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function oC(e){const t=new Set;return zo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function aC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function Q8(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=oC(e));const o=aC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(ze(o.node)||ot(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function Hs(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!iC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class N0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!ql(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?Hs(s,{"":a},"",a):a}}class T0 extends N0{constructor(t){super(S0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],zo(t,{Node:(s,o)=>{(Fo(o)||iC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=xu(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(sC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function xu(e,t,n){if(Fo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(ot(t)){let r=0;for(const i of t.items){const s=xu(e,i,n);s>r&&(r=s)}return r}else if(lt(t)){const r=xu(e,t.key,n),i=xu(e,t.value,n);return Math.max(r,i)}return 1}const lC=e=>!e||typeof e!="function"&&typeof e!="object";class Ee extends N0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}Ee.BLOCK_FOLDED="BLOCK_FOLDED";Ee.BLOCK_LITERAL="BLOCK_LITERAL";Ee.PLAIN="PLAIN";Ee.QUOTE_DOUBLE="QUOTE_DOUBLE";Ee.QUOTE_SINGLE="QUOTE_SINGLE";const Z8="tag:yaml.org,2002:";function J8(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function bl(e,t,n){var u,h,p;if(ql(e)&&(e=e.contents),at(e))return e;if(lt(e)){const g=(h=(u=n.schema[ii]).createNode)==null?void 0:h.call(u,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new T0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=Z8+t.slice(2));let c=J8(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new Ee(e);return l&&(l.node=g),g}c=e instanceof Map?o[ii]:Symbol.iterator in Object(e)?o[$o]:o[ii]}s&&(s(c),delete n.onTagObj);const d=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new Ee(e);return t?d.tag=t:c.default||(d.tag=c.tag),l&&(l.node=d),d}function md(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return bl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ya=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class cC extends N0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>at(r)||lt(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ya(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(ot(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(ot(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&ze(s)?s.value:s:ot(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!lt(n))return!1;const r=n.value;return r==null||t&&ze(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return ot(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(ot(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,md(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const eH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Ri=(e,t,n)=>e.endsWith(` -`)?xr(n,t):n.includes(` -`)?` -`+xr(n,t):(e.endsWith(" ")?"":" ")+n,uC="flow",Gm="block",wu="quoted";function of(e,t,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,s)?c.push(0):u=i-r);let h,p,g=!1,b=-1,w=-1,m=-1;n===Gm&&(b=s1(e,b,t.length),b!==-1&&(u=b+l));for(let y;y=e[b+=1];){if(n===wu&&y==="\\"){switch(w=b,e[b+1]){case"x":b+=3;break;case"u":b+=5;break;case"U":b+=9;break;default:b+=1}m=b}if(y===` -`)n===Gm&&(b=s1(e,b,t.length)),u=b+t.length+l,h=void 0;else{if(y===" "&&p&&p!==" "&&p!==` -`&&p!==" "){const v=e[b+1];v&&v!==" "&&v!==` -`&&v!==" "&&(h=b)}if(b>=u)if(h)c.push(h),u=h+l,h=void 0;else if(n===wu){for(;p===" "||p===" ";)p=y,y=e[b+=1],g=!0;const v=b>m+1?b-2:w-1;if(d[v])return e;c.push(v),d[v]=!0,u=v+l,h=void 0}else g=!0}p=y}if(g&&a&&a(),c.length===0)return e;o&&o();let x=e.slice(0,c[0]);for(let y=0;y({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),lf=e=>/^(%|---|\.\.\.)/m.test(e);function tH(e,t,n){if(!t||t<0)return!1;const r=t-n,i=e.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function Ba(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(lf(e)?" ":"");let o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);const d=n.substr(l+2,4);switch(d){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||n[l+2]==='"'||n.length -`;let u,h;for(h=n.length;h>0;--h){const k=n[h-1];if(k!==` -`&&k!==" "&&k!==" ")break}let p=n.substring(h);const g=p.indexOf(` -`);g===-1?u="-":n===p||g!==p.length-1?(u="+",s&&s()):u="",p&&(n=n.slice(0,-p.length),p[p.length-1]===` -`&&(p=p.slice(0,-1)),p=p.replace(Ym,`$&${c}`));let b=!1,w,m=-1;for(w=0;w{_=!0});const N=of(`${x}${k}${p}`,c,Gm,C);if(!_)return`>${v} -${c}${N}`}return n=n.replace(/\n+/g,`$&${c}`),`|${v} -${c}${x}${n}${p}`}function nH(e,t,n,r){const{type:i,value:s}=e,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=t;if(a&&s.includes(` -`)||d&&/[[\]{},]/.test(s))return Ks(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||d||!s.includes(` -`)?Ks(s,t):vu(e,t,n,r);if(!a&&!d&&i!==Ee.PLAIN&&s.includes(` -`))return vu(e,t,n,r);if(lf(s)){if(l==="")return t.forceBlockIndent=!0,vu(e,t,n,r);if(a&&l===c)return Ks(s,t)}const u=s.replace(/\n+/g,`$& -${l}`);if(o){const h=b=>{var w;return b.default&&b.tag!=="tag:yaml.org,2002:str"&&((w=b.test)==null?void 0:w.test(u))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ks(s,t)}return a?u:of(u,l,uC,af(t,!1))}function A0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==Ee.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ee.QUOTE_DOUBLE);const l=d=>{switch(d){case Ee.BLOCK_FOLDED:case Ee.BLOCK_LITERAL:return i||s?Ks(o.value,t):vu(o,t,n,r);case Ee.QUOTE_DOUBLE:return Ba(o.value,t);case Ee.QUOTE_SINGLE:return Wm(o.value,t);case Ee.PLAIN:return nH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:d,defaultStringType:u}=t.options,h=i&&d||u;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function dC(e,t){const n=Object.assign({blockQuote:!0,commentString:eH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function rH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(ze(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function iH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(ze(e)||ot(e))&&e.anchor;s&&sC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(lt(e))return e.toString(t,n,r);if(Fo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=at(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=rH(t.doc.schema.tags,s));const o=iH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):ze(s)?A0(s,t,n,r):s.toString(t,n,r);return o?ze(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} -${t.indent}${a}`:a}function sH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n;let h=at(e)&&e.comment||null;if(u){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(ot(e)||!at(e)&&typeof e=="object"){const C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!e||h&&t==null&&!n.inFlow||ot(e)||(ze(e)?e.type===Ee.BLOCK_FOLDED||e.type===Ee.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!s),indent:a+l});let g=!1,b=!1,w=xo(e,n,()=>g=!0,()=>b=!0);if(!p&&!n.inFlow&&w.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),w===""?"?":p?`? ${w}`:w}else if(s&&!u||t==null&&p)return w=`? ${w}`,h&&!g?w+=Ri(w,n.indent,c(h)):b&&i&&i(),w;g&&(h=null),p?(h&&(w+=Ri(w,n.indent,c(h))),w=`? ${w} -${a}:`):(w=`${w}:`,h&&(w+=Ri(w,n.indent,c(h))));let m,x,y;at(t)?(m=!!t.spaceBefore,x=t.commentBefore,y=t.comment):(m=!1,x=null,y=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&ze(t)&&(n.indentAtStart=w.length+1),b=!1,!d&&l.length>=2&&!n.inFlow&&!p&&Wl(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const k=xo(t,n,()=>v=!0,()=>b=!0);let _=" ";if(h||m||x){if(_=m?` -`:"",x){const C=c(x);_+=` -${xr(C,n.indent)}`}k===""&&!n.inFlow?_===` -`&&y&&(_=` - -`):_+=` -${n.indent}`}else if(!p&&ot(t)){const C=k[0],N=k.indexOf(` -`),I=N!==-1,A=n.inFlow??t.flow??t.items.length===0;if(I||!A){let P=!1;if(I&&(C==="&"||C==="!")){let R=k.indexOf(" ");C==="&"&&R!==-1&&Re===zc||typeof e=="symbol"&&e.description===zc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ee(Symbol(zc)),{addToJSMap:hC}),stringify:()=>zc},oH=(e,t)=>(Er.identify(t)||ze(t)&&(!t.type||t.type===Ee.PLAIN)&&Er.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===Er.tag&&n.default));function hC(e,t,n){const r=pC(e,n);if(Wl(r))for(const i of r.items)Gh(e,t,i);else if(Array.isArray(r))for(const i of r)Gh(e,t,i);else Gh(e,t,r)}function Gh(e,t,n){const r=pC(e,n);if(!Gl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function pC(e,t){return e&&Fo(t)?t.resolve(e.doc,e):t}function mC(e,t,{key:n,value:r}){if(at(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(oH(e,n))hC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=aH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function aH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(at(e)&&(n!=null&&n.doc)){const r=dC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),fC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function C0(e,t,n){const r=bl(e,void 0,n),i=bl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:rC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return at(n)&&(n=n.clone(t)),at(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return mC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?sH(this,t,n,r):JSON.stringify(this)}}function gC(e,t,n){return(t.inFlow??e.flow?cH:lH)(e,t,n)}function lH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:s,type:null});let u=!1;const h=[];for(let g=0;gw=null,()=>u=!0);w&&(m+=Ri(m,s,c(w))),u&&w&&(u=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;gw=null);c||(c=u.length>d||m.includes(` -`)),g0&&(c||(c=u.reduce((x,y)=>x+y.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),w&&(m+=Ri(m,r,a(w))),u.push(m),d=u.length}const{start:h,end:p}=n;if(u.length===0)return h+p;if(!c){const g=u.reduce((b,w)=>b+w.length+2,2);c=t.options.lineWidth>0&&g>t.options.lineWidth}if(c){let g=h;for(const b of u)g+=b?` -${s}${i}${b}`:` -`;return`${g} -${i}${p}`}else return`${h}${o}${u.join(" ")}${o}${p}`}function gd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=xr(t(r),e);n.push(s.trimStart())}}function Li(e,t){const n=ze(t)?t.value:t;for(const r of e)if(lt(r)&&(r.key===t||r.key===n||ze(r.key)&&r.key.value===n))return r}class kn extends cC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ii,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(C0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;lt(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Li(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);ze(i.value)&&lC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Li(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Li(this.items,t),i=r==null?void 0:r.value;return(!n&&ze(i)?i.value:i)??void 0}has(t){return!!Li(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)mC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!lt(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),gC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Uo={collection:"map",default:!0,nodeClass:kn,tag:"tag:yaml.org,2002:map",resolve(e,t){return Gl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>kn.from(e,t,n)};class Xi extends cC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super($o,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=Uc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=Uc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&ze(i)?i.value:i}has(t){const n=Uc(t);return typeof n=="number"&&n=0?t:null}const Vo={collection:"seq",default:!0,nodeClass:Xi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Wl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Xi.from(e,t,n)},cf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),A0(e,t,n,r)}},uf={identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ee(null),stringify:({source:e},t)=>typeof e=="string"&&uf.test.test(e)?e:t.options.nullStr},M0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ee(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&M0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Wn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const yC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},bC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},xC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Ee(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Wn},df=e=>typeof e=="bigint"||Number.isInteger(e),I0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function wC(e,t,n){const{value:r}=e;return df(r)&&r>=0?n+r.toString(t):Wn(e)}const vC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>I0(e,2,8,n),stringify:e=>wC(e,8,"0o")},_C={identify:df,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>I0(e,0,10,n),stringify:Wn},kC={identify:e=>df(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>I0(e,2,16,n),stringify:e=>wC(e,16,"0x")},uH=[Uo,Vo,cf,uf,M0,vC,_C,kC,yC,bC,xC];function o1(e){return typeof e=="bigint"||Number.isInteger(e)}const Vc=({value:e})=>JSON.stringify(e),dH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Vc},{identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Vc},{identify:o1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>o1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Vc}],fH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},hH=[Uo,Vo].concat(dH,fH),O0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new Ee(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} -${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} -${s.comment}`:r.comment}r=i}e.items[n]=lt(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function SC(e,t,n){const{replacer:r}=n,i=new Xi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(C0(a,l,n))}return i}const R0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:EC,createNode:SC};class to extends Xi{constructor(){super(),this.add=kn.prototype.add.bind(this),this.delete=kn.prototype.delete.bind(this),this.get=kn.prototype.get.bind(this),this.has=kn.prototype.has.bind(this),this.set=kn.prototype.set.bind(this),this.tag=to.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(lt(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=SC(t,n,r),s=new this;return s.items=i.items,s}}to.tag="tag:yaml.org,2002:omap";const L0={collection:"seq",identify:e=>e instanceof Map,nodeClass:to,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=EC(e,t),r=[];for(const{key:i}of n.items)ze(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new to,n)},createNode:(e,t,n)=>to.from(e,t,n)};function NC({value:e,source:t},n){return t&&(e?TC:AC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const TC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ee(!0),stringify:NC},AC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ee(!1),stringify:NC},pH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Wn},mH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Wn(e)}},gH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Ee(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Wn},Yl=e=>typeof e=="bigint"||Number.isInteger(e);function ff(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function P0(e,t,n){const{value:r}=e;if(Yl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Wn(e)}const yH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ff(e,2,2,n),stringify:e=>P0(e,2,"0b")},bH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ff(e,1,8,n),stringify:e=>P0(e,8,"0")},xH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ff(e,0,10,n),stringify:Wn},wH={identify:Yl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ff(e,2,16,n),stringify:e=>P0(e,16,"0x")};class no extends kn{constructor(t){super(t),this.tag=no.tag}add(t){let n;lt(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Li(this.items,n.key)||this.items.push(n)}get(t,n){const r=Li(this.items,t);return!n&<(r)?ze(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Li(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(C0(o,null,r));return s}}no.tag="tag:yaml.org,2002:set";const D0={collection:"map",identify:e=>e instanceof Set,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>no.from(e,t,n),resolve(e,t){if(Gl(e)){if(e.hasAllNullValues(!0))return Object.assign(new no,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function j0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function CC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Wn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const MC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>j0(e,n),stringify:CC},IC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>j0(e,!1),stringify:CC},hf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(hf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const d=t[8];if(d&&d!=="Z"){let u=j0(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},a1=[Uo,Vo,cf,uf,TC,AC,yH,bH,xH,wH,pH,mH,gH,O0,Er,L0,R0,D0,MC,IC,hf],l1=new Map([["core",uH],["failsafe",[Uo,Vo,cf]],["json",hH],["yaml11",a1],["yaml-1.1",a1]]),c1={binary:O0,bool:M0,float:xC,floatExp:bC,floatNaN:yC,floatTime:IC,int:_C,intHex:kC,intOct:vC,intTime:MC,map:Uo,merge:Er,null:uf,omap:L0,pairs:R0,seq:Vo,set:D0,timestamp:hf},vH={"tag:yaml.org,2002:binary":O0,"tag:yaml.org,2002:merge":Er,"tag:yaml.org,2002:omap":L0,"tag:yaml.org,2002:pairs":R0,"tag:yaml.org,2002:set":D0,"tag:yaml.org,2002:timestamp":hf};function Wh(e,t,n){const r=l1.get(t);if(r&&!e)return n&&!r.includes(Er)?r.concat(Er):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(l1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(Er)),i.reduce((s,o)=>{const a=typeof o=="string"?c1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(c1).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const _H=(e,t)=>e.keyt.key?1:0;class B0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Wh(t,"compat"):t?Wh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?vH:{},this.tags=Wh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:Uo}),Object.defineProperty(this,ar,{value:cf}),Object.defineProperty(this,$o,{value:Vo}),this.sortMapEntries=typeof o=="function"?o:o===!0?_H:null}clone(){const t=Object.create(B0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function kH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=dC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(xr(c,""))}let o=!1,a=null;if(e.contents){if(at(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(xr(u,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let d=xo(e.contents,i,()=>a=null,c);a&&(d+=Ri(d,"",s(a))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` -`)?(n.push("..."),n.push(xr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(xr(s(c),"")))}return n.join(` -`)+` -`}class Xl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:qm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Xl.prototype,{[Cn]:{value:qm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=at(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){xs(this.contents)&&this.contents.add(t)}addIn(t,n){xs(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=oC(this);t.anchor=!n||r.has(n)?aC(n||"a",r):n}return new T0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const w=x=>typeof x=="number"||x instanceof String||x instanceof Number,m=n.filter(w).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:h,sourceObjects:p}=Q8(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=bl(t,d,g);return a&&ot(b)&&(b.flow=!0),h(),b}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return xs(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ya(t)?this.contents==null?!1:(this.contents=null,!0):xs(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return ot(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ya(t)?!n&&ze(this.contents)?this.contents.value:this.contents:ot(this.contents)?this.contents.getIn(t,n):void 0}has(t){return ot(this.contents)?this.contents.has(t):!1}hasIn(t){return ya(t)?this.contents!==void 0:ot(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=md(this.schema,[t],n):xs(this.contents)&&this.contents.set(t,n)}setIn(t,n){ya(t)?this.contents=n:this.contents==null?this.contents=md(this.schema,Array.from(t),n):xs(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new B0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:d}of a.anchors.values())s(d,c);return typeof o=="function"?Hs(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return kH(this,t)}}function xs(e){if(ot(e))return!0;throw new Error("Expected a YAML collection as document contents")}class OC extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class ba extends OC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class EH extends OC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const u1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… -`),o=a+o}if(/[^ ]/.test(o)){let a=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: - -${o} -${c} -`}};function wo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",h="",p=!1,g=!1,b=null,w=null,m=null,x=null,y=null,v=null,k=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),b&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),b=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(b=N),d=!0;break;case"comment":{d||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";u?u+=h+I:u=I,h="",c=!1;break}case"newline":c?u?u+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(w||m)&&(x=N),d=!0;break;case"anchor":w&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),w=N,k??(k=N.offset),c=!1,d=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,k??(k=N.offset),c=!1,d=!1,g=!0;break}case n:(w||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(t){y&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),y=N,c=!1,d=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,d=!1}const _=e[e.length-1],C=_?_.offset+_.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b&&(c&&b.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:y,found:v,spaceBefore:l,comment:u,hasNewline:p,anchor:w,tag:m,newlineAfterProp:x,end:C,start:k??C}}function xl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` -`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(xl(t.key)||xl(t.value))return!0}return!1;default:return!0}}function Xm(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&xl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function RC(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||ze(s)&&ze(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const d1="All mapping items must start at the same column";function SH({composeNode:e,composeEmptyNode:t},n,r,i,s){var d;const o=(s==null?void 0:s.nodeClass)??kn,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const u of r.items){const{start:h,key:p,sep:g,value:b}=u,w=wo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!w.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",d1)),!w.anchor&&!w.tag&&!g){c=w.end,w.comment&&(a.comment?a.comment+=` -`+w.comment:a.comment=w.comment);continue}(w.newlineAfterProp||xl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=w.found)==null?void 0:d.indent)!==r.indent&&i(l,"BAD_INDENT",d1);n.atKey=!0;const x=w.end,y=p?e(n,p,w,i):t(n,x,h,null,w,i);n.schema.compat&&Xm(r.indent,p,i),n.atKey=!1,RC(n,a.items,y)&&i(x,"DUPLICATE_KEY","Map keys must be unique");const v=wo(g??[],{indicator:"map-value-ind",next:b,offset:y.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((b==null?void 0:b.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&w.starte&&(e.type==="block-map"||e.type==="block-seq");function TH({composeNode:e,composeEmptyNode:t},n,r,i,s){var w;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?kn:Xi),c=new l(n.schema);c.flow=!0;const d=n.atRoot;d&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let m=0;m0){const m=Ql(g,b,n.options.strict,i);m.comment&&(c.comment?c.comment+=` -`+m.comment:c.comment=m.comment),c.range=[r.offset,b,m.offset]}else c.range=[r.offset,b,b];return c}function Qh(e,t,n,r,i,s){const o=n.type==="block-map"?SH(e,t,n,r,s):n.type==="block-seq"?NH(e,t,n,r,s):TH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function AH(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,b=p&&s?p.offset>s.offset?p:s:p??s;b&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qh(e,t,n,i,o)}const c=Qh(e,t,n,i,o,l),d=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,u=at(d)?d:new Ee(d);return u.range=c.range,u.tag=o,l!=null&&l.format&&(u.format=l.format),u}function CH(e,t,n){const r=t.offset,i=MH(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?Ee.BLOCK_FOLDED:Ee.BLOCK_LITERAL,o=t.source?IH(t.source):[];let a=o.length;for(let b=o.length-1;b>=0;--b){const w=o[b][1];if(w===""||w==="\r")a=b;else break}if(a===0){const b=i.chomp==="+"&&o.length>0?` -`.repeat(Math.max(1,o.length-1)):"";let w=r+i.length;return t.source&&(w+=t.source.length),{value:b,type:s,comment:i.comment,range:[r,w,w]}}let l=t.indent+i.indent,c=t.offset+i.length,d=0;for(let b=0;bl&&(l=w.length);else{w.length=a;--b)o[b][0].length>l&&(a=b+1);let u="",h="",p=!1;for(let b=0;bl||m[0]===" "?(h===" "?h=` -`:!p&&h===` -`&&(h=` - -`),u+=h+w.slice(l)+m,h=` -`,p=!0):m===""?h===` -`?u+=` -`:h=` -`:(u+=h+m,h=" ",p=!1)}switch(i.chomp){case"-":break;case"+":for(let b=a;bn(r+h,p,g);switch(i){case"scalar":a=Ee.PLAIN,l=RH(s,c);break;case"single-quoted-scalar":a=Ee.QUOTE_SINGLE,l=LH(s,c);break;case"double-quoted-scalar":a=Ee.QUOTE_DOUBLE,l=PH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const d=r+s.length,u=Ql(o,d,t,n);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function RH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),LC(e)}function LH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),LC(e.slice(1,-1)).replace(/''/g,"'")}function LC(e){let t,n;try{t=new RegExp(`(.*?)(?s?e.slice(s,r+1):i)}else n+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function DH(e,t){let n="",r=e[t+1];for(;(r===" "||r===" "||r===` -`||r==="\r")&&!(r==="\r"&&e[t+2]!==` -`);)r===` -`&&(n+=` -`),t+=1,r=e[t+1];return n||(n=" "),{fold:n,offset:t}}const jH={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` -`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function BH(e,t,n,r){const i=e.substr(t,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{const a=e.substr(t-2,n+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function PC(e,t,n,r){const{value:i,type:s,comment:o,range:a}=t.type==="block-scalar"?CH(e,t,r):OH(t,e.options.strict,r),l=n?e.directives.tagName(n.source,u=>r(n,"TAG_RESOLVE_FAILED",u)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=$H(e.schema,i,l,n,r):t.type==="scalar"?c=FH(e,i,t,r):c=e.schema[ar];let d;try{const u=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);d=ze(u)?u:new Ee(u)}catch(u){const h=u instanceof Error?u.message:String(u);r(n??t,"TAG_RESOLVE_FAILED",h),d=new Ee(i)}return d.range=a,d.source=i,s&&(d.type=s),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function $H(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function FH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}function zH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const UH={composeNode:DC,composeEmptyNode:$0};function DC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,d=!0;switch(t.type){case"alias":c=VH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=PC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=AH(UH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(u){const h=u instanceof Error?u.message:String(u);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const u=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=$0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!ze(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&d&&(c.srcToken=t),c}function $0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const d={type:"scalar",offset:zH(t,n,r),indent:-1,source:""},u=PC(e,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),s&&(u.comment=s,u.range[2]=l),u}function VH({options:e},{offset:t,source:n,end:r},i){const s=new T0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=Ql(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function HH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Xl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=wo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?DC(c,i,d,o):$0(c,d.end,r,null,d,o);const u=l.contents.range[2],h=Ql(s,u,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,u,h.offset],l}function sa(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function f1(e){var i;let t="",n=!1,r=!1;for(let s=0;s{const o=sa(n);s?this.warnings.push(new EH(o,r,i)):this.errors.push(new ba(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=f1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} -${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(ot(s)&&!s.flow&&s.items.length>0){let o=s.items[0];lt(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} -${a}`:r}else{const o=s.commentBefore;s.commentBefore=o?`${r} -${o}`:r}}if(n){for(let s=0;s{const s=sa(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=HH(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new ba(sa(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=Ql(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} -${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new ba(sa(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const r=Object.assign({_directives:this.directives},this.options),i=new Xl(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const jC="\uFEFF",BC="",$C="",Qm="";function qH(e){switch(e){case jC:return"byte-order-mark";case BC:return"doc-mode";case $C:return"flow-error-end";case Qm:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` -`:case`\r -`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Rn(e){switch(e){case void 0:case" ":case` -`:case"\r":case" ":return!0;default:return!1}}const h1=new Set("0123456789ABCDEFabcdef"),GH=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Hc=new Set(",[]{}"),WH=new Set(` ,[]{} -\r `),Zh=e=>!e||WH.has(e);class YH{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,n=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!n;let r=this.next??"stream";for(;r&&(n||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let t=this.pos,n=this.buffer[t];for(;n===" "||n===" ";)n=this.buffer[++t];return!n||n==="#"||n===` -`?!0:n==="\r"?this.buffer[t+1]===` -`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let n=this.buffer[t];if(this.indentNext>0){let r=0;for(;n===" ";)n=this.buffer[++r+t];if(n==="\r"){const i=this.buffer[r+t+1];if(i===` -`||!i&&!this.atEnd)return t+r+1}return n===` -`||r>=this.indentNext||!n&&!this.atEnd?t+r:-1}if(n==="-"||n==="."){const r=this.buffer.substr(t,3);if((r==="---"||r==="...")&&Rn(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&tthis.indentValue&&!Rn(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[t,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&Rn(n)){const r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const t=this.getLine();if(t===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(t[n]){case"#":yield*this.pushCount(t.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Zh),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,n,r=-1;do t=yield*this.pushNewline(),t>0?(n=yield*this.pushSpaces(!1),this.indentValue=r=n):n=0,n+=yield*this.pushSpaces(!0);while(t+n>0);const i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Rn(n)||n==="#")}*parseBlockScalar(){let t=this.pos-1,n=0,r;e:for(let s=this.pos;r=this.buffer[s];++s)switch(r){case" ":n+=1;break;case` -`:t=s,n=0;break;case"\r":{const o=this.buffer[s+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===` -`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(t+1);if(s===-1)break;t=this.buffer.indexOf(` -`,s)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(r=this.buffer[i];r===" ";)r=this.buffer[++i];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===` -`;)r=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let s=t-1,o=this.buffer[s];o==="\r"&&(o=this.buffer[--s]);const a=s;for(;o===" ";)o=this.buffer[--s];if(o===` -`&&s>=this.pos&&s+1+n>a)t=s;else break}while(!0);return yield Qm,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let n=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){const s=this.buffer[r+1];if(Rn(s)||t&&Hc.has(s))break;n=r}else if(Rn(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` -`?(r+=1,i=` -`,s=this.buffer[r+1]):n=r),s==="#"||t&&Hc.has(s))break;if(i===` -`){const o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&Hc.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Qm,yield*this.pushToIndex(n+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,n){const r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(n&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(Zh),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,r=this.charAt(1);if(Rn(r)||n&&Hc.has(r)){n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,n=this.buffer[t];for(;!Rn(n)&&n!==">";)n=this.buffer[++t];return yield*this.pushToIndex(n===">"?t+1:t,!1)}else{let t=this.pos+1,n=this.buffer[t];for(;n;)if(GH.has(n))n=this.buffer[++t];else if(n==="%"&&h1.has(this.buffer[t+1])&&h1.has(this.buffer[t+2]))n=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===` -`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===` -`?yield*this.pushCount(2):0}*pushSpaces(t){let n=this.pos-1,r;do r=this.buffer[++n];while(r===" "||t&&r===" ");const i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(t){let n=this.pos,r=this.buffer[n];for(;!t(r);)r=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class XH{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let n=0,r=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((n=e[++t])==null?void 0:n.type)==="space";);return e.splice(t,e.length)}function yd(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&(t==null?void 0:t.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const n=t??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const r=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in r?r.indent:0:n.type==="flow-collection"&&r.type==="document"&&(n.indent=0),n.type==="flow-collection"&&m1(n),r.type){case"document":r.value=n;break;case"block-scalar":r.props.push(n);break;case"block-map":{const i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{const i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{const i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&p1(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&n.sep&&!n.value){const a=[];for(let l=0;lt.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=n.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zr(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(FC(n.key)&&!zr(n.sep,"newline")){const a=ws(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:c}]})}else o.length>0?n.sep=n.sep.concat(o,this.sourceToken):n.sep.push(this.sourceToken);else if(zr(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const a=ws(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):zr(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||n.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(a):(Object.assign(n,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!n.explicitKey&&n.sep&&!zr(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){yd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||zr(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=Kc(r),s=ws(i);m1(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` -`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` -`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Kc(t),r=ws(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function ZH(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new XH||null,prettyErrors:t}}function JH(e,t={}){const{lineCounter:n,prettyErrors:r}=ZH(t),i=new QH(n==null?void 0:n.addNewLine),s=new KH(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ba(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(u1(e,n)),o.warnings.forEach(u1(e,n))),o}function eK(e,t,n){let r;const i=JH(e,n);if(!i)return null;if(i.warnings.forEach(s=>fC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function tK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return ql(e)&&!r?e.toString(n):new Xl(e,r,n).toString(n)}function ds(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[],deployment:{feishuEnabled:!1}}}const zC="https://ark.cn-beijing.volces.com/api/v3/",nK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:zC}],$a=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:zC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],vo=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],UC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:vo},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:vo},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],VC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],HC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:vo},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],KC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:vo},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...vo,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],qC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...vo,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],rK=e=>UC.find(t=>t.id===e),iK=e=>VC.find(t=>t.id===e),sK=e=>HC.find(t=>t.id===e),oK=e=>KC.find(t=>t.id===e),aK=e=>qC.find(t=>t.id===e);function Fi(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function GC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function dt(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Zm(e,t,n){const r=Fi(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function oa(e,t){for(const n of t)e.env.push(n)}function g1(e,t,n){const r=Zm(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: - ${GC(i)} - # TODO: 实现「${t}」的逻辑。 - return {"result": f"${r} 尚未实现: {query}"}`),r}function lK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;F0(e,a,c),s.push(c)});const o=[`name=${dt(Fi(t.name,n))}`,`description=${dt(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( - ${o.join(`, - `)}, -)`),n}function cK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${dt(Fi(t.name,n))}`,`url=${dt((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( - ${r.join(`, - `)}, -)`),n}function F0(e,t,n){var a,l,c,d,u,h,p,g,b,w;const r=t.agentType??"llm";if(r==="a2a")return cK(e,t,n);if(r!=="llm")return lK(e,t,n);const i=[];for(const m of t.builtinTools??[]){const x=rK(m);x&&(e.imports.includes(x.importLine)||e.imports.push(x.importLine),i.push(...x.toolNames),oa(e,x.env),x.pipExtra&&e.extras.add(x.pipExtra))}for(const m of t.customTools??[])(a=m.name)!=null&&a.trim()&&i.push(g1(e,m.name,m.description));for(const m of t.mcpTools??[])if(m.transport==="http"&&((l=m.url)!=null&&l.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=(c=m.authToken)!=null&&c.trim()?`, headers={"Authorization": ${dt(`Bearer ${m.authToken.trim()}`)}}`:"";e.preLines.push(`${x} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${dt(m.url.trim())}${y}))`),i.push(x)}else if(m.transport==="stdio"&&((d=m.command)!=null&&d.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const x=Zm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=`[${(m.args??[]).filter(v=>v==null?void 0:v.trim()).map(v=>dt(v)).join(", ")}]`;e.preLines.push(`${x} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${dt(m.command.trim())}, args=${y}), timeout=30))`),i.push(x)}for(const m of t.tools??[])m!=null&&m.trim()&&i.push(g1(e,m,""));const s=[`name=${dt(Fi(t.name,n))}`,`description=${dt(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${GC(t.instruction||"You are a helpful assistant.")}`),i.length&&s.push(`tools=[${i.join(", ")}]`),(u=t.modelName)!=null&&u.trim()&&s.push(`model_name=${dt(t.modelName.trim())}`),(h=t.modelProvider)!=null&&h.trim()&&s.push(`model_provider=${dt(t.modelProvider.trim())}`),(p=t.modelApiBase)!=null&&p.trim()&&s.push(`model_api_base=${dt(t.modelApiBase.trim())}`),(g=t.memory)!=null&&g.shortTerm){const m=iK(t.shortTermBackend||"local");if(m){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const x=[`backend=${dt(m.id)}`];m.extraArgs&&x.push(m.extraArgs);const y=`stm_${n}`;e.preLines.push(`${y} = ShortTermMemory(${x.join(", ")})`),s.push(`short_term_memory=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if((b=t.memory)!=null&&b.longTerm){const m=sK(t.longTermBackend||"local");if(m){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const x=Fi(t.name,n),y=`ltm_${n}`;e.preLines.push(`${y} = LongTermMemory(backend=${dt(m.id)}, index=${dt(x)}, app_name=${dt(x)})`),s.push(`long_term_memory=${y}`),t.autoSaveSession&&s.push("auto_save_session=True"),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.knowledgebase){const m=oK(t.knowledgebaseBackend||"local");if(m){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const x=Fi(t.name+"_kb",n+"_kb"),y=`kb_${n}`;e.preLines.push(`${y} = KnowledgeBase(backend=${dt(m.id)}, index=${dt(x)}, app_name=${dt(x)})`),s.push(`knowledgebase=${y}`),oa(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.tracing&&(((w=t.tracingExporters)==null?void 0:w.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const m=`tracer_${n}`;e.preLines.push(`${m} = OpentelemetryTracer()`),s.push(`tracers=[${m}]`);for(const x of t.tracingExporters??[]){const y=aK(x);y&&(e.env.push({key:y.enableFlag,required:!0,placeholder:"true",comment:`${y.label} 开关`}),oa(e,y.env))}}t.enableA2ui&&(s.push("enable_a2ui=True"),e.extras.add("a2ui"));const o=[];return(t.subAgents??[]).forEach((m,x)=>{const y=`${n}_sub_${x+1}`;F0(e,m,y),o.push(y)}),o.length&&s.push(`sub_agents=[${o.join(", ")}]`),e.preLines.push(`${n} = Agent( - ${s.join(`, - `)}, -)`),n}function uK(e){const t=new Map;for(const n of e){const r=t.get(n.key);r?n.required&&!r.required&&(r.required=!0):t.set(n.key,{...n})}return[...t.values()]}function dK(e){const t=["# 复制为 .env 并填入真实值(或改用 config.yaml)。","# 标记 [必填] 的变量缺失时 Agent 无法启动。",""];for(const n of e)(n.comment||n.required)&&t.push(`# ${n.required?"[必填] ":""}${n.comment??""}`.trimEnd()),t.push(`${n.key}=${n.placeholder??""}`);return t.join(` -`)+` -`}function fK(e,t){const n=[...e];t&&n.push("extensions");const r=[...new Set(n)].sort(),s=[r.length?`veadk-python[${r.join(",")}]${t?">=0.5.34":""}`:"veadk-python","agentkit-sdk-python","google-adk"];return t&&s.push("starlette<1.0.0"),`${s.join(` -`)} -`}function hK(e,t){var r;const n=[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。",""];return(r=t.deployment)!=null&&r.feishuEnabled&&n.push("## 飞书机器人","","在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。",""),n.join(` -`)}function WC(e){var d;const t=Fi(e.name,"my_agent"),n={imports:[],preLines:[],env:[...nK],extras:new Set,usedNames:new Set},r=!!((d=e.deployment)!=null&&d.feishuEnabled);r&&n.env.push({key:"FEISHU_APP_ID",required:!1,placeholder:"cli_xxx",comment:"飞书机器人 App ID(前端部署时填写)"},{key:"FEISHU_APP_SECRET",required:!1,placeholder:"your-feishu-app-secret",comment:"飞书机器人 App Secret(前端部署时填写)"}),F0(n,e,"agent");const i=["from veadk import Agent",...pK(n.imports)].join(` -`),s=["import os",...r?["import asyncio","import inspect","import threading","import traceback","from contextlib import asynccontextmanager","from veadk.extensions import FeishuChannelExtension"]:[],"from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` -`),o=n.preLines.join(` - -`)+` - -# ADK 加载器要求:顶层 agent 必须命名为 root_agent -root_agent = agent -`,a=i+` - -`+o,c=[{path:"app.py",content:`${s} - -# Deployment configuration -HOST = os.getenv("HOST", "0.0.0.0") -PORT = int(os.getenv("PORT", "8000")) -${r?`FEISHU_CHANNEL_ENABLED = True - -def _get_feishu_channel_method(channel, names): - raw_channel = getattr(channel, "channel", None) - for target in (raw_channel, channel): - if target is None: - continue - for name in names: - method = getattr(target, name, None) - if method is not None: - return method - return None - -def _call_feishu_channel_method(loop, method): - result = method() - if inspect.isawaitable(result): - return loop.run_until_complete(result) - return result - -def _connect_feishu_channel(loop, channel) -> None: - connect = _get_feishu_channel_method(channel, ("start", "connect")) - if connect is None: - raise AttributeError("Feishu channel has no start/connect method") - return _call_feishu_channel_method(loop, connect) - -def _disconnect_feishu_channel(loop, channel) -> None: - disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) - if disconnect is None: - return None - return _call_feishu_channel_method(loop, disconnect) - -def _stop_feishu_channel_from_lifespan(channel) -> None: - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - try: - return _disconnect_feishu_channel(loop, channel) - finally: - asyncio.set_event_loop(None) - loop.close() - -def _build_feishu_channel(runner, app_id, app_secret): - return FeishuChannelExtension( - runner=runner, - app_id=app_id, - app_secret=app_secret, - channel_kwargs={ - "transport": "ws", - }, - streaming=False, - reactions=False, - ) - -def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: - loop = asyncio.new_event_loop() - state["loop"] = loop - asyncio.set_event_loop(loop) - try: - while not stop_event.is_set(): - channel = None - try: - channel = _build_feishu_channel(runner, app_id, app_secret) - state["channel"] = channel - print("feishu channel connecting in dedicated thread", flush=True) - _connect_feishu_channel(loop, channel) - print("feishu channel disconnected; reconnecting in 5s", flush=True) - except Exception as exc: - if channel is None: - print( - f"feishu channel initialization failed: {type(exc).__name__}: {exc}; reconnecting in 5s", - flush=True, - ) - print(traceback.format_exc(), flush=True) - else: - print( - f"feishu channel connect failed: {type(exc).__name__}: {exc}; reconnecting in 5s", - flush=True, - ) - finally: - if channel is not None: - try: - _disconnect_feishu_channel(loop, channel) - except Exception as exc: - print( - f"feishu channel disconnect failed: {type(exc).__name__}: {exc}", - flush=True, - ) - finally: - if state.get("channel") is channel: - state["channel"] = None - stop_event.wait(5) - finally: - asyncio.set_event_loop(None) - state["loop"] = None - loop.close() - -async def _start_feishu_channel(app, runner) -> None: - if not FEISHU_CHANNEL_ENABLED: - return - - app_id = os.getenv("FEISHU_APP_ID") - app_secret = os.getenv("FEISHU_APP_SECRET") - if not app_id or not app_secret: - print( - "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", - flush=True, - ) - return - - app.state.feishu_channel_state = {"channel": None, "loop": None} - app.state.feishu_channel_stop_event = threading.Event() - app.state.feishu_channel_thread = threading.Thread( - target=_run_feishu_channel, - args=( - runner, - app_id, - app_secret, - app.state.feishu_channel_stop_event, - app.state.feishu_channel_state, - ), - name="feishu-channel", - daemon=True, - ) - app.state.feishu_channel_thread.start() - print("feishu channel background thread started", flush=True) - -async def _stop_feishu_channel(app) -> None: - stop_event = getattr(app.state, "feishu_channel_stop_event", None) - if stop_event is not None: - stop_event.set() - state = getattr(app.state, "feishu_channel_state", None) or {} - channel = state.get("channel") - if channel is not None: - await asyncio.to_thread(_stop_feishu_channel_from_lifespan, channel) - thread = getattr(app.state, "feishu_channel_thread", None) - if thread is not None: - await asyncio.to_thread(thread.join, 2) - if thread.is_alive(): - print( - "feishu channel background thread did not stop within 2s", - flush=True, - ) -`:""} -def build_app(): - """Build AgentKit AgentServerApp for deployment.""" - import veadk -${r?` from veadk import Runner -`:""} WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" - - # AgentKit's AgentServerApp exposes the ADK-compatible API surface - # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. - short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( - backend="local" - ) -${r?` runner = Runner( - agent=root_agent, - app_name=getattr(root_agent, "name", "") or "agent", - short_term_memory=short_term_memory, - ) -`:""} agent_server_app = AgentkitAgentServerApp( - agent=root_agent, - short_term_memory=short_term_memory, - ) - app = agent_server_app.app - -${r?` original_lifespan = app.router.lifespan_context - - @asynccontextmanager - async def lifespan(fastapi_app): - async with original_lifespan(fastapi_app): - await _start_feishu_channel(fastapi_app, runner) - try: - yield - finally: - await _stop_feishu_channel(fastapi_app) - - app.router.lifespan_context = lifespan -`:""} # Add health check endpoint - @app.get("/ping") - def ping() -> dict[str, str]: - return {"status": "ok"} - - # Agent-structure introspection (data plane), consumed by the VeADK web - # UI's "管理 Agent" view to show this runtime's agent name + sub-agent tree. - from fastapi import HTTPException as _HTTPException - - def _agent_type(a: object) -> str: - try: - from google.adk.agents import LoopAgent, ParallelAgent, SequentialAgent - - if isinstance(a, LoopAgent): - return "loop" - if isinstance(a, SequentialAgent): - return "sequential" - if isinstance(a, ParallelAgent): - return "parallel" - except Exception: - pass - try: - from google.adk.agents.remote_a2a_agent import RemoteA2aAgent - - if isinstance(a, RemoteA2aAgent): - return "a2a" - except Exception: - pass - return "llm" - - def _model_name(m: object) -> str: - if isinstance(m, str): - return m - return str(getattr(m, "model", None) or type(m).__name__) - - def _tool_label(t: object) -> str: - name = getattr(t, "name", None) or getattr(t, "__name__", None) - return str(name or type(t).__name__) - - def _agent_node(a: object, depth: int = 0) -> dict: - children = [] - if depth < 8: - children = [_agent_node(s, depth + 1) for s in getattr(a, "sub_agents", []) or []] - return { - "name": getattr(a, "name", "") or "", - "description": getattr(a, "description", "") or "", - "type": _agent_type(a), - "model": _model_name(getattr(a, "model", "")), - "tools": [_tool_label(t) for t in getattr(a, "tools", []) or []], - "children": children, - } - - @app.get("/web/agent-info/{app_name}") - def agent_info(app_name: str) -> dict: - expected_name = getattr(root_agent, "name", "") or "" - if app_name != expected_name: - raise _HTTPException(status_code=404, detail="unknown agent: " + app_name) - return { - "name": expected_name or app_name, - "description": getattr(root_agent, "description", "") or "", - "type": _agent_type(root_agent), - "model": _model_name(getattr(root_agent, "model", "")), - "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], - "subAgents": [getattr(s, "name", "") for s in getattr(root_agent, "sub_agents", []) or []], - "graph": _agent_node(root_agent), - } - - @app.get("/web/agent-graph") - def agent_graph() -> dict: - # Single introspection endpoint on the main agent: returns this runtime's - # root agent + recursive sub-agent tree, with no /list-apps discovery - # needed. Used by the VeADK "管理 Agent" view. - return { - "name": getattr(root_agent, "name", "") or "", - "description": getattr(root_agent, "description", "") or "", - "type": _agent_type(root_agent), - "model": _model_name(getattr(root_agent, "model", "")), - "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], - "graph": _agent_node(root_agent), - } - - # Serve the bundled VeADK web UI without taking over "/", which is reserved - # by AgentServerApp for the A2A protocol surface. - if (WEBUI_DIR / "index.html").is_file(): - if (WEBUI_DIR / "assets").is_dir(): - app.mount( - "/assets", - StaticFiles(directory=str(WEBUI_DIR / "assets")), - name="webui-assets", - ) - - from fastapi.responses import FileResponse as _FileResponse - - @app.get("/") - @app.get("/webui") - @app.get("/webui/{path:path}") - def webui(path: str = ""): - return _FileResponse(WEBUI_DIR / "index.html") - - # AgentServerApp mounts A2A at "/", so routes added after construction must - # be moved before that root mount or they will be shadowed. - _priority_paths = { - "/", - "/ping", - "/web/agent-info/{app_name}", - "/web/agent-graph", - "/assets", - "/webui", - "/webui/{path:path}", - } - _priority_routes = [ - r for r in app.router.routes if getattr(r, "path", None) in _priority_paths - ] - if _priority_routes: - app.router.routes[:] = _priority_routes + [ - r for r in app.router.routes if r not in _priority_routes - ] - - return agent_server_app, app - -agent_server_app, app = build_app() - -if __name__ == "__main__": - agent_server_app.run(host=HOST, port=PORT) -`},{path:`agents/${t}/agent.py`,content:a},{path:`agents/${t}/__init__.py`,content:`from .agent import root_agent - -__all__ = ["root_agent"] -`},{path:".env.example",content:dK(uK(n.env))},{path:"requirements.txt",content:fK(n.extras,r)},{path:"README.md",content:hK(t,e)}];return{name:t,files:c}}function pK(e){return[...new Set(e)]}const mK=new Set(["local","sqlite","mysql","postgresql"]),gK=new Set(["local","opensearch","redis","viking","mem0"]),yK=new Set(["local","opensearch","viking","context_search"]),bK=new Set(["apmplus","cozeloop","tls"]),YC=new Set(xK());function xK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function it(e,t=""){return typeof e=="string"?e:t}function xi(e){return e===!0}function _u(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function XC(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:it(t.name),description:it(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function Jh(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const wK=new Set(["llm","sequential","parallel","loop","a2a"]);function QC(e){return typeof e=="string"&&wK.has(e)?e:"llm"}function ZC(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function JC(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...ds(),name:it(n.name),description:it(n.description),instruction:it(n.instruction),agentType:QC(n.agentType),maxIterations:ZC(n.maxIterations),a2aUrl:it(n.a2aUrl),builtinTools:_u(n.builtinTools).filter(r=>YC.has(r)),customTools:XC(n.customTools),subAgents:JC(n.subAgents)}}):[]}function e2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=t.deployment&&typeof t.deployment=="object"?t.deployment:{},i=JC(t.subAgents),s=Array.isArray(t.mcpTools)?t.mcpTools.map(o=>{const a=o&&typeof o=="object"?o:{},l=a.transport==="stdio"?"stdio":"http";return{name:it(a.name),transport:l,url:it(a.url),authToken:it(a.authToken),command:it(a.command),args:_u(a.args)}}).filter(o=>o.transport==="http"?!!o.url:!!o.command):[];return{...ds(),name:it(t.name)||"my_agent",description:it(t.description),instruction:it(t.instruction)||"You are a helpful assistant.",agentType:QC(t.agentType),maxIterations:ZC(t.maxIterations),a2aUrl:it(t.a2aUrl),modelName:it(t.modelName),modelProvider:it(t.modelProvider),modelApiBase:it(t.modelApiBase),builtinTools:_u(t.builtinTools).filter(o=>YC.has(o)),customTools:XC(t.customTools),mcpTools:s,memory:{shortTerm:xi(n.shortTerm),longTerm:xi(n.longTerm)},shortTermBackend:Jh(t.shortTermBackend,mK,"local"),longTermBackend:Jh(t.longTermBackend,gK,"local"),autoSaveSession:xi(t.autoSaveSession),knowledgebase:xi(t.knowledgebase),knowledgebaseBackend:Jh(t.knowledgebaseBackend,yK,"local"),tracing:xi(t.tracing),tracingExporters:_u(t.tracingExporters).filter(o=>bK.has(o)),enableA2ui:xi(t.enableA2ui),deployment:{feishuEnabled:xi(r.feishuEnabled)},subAgents:i,selectedSkills:Array.isArray(t.selectedSkills)?t.selectedSkills.map(o=>{const a=o&&typeof o=="object"?o:{};return{slug:it(a.slug),name:it(a.name)||it(a.slug),namespace:it(a.namespace)||"public"}}).filter(o=>!!o.slug):[]}}function vK(e){var n,r,i,s,o,a,l,c,d,u,h,p;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(g=>({name:g.name,description:g.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(g=>{var w,m,x,y;const b={name:g.name,transport:g.transport};return(w=g.url)!=null&&w.trim()&&(b.url=g.url.trim()),(m=g.authToken)!=null&&m.trim()&&(b.authToken=g.authToken.trim()),(x=g.command)!=null&&x.trim()&&(b.command=g.command.trim()),(y=g.args)!=null&&y.length&&(b.args=g.args),b})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((d=e.tracingExporters)!=null&&d.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(u=e.deployment)!=null&&u.feishuEnabled&&(t.deployment={feishuEnabled:!0}),(h=e.selectedSkills)!=null&&h.length&&(t.selectedSkills=e.selectedSkills.map(g=>({slug:g.slug,name:g.name,namespace:g.namespace}))),(p=e.subAgents)!=null&&p.length&&(t.subAgents=e.subAgents.map(g=>{var w,m;const b={name:g.name,description:g.description,instruction:g.instruction};return(w=g.builtinTools)!=null&&w.length&&(b.builtinTools=[...g.builtinTools]),(m=g.customTools)!=null&&m.length&&(b.customTools=g.customTools.map(x=>({name:x.name,description:x.description}))),b})),t}function y1(e){return`# VeADK Agent 结构配置 -# 可在「创建 Agent」页通过「导入 YAML」重新载入。 -`+tK(vK(e))}function t2(e){const t=eK(e);return e2(t)}const _K=[{kind:"intelligent",icon:XB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:i$,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:KB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:s$,title:"工作流",desc:"敬请期待",disabled:!0}];function kK({onSelect:e,onImport:t}){const n=S.useRef(null),[r,i]=S.useState(""),s=_K.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const d=await l.text();t(t2(d))}catch(d){i(`导入失败:${d instanceof Error?d.message:String(d)}`)}};return f.jsx(nC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(n$,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const EK="modulepreload",SK=function(e){return"/"+e},b1={},x1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=SK(l),l in b1)return;b1[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const u=document.createElement("link");if(u.rel=c?"stylesheet":EK,c||(u.as="script"),u.crossOrigin="",u.href=l,a&&u.setAttribute("nonce",a),document.head.appendChild(u),c)return new Promise((h,p)=>{u.addEventListener("load",h),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},NK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function TK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Xe(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const w1=2048,ep=20,v1=0;function AK(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),b=t.encode(p.content),w=TK(b),m=b.length,x=[];rn(x,67324752),Xe(x,ep),Xe(x,w1),Xe(x,v1),Xe(x,0),Xe(x,0),rn(x,w),rn(x,m),rn(x,m),Xe(x,g.length),Xe(x,0);const y=Uint8Array.from(x);n.push(y,g,b),r.push({nameBytes:g,dataBytes:b,crc:w,size:m,offset:i}),i+=y.length+g.length+b.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Xe(g,ep),Xe(g,ep),Xe(g,w1),Xe(g,v1),Xe(g,0),Xe(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Xe(g,p.nameBytes.length),Xe(g,0),Xe(g,0),Xe(g,0),Xe(g,0),rn(g,0),rn(g,p.offset);const b=Uint8Array.from(g);o.push(b,p.nameBytes),a+=b.length+p.nameBytes.length}const l=[];rn(l,101010256),Xe(l,0),Xe(l,0),Xe(l,r.length),Xe(l,r.length),rn(l,a),rn(l,s),Xe(l,0);const c=[...n,...o,Uint8Array.from(l)],d=c.reduce((p,g)=>p+g.length,0),u=new Uint8Array(d);let h=0;for(const p of c)u.set(p,h),h+=p.length;return new Blob([u],{type:"application/zip"})}tn.registerLanguage("python",AA);tn.registerLanguage("typescript",FA);tn.registerLanguage("javascript",_A);tn.registerLanguage("json",kA);tn.registerLanguage("yaml",zA);tn.registerLanguage("markdown",TA);tn.registerLanguage("bash",gA);tn.registerLanguage("ini",yA);tn.registerLanguage("dockerfile",SV);tn.registerLanguage("makefile",NA);const CK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},_1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function k1(e){return e.replace(/&/g,"&").replace(//g,">")}function MK(e){const n=(e.split("/").pop()??e).toLowerCase();if(_1[n])return _1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return CK[i]??null}function E1(e,t){try{const n=MK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:k1(e)}catch{return k1(e)}}const tp=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function IK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function OK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function Jm(e="",t=""){return{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,key:e,value:t}}const S1=new Set(["FEISHU_APP_ID","FEISHU_APP_SECRET"]);function N1(e){return e?[Jm("FEISHU_APP_ID",""),Jm("FEISHU_APP_SECRET","")]:[]}function z0({project:e,onChange:t,onDeploy:n,onAgentAdded:r,feishuEnabled:i=!1}){var ce,ae,se,ye;const s=typeof t=="function",[o,a]=S.useState(((ae=(ce=e==null?void 0:e.files)==null?void 0:ce[0])==null?void 0:ae.path)??null),[l,c]=S.useState(new Set),[d,u]=S.useState(!1),[h,p]=S.useState(""),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,k]=S.useState({}),[_,C]=S.useState(null),[N,I]=S.useState(!1),[A,P]=S.useState(()=>N1(i)),[R,F]=S.useState(!1),O=S.useRef(null);S.useEffect(()=>{if(!i){P(W=>W.filter($=>!$.key.startsWith("TOOL_FEISHU_CHANNEL_")&&!S1.has($.key)));return}P(W=>{const $=W.filter(pe=>!pe.key.startsWith("TOOL_FEISHU_CHANNEL_")),G=new Map($.map(pe=>[pe.key,pe])),X=N1(!0),me=[...$];for(const pe of X)G.has(pe.key)||me.push(pe);return me})},[i]);const j=S.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:IK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const M=e.files.find(W=>W.path===o)??null;function B(W){c($=>{const G=new Set($);return G.has(W)?G.delete(W):G.add(W),G})}function L(W,$){t&&(t({...e,files:W}),$!==void 0&&a($))}function D(W){M&&L(e.files.map($=>$.path===M.path?{...$,content:W}:$))}function E(){const W=h.trim();if(u(!1),p(""),!!W){if(e.files.some($=>$.path===W)){a(W);return}L([...e.files,{path:W,content:""}],W)}}function V(){if(!M)return;const W=window.prompt("重命名文件",M.path),$=W==null?void 0:W.trim();!$||$===M.path||e.files.some(G=>G.path===$)||L(e.files.map(G=>G.path===M.path?{...G,path:$}:G),$)}function H(){var $;if(!M)return;const W=e.files.filter(G=>G.path!==M.path);L(W,(($=W[0])==null?void 0:$.path)??null)}function T(W,$){P(G=>G.map(X=>X.id===W?{...X,...$}:X))}function U(W){P($=>$.filter(G=>G.id!==W))}function Y(){P(W=>[...W,Jm()])}function Z(){return A.map(W=>({key:W.key.trim(),value:W.value})).filter(W=>W.key.length>0)}async function J(){if(!n||g)return;const W=Z();if(i){const $=new Map(W.map(G=>[G.key,G.value.trim()]));if(!$.get("FEISHU_APP_ID")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。");return}if(!$.get("FEISHU_APP_SECRET")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。");return}}m(null),y(null),k({}),C(null),b(!0);try{const $=await n(e,G=>{k(X=>({...X,[G.phase]:G})),C(G.phase)},i?{im:{feishu:{enabled:!0}},envs:W}:{envs:W});y($),C(null)}catch($){m($ instanceof Error?$.message:String($))}finally{b(!1)}}async function q(){if(!(!x||N)){I(!0),m(null);try{const{addConnection:W,remoteAppId:$,loadConnections:G}=await x1(async()=>{const{addConnection:me,remoteAppId:pe,loadConnections:de}=await Promise.resolve().then(()=>Uw);return{addConnection:me,remoteAppId:pe,loadConnections:de}},void 0),X=await W(x.agentName,x.url,x.apikey,"");if(X.apps.length===0)m("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const me={...X,appLabels:{[X.apps[0]]:x.agentName}},de=G().map(_e=>_e.id===X.id?me:_e);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(de));const{registerConnections:Ae}=await x1(async()=>{const{registerConnections:_e}=await Promise.resolve().then(()=>Uw);return{registerConnections:_e}},void 0);if(Ae(de),r){const _e=$(X.id,X.apps[0]);r(_e,x.agentName)}else alert(`🎉 Agent "${x.agentName}" 已添加到左上角下拉列表!`)}}catch(W){m(`添加 Agent 失败:${W instanceof Error?W.message:String(W)}`)}finally{I(!1)}}}function ee(){const W=AK(e.files),$=URL.createObjectURL(W),G=document.createElement("a");G.href=$,G.download=`${e.name||"project"}.zip`,document.body.appendChild(G),G.click(),document.body.removeChild(G),URL.revokeObjectURL($)}function le(W,$,G){return OK(W).map(X=>{const me=G?`${G}/${X.name}`:X.name,pe=X.path!==void 0,de={paddingLeft:8+$*14};if(pe){const _e=X.path===o;return f.jsxs("button",{type:"button",className:`pp-row pp-file${_e?" pp-active":""}`,style:de,onClick:()=>a(X.path),title:X.path,children:[f.jsx(DB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:X.name})]},me)}const Ae=l.has(me);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:de,onClick:()=>B(me),children:[f.jsx(Gn,{className:`pp-ic pp-chevron${Ae?"":" pp-open"}`}),f.jsx(BB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:X.name})]}),!Ae&&le(X,$+1,me)]},me)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),s&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),p("")},children:f.jsx(LB,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[d&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:h,onChange:W=>p(W.target.value),onBlur:E,onKeyDown:W=>{W.key==="Enter"&&E(),W.key==="Escape"&&(u(!1),p(""))}}),e.files.length===0&&!d?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):le(j,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:M==null?void 0:M.path,children:(M==null?void 0:M.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[s&&M&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:V,children:f.jsx(JB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:H,children:f.jsx(Do,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:ee,children:[f.jsx(MB,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:J,disabled:g,children:[g?f.jsx(bt,{className:"pp-ic spin"}):f.jsx(fl,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(g||x||Object.keys(v).length>0)&&f.jsx("ol",{className:"pp-steps",children:tp.map((W,$)=>{const G=_?tp.findIndex(de=>de.phase===_):-1,X=!!w&&(G===-1?$===0:$===G);let me;x?me="done":X?me="failed":G===-1?me=g?"active":"pending":$W.phase===_))==null?void 0:se.label)??_}阶段):`:"",w]}),x&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:x.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:x.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:x.apikey})]}),((ye=x.feishuChannel)==null?void 0:ye.enabled)&&f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"飞书 Channel"}),f.jsxs("code",{children:["runtime 内启用 (",x.feishuChannel.transport,")"]})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:q,disabled:N,children:[N?f.jsx(bt,{className:"pp-ic spin"}):null,N?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:M==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):s?f.jsxs("div",{className:"pp-editor-wrap",children:[f.jsx("pre",{className:"pp-hl hljs","aria-hidden":"true",ref:O,children:f.jsx("code",{dangerouslySetInnerHTML:{__html:E1(M.content,M.path)}})}),f.jsx("textarea",{className:"pp-input",spellCheck:!1,value:M.content,onChange:W=>D(W.target.value),onScroll:W=>{const $=O.current;$&&($.scrollTop=W.currentTarget.scrollTop,$.scrollLeft=W.currentTarget.scrollLeft)}})]}):f.jsx("pre",{className:"pp-pre hljs",children:f.jsx("code",{dangerouslySetInnerHTML:{__html:E1(M.content,M.path)}})})})]}),n&&f.jsxs("aside",{className:"pp-env-panel","aria-label":"环境变量",children:[f.jsxs("div",{className:"pp-env-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"pp-env-title",children:"环境变量"}),i&&f.jsx("div",{className:"pp-env-sub",children:"飞书 Channel 已开启,请填写 FEISHU_APP_ID 和 FEISHU_APP_SECRET。"})]}),f.jsx("button",{type:"button",className:"pp-icon-btn",title:R?"隐藏值":"显示值",onClick:()=>F(W=>!W),children:R?f.jsx(RB,{className:"pp-ic"}):f.jsx(Ky,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-env-table",children:[f.jsxs("div",{className:"pp-env-row pp-env-row-head",children:[f.jsx("span",{children:"Key"}),f.jsx("span",{children:"Value"}),f.jsx("span",{})]}),A.length===0?f.jsx("div",{className:"pp-env-empty",children:"暂无环境变量"}):A.map(W=>{const $=i&&S1.has(W.key),G=W.key==="FEISHU_APP_ID"?"cli_xxx":W.key==="FEISHU_APP_SECRET"?"输入 App Secret":"VALUE";return f.jsxs("div",{className:"pp-env-row",children:[f.jsx("input",{className:$?"pp-env-key-fixed":void 0,value:W.key,placeholder:"KEY",readOnly:$,disabled:g,autoComplete:"off",title:$?"飞书必填变量":void 0,onChange:X=>T(W.id,{key:X.currentTarget.value})}),f.jsx("input",{type:R?"text":"password",value:W.value,placeholder:G,disabled:g,autoComplete:"off",onChange:X=>T(W.id,{value:X.currentTarget.value})}),$?f.jsx("span",{className:"pp-env-remove-placeholder"}):f.jsx("button",{type:"button",className:"pp-icon-btn pp-env-remove",title:"删除变量",disabled:g,onClick:()=>U(W.id),children:f.jsx(Fl,{className:"pp-ic"})})]},W.id)})]}),f.jsxs("button",{type:"button",className:"pp-env-add",onClick:Y,disabled:g,children:[f.jsx(ss,{className:"pp-ic"}),"添加变量"]})]})]})}const T1="dogfooding",np="dogfooding",rp="dogfooding_b";let RK=0;const ip=()=>++RK;function A1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function LK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function C1(e){const t=[],n=LK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return WC(e2(o))}catch{}return null}function PK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=S.useState([{id:ip(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=S.useState(""),[l,c]=S.useState(!1),[d,u]=S.useState(null),[h,p]=S.useState(null),[g,b]=S.useState(!1),[w,m]=S.useState(null),[x,y]=S.useState(null),[v,k]=S.useState(!1),[_,C]=S.useState(!1),[N,I]=S.useState({}),A=S.useRef(null),P=S.useRef(null),R=S.useRef(null),F=S.useRef(null),O=S.useRef(null);S.useEffect(()=>{const U=F.current;U&&U.scrollTo({top:U.scrollHeight,behavior:"smooth"})},[i,l]),S.useEffect(()=>{const U=O.current;U&&(U.style.height="auto",U.style.height=Math.min(U.scrollHeight,160)+"px")},[o]);const j=U=>s(Y=>[...Y,{id:ip(),role:"assistant",text:U}]);async function M(){if(A.current)return A.current;const U=await Cm(T1,e);return A.current=U,U}async function B(U,Y){if(Y.current)return Y.current;const Z=await Cm(U,e);return Y.current=Z,Z}async function L(U,Y){if(!N[U])try{const Z=await Xy(Y);I(J=>({...J,[U]:Z.model||Y}))}catch{I(Z=>({...Z,[U]:Y}))}}async function D(U,Y,Z){const J=await B(U,Y);let q=Gr();for await(const le of ad({appName:U,userId:e,sessionId:J,text:Z}))q=hl(q,le);const ee=A1(q).trim();return{project:C1(ee),finalText:ee}}const E=async(U,Y,Z)=>qN(U.name,U.files,{region:"cn-beijing",projectName:"default"},{...Z,onStage:Y}),V=async()=>{const U=o.trim();if(!(!U||l)){if(s(Y=>[...Y,{id:ip(),role:"user",text:U}]),a(""),u(null),c(!0),g){m(null),y(null),k(!0),C(!0),L("a",np),L("b",rp);const Y=D(np,P,U).then(({project:J})=>(m(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>k(!1)),Z=D(rp,R,U).then(({project:J})=>(y(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>C(!1));try{const[J,q]=await Promise.all([Y,Z]),ee=[J?`方案 A:${J.name}`:null,q?`方案 B:${q.name}`:null].filter(Boolean);ee.length?j(`已生成两个方案(${ee.join(",")}),请在右侧对比后采用其一。`):j("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const Y=await M();let Z=Gr();for await(const ee of ad({appName:T1,userId:e,sessionId:Y,text:U}))Z=hl(Z,ee);const J=A1(Z).trim(),q=C1(J);q?(p(q),j(`已生成项目:${q.name}(${q.files.length} 个文件),可在右侧预览和编辑。`)):j(J||"(助手没有返回内容,请再描述一下你的需求。)")}catch(Y){const Z=Y instanceof Error?Y.message:String(Y);u(Z),j(`抱歉,调用智能构建助手失败:${Z}`)}finally{c(!1)}}},H=U=>{const Y=U==="a"?w:x;if(!Y)return;p(Y),b(!1),m(null),y(null),k(!1),C(!1);const Z=U==="a"?"A":"B",J=U==="a"?N.a:N.b;j(`已采用方案 ${Z}(${J??(U==="a"?np:rp)}),可继续编辑。`)},T=U=>{U.key==="Enter"&&!U.shiftKey&&!U.nativeEvent.isComposing&&(U.preventDefault(),V())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:F,children:[f.jsx(fy,{initial:!1,children:i.map(U=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${U.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[U.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:U.role==="assistant"?f.jsx(E0,{text:U.text}):U.text})]},U.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(go,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),d&&f.jsxs("div",{className:"ic-error",children:[f.jsx(TB,{className:"ic-error-icon"}),d]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:O,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:U=>a(U.target.value),onKeyDown:T,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void V(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(e$,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:U=>b(U.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(M1,{side:"a",project:w,loading:v,model:N.a,onAdopt:()=>H("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(M1,{side:"b",project:x,loading:_,model:N.b,onAdopt:()=>H("b")})]}):h?f.jsx(z0,{project:h,onChange:p,onDeploy:E,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(jB,{className:"ic-preview-empty-glyph"}),f.jsx(Qd,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function M1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(bt,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(z0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}const n2="/skillhub/v1/skills";async function DK(e,t="public"){const n=e.trim(),r=`${n2}?query=${encodeURIComponent(n)}&namespace=${encodeURIComponent(t)}`,i=await fetch(r,{headers:{accept:"application/json"}});if(!i.ok)throw new Error(`搜索失败 (${i.status})`);return((await i.json()).Skills??[]).map(o=>{var a;return{id:o.Id??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function jK(e,t="public"){const n=`${n2}/download/${e}?namespace=${encodeURIComponent(t)}`,r=await fetch(n);if(!r.ok)throw new Error(`下载技能失败 (${r.status})`);const i=new Uint8Array(await r.arrayBuffer()),s=await $K(i),o=`skills/${e.split("/").pop()||"skill"}`;return s.filter(a=>!a.name.endsWith("/")).map(a=>({path:`${o}/${a.name}`,content:a.text}))}function wi(e,t){return e[t]|e[t+1]<<8}function aa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function BK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function $K(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(aa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=wi(e,n+10);let i=aa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;ae==="sequential"||e==="parallel"||e==="loop",U0=e=>e==="a2a";function R1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx(Hy,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function sp({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function zK({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(fy,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(ss,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function UK({selected:e,onChange:t}){const[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(!1),[l,c]=S.useState(null),[d,u]=S.useState(!1),h=w=>e.some(m=>m.slug===w),p=w=>{h(w.slug)?t(e.filter(m=>m.slug!==w.slug)):t([...e,{slug:w.slug,name:w.name,namespace:w.namespace}])},g=w=>t(e.filter(m=>m.slug!==w)),b=async w=>{a(!0),c(null),u(!0);try{const m=await DK(w);s(m)}catch(m){c(m instanceof Error?m.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return S.useEffect(()=>{const w=n.trim();if(!w){s([]),u(!1),c(null);return}const m=setTimeout(()=>b(w),300);return()=>clearTimeout(m)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Am,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:w=>r(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),n.trim()&&b(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&b(n),disabled:!n.trim()||o,children:[o?f.jsx(bt,{className:"cw-i cw-spin"}):f.jsx(Am,{className:"cw-i"}),"搜索"]})]}),e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(fy,{initial:!1,children:e.map(w=>f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(Qd,{className:"cw-i cw-i-sm"}),w.name,f.jsx("button",{type:"button",className:"cw-pill-x",onClick:()=>g(w.slug),"aria-label":`移除 ${w.name}`,children:f.jsx(Fl,{className:"cw-i cw-i-sm"})})]},w.slug))})})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx($N,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(w=>{const m=h(w.slug);return f.jsxs("button",{type:"button",className:`cw-skill-result ${m?"is-on":""}`,onClick:()=>p(w),"aria-pressed":m,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:m?f.jsx(Hy,{className:"cw-i cw-i-sm"}):f.jsx(ss,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:w.name}),w.description&&f.jsx("span",{className:"cw-skill-result-desc",children:w.description}),w.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:w.sourceRepo})]})]},w.id||w.slug)})}):d&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!d&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}function vi({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const L1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function VK(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function ku(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Zl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Zl(s[r],i,n),{...e,subAgents:s}}function HK(e,t){return Zl(e,t,n=>({...n,subAgents:[...n.subAgents,ds()]}))}function KK(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Zl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function qK(e,t,n,r){return Zl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const GK=e=>e==="sequential"||e==="loop",i2=e=>!U0(e.agentType),WK=3,YK=e=>eg.find(t=>t.id===(e??"llm"))??eg[0];function s2(e){return e.name.trim().length===0?"缺少名称":U0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:r2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function o2(e,t=[]){const n=[],r=s2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),i2(e)&&e.subAgents.forEach((i,s)=>n.push(...o2(i,[...t,s]))),n}function a2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=ku(e,t),o=YK(s.agentType),a=o.icon,l=t.length===0,c=L1(t,n),d=i2(s),u=d&&t.length{const y=HK(e,t),v=ku(y,t).subAgents.length-1;i(y,[...t,v])},p=()=>i(KK(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&GK(ku(e,g).agentType),[w,m]=S.useState(!1),x=y=>{y.preventDefault(),y.stopPropagation(),m(!1);const v=y.dataTransfer.getData("application/x-agent-path");if(!v)return;let k;try{k=JSON.parse(v)}catch{return}if(!L1(k.slice(0,-1),g))return;const _=k[k.length-1],C=t[t.length-1];_!==C&&i(qK(e,g,_,C),[...g,C])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${b?"is-draggable":""} ${w?"is-dragover":""} ${s2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:b,onDragStart:b?y=>{y.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),y.dataTransfer.effectAllowed="move",y.stopPropagation()}:void 0,onDragOver:b?y=>{y.preventDefault(),m(!0)}:void 0,onDragLeave:b?()=>m(!1):void 0,onDrop:b?x:void 0,onClick:()=>r(t),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[u&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:y=>{y.stopPropagation(),h()},children:f.jsx(ss,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:y=>{y.stopPropagation(),p()},children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]})]}),d&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((y,v)=>f.jsx(a2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function XK({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){var ye,W;const[s,o]=S.useState(()=>r??ds()),[a,l]=S.useState(!1),[c,d]=S.useState(null),[u,h]=S.useState(!1),[p,g]=S.useState("type"),b=S.useRef(null),[w,m]=S.useState(""),x=async $=>{var X;const G=(X=$.target.files)==null?void 0:X[0];if($.target.value="",!!G){m("");try{const me=await G.text();o(t2(me)),v([]),l(!1)}catch(me){m(`导入失败:${me instanceof Error?me.message:String(me)}`)}}},[y,v]=S.useState([]),k=S.useRef(null),_=S.useRef({}),C=S.useRef(null);C.current||(C.current=({meta:$,children:G})=>f.jsxs("section",{ref:X=>{_.current[$.id]=X},id:`cw-sec-${$.id}`,"data-step-id":$.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[$.label,$.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),G]}));const N=VK(s,y)?y:[],I=ku(s,N),A=$=>o(G=>Zl(G,N,X=>({...X,...$}))),P=($,G)=>{o($),G&&v(G)},R=I.builtinTools??[],F=I.mcpTools??[],O=I.tracingExporters??[],j=I.selectedSkills??[],M=$=>A({builtinTools:R.includes($)?R.filter(G=>G!==$):[...R,$]}),B=$=>{const G=O.includes($)?O.filter(X=>X!==$):[...O,$];A({tracingExporters:G,tracing:G.length>0?!0:I.tracing})},L=$=>o(G=>({...G,deployment:{...G.deployment??{feishuEnabled:!1},...$}})),D=r2(I.agentType),E=U0(I.agentType),V=I.name.trim().length===0,H=I.instruction.trim().length===0,T=(I.a2aUrl??"").trim().length===0,U=S.useMemo(()=>o2(s),[s]),Y=U.length===0,Z=S.useMemo(()=>{var $,G,X,me;return{type:!0,basic:!V&&(D||E||!H),model:!!(($=I.modelName)!=null&&$.trim()||(G=I.modelProvider)!=null&&G.trim()||(X=I.modelApiBase)!=null&&X.trim()),tools:R.length>0||F.length>0,skills:j.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,deploy:!0,subagents:(((me=I.subAgents)==null?void 0:me.length)??0)>0,review:Y}},[I,V,H,D,E,Y,R,F,j]),J=D||E?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing",...N.length===0?["deploy"]:[]],q=O1.filter($=>J.includes($.id)),ee=q.findIndex($=>$.id===p),le=$=>{var G;(G=_.current[$])==null||G.scrollIntoView({behavior:"smooth",block:"start"})};S.useEffect(()=>{if(c)return;const $=k.current;if(!$)return;const G=new IntersectionObserver(X=>{var de,Ae;const pe=(Ae=(de=X.filter(_e=>_e.isIntersecting).sort((_e,mt)=>_e.boundingClientRect.top-mt.boundingClientRect.top)[0])==null?void 0:de.target)==null?void 0:Ae.dataset.stepId;pe&&g(pe)},{root:$,rootMargin:"0px 0px -65% 0px",threshold:0});for(const X of Object.values(_.current))X&&G.observe(X);return()=>G.disconnect()},[c]);const ce=async()=>{if(!Y){l(!0),U[0]&&v(U[0].path);return}const $=WC(s),G=[],X=new Set,me=pe=>{for(const de of pe.selectedSkills??[]){const Ae=`${de.namespace}/${de.slug}`;X.has(Ae)||(X.add(Ae),G.push(de))}(pe.subAgents??[]).forEach(me)};if(me(s),G.length>0){h(!0);try{const pe=await Promise.all(G.map(Ae=>jK(Ae.slug,Ae.namespace).catch(_e=>(console.warn(`下载技能失败:${Ae.name}`,_e),[])))),de=new Set($.files.map(Ae=>Ae.path));for(const Ae of pe)for(const _e of Ae)de.has(_e.path)||($.files.push(_e),de.add(_e.path))}finally{h(!1)}}d($)};if(c){const $=async(G,X,me)=>qN(G.name,G.files,{region:"cn-beijing",projectName:"default"},{...me,author:i,onStage:X});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>d(null),children:[f.jsx(PN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(fl,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(z0,{project:c,onChange:d,onDeploy:$,onAgentAdded:n,feishuEnabled:!!((ye=s.deployment)!=null&&ye.feishuEnabled)})})]})}const ae=C.current,se=$=>O1.find(G=>G.id===$);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(a2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:P})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:eg.map($=>{const G=(I.agentType??"llm")===$.id,X=$.icon;return f.jsxs("label",{className:`cw-typeradio-item ${G?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:G,onChange:()=>A({agentType:$.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(X,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:$.label})]})})]},$.id)})}),U.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",U.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:U.map($=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v($.path)},children:[$.name," · ",$.problem]},$.path.join(".")+$.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:k,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(ae,{meta:se("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&V?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:$=>A({name:$.target.value})}),a&&V&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:$=>A({description:$.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),D?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:$=>A({maxIterations:Math.max(1,Number($.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):E?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&T?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:$=>A({a2aUrl:$.target.value})}),a&&T?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&H?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… - -你的目标是…… - -约束: -- ……`,onChange:$=>A({instruction:$.target.value})}),a&&H?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!D&&!E&&f.jsxs(f.Fragment,{children:[f.jsx(ae,{meta:se("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:$=>A({modelName:$.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:$=>A({modelProvider:$.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:$=>A({modelApiBase:$.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(ae,{meta:se("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(R1,{items:UC,selected:R,onToggle:M})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(zK,{tools:F,onChange:$=>A({mcpTools:$})})]})]})}),f.jsx(ae,{meta:se("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 skills/ 目录。"}),f.jsx(UK,{selected:j,onChange:$=>A({selectedSkills:$})})]})}),f.jsx(ae,{meta:se("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.memory.shortTerm,onChange:$=>A({memory:{...I.memory,shortTerm:$}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:FN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(sp,{options:VC,value:I.shortTermBackend,onChange:$=>A({shortTermBackend:$})})]}),f.jsx(vi,{checked:I.memory.longTerm,onChange:$=>A({memory:{...I.memory,longTerm:$}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:gu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(sp,{options:HC,value:I.longTermBackend,onChange:$=>A({longTermBackend:$})}),f.jsx(vi,{checked:!!I.autoSaveSession,onChange:$=>A({autoSaveSession:$}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:gu})]})]})}),f.jsx(ae,{meta:se("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.knowledgebase,onChange:$=>A({knowledgebase:$}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:gu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(sp,{options:KC,value:I.knowledgebaseBackend,onChange:$=>A({knowledgebaseBackend:$})})]})]})}),f.jsx(ae,{meta:se("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(vi,{checked:I.tracing,onChange:$=>A({tracing:$}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:Ky}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(R1,{items:qC,selected:O,onToggle:B})]}),f.jsx(vi,{checked:I.enableA2ui,onChange:$=>A({enableA2ui:$}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:HB})]})}),N.length===0&&f.jsx(ae,{meta:se("deploy"),children:f.jsx("div",{className:"cw-form cw-toggle-stack",children:f.jsx(vi,{checked:!!((W=s.deployment)!=null&&W.feishuEnabled),onChange:$=>L({feishuEnabled:$}),title:"连接飞书",desc:"部署后可通过飞书消息触发当前 Agent。",icon:Xd})})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(ee,0)/Math.max(q.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),q.map($=>{const G=$.id===p,X=Z[$.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${G?"is-active":""} ${X?"is-done":""}`,onClick:()=>le($.id),"aria-current":G?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:$.label}),$.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:$.hint})]})]})},$.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:Y?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),U[0]&&v(U[0].path)},children:["待补全(",U.length,"):",U[0].name," · ",U[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[w&&f.jsx("span",{className:"cw-footer-importerr",children:w}),f.jsx("input",{ref:b,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:x}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var $;return($=b.current)==null?void 0:$.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(PB,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>I1(`${s.name||"agent"}.yaml`,y1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Pw,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:ce,disabled:!Y||u,children:u?f.jsxs(f.Fragment,{children:[f.jsx(bt,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(fl,{className:"cw-i"}),"生成项目"]})})]})]})]})}function hr(e){return{...ds(),...e}}const QK=[{id:"support",icon:zB,draft:hr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:SB,draft:hr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:VB,draft:hr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:AB,draft:hr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:QB,draft:hr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:r$,draft:hr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[hr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),hr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),hr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function ZK(e){const t=[];return e.tools.length&&t.push({icon:Wy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:EB,label:"记忆"}),e.knowledgebase&&t.push({icon:kB,label:"知识库"}),e.tracing&&t.push({icon:wB,label:"观测"}),e.subAgents.length&&t.push({icon:ZB,label:`子Agent ${e.subAgents.length}`}),t}function JK({onBack:e,onCreate:t}){const[n,r]=S.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(t7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(e7,{onPick:r})})}function e7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:QK.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function t7({template:e,onBack:t,onCreate:n}){const[r,i]=S.useState(e.draft.name),s=e.icon,o=ZK(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(PN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:n7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Gn,{className:"icon"})]})]})]})}function n7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function pt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function pf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Eu.prototype=pf.prototype={constructor:Eu,on:function(e,t){var n=this._,r=i7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),D1.hasOwnProperty(t)?{space:D1[t],local:e}:e}function o7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===tg&&t.documentElement.namespaceURI===tg?t.createElement(e):t.createElementNS(n,e)}}function a7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function l2(e){var t=mf(e);return(t.local?a7:o7)(t)}function l7(){}function V0(e){return e==null?l7:function(){return this.querySelector(e)}}function c7(e){typeof e!="function"&&(e=V0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=y&&(y=x+1);!(k=w[y])&&++y=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function L7(e){e||(e=P7);function t(u,h){return u&&h?e(u.__data__,h.__data__):!u-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function D7(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function j7(){return Array.from(this)}function B7(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Y7:typeof t=="function"?Q7:X7)(e,t,n??"")):_o(this.node(),e)}function _o(e,t){return e.style.getPropertyValue(t)||h2(e).getComputedStyle(e,null).getPropertyValue(t)}function J7(e){return function(){delete this[e]}}function eq(e,t){return function(){this[e]=t}}function tq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function nq(e,t){return arguments.length>1?this.each((t==null?J7:typeof t=="function"?tq:eq)(e,t)):this.node()[e]}function p2(e){return e.trim().split(/^|\s+/)}function H0(e){return e.classList||new m2(e)}function m2(e){this._node=e,this._names=p2(e.getAttribute("class")||"")}m2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function g2(e,t){for(var n=H0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Mq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function ng(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}ng.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fq(e){return!e.ctrlKey&&!e.button}function zq(){return this.parentNode}function Uq(e,t){return t??{x:e.x,y:e.y}}function Vq(){return navigator.maxTouchPoints||"ontouchstart"in this}function _2(){var e=Fq,t=zq,n=Uq,r=Vq,i={},s=pf("start","drag","end"),o=0,a,l,c,d,u=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",w).on("touchmove.drag",m,$q).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,k){if(!(d||!e.call(this,v,k))){var _=y(this,t.call(this,v,k),v,k,"mouse");_&&(an(v.view).on("mousemove.drag",g,wl).on("mouseup.drag",b,wl),w2(v.view),op(v),c=!1,a=v.clientX,l=v.clientY,_("start",v))}}function g(v){if(ro(v),!c){var k=v.clientX-a,_=v.clientY-l;c=k*k+_*_>u}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),v2(v.view,c),ro(v),i.mouse("end",v)}function w(v,k){if(e.call(this,v,k)){var _=v.changedTouches,C=t.call(this,v,k),N=_.length,I,A;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Gc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Gc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Kq.exec(e))?new Qt(t[1],t[2],t[3],1):(t=qq.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Gq.exec(e))?Gc(t[1],t[2],t[3],t[4]):(t=Wq.exec(e))?Gc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Yq.exec(e))?V1(t[1],t[2]/100,t[3]/100,1):(t=Xq.exec(e))?V1(t[1],t[2]/100,t[3]/100,t[4]):j1.hasOwnProperty(e)?F1(j1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function F1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Gc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function Jq(e){return e instanceof ec||(e=Qi(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function rg(e,t,n,r){return arguments.length===1?Jq(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}K0(Qt,rg,k2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(zi(this.r),zi(this.g),zi(this.b),wd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:z1,formatHex:z1,formatHex8:eG,formatRgb:U1,toString:U1}));function z1(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}`}function eG(){return`#${Pi(this.r)}${Pi(this.g)}${Pi(this.b)}${Pi((isNaN(this.opacity)?1:this.opacity)*255)}`}function U1(){const e=wd(this.opacity);return`${e===1?"rgb(":"rgba("}${zi(this.r)}, ${zi(this.g)}, ${zi(this.b)}${e===1?")":`, ${e})`}`}function wd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function zi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pi(e){return e=zi(e),(e<16?"0":"")+e.toString(16)}function V1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $n(e,t,n,r)}function E2(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof ec||(e=Qi(e)),!e)return new $n;if(e instanceof $n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new $n(o,a,l,e.opacity)}function tG(e,t,n,r){return arguments.length===1?E2(e):new $n(e,t,n,r??1)}function $n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}K0($n,tG,k2(ec,{brighter(e){return e=e==null?xd:Math.pow(xd,e),new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vl:Math.pow(vl,e),new $n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(ap(e>=240?e-240:e+120,i,r),ap(e,i,r),ap(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n(H1(this.h),Wc(this.s),Wc(this.l),wd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wd(this.opacity);return`${e===1?"hsl(":"hsla("}${H1(this.h)}, ${Wc(this.s)*100}%, ${Wc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function H1(e){return e=(e||0)%360,e<0?e+360:e}function Wc(e){return Math.max(0,Math.min(1,e||0))}function ap(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const q0=e=>()=>e;function nG(e,t){return function(n){return e+n*t}}function rG(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function iG(e){return(e=+e)==1?S2:function(t,n){return n-t?rG(t,n,e):q0(isNaN(t)?n:t)}}function S2(e,t){var n=t-e;return n?nG(e,n):q0(isNaN(e)?t:e)}const vd=function e(t){var n=iG(t);function r(i,s){var o=n((i=rg(i)).r,(s=rg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=S2(i.opacity,s.opacity);return function(d){return i.r=o(d),i.g=a(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r}(1);function sG(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=lp.lastIndex;return n180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(i(u)+"rotate(",null,r)-2,x:er(c,d)})):d&&u.push(i(u)+"rotate("+d+r)}function a(c,d,u,h){c!==d?h.push({i:u.push(i(u)+"skewX(",null,r)-2,x:er(c,d)}):d&&u.push(i(u)+"skewX("+d+r)}function l(c,d,u,h,p,g){if(c!==u||d!==h){var b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,u)},{i:b-2,x:er(d,h)})}else(u!==1||h!==1)&&p.push(i(p)+"scale("+u+","+h+")")}return function(c,d){var u=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,h),o(c.rotate,d.rotate,u,h),a(c.skewX,d.skewX,u,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(p){for(var g=-1,b=h.length,w;++g=0&&e._call.call(void 0,t),e=e._next;--ko}function G1(){Zi=(kd=kl.now())+gf,ko=xa=0;try{wG()}finally{ko=0,_G(),Zi=0}}function vG(){var e=kl.now(),t=e-kd;t>C2&&(gf-=t,kd=e)}function _G(){for(var e,t=_d,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_d=n);wa=e,og(r)}function og(e){if(!ko){xa&&(xa=clearTimeout(xa));var t=e-Zi;t>24?(e<1/0&&(xa=setTimeout(G1,e-kl.now()-gf)),la&&(la=clearInterval(la))):(la||(kd=kl.now(),la=setInterval(vG,C2)),ko=1,M2(G1))}}function W1(e,t,n){var r=new Ed;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var kG=pf("start","end","cancel","interrupt"),EG=[],O2=0,Y1=1,ag=2,Nu=3,X1=4,lg=5,Tu=6;function yf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;SG(e,n,{name:t,index:r,group:i,on:kG,tween:EG,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:O2})}function W0(e,t){var n=Yn(e,t);if(n.state>O2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Nu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function SG(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=I2(s,0,n.time);function s(c){n.state=Y1,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var d,u,h,p;if(n.state!==Y1)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Nu)return W1(o);p.state===X1?(p.state=Tu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+dag&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function tW(e,t,n){var r,i,s=eW(t)?W0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function nW(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(tW(n,e,t))}function rW(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function iW(){return this.on("end.remove",rW(this._id))}function sW(e){var t=this._name,n=this._id;typeof e!="function"&&(e=V0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function MW(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function wr(e,t,n){this.k=e,this.x=t,this.y=n}wr.prototype={constructor:wr,scale:function(e){return e===1?this:new wr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new wr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var bf=new wr(1,0,0);D2.prototype=wr.prototype;function D2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return bf;return e.__zoom}function cp(e){e.stopImmediatePropagation()}function ca(e){e.preventDefault(),e.stopImmediatePropagation()}function IW(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function OW(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Q1(){return this.__zoom||bf}function RW(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function LW(){return navigator.maxTouchPoints||"ontouchstart"in this}function PW(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function j2(){var e=IW,t=OW,n=PW,r=RW,i=LW,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Su,c=pf("start","zoom","end"),d,u,h,p=500,g=150,b=0,w=10;function m(O){O.property("__zoom",Q1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",P).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(O,j,M,B){var L=O.selection?O.selection():O;L.property("__zoom",Q1),O!==L?k(O,j,M,B):L.interrupt().each(function(){_(this,arguments).event(B).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},m.scaleBy=function(O,j,M,B){m.scaleTo(O,function(){var L=this.__zoom.k,D=typeof j=="function"?j.apply(this,arguments):j;return L*D},M,B)},m.scaleTo=function(O,j,M,B){m.transform(O,function(){var L=t.apply(this,arguments),D=this.__zoom,E=M==null?v(L):typeof M=="function"?M.apply(this,arguments):M,V=D.invert(E),H=typeof j=="function"?j.apply(this,arguments):j;return n(y(x(D,H),E,V),L,o)},M,B)},m.translateBy=function(O,j,M,B){m.transform(O,function(){return n(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,B)},m.translateTo=function(O,j,M,B,L){m.transform(O,function(){var D=t.apply(this,arguments),E=this.__zoom,V=B==null?v(D):typeof B=="function"?B.apply(this,arguments):B;return n(bf.translate(V[0],V[1]).scale(E.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof M=="function"?-M.apply(this,arguments):-M),D,o)},B,L)};function x(O,j){return j=Math.max(s[0],Math.min(s[1],j)),j===O.k?O:new wr(j,O.x,O.y)}function y(O,j,M){var B=j[0]-M[0]*O.k,L=j[1]-M[1]*O.k;return B===O.x&&L===O.y?O:new wr(O.k,B,L)}function v(O){return[(+O[0][0]+ +O[1][0])/2,(+O[0][1]+ +O[1][1])/2]}function k(O,j,M,B){O.on("start.zoom",function(){_(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(B).end()}).tween("zoom",function(){var L=this,D=arguments,E=_(L,D).event(B),V=t.apply(L,D),H=M==null?v(V):typeof M=="function"?M.apply(L,D):M,T=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),U=L.__zoom,Y=typeof j=="function"?j.apply(L,D):j,Z=l(U.invert(H).concat(T/U.k),Y.invert(H).concat(T/Y.k));return function(J){if(J===1)J=Y;else{var q=Z(J),ee=T/q[2];J=new wr(ee,H[0]-q[0]*ee,H[1]-q[1]*ee)}E.zoom(null,J)}})}function _(O,j,M){return!M&&O.__zooming||new C(O,j)}function C(O,j){this.that=O,this.args=j,this.active=0,this.sourceEvent=null,this.extent=t.apply(O,j),this.taps=0}C.prototype={event:function(O){return O&&(this.sourceEvent=O),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(O,j){return this.mouse&&O!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&O!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&O!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(O){var j=an(this.that).datum();c.call(O,this.that,new MW(O,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),j)}};function N(O,...j){if(!e.apply(this,arguments))return;var M=_(this,j).event(O),B=this.__zoom,L=Math.max(s[0],Math.min(s[1],B.k*Math.pow(2,r.apply(this,arguments)))),D=jn(O);if(M.wheel)(M.mouse[0][0]!==D[0]||M.mouse[0][1]!==D[1])&&(M.mouse[1]=B.invert(M.mouse[0]=D)),clearTimeout(M.wheel);else{if(B.k===L)return;M.mouse=[D,B.invert(D)],Au(this),M.start()}ca(O),M.wheel=setTimeout(E,g),M.zoom("mouse",n(y(x(B,L),M.mouse[0],M.mouse[1]),M.extent,o));function E(){M.wheel=null,M.end()}}function I(O,...j){if(h||!e.apply(this,arguments))return;var M=O.currentTarget,B=_(this,j,!0).event(O),L=an(O.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",T,!0),D=jn(O,M),E=O.clientX,V=O.clientY;w2(O.view),cp(O),B.mouse=[D,this.__zoom.invert(D)],Au(this),B.start();function H(U){if(ca(U),!B.moved){var Y=U.clientX-E,Z=U.clientY-V;B.moved=Y*Y+Z*Z>b}B.event(U).zoom("mouse",n(y(B.that.__zoom,B.mouse[0]=jn(U,M),B.mouse[1]),B.extent,o))}function T(U){L.on("mousemove.zoom mouseup.zoom",null),v2(U.view,B.moved),ca(U),B.event(U).end()}}function A(O,...j){if(e.apply(this,arguments)){var M=this.__zoom,B=jn(O.changedTouches?O.changedTouches[0]:O,this),L=M.invert(B),D=M.k*(O.shiftKey?.5:2),E=n(y(x(M,D),B,L),t.apply(this,j),o);ca(O),a>0?an(this).transition().duration(a).call(k,E,B,O):an(this).call(m.transform,E,B,O)}}function P(O,...j){if(e.apply(this,arguments)){var M=O.touches,B=M.length,L=_(this,j,O.changedTouches.length===B).event(O),D,E,V,H;for(cp(O),E=0;E`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},El=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],B2=["Enter"," ","Escape"],$2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Eo;(function(e){e.Strict="strict",e.Loose="loose"})(Eo||(Eo={}));var Ui;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ui||(Ui={}));var Sl;(function(e){e.Partial="partial",e.Full="full"})(Sl||(Sl={}));const F2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Hr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Hr||(Hr={}));var Nl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Nl||(Nl={}));var ge;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ge||(ge={}));const Z1={[ge.Left]:ge.Right,[ge.Right]:ge.Left,[ge.Top]:ge.Bottom,[ge.Bottom]:ge.Top};function z2(e){return e===null?null:e?"valid":"invalid"}const U2=e=>"id"in e&&"source"in e&&"target"in e,DW=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),X0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tc=(e,t=[0,0])=>{const{width:n,height:r}=Rr(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},jW=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):X0(i)?i:t.nodeLookup.get(i.id));const a=o?Sd(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return xf(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return wf(n)},nc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=xf(n,Sd(i)),r=!0)}),r?wf(n):{x:0,y:0,width:0,height:0}},Q0=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...Ho(t,[n,r,i]),width:t.width/i,height:t.height/i},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:h=!1}=c;if(o&&!u||h)continue;const p=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,b=Tl(a,No(c)),w=(p??0)*(g??0),m=s&&b>0;(!c.internals.handleBounds||m||b>=w||c.dragging)&&l.push(c)}return l},BW=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function $W(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function FW({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=$W(e,o),l=nc(a),c=J0(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function V2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let u=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(u=[[l,c],[l+p,c+g]])}else a&&es(o.extent)&&(u=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=es(u)?Ji(t,u,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*d[0],y:h.y-c+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function zW({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(b=>b.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=BW(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!i)return{edges:d,nodes:o};const u=await i({nodes:o,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:o}:{edges:[],nodes:[]}:u}const So=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ji=(e={x:0,y:0},t,n)=>({x:So(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:So(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function H2(e,t,n){const{width:r,height:i}=Rr(n),{x:s,y:o}=n.internals.positionAbsolute;return Ji(e,[[s,o],[s+r,o+i]],t)}const J1=(e,t,n)=>en?-So(Math.abs(e-n),1,t)/t:0,Z0=(e,t,n=15,r=40)=>{const i=J1(e.x,r,t.width-r)*n,s=J1(e.y,r,t.height-r)*n;return[i,s]},xf=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),cg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),wf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),No=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Sd=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=X0(e)?e.internals.positionAbsolute:tc(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},K2=(e,t)=>wf(xf(cg(e),cg(t))),Tl=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},e_=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),q2=(e,t)=>(n,r)=>{},rc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ho=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?rc(a,o):a},To=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function vs(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function UW(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=vs(e,n),i=vs(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=vs(e.top??e.y??0,n),i=vs(e.bottom??e.y??0,n),s=vs(e.left??e.x??0,t),o=vs(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function VW(e,t,n,r,i,s){const{x:o,y:a}=To(e,[t,n,r]),{x:l,y:c}=To({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-l,u=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const J0=(e,t,n,r,i,s)=>{const o=UW(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),d=So(c,r,i),u=e.x+e.width/2,h=e.y+e.height/2,p=t/2-u*d,g=n/2-h*d,b=VW(e,p,g,d,t,n),w={left:Math.min(b.left-o.left,0),top:Math.min(b.top-o.top,0),right:Math.min(b.right-o.right,0),bottom:Math.min(b.bottom-o.bottom,0)};return{x:p-w.left+w.right,y:g-w.top+w.bottom,zoom:d}},Al=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function es(e){return e!=null&&e!=="parent"}function Rr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function G2(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function W2(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function t_(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function HW(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function KW(e){return{...$2,...e||{}}}function za(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=Ho({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?rc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const eb=e=>({width:e.offsetWidth,height:e.offsetHeight}),Y2=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qW=["INPUT","SELECT","TEXTAREA"];function X2(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:qW.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Q2=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=Q2(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},n_=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...eb(o)}})};function Z2({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function Qc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function r_({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case ge.Left:return[t-Qc(t-r,s),n];case ge.Right:return[t+Qc(r-t,s),n];case ge.Top:return[t,n-Qc(n-i,s)];case ge.Bottom:return[t,n+Qc(i-n,s)]}}function J2({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top,curvature:o=.25}){const[a,l]=r_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,d]=r_({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[u,h,p,g]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${i}`,u,h,p,g]}function eM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const YW=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,XW=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),QW=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||YW;let i;return U2(e)?i={...e}:i={...e,id:r(e)},XW(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function tM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=eM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const i_={[ge.Left]:{x:-1,y:0},[ge.Right]:{x:1,y:0},[ge.Top]:{x:0,y:-1},[ge.Bottom]:{x:0,y:1}},ZW=({source:e,sourcePosition:t=ge.Bottom,target:n})=>t===ge.Left||t===ge.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function JW({source:e,sourcePosition:t=ge.Bottom,target:n,targetPosition:r=ge.Top,center:i,offset:s,stepPosition:o}){const a=i_[t],l=i_[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=ZW({source:c,sourcePosition:t,target:d}),h=u.x!==0?"x":"y",p=u[h];let g=[],b,w;const m={x:0,y:0},x={x:0,y:0},[,,y,v]=eM({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(b=i.x??c.x+(d.x-c.x)*o,w=i.y??(c.y+d.y)/2):(b=i.x??(c.x+d.x)/2,w=i.y??c.y+(d.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,y:d.y}],I=[{x:c.x,y:w},{x:d.x,y:w}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:d.y}],I=[{x:d.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const O=Math.abs(e[h]-n[h]);if(O<=s){const j=Math.min(s-1,s-O);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*j:x[h]=(d[h]>n[h]?-1:1)*j}}if(t!==r){const O=h==="x"?"y":"x",j=a[h]===l[O],M=c[O]>d[O],B=c[O]=F?(b=(A.x+P.x)/2,w=g[0].y):(b=g[0].x,w=(A.y+P.y)/2)}const k={x:c.x+m.x,y:c.y+m.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...k.x!==g[0].x||k.y!==g[0].y?[k]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],b,w,y,v]}function eY(e,t,n,r){const i=Math.min(s_(e,t)/2,s_(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function dg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function nY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=dg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const nM=1e3,rY=10,tb={nodeOrigin:[0,0],nodeExtent:El,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},iY={...tb,checkEquality:!0};function nb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function sY(e,t,n){const r=nb(tb,n);for(const i of e.values())if(i.parentId)ib(i,e,t,r);else{const s=tc(i,r.nodeOrigin),o=es(i.extent)?i.extent:r.nodeExtent,a=Ji(s,o,Rr(i));i.internals.positionAbsolute=a}}function oY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function rb(e){return e==="manual"}function fg(e,t,n,r={}){var d,u;const i=nb(iY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!rb(i.zIndexMode)?nM:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=tc(h,i.nodeOrigin),b=es(h.extent)?h.extent:i.nodeExtent,w=Ji(g,b,Rr(h));p={...i.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(u=h.measured)==null?void 0:u.height},internals:{positionAbsolute:w,handleBounds:oY(h,p),z:rM(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&ib(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function aY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ib(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=nb(tb,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}aY(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*rY),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const u=s&&!rb(l)?nM:0,{x:h,y:p,z:g}=lY(e,d,o,a,u,l),{positionAbsolute:b}=e.internals,w=h!==b.x||p!==b.y;(w||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:p}:b,z:g}})}function rM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return rb(n)?r:r+(e.selected?t:0)}function lY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=Rr(e),c=tc(e,n),d=es(e.extent)?Ji(c,e.extent,l):c;let u=Ji({x:o+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=H2(u,l,t));const h=rM(e,i,s),p=t.internals.z??0;return{x:u.x,y:u.y,z:p>=h?p+1:h}}function sb(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??No(l),d=K2(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var y;const d=l.internals.positionAbsolute,u=Rr(l),h=l.origin??r,p=a.x0||g>0||m||x)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+x}}),(y=n.get(c))==null||y.forEach(v=>{e.some(k=>k.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(u.width0){const p=sb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function uY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function c_(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function iM(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,d=`${s}-${a}--${i}-${o}`;c_("source",l,d,e,i,o),c_("target",l,c,e,s,a),t.set(r.id,r)}}function sM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:sM(n,t):!1}function u_(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function dY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!sM(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function up({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,d]of t){const u=(o=n.get(c))==null?void 0:o.internals.userNode;u&&i.push({...u,position:d.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function fY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=rc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function hY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,h=null,p=!1,g=!1,b=null;function w({noDragClassName:x,handleSelector:y,domNode:v,isSelectable:k,nodeId:_,nodeClickDistance:C=0}){h=an(v);function N({x:R,y:F}){const{nodeLookup:O,nodeExtent:j,snapGrid:M,snapToGrid:B,nodeOrigin:L,onNodeDrag:D,onSelectionDrag:E,onError:V,updateNodePositions:H}=t();s={x:R,y:F};let T=!1;const U=a.size>1,Y=U&&j?cg(nc(a)):null,Z=U&&B?fY({dragItems:a,snapGrid:M,x:R,y:F}):null;for(const[J,q]of a){if(!O.has(J))continue;let ee={x:R-q.distance.x,y:F-q.distance.y};B&&(ee=Z?{x:Math.round(ee.x+Z.x),y:Math.round(ee.y+Z.y)}:rc(ee,M));let le=null;if(U&&j&&!q.extent&&Y){const{positionAbsolute:se}=q.internals,ye=se.x-Y.x+j[0][0],W=se.x+q.measured.width-Y.x2+j[1][0],$=se.y-Y.y+j[0][1],G=se.y+q.measured.height-Y.y2+j[1][1];le=[[ye,$],[W,G]]}const{position:ce,positionAbsolute:ae}=V2({nodeId:J,nextPosition:ee,nodeLookup:O,nodeExtent:le||j,nodeOrigin:L,onError:V});T=T||q.position.x!==ce.x||q.position.y!==ce.y,q.position=ce,q.internals.positionAbsolute=ae}if(g=g||T,!!T&&(H(a,!0),b&&(r||D||!_&&E))){const[J,q]=up({nodeId:_,dragItems:a,nodeLookup:O});r==null||r(b,a,J,q),D==null||D(b,J,q),_||E==null||E(b,q)}}async function I(){if(!d)return;const{transform:R,panBy:F,autoPanSpeed:O,autoPanOnNodeDrag:j}=t();if(!j){l=!1,cancelAnimationFrame(o);return}const[M,B]=Z0(c,d,O);(M!==0||B!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-B/R[2],await F({x:M,y:B})&&N(s)),o=requestAnimationFrame(I)}function A(R){var U;const{nodeLookup:F,multiSelectionActive:O,nodesDraggable:j,transform:M,snapGrid:B,snapToGrid:L,selectNodesOnDrag:D,onNodeDragStart:E,onSelectionDragStart:V,unselectNodesAndEdges:H}=t();u=!0,(!D||!k)&&!O&&_&&((U=F.get(_))!=null&&U.selected||H()),k&&D&&_&&(e==null||e(_));const T=za(R.sourceEvent,{transform:M,snapGrid:B,snapToGrid:L,containerBounds:d});if(s=T,a=dY(F,j,T,_),a.size>0&&(n||E||!_&&V)){const[Y,Z]=up({nodeId:_,dragItems:a,nodeLookup:F});n==null||n(R.sourceEvent,a,Y,Z),E==null||E(R.sourceEvent,Y,Z),_||V==null||V(R.sourceEvent,Z)}}const P=_2().clickDistance(C).on("start",R=>{const{domNode:F,nodeDragThreshold:O,transform:j,snapGrid:M,snapToGrid:B}=t();d=(F==null?void 0:F.getBoundingClientRect())||null,p=!1,g=!1,b=R.sourceEvent,O===0&&A(R),s=za(R.sourceEvent,{transform:j,snapGrid:M,snapToGrid:B,containerBounds:d}),c=zn(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:F,transform:O,snapGrid:j,snapToGrid:M,nodeDragThreshold:B,nodeLookup:L}=t(),D=za(R.sourceEvent,{transform:O,snapGrid:j,snapToGrid:M,containerBounds:d});if(b=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||_&&!L.has(_))&&(p=!0),!p){if(!l&&F&&u&&(l=!0,I()),!u){const E=zn(R.sourceEvent,d),V=E.x-c.x,H=E.y-c.y;Math.sqrt(V*V+H*H)>B&&A(R)}(s.x!==D.xSnapped||s.y!==D.ySnapped)&&a&&u&&(c=zn(R.sourceEvent,d),N(D))}}).on("end",R=>{if(!u||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:F,updateNodePositions:O,onNodeDragStop:j,onSelectionDragStop:M}=t();if(g&&(O(a,!1),g=!1),i||j||!_&&M){const[B,L]=up({nodeId:_,dragItems:a,nodeLookup:F,dragging:!1});i==null||i(R.sourceEvent,a,B,L),j==null||j(R.sourceEvent,B,L),_||M==null||M(R.sourceEvent,L)}}}).filter(R=>{const F=R.target;return!R.button&&(!x||!u_(F,`.${x}`,v))&&(!y||u_(F,y,v))});h.call(P)}function m(){h==null||h.on(".drag",null)}return{update:w,destroy:m}}function pY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Tl(i,No(s))>0&&r.push(s);return r}const mY=250;function gY(e,t,n,r){var a,l;let i=[],s=1/0;const o=pY(e,n,t+mY);for(const c of o){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:h,y:p}=ts(c,u,u.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(d=>d.type===c)??i[0]}return i[0]}function oM(e,t,n,r,i,s=!1){var c,d,u;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((u=o.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...ts(o,l,l.position,!0)}:l}function aM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function yY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const lM=()=>!0;function bY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:b,onConnectEnd:w,isValidConnection:m=lM,onReconnectEnd:x,updateConnection:y,getTransform:v,getFromHandle:k,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:N}){const I=Y2(e.target);let A=0,P;const{x:R,y:F}=zn(e),O=aM(s,N),j=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!j||!O)return;const B=oM(i,O,r,l,t);if(!B)return;let L=zn(e,j),D=!1,E=null,V=!1,H=null;function T(){if(!d||!j)return;const[ce,ae]=Z0(L,j,_);h({x:ce,y:ae}),A=requestAnimationFrame(T)}const U={...B,nodeId:i,type:O,position:B.position},Y=l.get(i);let J={inProgress:!0,isValid:null,from:ts(Y,U,ge.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:Y,to:L,toHandle:null,toPosition:Z1[U.position],toNode:null,pointer:L};function q(){M=!0,y(J),g==null||g(e,{nodeId:i,handleId:r,handleType:O})}C===0&&q();function ee(ce){if(!M){const{x:G,y:X}=zn(ce),me=G-R,pe=X-F;if(!(me*me+pe*pe>C*C))return;q()}if(!k()||!U){le(ce);return}const ae=v();L=zn(ce,j),P=gY(Ho(L,ae,!1,[1,1]),n,l,U),D||(T(),D=!0);const se=cM(ce,{handle:P,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:u,nodeLookup:l});H=se.handleDomNode,E=se.connection,V=yY(!!P,se.isValid);const ye=l.get(i),W=ye?ts(ye,U,ge.Left,!0):J.from,$={...J,from:W,isValid:V,to:se.toHandle&&V?To({x:se.toHandle.x,y:se.toHandle.y},ae):L,toHandle:se.toHandle,toPosition:V&&se.toHandle?se.toHandle.position:Z1[U.position],toNode:se.toHandle?l.get(se.toHandle.nodeId):null,pointer:L};y($),J=$}function le(ce){if(!("touches"in ce&&ce.touches.length>0)){if(M){(P||H)&&E&&V&&(b==null||b(E));const{inProgress:ae,...se}=J,ye={...se,toPosition:J.toHandle?J.toPosition:null};w==null||w(ce,ye),s&&(x==null||x(ce,ye))}p(),cancelAnimationFrame(A),D=!1,V=!1,E=null,H=null,I.removeEventListener("mousemove",ee),I.removeEventListener("mouseup",le),I.removeEventListener("touchmove",ee),I.removeEventListener("touchend",le)}}I.addEventListener("mousemove",ee),I.addEventListener("mouseup",le),I.addEventListener("touchmove",ee),I.addEventListener("touchend",le)}function cM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=lM,nodeLookup:d}){const u=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),b=o.elementFromPoint(p,g),w=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:h,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const x=aM(void 0,w),y=w.getAttribute("data-nodeid"),v=w.getAttribute("data-handleid"),k=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!x)return m;const C={source:u?y:r,sourceHandle:u?v:i,target:u?r:y,targetHandle:u?i:v};m.connection=C;const I=k&&_&&(n===Eo.Strict?u&&x==="source"||!u&&x==="target":y!==r||v!==i);m.isValid=I&&c(C),m.toHandle=oM(y,x,v,d,n,!0)}return m}const hg={onPointerDown:bY,isValid:cM};function xY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:h=!0,inversePan:p=!1}){const g=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const v=n(),k=y.sourceEvent.ctrlKey&&Al()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,C=v[2]*Math.pow(2,_*k);t.scaleTo(C)};let b=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(b=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},m=y=>{const v=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const k=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[k[0]-b[0],k[1]-b[1]];b=k;const C=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-_[0]*C,y:v[1]-_[1]*C},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},x=j2().on("start",w).on("zoom",u?m:null).on("zoom.wheel",h?g:null);i.call(x,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const vf=e=>({x:e.x,y:e.y,zoom:e.k}),dp=({x:e,y:t,zoom:n})=>bf.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),uM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),wY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,fp=(e,t=0,n=wY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},dM=e=>{const t=e.ctrlKey&&Al()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function vY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(qs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&o){const w=jn(d),m=dM(d),x=u*Math.pow(2,m);r.scaleTo(n,x,w,d);return}const h=d.deltaMode===1?20:1;let p=i===Ui.Vertical?0:d.deltaX*h,g=i===Ui.Horizontal?0:d.deltaY*h;!Al()&&d.shiftKey&&i!==Ui.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/u)*s,-(g/u)*s,{internal:!0});const b=vf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,b),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,b))}}function _Y({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=qs(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function kY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=vf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function EY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&uM(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,vf(s.transform)))}}function SY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&uM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=vf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function NY({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var w;const h=e||t,p=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(qs(u,`${c}-flow__node`)||qs(u,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||d&&!g||qs(u,a)&&g||qs(u,l)&&(!g||i&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((w=u.touches)==null?void 0:w.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const b=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&b}}function TY({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=j2().scaleExtent([t,n]).translateExtent(r),h=an(e).call(u);x({x:i.x,y:i.y,zoom:So(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),g=h.on("dblclick.zoom");u.wheelDelta(dM);async function b(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).transform(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}function w({noWheelClassName:P,noPanClassName:R,onPaneContextMenu:F,userSelectionActive:O,panOnScroll:j,panOnDrag:M,panOnScrollMode:B,panOnScrollSpeed:L,preventScrolling:D,zoomOnPinch:E,zoomOnScroll:V,zoomOnDoubleClick:H,zoomActivationKeyPressed:T,lib:U,onTransformChange:Y,connectionInProgress:Z,paneClickDistance:J,selectionOnDrag:q}){O&&!c.isZoomingOrPanning&&m();const ee=j&&!T&&!O;u.clickDistance(q?1/0:!Fn(J)||J<0?0:J);const le=ee?vY({zoomPanValues:c,noWheelClassName:P,d3Selection:h,d3Zoom:u,panOnScrollMode:B,panOnScrollSpeed:L,zoomOnPinch:E,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):_Y({noWheelClassName:P,preventScrolling:D,d3ZoomHandler:p});h.on("wheel.zoom",le,{passive:!1});const ce=kY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});u.on("start",ce);const ae=EY({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!F,onPanZoom:s,onTransformChange:Y});u.on("zoom",ae);const se=SY({zoomPanValues:c,panOnDrag:M,panOnScroll:j,onPaneContextMenu:F,onPanZoomEnd:a,onDraggingChange:l});u.on("end",se);const ye=NY({zoomActivationKeyPressed:T,panOnDrag:M,zoomOnScroll:V,panOnScroll:j,zoomOnDoubleClick:H,zoomOnPinch:E,userSelectionActive:O,noPanClassName:R,noWheelClassName:P,lib:U,connectionInProgress:Z});u.filter(ye),H?h.on("dblclick.zoom",g):h.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function x(P,R,F){const O=dp(P),j=u==null?void 0:u.constrain()(O,R,F);return j&&await b(j),j}async function y(P,R){const F=dp(P);return await b(F,R),F}function v(P){if(h){const R=dp(P),F=h.property("__zoom");(F.k!==P.zoom||F.x!==P.x||F.y!==P.y)&&(u==null||u.transform(h,R,null,{sync:!0}))}}function k(){const P=h?D2(h.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}async function _(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleTo(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}async function C(P,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?Fa:Su).scaleBy(fp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),P)}):!1}function N(P){u==null||u.scaleExtent(P)}function I(P){u==null||u.translateExtent(P)}function A(P){const R=!Fn(P)||P<0?0:P;u==null||u.clickDistance(R)}return{update:w,destroy:m,setViewport:y,setViewportConstrained:x,getViewport:k,scaleTo:_,scaleBy:C,setScaleExtent:N,setTranslateExtent:I,syncViewport:v,setClickDistance:A}}var Ao;(function(e){e.Line="line",e.Handle="handle"})(Ao||(Ao={}));function AY({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function d_(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Dr(e,t){return Math.max(0,t-e)}function jr(e,t){return Math.max(0,e-t)}function Zc(e,t,n){return Math.max(0,t-e,e-n)}function f_(e,t){return e?!t:t}function CY(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,h=d&&u,{xSnapped:p,ySnapped:g}=n,{minWidth:b,maxWidth:w,minHeight:m,maxHeight:x}=r,{x:y,y:v,width:k,height:_,aspectRatio:C}=e;let N=Math.floor(d?p-e.pointerX:0),I=Math.floor(u?g-e.pointerY:0);const A=k+(l?-N:N),P=_+(c?-I:I),R=-s[0]*k,F=-s[1]*_;let O=Zc(A,b,w),j=Zc(P,m,x);if(o){let L=0,D=0;l&&N<0?L=Dr(y+N+R,o[0][0]):!l&&N>0&&(L=jr(y+A+R,o[1][0])),c&&I<0?D=Dr(v+I+F,o[0][1]):!c&&I>0&&(D=jr(v+P+F,o[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(a){let L=0,D=0;l&&N>0?L=jr(y+N,a[0][0]):!l&&N<0&&(L=Dr(y+A,a[1][0])),c&&I>0?D=jr(v+I,a[0][1]):!c&&I<0&&(D=Dr(v+P,a[1][1])),O=Math.max(O,L),j=Math.max(j,D)}if(i){if(d){const L=Zc(A/C,m,x)*C;if(O=Math.max(O,L),o){let D=0;!l&&!c||l&&!c&&h?D=jr(v+F+A/C,o[1][1])*C:D=Dr(v+F+(l?N:-N)/C,o[0][1])*C,O=Math.max(O,D)}if(a){let D=0;!l&&!c||l&&!c&&h?D=Dr(v+A/C,a[1][1])*C:D=jr(v+(l?N:-N)/C,a[0][1])*C,O=Math.max(O,D)}}if(u){const L=Zc(P*C,b,w)/C;if(j=Math.max(j,L),o){let D=0;!l&&!c||c&&!l&&h?D=jr(y+P*C+R,o[1][0])/C:D=Dr(y+(c?I:-I)*C+R,o[0][0])/C,j=Math.max(j,D)}if(a){let D=0;!l&&!c||c&&!l&&h?D=Dr(y+P*C,a[1][0])/C:D=jr(y+(c?I:-I)*C,a[0][0])/C,j=Math.max(j,D)}}}I=I+(I<0?j:-j),N=N+(N<0?O:-O),i&&(h?A>P*C?I=(f_(l,c)?-N:N)/C:N=(f_(l,c)?-I:I)*C:d?(I=N/C,c=l):(N=I*C,l=c));const M=l?y+N:y,B=c?v+I:v;return{width:k+(l?-N:N),height:_+(c?-I:I),x:s[0]*N*(l?-1:1)+M,y:s[1]*I*(c?-1:1)+B}}const fM={width:0,height:0,x:0,y:0},MY={...fM,pointerX:0,pointerY:0,aspectRatio:1};function IY(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function OY({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:d_("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:b,shouldResize:w}){let m={...fM},x={...MY};o={boundaries:d,resizeDirection:h,keepAspectRatio:u,controlDirection:d_(c)};let y,v=null,k=[],_,C,N,I=!1;const A=_2().on("start",P=>{const{nodeLookup:R,transform:F,snapGrid:O,snapToGrid:j,nodeOrigin:M,paneDomNode:B}=n();if(y=R.get(t),!y)return;v=(B==null?void 0:B.getBoundingClientRect())??null;const{xSnapped:L,ySnapped:D}=za(P.sourceEvent,{transform:F,snapGrid:O,snapToGrid:j,containerBounds:v});m={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},x={...m,pointerX:L,pointerY:D,aspectRatio:m.width/m.height},_=void 0,C=es(y.extent)?y.extent:void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=R.get(y.parentId)),_&&y.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),k=[],N=void 0;for(const[E,V]of R)if(V.parentId===t&&(k.push({id:E,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const H=IY(V,y,V.origin??M);N?N=[[Math.min(H[0][0],N[0][0]),Math.min(H[0][1],N[0][1])],[Math.max(H[1][0],N[1][0]),Math.max(H[1][1],N[1][1])]]:N=H}p==null||p(P,{...m})}).on("drag",P=>{const{transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j}=n(),M=za(P.sourceEvent,{transform:R,snapGrid:F,snapToGrid:O,containerBounds:v}),B=[];if(!y)return;const{x:L,y:D,width:E,height:V}=m,H={},T=y.origin??j,{width:U,height:Y,x:Z,y:J}=CY(x,o.controlDirection,M,o.boundaries,o.keepAspectRatio,T,C,N),q=U!==E,ee=Y!==V,le=Z!==L&&q,ce=J!==D&ⅇif(!le&&!ce&&!q&&!ee)return;if((le||ce||T[0]===1||T[1]===1)&&(H.x=le?Z:m.x,H.y=ce?J:m.y,m.x=H.x,m.y=H.y,k.length>0)){const W=Z-L,$=J-D;for(const G of k)G.position={x:G.position.x-W+T[0]*(U-E),y:G.position.y-$+T[1]*(Y-V)},B.push(G)}if((q||ee)&&(H.width=q&&(!o.resizeDirection||o.resizeDirection==="horizontal")?U:m.width,H.height=ee&&(!o.resizeDirection||o.resizeDirection==="vertical")?Y:m.height,m.width=H.width,m.height=H.height),_&&y.expandParent){const W=T[0]*(H.width??0);H.x&&H.x{I&&(b==null||b(P,{...m}),i==null||i({...m}),I=!1)});s.call(A)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var hM={exports:{}},pM={},mM={exports:{}},gM={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Co=S;function RY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var LY=typeof Object.is=="function"?Object.is:RY,PY=Co.useState,DY=Co.useEffect,jY=Co.useLayoutEffect,BY=Co.useDebugValue;function $Y(e,t){var n=t(),r=PY({inst:{value:n,getSnapshot:t}}),i=r[0].inst,s=r[1];return jY(function(){i.value=n,i.getSnapshot=t,hp(i)&&s({inst:i})},[e,n,t]),DY(function(){return hp(i)&&s({inst:i}),e(function(){hp(i)&&s({inst:i})})},[e]),BY(n),n}function hp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!LY(e,n)}catch{return!0}}function FY(e,t){return t()}var zY=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?FY:$Y;gM.useSyncExternalStore=Co.useSyncExternalStore!==void 0?Co.useSyncExternalStore:zY;mM.exports=gM;var UY=mM.exports;/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var _f=S,VY=UY;function HY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var KY=typeof Object.is=="function"?Object.is:HY,qY=VY.useSyncExternalStore,GY=_f.useRef,WY=_f.useEffect,YY=_f.useMemo,XY=_f.useDebugValue;pM.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=GY(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=YY(function(){function l(p){if(!c){if(c=!0,d=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return u=g}return u=p}if(g=u,KY(d,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(d=p,g):(d=p,u=b)}var c=!1,d,u,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=qY(e,s[0],s[1]);return WY(function(){o.hasValue=!0,o.value=a},[a]),XY(a),a};hM.exports=pM;var QY=hM.exports;const ZY=Ml(QY),JY={},h_=e=>{let t;const n=new Set,r=(d,u)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=u??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(JY?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},eX=e=>e?h_(e):h_,{useDebugValue:tX}=tk,{useSyncExternalStoreWithSelector:nX}=ZY,rX=e=>e;function yM(e,t=rX,n){const r=nX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tX(r),r}const p_=(e,t)=>{const n=eX(e),r=(i,s=t)=>yM(n,i,s);return Object.assign(r,n),r},iX=(e,t)=>e?p_(e,t):p_;function We(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const kf=S.createContext(null),sX=kf.Provider,bM=qn.error001("react");function Oe(e,t){const n=S.useContext(kf);if(n===null)throw new Error(bM);return yM(n,e,t)}function Ye(){const e=S.useContext(kf);if(e===null)throw new Error(bM);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const m_={display:"none"},oX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},xM="react-flow__node-desc",wM="react-flow__edge-desc",aX="react-flow__aria-live",lX=e=>e.ariaLiveMessage,cX=e=>e.ariaLabelConfig;function uX({rfId:e}){const t=Oe(lX);return f.jsx("div",{id:`${aX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:oX,children:t})}function dX({rfId:e,disableKeyboardA11y:t}){const n=Oe(cX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${xM}-${e}`,style:m_,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${wM}-${e}`,style:m_,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(uX,{rfId:e})]})}const Ef=S.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:pt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});Ef.displayName="Panel";function fX({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(Ef,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:f.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Jc=e=>e.id;function pX(e,t){return We(e.selectedNodes.map(Jc),t.selectedNodes.map(Jc))&&We(e.selectedEdges.map(Jc),t.selectedEdges.map(Jc))}function mX({onSelectionChange:e}){const t=Ye(),{selectedNodes:n,selectedEdges:r}=Oe(hX,pX);return S.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const gX=e=>!!e.onSelectionChangeHandlers;function yX({onSelectionChange:e}){const t=Oe(gX);return e||t?f.jsx(mX,{onSelectionChange:e}):null}const vM=[0,0],bX={x:0,y:0,zoom:1},xX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],g_=[...xX,"rfId"],wX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),y_={translateExtent:El,nodeOrigin:vM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function vX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Oe(wX,We),c=Ye();S.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=y_,a()}),[]);const d=S.useRef(y_);return S.useEffect(()=>{for(const u of g_){const h=e[u],p=d.current[u];h!==p&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?r(h):u==="maxZoom"?i(h):u==="translateExtent"?s(h):u==="nodeExtent"?o(h):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:KW(h)}):u==="fitView"?c.setState({fitViewQueued:h}):u==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[u]:h})))}d.current=e},g_.map(u=>e[u])),null}function b_(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function _X(e){var r;const[t,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const i=b_(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=b_())!=null&&r.matches?"dark":"light"}const x_=typeof document<"u"?document:null;function Cl(e=null,t={target:x_,actInsideInputWithModifier:!0}){const[n,r]=S.useState(!1),i=S.useRef(!1),s=S.useRef(new Set([])),[o,a]=S.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` -`).replace(` - -`,` -+`).split(` -`)),d=c.reduce((u,h)=>u.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return S.useEffect(()=>{const l=(t==null?void 0:t.target)??x_,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var w,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&X2(p))return!1;const b=v_(p.code,a);if(s.current.add(p[b]),w_(o,s.current,!1)){const x=((m=(w=p.composedPath)==null?void 0:w.call(p))==null?void 0:m[0])||p.target,y=(x==null?void 0:x.nodeName)==="BUTTON"||(x==null?void 0:x.nodeName)==="A";t.preventDefault!==!1&&(i.current||!y)&&p.preventDefault(),r(!0)}},u=p=>{const g=v_(p.code,a);w_(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function w_(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function v_(e,t){return t.includes(e)?"code":"key"}const kX=()=>{const e=Ye();return S.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=J0(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??i,u=n.snapToGrid??s;return Ho(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=To(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function _M(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)EX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function EX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function kM(e,t){return _M(e,t)}function EM(e,t){return _M(e,t)}function Ti(e,t){return{id:e,type:"select",selected:t}}function Gs(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ti(s.id,o)))}return r}function __({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function k_(e){return{id:e.id,type:"remove"}}const SX=q2();function SM(e,t,n={}){return QW(e,t,{...n,onError:n.onError??SX})}const E_=e=>DW(e),NX=e=>U2(e);function NM(e){return S.forwardRef(e)}const TX=typeof window<"u"?S.useLayoutEffect:S.useEffect;function S_(e){const[t,n]=S.useState(BigInt(0)),[r]=S.useState(()=>AX(()=>n(i=>i+BigInt(1))));return TX(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function AX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const TM=S.createContext(null);function CX({children:e}){const t=Ye(),n=S.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let b=l;for(const m of a)b=typeof m=="function"?m(b):m;let w=__({items:b,lookup:h});for(const m of g.values())w=m(w);d&&c(b),w.length>0?u==null||u(w):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:x,setNodes:y}=t.getState();m&&y(x)})},[]),r=S_(n),i=S.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?c(p):u&&u(__({items:p,lookup:h}))},[]),s=S_(i),o=S.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(TM.Provider,{value:o,children:e})}function MX(){const e=S.useContext(TM);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const IX=e=>!!e.panZoom;function ob(){const e=kX(),t=Ye(),n=MX(),r=Oe(IX),i=S.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),o=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,x;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=E_(u)?u:h.get(u.id),b=g.parentId?W2(g.position,g.measured,g.parentId,h,p):g.position,w={...g,position:b,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((x=g.measured)==null?void 0:x.height)??g.height};return No(w)},c=(u,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&E_(w)?w:{...b,...w}}return b}))},d=(u,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===u){const w=typeof h=="function"?h(b):h;return p.replace&&NX(w)?w:{...b,...w}}return b}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var h;return(h=s(u))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(h=>({...h}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:o,setEdges:a,addNodes:u=>{const h=Array.isArray(u)?u:[u];n.nodeQueue.push(p=>[...p,...h])},addEdges:u=>{const h=Array.isArray(u)?u:[u];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:u=[],edges:h=[],transform:p}=t.getState(),[g,b,w]=p;return{nodes:u.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:w}}},deleteElements:async({nodes:u=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:x,onDelete:y,onBeforeDelete:v}=t.getState(),{nodes:k,edges:_}=await zW({nodesToRemove:u,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),C=_.length>0,N=k.length>0;if(C){const I=_.map(k_);w==null||w(_),x(I)}if(N){const I=k.map(k_);b==null||b(k),m(I)}return(N||C)&&(y==null||y({nodes:k,edges:_})),{deletedNodes:k,deletedEdges:_}},getIntersectingNodes:(u,h=!0,p)=>{const g=e_(u),b=g?u:l(u),w=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const x=t.getState().nodeLookup.get(m.id);if(x&&!g&&(m.id===u.id||!x.internals.positionAbsolute))return!1;const y=No(w?m:x),v=Tl(y,b);return h&&v>0||v>=y.width*y.height||v>=b.width*b.height}):[]},isNodeIntersecting:(u,h,p=!0)=>{const b=e_(u)?u:l(u);if(!b)return!1;const w=Tl(b,h);return p&&w>0||w>=h.width*h.height||w>=b.width*b.height},updateNode:c,updateNodeData:(u,h,p={replace:!1})=>{c(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:d,updateEdgeData:(u,h,p={replace:!1})=>{d(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:u=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return jW(u,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:u,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${u}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${u?h?`-${u}-${h}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const h=t.getState().fitViewResolver??HW();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const N_=e=>e.selected,OX=typeof window<"u"?window:void 0;function RX({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Ye(),{deleteElements:r}=ob(),i=Cl(e,{actInsideInputWithModifier:!1}),s=Cl(t,{target:OX});S.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(N_),edges:o.filter(N_)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function LX(e){const t=Ye();S.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=eb(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Sf={position:"absolute",width:"100%",height:"100%",top:0,left:0},PX=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function DX({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Ui.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:w,onViewportChange:m,isControlledViewport:x,paneClickDistance:y,selectionOnDrag:v}){const k=Ye(),_=S.useRef(null),{userSelectionActive:C,lib:N,connectionInProgress:I}=Oe(PX,We),A=Cl(h),P=S.useRef();LX(_);const R=S.useCallback(F=>{m==null||m({x:F[0],y:F[1],zoom:F[2]}),x||k.setState({transform:F})},[m,x]);return S.useEffect(()=>{if(_.current){P.current=TY({domNode:_.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>k.setState(B=>B.paneDragging===M?B:{paneDragging:M}),onPanZoomStart:(M,B)=>{const{onViewportChangeStart:L,onMoveStart:D}=k.getState();D==null||D(M,B),L==null||L(B)},onPanZoom:(M,B)=>{const{onViewportChange:L,onMove:D}=k.getState();D==null||D(M,B),L==null||L(B)},onPanZoomEnd:(M,B)=>{const{onViewportChangeEnd:L,onMoveEnd:D}=k.getState();D==null||D(M,B),L==null||L(B)}});const{x:F,y:O,zoom:j}=P.current.getViewport();return k.setState({panZoom:P.current,transform:[F,O,j],domNode:_.current.closest(".react-flow")}),()=>{var M;(M=P.current)==null||M.destroy()}}},[]),S.useEffect(()=>{var F;(F=P.current)==null||F.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:A,preventScrolling:p,noPanClassName:w,userSelectionActive:C,noWheelClassName:b,lib:N,onTransformChange:R,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:y})},[e,t,n,r,i,s,o,a,A,p,w,C,b,N,R,I,v,y]),f.jsx("div",{className:"react-flow__renderer",ref:_,style:Sf,children:g})}const jX=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function BX(){const{userSelectionActive:e,userSelectionRect:t}=Oe(jX,We);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const pp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},$X=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function FX({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Sl.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:b}){const w=S.useRef(0),m=Ye(),{userSelectionActive:x,elementsSelectable:y,dragging:v,connectionInProgress:k,panBy:_,autoPanSpeed:C}=Oe($X,We),N=y&&(e||x),I=S.useRef(null),A=S.useRef(),P=S.useRef(new Set),R=S.useRef(new Set),F=S.useRef(!1),O=S.useRef({x:0,y:0}),j=S.useRef(!1),M=q=>{if(F.current||k){F.current=!1;return}c==null||c(q),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},B=q=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){q.preventDefault();return}d==null||d(q)},L=u?q=>u(q):void 0,D=q=>{F.current&&(q.stopPropagation(),F.current=!1)},E=q=>{var G,X;const{domNode:ee,transform:le}=m.getState();if(A.current=ee==null?void 0:ee.getBoundingClientRect(),!A.current)return;const ce=q.target===I.current;if(!ce&&!!q.target.closest(".nokey")||!e||!(o&&ce||t)||q.button!==0||!q.isPrimary)return;(X=(G=q.target)==null?void 0:G.setPointerCapture)==null||X.call(G,q.pointerId),F.current=!1;const{x:ye,y:W}=zn(q.nativeEvent,A.current),$=Ho({x:ye,y:W},le);m.setState({userSelectionRect:{width:0,height:0,startX:$.x,startY:$.y,x:ye,y:W}}),ce||(q.stopPropagation(),q.preventDefault())};function V(q,ee){const{userSelectionRect:le}=m.getState();if(!le)return;const{transform:ce,nodeLookup:ae,edgeLookup:se,connectionLookup:ye,triggerNodeChanges:W,triggerEdgeChanges:$,defaultEdgeOptions:G}=m.getState(),X={x:le.startX,y:le.startY},{x:me,y:pe}=To(X,ce),de={startX:X.x,startY:X.y,x:qPe.id)),R.current=new Set;const mt=(G==null?void 0:G.selectable)??!0;for(const Pe of P.current){const z=ye.get(Pe);if(z)for(const{edgeId:K}of z.values()){const te=se.get(K);te&&(te.selectable??mt)&&R.current.add(K)}}if(!t_(Ae,P.current)){const Pe=Gs(ae,P.current,!0);W(Pe)}if(!t_(_e,R.current)){const Pe=Gs(se,R.current);$(Pe)}m.setState({userSelectionRect:de,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!i||!A.current)return;const[q,ee]=Z0(O.current,A.current,C);_({x:q,y:ee}).then(le=>{if(!F.current||!le){w.current=requestAnimationFrame(H);return}const{x:ce,y:ae}=O.current;V(ce,ae),w.current=requestAnimationFrame(H)})}const T=()=>{cancelAnimationFrame(w.current),w.current=0,j.current=!1};S.useEffect(()=>()=>T(),[]);const U=q=>{const{userSelectionRect:ee,transform:le,resetSelectedElements:ce}=m.getState();if(!A.current||!ee)return;const{x:ae,y:se}=zn(q.nativeEvent,A.current);O.current={x:ae,y:se};const ye=To({x:ee.startX,y:ee.startY},le);if(!F.current){const W=t?0:s;if(Math.hypot(ae-ye.x,se-ye.y)<=W)return;ce(),a==null||a(q)}F.current=!0,j.current||(H(),j.current=!0),V(ae,se)},Y=q=>{var ee,le;q.button===0&&((le=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||le.call(ee,q.pointerId),!x&&q.target===I.current&&m.getState().userSelectionRect&&(M==null||M(q)),m.setState({userSelectionActive:!1,userSelectionRect:null}),F.current&&(l==null||l(q),m.setState({nodesSelectionActive:P.current.size>0})),T())},Z=q=>{var ee,le;(le=(ee=q.target)==null?void 0:ee.releasePointerCapture)==null||le.call(ee,q.pointerId),T()},J=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:pt(["react-flow__pane",{draggable:J,dragging:v,selection:e}]),onClick:N?void 0:pp(M,I),onContextMenu:pp(B,I),onWheel:pp(L,I),onPointerEnter:N?void 0:h,onPointerMove:N?U:p,onPointerUp:N?Y:void 0,onPointerCancel:N?Z:void 0,onPointerDownCapture:N?E:void 0,onClickCapture:N?D:void 0,onPointerLeave:g,ref:I,style:Sf,children:[b,f.jsx(BX,{})]})}function pg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):i([e])}function AM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Ye(),[l,c]=S.useState(!1),d=S.useRef();return S.useEffect(()=>{d.current=hY({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{pg({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),S.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,i,o]),l}const zX=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function CM(){const e=Ye();return S.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,h=zX(o),p=i?s[0]:5,g=i?s[1]:5,b=n.direction.x*p*n.factor,w=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let x={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+w};i&&(x=rc(x,s));const{position:y,positionAbsolute:v}=V2({nodeId:m.id,nextPosition:x,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});m.position=y,m.internals.positionAbsolute=v,u.set(m.id,m)}l(u)},[])}const ab=S.createContext(null),UX=ab.Provider;ab.Consumer;const MM=()=>S.useContext(ab),VX=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),HX=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===Eo.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:d&&c}};function KX({type:e="source",position:t=ge.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...h},p){var j,M;const g=o||null,b=e==="target",w=Ye(),m=MM(),{connectOnClick:x,noPanClassName:y,rfId:v}=Oe(VX,We),{connectingFrom:k,connectingTo:_,clickConnecting:C,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:A,valid:P}=Oe(HX(m,g,e),We);m||(M=(j=w.getState()).onError)==null||M.call(j,"010",qn.error010());const R=B=>{const{defaultEdgeOptions:L,onConnect:D,hasDefaultEdges:E}=w.getState(),V={...L,...B};if(E){const{edges:H,setEdges:T,onError:U}=w.getState();T(SM(V,H,{onError:U}))}D==null||D(V),a==null||a(V)},F=B=>{if(!m)return;const L=Q2(B.nativeEvent);if(i&&(L&&B.button===0||!L)){const D=w.getState();hg.onPointerDown(B.nativeEvent,{handleDomNode:B.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:b,handleId:g,nodeId:m,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...E)=>{var V,H;return(H=(V=w.getState()).onConnectEnd)==null?void 0:H.call(V,...E)},updateConnection:D.updateConnection,onConnect:R,isValidConnection:n||((...E)=>{var V,H;return((H=(V=w.getState()).isValidConnection)==null?void 0:H.call(V,...E))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}L?d==null||d(B):u==null||u(B)},O=B=>{const{onClickConnectStart:L,onClickConnectEnd:D,connectionClickStartHandle:E,connectionMode:V,isValidConnection:H,lib:T,rfId:U,nodeLookup:Y,connection:Z}=w.getState();if(!m||!E&&!i)return;if(!E){L==null||L(B.nativeEvent,{nodeId:m,handleId:g,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const J=Y2(B.target),q=n||H,{connection:ee,isValid:le}=hg.isValid(B.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:V,fromNodeId:E.nodeId,fromHandleId:E.id||null,fromType:E.type,isValidConnection:q,flowId:U,doc:J,lib:T,nodeLookup:Y});le&&ee&&R(ee);const ce=structuredClone(Z);delete ce.inProgress,ce.toPosition=ce.toHandle?ce.toHandle.position:null,D==null||D(B,ce),w.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:pt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,c,{source:!b,target:b,connectable:r,connectablestart:i,connectableend:s,clickconnecting:C,connectingfrom:k,connectingto:_,valid:P,connectionindicator:r&&(!I||N)&&(I||A?s:i)}]),onMouseDown:F,onTouchStart:F,onClick:x?O:void 0,ref:p,...h,children:l})}const Mo=S.memo(NM(KX));function qX({data:e,isConnectable:t,sourcePosition:n=ge.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function GX({data:e,isConnectable:t,targetPosition:n=ge.Top,sourcePosition:r=ge.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function WX(){return null}function YX({data:e,isConnectable:t,targetPosition:n=ge.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Nd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},T_={input:qX,default:GX,output:YX,group:WX};function XX(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const QX=e=>{const{width:t,height:n,x:r,y:i}=nc(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function ZX({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ye(),{width:i,height:s,transformString:o,userSelectionActive:a}=Oe(QX,We),l=CM(),c=S.useRef(null);S.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const d=!a&&i!==null&&s!==null;if(AM({nodeRef:c,disabled:!d}),!d)return null;const u=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Nd,p.key)&&(p.preventDefault(),l({direction:Nd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:pt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const A_=typeof window<"u"?window:void 0,JX=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function IM({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:v,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:N,autoPanOnSelection:I,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:F,preventScrolling:O,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:B,disableKeyboardA11y:L,onViewportChange:D,isControlledViewport:E}){const{nodesSelectionActive:V,userSelectionActive:H}=Oe(JX,We),T=Cl(c,{target:A_}),U=Cl(b,{target:A_}),Y=U||N,Z=U||v,J=d&&Y!==!0,q=T||H||J;return RX({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(DX,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:x,zoomOnPinch:y,panOnScroll:Z,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!T&&Y,defaultViewport:A,translateExtent:P,minZoom:R,maxZoom:F,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:M,noPanClassName:B,onViewportChange:D,isControlledViewport:E,paneClickDistance:a,selectionOnDrag:J,children:f.jsxs(FX,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:Y,autoPanOnSelection:I,isSelecting:!!q,selectionMode:u,selectionKeyPressed:T,paneClickDistance:a,selectionOnDrag:J,children:[e,V&&f.jsx(ZX,{onSelectionContextMenu:j,noPanClassName:B,disableKeyboardA11y:L})]})})}IM.displayName="FlowRenderer";const eQ=S.memo(IM),tQ=e=>t=>e?Q0(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function nQ(e){return Oe(S.useCallback(tQ(e),[e]),We)}const rQ=e=>e.updateNodeInternals;function iQ(){const e=Oe(rQ),[t]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return S.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function sQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Ye(),s=S.useRef(null),o=S.useRef(null),a=S.useRef(e.sourcePosition),l=S.useRef(e.targetPosition),c=S.useRef(t),d=n&&!!e.internals.handleBounds;return S.useEffect(()=>{s.current&&!e.hidden&&(!d||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[d,e.hidden]),S.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),S.useEffect(()=>{if(s.current){const u=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(u||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function oQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:b,nodeTypes:w,nodeClickDistance:m,onError:x}){const{node:y,internals:v,isParent:k}=Oe(q=>{const ee=q.nodeLookup.get(e),le=q.parentLookup.has(e);return{node:ee,internals:ee.internals,isParent:le}},We);let _=y.type||"default",C=(w==null?void 0:w[_])||T_[_];C===void 0&&(x==null||x("003",qn.error003(_)),_="default",C=(w==null?void 0:w.default)||T_.default);const N=!!(y.draggable||a&&typeof y.draggable>"u"),I=!!(y.selectable||l&&typeof y.selectable>"u"),A=!!(y.connectable||c&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),R=Ye(),F=G2(y),O=sQ({node:y,nodeType:_,hasDimensions:F,resizeObserver:u}),j=AM({nodeRef:O,disabled:y.hidden||!N,noDragClassName:h,handleSelector:y.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),M=CM();if(y.hidden)return null;const B=Rr(y),L=XX(y),D=I||N||t||n||r||i,E=n?q=>n(q,{...v.userNode}):void 0,V=r?q=>r(q,{...v.userNode}):void 0,H=i?q=>i(q,{...v.userNode}):void 0,T=s?q=>s(q,{...v.userNode}):void 0,U=o?q=>o(q,{...v.userNode}):void 0,Y=q=>{const{selectNodesOnDrag:ee,nodeDragThreshold:le}=R.getState();I&&(!ee||!N||le>0)&&pg({id:e,store:R,nodeRef:O}),t&&t(q,{...v.userNode})},Z=q=>{if(!(X2(q.nativeEvent)||g)){if(B2.includes(q.key)&&I){const ee=q.key==="Escape";pg({id:e,store:R,unselect:ee,nodeRef:O})}else if(N&&y.selected&&Object.prototype.hasOwnProperty.call(Nd,q.key)){q.preventDefault();const{ariaLabelConfig:ee}=R.getState();R.setState({ariaLiveMessage:ee["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:Nd[q.key],factor:q.shiftKey?4:1})}}},J=()=>{var ye;if(g||!((ye=O.current)!=null&&ye.matches(":focus-visible")))return;const{transform:q,width:ee,height:le,autoPanOnNodeFocus:ce,setCenter:ae}=R.getState();if(!ce)return;Q0(new Map([[e,y]]),{x:0,y:0,width:ee,height:le},q,!0).length>0||ae(y.position.x+B.width/2,y.position.y+B.height/2,{zoom:q[2]})};return f.jsx("div",{className:pt(["react-flow__node",`react-flow__node-${_}`,{[p]:N},y.className,{selected:y.selected,selectable:I,parent:k,draggable:N,dragging:j}]),ref:O,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:F?"visible":"hidden",...y.style,...L},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:E,onMouseMove:V,onMouseLeave:H,onContextMenu:T,onClick:Y,onDoubleClick:U,onKeyDown:P?Z:void 0,tabIndex:P?0:void 0,onFocus:P?J:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${xM}-${b}`,"aria-label":y.ariaLabel,...y.domAttributes,children:f.jsx(UX,{value:e,children:f.jsx(C,{id:e,data:y.data,type:_,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:y.selected??!1,selectable:I,draggable:N,deletable:y.deletable??!0,isConnectable:A,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:v.z,parentId:y.parentId,...B})})})}var aQ=S.memo(oQ);const lQ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OM(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=Oe(lQ,We),o=nQ(e.onlyRenderVisibleElements),a=iQ();return f.jsx("div",{className:"react-flow__nodes",style:Sf,children:o.map(l=>f.jsx(aQ,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}OM.displayName="NodeRenderer";const cQ=S.memo(OM);function uQ(e){return Oe(S.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&WW({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),We)}const dQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},fQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},C_={[Nl.Arrow]:dQ,[Nl.ArrowClosed]:fQ};function hQ(e){const t=Ye();return S.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(C_,e)?C_[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const pQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=hQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},RM=({defaultColor:e,rfId:t})=>{const n=Oe(s=>s.edges),r=Oe(s=>s.defaultEdgeOptions),i=S.useMemo(()=>nY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(pQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};RM.displayName="MarkerDefinitions";var mQ=S.memo(RM);function LM({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,h]=S.useState({x:1,y:0,width:0,height:0}),p=pt(["react-flow__edge-textwrapper",c]),g=S.useRef(null);return S.useEffect(()=>{if(g.current){const b=g.current.getBBox();h({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:p,visibility:u.width?"visible":"hidden",...d,children:[i&&f.jsx("rect",{width:u.width+2*o[0],x:-o[0],y:-o[1],height:u.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}LM.displayName="EdgeText";const gQ=S.memo(LM);function Nf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...d,d:e,fill:"none",className:pt(["react-flow__edge-path",d.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(gQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function M_({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===ge.Left||e===ge.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function PM({sourceX:e,sourceY:t,sourcePosition:n=ge.Bottom,targetX:r,targetY:i,targetPosition:s=ge.Top}){const[o,a]=M_({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=M_({pos:s,x1:r,y1:i,x2:e,y2:t}),[d,u,h,p]=Z2({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,d,u,h,p]}function DM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})=>{const[x,y,v]=PM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),k=e.isInternal?void 0:t;return f.jsx(Nf,{id:k,path:x,labelX:y,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:m})})}const yQ=DM({isInternal:!1}),jM=DM({isInternal:!0});yQ.displayName="SimpleBezierEdge";jM.displayName="SimpleBezierEdgeInternal";function BM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,sourcePosition:p=ge.Bottom,targetPosition:g=ge.Top,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,k]=ug({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:k,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:b,markerStart:w,interactionWidth:x})})}const $M=BM({isInternal:!1}),FM=BM({isInternal:!0});$M.displayName="SmoothStepEdge";FM.displayName="SmoothStepEdgeInternal";function zM(e){return S.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx($M,{...n,id:r,pathOptions:S.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const bQ=zM({isInternal:!1}),UM=zM({isInternal:!0});bQ.displayName="StepEdge";UM.displayName="StepEdgeInternal";function VM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})=>{const[w,m,x]=tM({sourceX:n,sourceY:r,targetX:i,targetY:s}),y=e.isInternal?void 0:t;return f.jsx(Nf,{id:y,path:w,labelX:m,labelY:x,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const xQ=VM({isInternal:!1}),HM=VM({isInternal:!0});xQ.displayName="StraightEdge";HM.displayName="StraightEdgeInternal";function KM(e){return S.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=ge.Bottom,targetPosition:a=ge.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,pathOptions:m,interactionWidth:x})=>{const[y,v,k]=J2({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),_=e.isInternal?void 0:t;return f.jsx(Nf,{id:_,path:y,labelX:v,labelY:k,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:w,interactionWidth:x})})}const wQ=KM({isInternal:!1}),qM=KM({isInternal:!0});wQ.displayName="BezierEdge";qM.displayName="BezierEdgeInternal";const I_={default:qM,straight:HM,step:UM,smoothstep:FM,simplebezier:jM},O_={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},vQ=(e,t,n)=>n===ge.Left?e-t:n===ge.Right?e+t:e,_Q=(e,t,n)=>n===ge.Top?e-t:n===ge.Bottom?e+t:e,R_="react-flow__edgeupdater";function L_({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:pt([R_,`${R_}-${a}`]),cx:vQ(t,r,e),cy:_Q(n,r,e),r,stroke:"transparent",fill:"transparent"})}function kQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:h,setUpdateHover:p}){const g=Ye(),b=(v,k)=>{if(v.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:N,connectionRadius:I,lib:A,onConnectStart:P,cancelConnection:R,nodeLookup:F,rfId:O,panBy:j,updateConnection:M}=g.getState(),B=k.type==="target",L=(V,H)=>{h(!1),u==null||u(V,n,k.type,H)},D=V=>c==null?void 0:c(n,V),E=(V,H)=>{h(!0),d==null||d(v,n,k.type),P==null||P(V,H)};hg.onPointerDown(v.nativeEvent,{autoPanOnConnect:_,connectionMode:N,connectionRadius:I,domNode:C,handleId:k.id,nodeId:k.nodeId,nodeLookup:F,isTarget:B,edgeUpdaterType:k.type,lib:A,flowId:O,cancelConnection:R,panBy:j,isValidConnection:(...V)=>{var H,T;return((T=(H=g.getState()).isValidConnection)==null?void 0:T.call(H,...V))??!0},onConnect:D,onConnectStart:E,onConnectEnd:(...V)=>{var H,T;return(T=(H=g.getState()).onConnectEnd)==null?void 0:T.call(H,...V)},onReconnectEnd:L,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},w=v=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),x=()=>p(!0),y=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(L_,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:w,onMouseEnter:x,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&f.jsx(L_,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:x,onMouseOut:y,type:"target"})]})}function EQ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:b,noPanClassName:w,onError:m,disableKeyboardA11y:x}){let y=Oe(ae=>ae.edgeLookup.get(e));const v=Oe(ae=>ae.defaultEdgeOptions);y=v?{...v,...y}:y;let k=y.type||"default",_=(b==null?void 0:b[k])||I_[k];_===void 0&&(m==null||m("011",qn.error011(k)),k="default",_=(b==null?void 0:b.default)||I_.default);const C=!!(y.focusable||t&&typeof y.focusable>"u"),N=typeof u<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),I=!!(y.selectable||r&&typeof y.selectable>"u"),A=S.useRef(null),[P,R]=S.useState(!1),[F,O]=S.useState(!1),j=Ye(),{zIndex:M,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H}=Oe(S.useCallback(ae=>{const se=ae.nodeLookup.get(y.source),ye=ae.nodeLookup.get(y.target);if(!se||!ye)return{zIndex:y.zIndex,...O_};const W=tY({id:e,sourceNode:se,targetNode:ye,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:ae.connectionMode,onError:m});return{zIndex:GW({selected:y.selected,zIndex:y.zIndex,sourceNode:se,targetNode:ye,elevateOnSelect:ae.elevateEdgesOnSelect,zIndexMode:ae.zIndexMode}),...W||O_}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),We),T=S.useMemo(()=>y.markerStart?`url('#${dg(y.markerStart,g)}')`:void 0,[y.markerStart,g]),U=S.useMemo(()=>y.markerEnd?`url('#${dg(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||B===null||L===null||D===null||E===null)return null;const Y=ae=>{var $;const{addSelectedEdges:se,unselectNodesAndEdges:ye,multiSelectionActive:W}=j.getState();I&&(j.setState({nodesSelectionActive:!1}),y.selected&&W?(ye({nodes:[],edges:[y]}),($=A.current)==null||$.blur()):se([e])),i&&i(ae,y)},Z=s?ae=>{s(ae,{...y})}:void 0,J=o?ae=>{o(ae,{...y})}:void 0,q=a?ae=>{a(ae,{...y})}:void 0,ee=l?ae=>{l(ae,{...y})}:void 0,le=c?ae=>{c(ae,{...y})}:void 0,ce=ae=>{var se;if(!x&&B2.includes(ae.key)&&I){const{unselectNodesAndEdges:ye,addSelectedEdges:W}=j.getState();ae.key==="Escape"?((se=A.current)==null||se.blur(),ye({edges:[y]})):W([e])}};return f.jsx("svg",{style:{zIndex:M},children:f.jsxs("g",{className:pt(["react-flow__edge",`react-flow__edge-${k}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!I&&!i,updating:P,selectable:I}]),onClick:Y,onDoubleClick:Z,onContextMenu:J,onMouseEnter:q,onMouseMove:ee,onMouseLeave:le,onKeyDown:C?ce:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${wM}-${g}`:void 0,ref:A,...y.domAttributes,children:[!F&&f.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:I,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:T,markerEnd:U,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),N&&f.jsx(kQ,{edge:y,isReconnectable:N,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,sourceX:B,sourceY:L,targetX:D,targetY:E,sourcePosition:V,targetPosition:H,setUpdateHover:R,setReconnecting:O})]})})}var SQ=S.memo(EQ);const NQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function GM({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:b}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,onError:y}=Oe(NQ,We),v=uQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(mQ,{defaultColor:e,rfId:n}),v.map(k=>f.jsx(SQ,{id:k,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:x,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:b},k))]})}GM.displayName="EdgeRenderer";const TQ=S.memo(GM),AQ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function CQ({children:e}){const t=Oe(AQ);return f.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function MQ(e){const t=ob(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const IQ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function OQ(e){const t=Oe(IQ),n=Ye();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function RQ(e){return e.connection.inProgress?{...e.connection,to:Ho(e.connection.to,e.transform)}:{...e.connection}}function LQ(e){return RQ}function PQ(e){const t=LQ();return Oe(t,We)}const DQ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jQ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Oe(DQ,We);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:pt(["react-flow__connection",z2(a)]),children:f.jsx(WM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const WM=({style:e,type:t=Hr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:h,pointer:p}=PQ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:z2(r),toNode:d,toHandle:u,pointer:p});let g="";const b={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Hr.Bezier:[g]=J2(b);break;case Hr.SimpleBezier:[g]=PM(b);break;case Hr.Step:[g]=ug({...b,borderRadius:0});break;case Hr.SmoothStep:[g]=ug(b);break;default:[g]=tM(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};WM.displayName="ConnectionLine";const BQ={};function P_(e=BQ){S.useRef(e),Ye(),S.useEffect(()=>{},[e])}function $Q(){Ye(),S.useRef(!1),S.useEffect(()=>{},[])}function YM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:A,defaultViewport:P,translateExtent:R,minZoom:F,maxZoom:O,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:B,zoomOnPinch:L,panOnScroll:D,panOnScrollSpeed:E,panOnScrollMode:V,zoomOnDoubleClick:H,panOnDrag:T,autoPanOnSelection:U,onPaneClick:Y,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneScroll:ee,onPaneContextMenu:le,paneClickDistance:ce,nodeClickDistance:ae,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:W,onEdgeMouseLeave:$,reconnectRadius:G,onReconnect:X,onReconnectStart:me,onReconnectEnd:pe,noDragClassName:de,noWheelClassName:Ae,noPanClassName:_e,disableKeyboardA11y:mt,nodeExtent:Pe,rfId:z,viewport:K,onViewportChange:te}){return P_(e),P_(t),$Q(),MQ(n),OQ(K),f.jsx(eQ,{onPaneClick:Y,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneContextMenu:le,onPaneScroll:ee,paneClickDistance:ce,deleteKeyCode:N,selectionKeyCode:x,selectionOnDrag:y,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:A,zoomOnScroll:B,zoomOnPinch:L,zoomOnDoubleClick:H,panOnScroll:D,panOnScrollSpeed:E,panOnScrollMode:V,panOnDrag:T,autoPanOnSelection:U,defaultViewport:P,translateExtent:R,minZoom:F,maxZoom:O,onSelectionContextMenu:u,preventScrolling:j,noDragClassName:de,noWheelClassName:Ae,noPanClassName:_e,disableKeyboardA11y:mt,onViewportChange:te,isControlledViewport:!!K,children:f.jsxs(CQ,{children:[f.jsx(TQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:X,onReconnectStart:me,onReconnectEnd:pe,onlyRenderVisibleElements:I,onEdgeContextMenu:se,onEdgeMouseEnter:ye,onEdgeMouseMove:W,onEdgeMouseLeave:$,reconnectRadius:G,defaultMarkerColor:M,noPanClassName:_e,disableKeyboardA11y:mt,rfId:z}),f.jsx(jQ,{style:b,type:g,component:w,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(cQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:ae,onlyRenderVisibleElements:I,noPanClassName:_e,noDragClassName:de,disableKeyboardA11y:mt,nodeExtent:Pe,rfId:z}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}YM.displayName="GraphView";const FQ=S.memo(YM),zQ=q2(),D_=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,b=new Map,w=new Map,m=r??t??[],x=n??e??[],y=d??[0,0],v=u??El;iM(b,w,m);const{nodesInitialized:k}=fg(x,p,g,{nodeOrigin:y,nodeExtent:v,zIndexMode:h});let _=[0,0,1];if(o&&i&&s){const C=nc(p,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:N,y:I,zoom:A}=J0(C,i,s,l,c,(a==null?void 0:a.padding)??.1);_=[N,I,A]}return{rfId:"1",width:i??0,height:s??0,transform:_,nodes:x,nodesInitialized:k,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:w,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:El,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Eo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...F2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:zQ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:$2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},UQ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h})=>iX((p,g)=>{async function b(){const{nodeLookup:w,panZoom:m,fitViewOptions:x,fitViewResolver:y,width:v,height:k,minZoom:_,maxZoom:C}=g();m&&(await FW({nodes:w,width:v,height:k,panZoom:m,minZoom:_,maxZoom:C},x),y==null||y.resolve(!0),p({fitViewResolver:null}))}return{...D_({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:w=>{const{nodeLookup:m,parentLookup:x,nodeOrigin:y,elevateNodesOnSelect:v,fitViewQueued:k,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:N,hasSelectedNodes:I}=fg(w,m,x,{nodeOrigin:y,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:_}),A=C&&I;k&&N?(b(),p({nodes:w,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):p({nodes:w,nodesInitialized:N,nodesSelectionActive:A})},setEdges:w=>{const{connectionLookup:m,edgeLookup:x}=g();iM(m,x,w),p({edges:w})},setDefaultNodesAndEdges:(w,m)=>{if(w){const{setNodes:x}=g();x(w),p({hasDefaultNodes:!0})}if(m){const{setEdges:x}=g();x(m),p({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:m,nodeLookup:x,parentLookup:y,domNode:v,nodeOrigin:k,nodeExtent:_,debug:C,fitViewQueued:N,zIndexMode:I}=g(),{changes:A,updatedInternals:P}=cY(w,x,y,v,k,_,I);P&&(sY(x,y,{nodeOrigin:k,nodeExtent:_,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(A==null?void 0:A.length)>0&&(C&&console.log("React Flow: trigger node changes",A),m==null||m(A)))},updateNodePositions:(w,m=!1)=>{const x=[];let y=[];const{nodeLookup:v,triggerNodeChanges:k,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:N}=g();for(const[I,A]of w){const P=v.get(I),R=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(A!=null&&A.position)),F={id:I,type:"position",position:R?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:m};if(P&&_.inProgress&&_.fromNode.id===P.id){const O=ts(P,_.fromHandle,ge.Left,!0);C({..._,from:O})}R&&P.parentId&&x.push({id:I,parentId:P.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),y.push(F)}if(x.length>0){const{parentLookup:I,nodeOrigin:A}=g(),P=sb(x,v,I,A);y.push(...P)}for(const I of N.values())y=I(y);k(y)},triggerNodeChanges:w=>{const{onNodesChange:m,setNodes:x,nodes:y,hasDefaultNodes:v,debug:k}=g();if(w!=null&&w.length){if(v){const _=kM(w,y);x(_)}k&&console.log("React Flow: trigger node changes",w),m==null||m(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:m,setEdges:x,edges:y,hasDefaultEdges:v,debug:k}=g();if(w!=null&&w.length){if(v){const _=EM(w,y);x(_)}k&&console.log("React Flow: trigger edge changes",w),m==null||m(w)}},addSelectedNodes:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:k}=g();if(m){const _=w.map(C=>Ti(C,!0));v(_);return}v(Gs(y,new Set([...w]),!0)),k(Gs(x))},addSelectedEdges:w=>{const{multiSelectionActive:m,edgeLookup:x,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:k}=g();if(m){const _=w.map(C=>Ti(C,!0));k(_);return}k(Gs(x,new Set([...w]))),v(Gs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:m}={})=>{const{edges:x,nodes:y,nodeLookup:v,triggerNodeChanges:k,triggerEdgeChanges:_}=g(),C=w||y,N=m||x,I=[];for(const P of C){if(!P.selected)continue;const R=v.get(P.id);R&&(R.selected=!1),I.push(Ti(P.id,!1))}const A=[];for(const P of N)P.selected&&A.push(Ti(P.id,!1));k(I),_(A)},setMinZoom:w=>{const{panZoom:m,maxZoom:x}=g();m==null||m.setScaleExtent([w,x]),p({minZoom:w})},setMaxZoom:w=>{const{panZoom:m,minZoom:x}=g();m==null||m.setScaleExtent([x,w]),p({maxZoom:w})},setTranslateExtent:w=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(w),p({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:m,triggerNodeChanges:x,triggerEdgeChanges:y,elementsSelectable:v}=g();if(!v)return;const k=m.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]),_=w.reduce((C,N)=>N.selected?[...C,Ti(N.id,!1)]:C,[]);x(k),y(_)},setNodeExtent:w=>{const{nodes:m,nodeLookup:x,parentLookup:y,nodeOrigin:v,elevateNodesOnSelect:k,nodeExtent:_,zIndexMode:C}=g();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(fg(m,x,y,{nodeOrigin:v,nodeExtent:w,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:C}),p({nodeExtent:w}))},panBy:w=>{const{transform:m,width:x,height:y,panZoom:v,translateExtent:k}=g();return uY({delta:w,panZoom:v,transform:m,translateExtent:k,width:x,height:y})},setCenter:async(w,m,x)=>{const{width:y,height:v,maxZoom:k,panZoom:_}=g();if(!_)return!1;const C=typeof(x==null?void 0:x.zoom)<"u"?x.zoom:k;return await _.setViewport({x:y/2-w*C,y:v/2-m*C,zoom:C},{duration:x==null?void 0:x.duration,ease:x==null?void 0:x.ease,interpolate:x==null?void 0:x.interpolate}),!0},cancelConnection:()=>{p({connection:{...F2}})},updateConnection:w=>{p({connection:w})},reset:()=>p({...D_()})}},Object.is);function XM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:p}){const[g]=S.useState(()=>UQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:h}));return f.jsx(sX,{value:g,children:f.jsx(CX,{children:p})})}function VQ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p}){return S.useContext(kf)?f.jsx(f.Fragment,{children:e}):f.jsx(XM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p,children:e})}const HQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function KQ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onSelectionChange:F,onSelectionDragStart:O,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onBeforeDelete:E,connectionMode:V,connectionLineType:H=Hr.Bezier,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:Y,deleteKeyCode:Z="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:q=!1,selectionMode:ee=Sl.Full,panActivationKeyCode:le="Space",multiSelectionKeyCode:ce=Al()?"Meta":"Control",zoomActivationKeyCode:ae=Al()?"Meta":"Control",snapToGrid:se,snapGrid:ye,onlyRenderVisibleElements:W=!1,selectNodesOnDrag:$,nodesDraggable:G,autoPanOnNodeFocus:X,nodesConnectable:me,nodesFocusable:pe,nodeOrigin:de=vM,edgesFocusable:Ae,edgesReconnectable:_e,elementsSelectable:mt=!0,defaultViewport:Pe=bX,minZoom:z=.5,maxZoom:K=2,translateExtent:te=El,preventScrolling:oe=!0,nodeExtent:we,defaultMarkerColor:Le="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:_t=!0,panOnScroll:Mn=!1,panOnScrollSpeed:ur=.5,panOnScrollMode:ct=Ui.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs=1,nodeClickDistance:hs=0,children:Of,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df=10,onNodesChange:ac,onEdgesChange:Q,noDragClassName:ne="nodrag",noWheelClassName:fe="nowheel",noPanClassName:Me="nopan",fitView:qe,fitViewOptions:be,connectOnClick:kt,attributionPosition:xt,proOptions:ke,defaultEdgeOptions:Ue,elevateNodesOnSelect:Ce=!0,elevateEdgesOnSelect:ut=!1,disableKeyboardA11y:dr=!1,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanOnSelection:yn=!0,autoPanSpeed:gi,connectionRadius:lc,isValidConnection:rI,onError:iI,style:sI,id:lb,nodeDragThreshold:oI,connectionDragThreshold:aI,viewport:lI,onViewportChange:cI,width:uI,height:dI,colorMode:fI="light",debug:hI,onScroll:cc,ariaLabelConfig:pI,zIndexMode:cb="basic",...mI},gI){const jf=lb||"1",yI=_X(fI),bI=S.useCallback(ub=>{ub.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),cc==null||cc(ub)},[cc]);return f.jsx("div",{"data-testid":"rf__wrapper",...mI,onScroll:bI,style:{...sI,...HQ},ref:gI,className:pt(["react-flow",i,yI]),id:lb,role:"application",children:f.jsxs(VQ,{nodes:e,edges:t,width:uI,height:dI,fitView:qe,fitViewOptions:be,minZoom:z,maxZoom:K,nodeOrigin:de,nodeExtent:we,zIndexMode:cb,children:[f.jsx(vX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:G,autoPanOnNodeFocus:X,nodesConnectable:me,nodesFocusable:pe,edgesFocusable:Ae,edgesReconnectable:_e,elementsSelectable:mt,elevateNodesOnSelect:Ce,elevateEdgesOnSelect:ut,minZoom:z,maxZoom:K,nodeExtent:we,onNodesChange:ac,onEdgesChange:Q,snapToGrid:se,snapGrid:ye,connectionMode:V,translateExtent:te,connectOnClick:kt,defaultEdgeOptions:Ue,fitView:qe,fitViewOptions:be,onNodesDelete:A,onEdgesDelete:P,onDelete:R,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:j,onSelectionDragStart:O,onSelectionDragStop:M,onMove:d,onMoveStart:u,onMoveEnd:h,noPanClassName:Me,nodeOrigin:de,rfId:jf,autoPanOnConnect:Ko,autoPanOnNodeDrag:fr,autoPanSpeed:gi,onError:iI,connectionRadius:lc,isValidConnection:rI,selectNodesOnDrag:$,nodeDragThreshold:oI,connectionDragThreshold:aI,onBeforeDelete:E,debug:hI,ariaLabelConfig:pI,zIndexMode:cb}),f.jsx(FQ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:o,connectionLineType:H,connectionLineStyle:T,connectionLineComponent:U,connectionLineContainerStyle:Y,selectionKeyCode:J,selectionOnDrag:q,selectionMode:ee,deleteKeyCode:Z,multiSelectionKeyCode:ce,panActivationKeyCode:le,zoomActivationKeyCode:ae,onlyRenderVisibleElements:W,defaultViewport:Pe,translateExtent:te,minZoom:z,maxZoom:K,preventScrolling:oe,zoomOnScroll:$t,zoomOnPinch:_t,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:ur,panOnScrollMode:ct,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:ic,onPaneMouseEnter:Tf,onPaneMouseMove:Af,onPaneMouseLeave:Cf,onPaneScroll:Mf,onPaneContextMenu:If,paneClickDistance:fs,nodeClickDistance:hs,onSelectionContextMenu:B,onSelectionStart:L,onSelectionEnd:D,onReconnect:ps,onReconnectStart:Rf,onReconnectEnd:sc,onEdgeContextMenu:Lf,onEdgeDoubleClick:Pf,onEdgeMouseEnter:oc,onEdgeMouseMove:ms,onEdgeMouseLeave:mi,reconnectRadius:Df,defaultMarkerColor:Le,noDragClassName:ne,noWheelClassName:fe,noPanClassName:Me,rfId:jf,disableKeyboardA11y:dr,nodeExtent:we,viewport:lI,onViewportChange:cI}),f.jsx(yX,{onSelectionChange:F}),Of,f.jsx(fX,{proOptions:ke,position:xt}),f.jsx(dX,{rfId:jf,disableKeyboardA11y:dr})]})})}var qQ=NM(KQ);function GQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>kM(i,s)),[]);return[t,n,r]}function WQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>EM(i,s)),[]);return[t,n,r]}function YQ({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:pt(["react-flow__background-pattern",n,r])})}function XQ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:pt(["react-flow__background-pattern","dots",t])})}var si;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(si||(si={}));const QQ={[si.Dots]:1,[si.Lines]:1,[si.Cross]:6},ZQ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function QM({id:e,variant:t=si.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:d}){const u=S.useRef(null),{transform:h,patternId:p}=Oe(ZQ,We),g=r||QQ[t],b=t===si.Dots,w=t===si.Cross,m=Array.isArray(n)?n:[n,n],x=[m[0]*h[2]||1,m[1]*h[2]||1],y=g*h[2],v=Array.isArray(s)?s:[s,s],k=w?[y,y]:x,_=[v[0]*h[2]||1+k[0]/2,v[1]*h[2]||1+k[1]/2],C=`${p}${e||""}`;return f.jsxs("svg",{className:pt(["react-flow__background",c]),style:{...l,...Sf,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:u,"data-testid":"rf__background",children:[f.jsx("pattern",{id:C,x:h[0]%x[0],y:h[1]%x[1],width:x[0],height:x[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:b?f.jsx(XQ,{radius:y/2,className:d}):f.jsx(YQ,{dimensions:k,lineWidth:i,variant:t,className:d})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}QM.displayName="Background";const JQ=S.memo(QM);function eZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function tZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function nZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function iZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function eu({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:pt(["react-flow__controls-button",t]),...n,children:e})}const sZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ZM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:h="vertical","aria-label":p}){const g=Ye(),{isInteractive:b,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:x}=Oe(sZ,We),{zoomIn:y,zoomOut:v,fitView:k}=ob(),_=()=>{y(),s==null||s()},C=()=>{v(),o==null||o()},N=()=>{k(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),l==null||l(!b)},A=h==="horizontal"?"horizontal":"vertical";return f.jsxs(Ef,{className:pt(["react-flow__controls",A,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":p??x["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(eu,{onClick:_,className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(eZ,{})}),f.jsx(eu,{onClick:C,className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:w,children:f.jsx(tZ,{})})]}),n&&f.jsx(eu,{className:"react-flow__controls-fitview",onClick:N,title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:f.jsx(nZ,{})}),r&&f.jsx(eu,{className:"react-flow__controls-interactive",onClick:I,title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:b?f.jsx(iZ,{}):f.jsx(rZ,{})}),d]})}ZM.displayName="Controls";const oZ=S.memo(ZM);function aZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:h,onClick:p}){const{background:g,backgroundColor:b}=s||{},w=o||g||b;return f.jsx("rect",{className:pt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:r,height:i,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:u,onClick:p?m=>p(m,e):void 0})}const lZ=S.memo(aZ),cZ=e=>e.nodes.map(t=>t.id),mp=e=>e instanceof Function?e:()=>e;function uZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=lZ,onClick:o}){const a=Oe(cZ,We),l=mp(t),c=mp(e),d=mp(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(fZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:u},h))})}function dZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:h,height:p}=Oe(g=>{const b=g.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const w=b.internals.userNode,{x:m,y:x}=b.internals.positionAbsolute,{width:y,height:v}=Rr(w);return{node:w,x:m,y:x,width:y,height:v}},We);return!c||c.hidden||!G2(c)?null:f.jsx(a,{x:d,y:u,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const fZ=S.memo(dZ);var hZ=S.memo(uZ);const pZ=200,mZ=150,gZ=e=>!e.hidden,yZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?K2(nc(e.nodeLookup,{filter:gZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},bZ="react-flow__minimap-desc";function JM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:b=!1,zoomable:w=!1,ariaLabel:m,inversePan:x,zoomStep:y=1,offsetScale:v=5}){const k=Ye(),_=S.useRef(null),{boundingRect:C,viewBB:N,rfId:I,panZoom:A,translateExtent:P,flowWidth:R,flowHeight:F,ariaLabelConfig:O}=Oe(yZ,We),j=(e==null?void 0:e.width)??pZ,M=(e==null?void 0:e.height)??mZ,B=C.width/j,L=C.height/M,D=Math.max(B,L),E=D*j,V=D*M,H=v*D,T=C.x-(E-C.width)/2-H,U=C.y-(V-C.height)/2-H,Y=E+H*2,Z=V+H*2,J=`${bZ}-${I}`,q=S.useRef(0),ee=S.useRef();q.current=D,S.useEffect(()=>{if(_.current&&A)return ee.current=xY({domNode:_.current,panZoom:A,getTransform:()=>k.getState().transform,getViewScale:()=>q.current}),()=>{var se;(se=ee.current)==null||se.destroy()}},[A]),S.useEffect(()=>{var se;(se=ee.current)==null||se.update({translateExtent:P,width:R,height:F,inversePan:x,pannable:b,zoomStep:y,zoomable:w})},[b,w,x,y,P,R,F]);const le=p?se=>{var $;const[ye,W]=(($=ee.current)==null?void 0:$.pointer(se))||[0,0];p(se,{x:ye,y:W})}:void 0,ce=g?S.useCallback((se,ye)=>{const W=k.getState().nodeLookup.get(ye).internals.userNode;g(se,W)},[]):void 0,ae=m??O["minimap.ariaLabel"];return f.jsx(Ef,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*D:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:pt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:j,height:M,viewBox:`${T} ${U} ${Y} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:_,onClick:le,children:[ae&&f.jsx("title",{id:J,children:ae}),f.jsx(hZ,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${T-H},${U-H}h${Y+H*2}v${Z+H*2}h${-Y-H*2}z - M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}JM.displayName="MiniMap";const xZ=S.memo(JM),wZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vZ={[Ao.Line]:"right",[Ao.Handle]:"bottom-right"};function _Z({nodeId:e,position:t,variant:n=Ao.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:b,onResize:w,onResizeEnd:m}){const x=MM(),y=typeof e=="string"?e:x,v=Ye(),k=S.useRef(null),_=n===Ao.Handle,C=Oe(S.useCallback(wZ(_&&p),[_,p]),We),N=S.useRef(null),I=t??vZ[n];S.useEffect(()=>{if(!(!k.current||!y))return N.current||(N.current=OY({domNode:k.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j,domNode:M}=v.getState();return{nodeLookup:P,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:j,paneDomNode:M}},onChange:(P,R)=>{const{triggerNodeChanges:F,nodeLookup:O,parentLookup:j,nodeOrigin:M}=v.getState(),B=[],L={x:P.x,y:P.y},D=O.get(y);if(D&&D.expandParent&&D.parentId){const E=D.origin??M,V=P.width??D.measured.width??0,H=P.height??D.measured.height??0,T={id:D.id,parentId:D.parentId,rect:{width:V,height:H,...W2({x:P.x??D.position.x,y:P.y??D.position.y},{width:V,height:H},D.parentId,O,E)}},U=sb([T],O,j,M);B.push(...U),L.x=P.x?Math.max(E[0]*V,P.x):void 0,L.y=P.y?Math.max(E[1]*H,P.y):void 0}if(L.x!==void 0&&L.y!==void 0){const E={id:y,type:"position",position:{...L}};B.push(E)}if(P.width!==void 0&&P.height!==void 0){const V={id:y,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};B.push(V)}for(const E of R){const V={...E,type:"position"};B.push(V)}F(B)},onEnd:({width:P,height:R})=>{const F={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:R}};v.getState().triggerNodeChanges([F])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:h,onResizeStart:b,onResize:w,onResizeEnd:m,shouldResize:g}),()=>{var P;(P=N.current)==null||P.destroy()}},[I,a,l,c,d,u,b,w,m,g]);const A=I.split("-");return f.jsx("div",{className:pt(["react-flow__resize-control","nodrag",...A,n,r]),ref:k,style:{...i,scale:C,...o&&{[_?"backgroundColor":"borderColor"]:o}},children:s})}S.memo(_Z);const kZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:qB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:vB},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Gy}];let mg=0;function gp(){return mg+=1,`node_${mg}`}function yp(e,t,n){const r=ds();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function EZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:ge.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(go,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:ge.Right,className:"wfb-handle"})]})}const SZ={agentNode:EZ},j_={type:"smoothstep",markerEnd:{type:Nl.ArrowClosed,width:16,height:16}};function NZ({onBack:e,onCreate:t}){const n=S.useRef(null),[r,i]=S.useState(""),[s,o]=S.useState(""),[a,l]=S.useState("sequential"),c=S.useMemo(()=>{mg=0;const R=gp();return yp(R,{x:80,y:120},{name:"agent_1"})},[]),[d,u,h]=GQ([c]),[p,g,b]=WQ([]),[w,m]=S.useState(c.id),x=d.find(R=>R.id===w)??null,y=S.useCallback(R=>g(F=>SM({...R,...j_},F)),[g]),v=S.useCallback(()=>{const R=gp(),F=d.length*28,O=yp(R,{x:80+F,y:120+F});u(j=>j.concat(O)),m(R)},[d.length,u]),k=R=>{R.dataTransfer.setData("application/wfb-node","agentNode"),R.dataTransfer.effectAllowed="move"},_=S.useCallback(R=>{R.preventDefault(),R.dataTransfer.dropEffect="move"},[]),C=S.useCallback(R=>{if(R.preventDefault(),R.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const O=n.current.screenToFlowPosition({x:R.clientX,y:R.clientY}),j=gp(),M=yp(j,O);u(B=>B.concat(M)),m(j)},[u]),N=S.useCallback(R=>{w&&u(F=>F.map(O=>O.id===w?{...O,data:{...O.data,agent:{...O.data.agent,...R}}}:O))},[w,u]),I=S.useCallback(()=>{w&&(u(R=>R.filter(F=>F.id!==w)),g(R=>R.filter(F=>F.source!==w&&F.target!==w)),m(null))},[w,u,g]),A=S.useCallback(()=>{const R=d.map(O=>O.data.agent),F={...ds(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:R,workflow:{type:a,nodes:d.map(O=>({id:O.id,agent:O.data.agent})),edges:p.map(O=>({from:O.source,to:O.target}))}};t(F)},[d,p,r,s,a,t]),P=d.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:R=>i(R.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:R=>o(R.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:kZ.map(({type:R,label:F,desc:O,Icon:j})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===R?"wfb-type--active":""}`,onClick:()=>l(R),children:[f.jsx(j,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:F}),f.jsx("span",{className:"wfb-type-desc",children:O})]})]},R))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:k,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(FB,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(go,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(ss,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:A,disabled:!P,type:"button",children:[f.jsx(Qd,{className:"icon"}),"创建工作流"]}),f.jsxs(qQ,{nodes:d,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:y,onInit:R=>n.current=R,nodeTypes:SZ,defaultEdgeOptions:j_,onDrop:C,onDragOver:_,onNodeClick:(R,F)=>m(F.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(JQ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(oZ,{showInteractive:!1}),f.jsx(xZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:x?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(Do,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.name,onChange:R=>N({name:R.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.description,onChange:R=>N({description:R.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:x.data.agent.instruction,onChange:R=>N({instruction:R.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:x.data.agent.tools.join(", "),onChange:R=>N({tools:R.target.value.split(",").map(F=>F.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:x.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(go,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",d.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function TZ(e){return f.jsx(XM,{children:f.jsx(NZ,{...e})})}const B_=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function bp(e){let t=0;for(let n=0;n>>0;return B_[t%B_.length]}function AZ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,d)=>c.start_time-d.start_time,s=(c,d)=>({span:c,depth:d,children:(n.get(c.span_id)??[]).sort(i).map(u=>s(u,d+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function CZ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function $_(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const MZ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function F_(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:MZ(t),value:r,long:r.length>80||r.includes(` -`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function IZ({sessionId:e,onClose:t}){const[n,r]=S.useState(null),[i,s]=S.useState(""),[o,a]=S.useState(new Set),[l,c]=S.useState(null);S.useEffect(()=>{r(null),s(""),d$(e).then(m=>{r(m),c(m.length?m.reduce((x,y)=>x.start_time<=y.start_time?x:y).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:d,min:u,total:h}=S.useMemo(()=>AZ(n??[]),[n]),p=S.useMemo(()=>CZ(d,o),[d,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,w=m=>a(x=>{const y=new Set(x);return y.has(m)?y.delete(m):y.add(m),y});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${b.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(Fl,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const x=m.span,y=(x.start_time-u)/h*100,v=Math.max((x.end_time-x.start_time)/h*100,.6),k=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===x.span_id?"active":""}`,onClick:()=>c(x.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${k?"":"hidden"} ${o.has(x.span_id)?"":"open"}`,onClick:_=>{_.stopPropagation(),k&&w(x.span_id)},children:f.jsx(Gn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:bp(x.name)}}),f.jsx("span",{className:"trace-name",title:x.name,children:x.name})]}),f.jsx("span",{className:"trace-dur",children:$_(x.end_time-x.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${y}%`,width:`${v}%`,background:bp(x.name)}})})]},x.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:bp(g.name)}}),$_(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:F_(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),F_(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function OZ(e){return e.toLowerCase()==="github"?f.jsx($B,{className:"icon"}):f.jsx(GB,{className:"icon"})}function RZ({onUsername:e}){const[t,n]=S.useState(null),[r,i]=S.useState("");S.useEffect(()=>{A$().then(n)},[]);const s=E$.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>C$(a.loginUrl),children:[OZ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(DN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function LZ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}as("Button",LZ);function PZ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}as("Card",PZ);const DZ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},jZ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function eI(e){return DZ[e]??"flex-start"}function tI(e){return jZ[e]??"stretch"}function BZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:eI(e.justify),alignItems:tI(e.align)},children:n.map(r=>t.render(r))})}as("Column",BZ);function $Z({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}as("Divider",$Z);const FZ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function zZ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:FZ[t]??"•"})}as("Icon",zZ);function UZ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:eI(e.justify),alignItems:tI(e.align??"center")},children:n.map(r=>t.render(r))})}as("Row",UZ);const VZ=new Set(["h1","h2","h3","h4","h5"]);function HZ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=VZ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}as("Text",HZ);const KZ="创建 Agent",qZ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ss={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},GZ=new Set,WZ=[];function z_(){const e=typeof localStorage<"u"?localStorage.getItem(Ss.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function YZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function XZ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function QZ(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function nI(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function ZZ(e){if(!e)return"";const t=[];return e.ts&&t.push(nI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function JZ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const eJ="send_a2ui_json_to_client";function tJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===eJ&&t.done):t.kind==="a2ui"?sT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function nJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function rJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const d=c.data;d&&d.veadkOAuth&&typeof d.url=="string"&&o(d.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function iJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function U_({text:e}){const[t,n]=S.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx(Hy,{className:"icon"}):f.jsx(CB,{className:"icon"})})}const V_=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],H_=()=>V_[Math.floor(Math.random()*V_.length)],sJ=20*1024*1024;function oJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function aJ(){const[e,t]=S.useState([]),[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(""),[l,c]=S.useState({}),d=l[o]??[],u=(Q,ne)=>c(fe=>({...fe,[Q]:typeof ne=="function"?ne(fe[Q]??[]):ne})),[h,p]=S.useState(""),[g,b]=S.useState([]),[w,m]=S.useState(()=>new Set),x=S.useRef(new Map),y=(Q,ne)=>m(fe=>{const Me=new Set(fe);return ne?Me.add(Q):Me.delete(Q),Me}),v=S.useRef(""),[k,_]=S.useState(""),[C,N]=S.useState(!1),[I,A]=S.useState(H_),[P,R]=S.useState(null),[F,O]=S.useState(""),[j,M]=S.useState(),[B,L]=S.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[D,E]=S.useState("local"),[V,H]=S.useState(!1),[T,U]=S.useState(!1),[Y,Z]=S.useState({}),[J,q]=S.useState({}),[ee,le]=S.useState({}),ce=w.has(o),ae=Y[o]??"",se=J[o]??GZ,ye=ee[o]??WZ,W=(Q,ne)=>{var be,kt,xt,ke,Ue;const fe=ne.author&&ne.author!=="user"?ne.author:void 0;fe&&(Z(Ce=>({...Ce,[Q]:fe})),q(Ce=>({...Ce,[Q]:new Set(Ce[Q]??[]).add(fe)})),le(Ce=>{var ut;return(ut=Ce[Q])!=null&&ut.length?Ce:{...Ce,[Q]:[fe]}}));const Me=((be=ne.actions)==null?void 0:be.transferToAgent)??((kt=ne.actions)==null?void 0:kt.transfer_to_agent);Me&&le(Ce=>{const ut=Ce[Q]??[];return ut[ut.length-1]===Me?Ce:{...Ce,[Q]:[...ut,Me]}}),(((xt=ne.actions)==null?void 0:xt.endOfAgent)??((ke=ne.actions)==null?void 0:ke.end_of_agent)??((Ue=ne.actions)==null?void 0:Ue.escalate))&&le(Ce=>{const ut=Ce[Q]??[];return ut.length<=1?Ce:{...Ce,[Q]:ut.slice(0,-1)}})},[$,G]=S.useState(z_),[X,me]=S.useState(!0),[pe,de]=S.useState(!1),[Ae,_e]=S.useState(!1),[mt,Pe]=S.useState(!1),[z,K]=S.useState(null),[te,oe]=S.useState(!1),[we,Le]=S.useState(!1),$t=S.useRef(null),[_t,Mn]=S.useState(()=>{const Q=Wr();return zl(Q),Q}),[ur,ct]=S.useState(!1),In=S.useRef(!1);function At(Q){console.log("create agent draft:",Q),G(null),hs()}function ic(Q,ne){console.log("Agent added, navigating to:",Q,ne),Mn(Wr()),G(null),r(Q)}const{ref:Tf,onScroll:Af}=oT(d);S.useEffect(()=>{I$().then(Q=>{O(Q.userId),M(Q.info),H(!!Q.local),R(Q.status)})},[]),S.useEffect(()=>{p$().then(Q=>{L(Q.features),E(Q.agentsSource),Q.defaultView==="addAgent"&&(G(null),de(!1),oe(!1),Le(!1),_e(!1),Pe(!0))})},[]),S.useEffect(()=>{fetch("/web/runtime-config").then(Q=>Q.ok?Q.json():null).then(Q=>{Q&&me(!!Q.credentials)}).catch(()=>{})},[]);function Cf(Q){N$(Q),O(Q),M({name:Q}),H(!0),R("authenticated")}function Mf(){V?(T$(),O(""),M(void 0),R("unauthenticated")):M$()}S.useEffect(()=>{P!=="unauthenticated"&&c$().then(Q=>{if(t(Q),D==="cloud"){r("");return}const ne=localStorage.getItem(Ss.app),fe=_t.flatMap(be=>be.apps.map(kt=>Wi(be.id,kt))),Me=ne&&(Q.includes(ne)||fe.includes(ne)),qe=["web_search_agent","web_demo"].find(be=>Q.includes(be))??Q.find(be=>!/^\d/.test(be))??Q[0];r(Me?ne:qe||"")}).catch(Q=>_(String(Q)))},[P,D]),S.useEffect(()=>{n&&localStorage.setItem(Ss.app,n)},[n]),S.useEffect(()=>{localStorage.setItem(Ss.view,$??"chat")},[$]),S.useEffect(()=>{localStorage.setItem(Ss.session,o),v.current=o},[o]),S.useEffect(()=>()=>x.current.forEach(Q=>Q.abort()),[]),S.useEffect(()=>{!n||!F||(async()=>{const Q=await fs(n);if(!In.current){In.current=!0;const ne=localStorage.getItem(Ss.session)||"";if(z_()===null&&ne&&Q.some(fe=>fe.id===ne)){ps(ne);return}}hs()})()},[n,F]),S.useEffect(()=>{const Q=$t.current;Q&&Q.app===n&&($t.current=null,ps(Q.sid))},[n]);function If(Q,ne){oe(!1),Q===n?ps(ne):($t.current={app:Q,sid:ne},r(Q))}async function fs(Q){try{const ne=await KN(Q,F),fe=await Promise.all(ne.map(Me=>{var qe;return(qe=Me.events)!=null&&qe.length?Promise.resolve(Me):Mm(Q,F,Me.id)}));return s(fe),fe}catch(ne){return _(String(ne)),[]}}function hs(){_(""),A(H_()),v.current="",a("")}async function Of(Q){var ne;try{(ne=x.current.get(Q))==null||ne.abort(),await u$(n,F,Q),c(fe=>{const{[Q]:Me,...qe}=fe;return qe}),Q===o&&hs(),await fs(n)}catch(fe){_(String(fe))}}async function ps(Q){if(Q!==o&&(v.current=Q,_(""),a(Q),l[Q]===void 0)){U(!0);try{const ne=await Mm(n,F,Q);u(Q,_$(ne.events??[]))}catch(ne){_(String(ne))}finally{U(!1)}}}async function Rf(Q){const ne=[];for(const fe of Array.from(Q)){if(fe.size>sJ){_(`文件过大(>20MB):${fe.name}`);continue}const Me=await oJ(fe);ne.push({mimeType:fe.type||"application/octet-stream",data:Me,name:fe.name})}ne.length&&b(fe=>[...fe,...ne])}async function sc(Q,ne=[]){if(!Q.trim()&&ne.length===0||ce||!n||!F)return;_("");let fe=o;if(!fe)try{fe=await Cm(n,F),a(fe);const be=Date.now()/1e3,kt={id:fe,lastUpdateTime:be,events:[{author:"user",timestamp:be,content:{role:"user",parts:[{text:Q}]}}]};s(xt=>[kt,...xt.filter(ke=>ke.id!==fe)])}catch(be){_(String(be));return}const Me=new AbortController;x.current.set(fe,Me),y(fe,!0),v.current=fe;const qe=[];ne.length&&qe.push({kind:"attachment",files:ne.map(be=>({mimeType:be.mimeType,data:be.data,name:be.name}))}),Q.trim()&&qe.push({kind:"text",text:Q}),u(fe,be=>[...be,{role:"user",blocks:qe,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),Z(be=>({...be,[fe]:""})),q(be=>({...be,[fe]:new Set})),le(be=>({...be,[fe]:[]}));try{let be=Gr(),kt=0,xt=Date.now()/1e3;for await(const ke of ad({appName:n,userId:F,sessionId:fe,text:Q,attachments:ne,signal:Me.signal})){if(Me.signal.aborted)break;const Ue=ke.error??ke.errorMessage??ke.error_message;if(typeof Ue=="string"&&Ue){v.current===fe&&_(Ue);break}W(fe,ke),be=hl(be,ke);const Ce=ke.usageMetadata??ke.usage_metadata;Ce!=null&&Ce.totalTokenCount&&(kt=Ce.totalTokenCount),ke.timestamp&&(xt=ke.timestamp);const ut=be.blocks,dr={tokens:kt||void 0,ts:xt};u(fe,Ko=>{const fr=Ko.slice(),yn=fr[fr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(fr[fr.length-1]={...yn,blocks:ut,meta:dr}),fr})}fs(n)}catch(be){(be==null?void 0:be.name)!=="AbortError"&&!Me.signal.aborted&&v.current===fe&&_(String(be))}finally{x.current.get(fe)===Me&&x.current.delete(fe),y(fe,!1),Z(be=>({...be,[fe]:""})),le(be=>({...be,[fe]:[]}))}}function Lf(Q,ne){var qe,be;const fe=((qe=Q==null?void 0:Q.event)==null?void 0:qe.name)??ne.id,Me=((be=Q==null?void 0:Q.event)==null?void 0:be.context)??{};sc(`[ui-action] ${fe}: ${JSON.stringify(Me)}`)}async function Pf(Q){if(!Q.authUri)throw new Error("事件中没有授权地址。");if(!n||!F||!o)throw new Error("会话尚未就绪。");const ne=o,fe=await rJ(Q.authUri),Me=iJ(Q.authConfig,fe),qe=ke=>ke.map(Ue=>Ue.kind==="auth"&&!Ue.done?{...Ue,done:!0}:Ue);u(ne,ke=>{const Ue=ke.slice(),Ce=Ue[Ue.length-1];return(Ce==null?void 0:Ce.role)==="assistant"&&(Ue[Ue.length-1]={...Ce,blocks:qe(Ce.blocks)}),Ue});const be=d[d.length-1],kt=qe(be&&be.role==="assistant"?be.blocks:[]),xt=new AbortController;x.current.set(ne,xt),y(ne,!0);try{let ke=Gr(),Ue=0,Ce=Date.now()/1e3;for await(const ut of ad({appName:n,userId:F,sessionId:o,text:"",functionResponses:[{id:Q.callId,name:"adk_request_credential",response:Me}],signal:xt.signal})){if(xt.signal.aborted)break;W(ne,ut),ke=hl(ke,ut);const dr=ut.usageMetadata??ut.usage_metadata;dr!=null&&dr.totalTokenCount&&(Ue=dr.totalTokenCount),ut.timestamp&&(Ce=ut.timestamp);const Ko=[...kt,...ke.blocks];u(ne,fr=>{var lc;const yn=fr.slice(),gi=yn[yn.length-1];return(gi==null?void 0:gi.role)==="assistant"&&(yn[yn.length-1]={...gi,blocks:Ko,meta:{tokens:Ue||((lc=gi.meta)==null?void 0:lc.tokens),ts:Ce}}),yn})}fs(n)}catch(ke){(ke==null?void 0:ke.name)!=="AbortError"&&!xt.signal.aborted&&v.current===ne&&_(String(ke))}finally{x.current.get(ne)===xt&&x.current.delete(ne),y(ne,!1),Z(ke=>({...ke,[ne]:""})),le(ke=>({...ke,[ne]:[]}))}}if(P===null)return f.jsx("div",{className:"boot"});if(P==="unauthenticated")return f.jsx(RZ,{onUsername:Cf});const oc=JN(e,_t),ms=Q=>{var ne;return((ne=oc.find(fe=>fe.id===Q))==null?void 0:ne.label)??Q},mi=_t.find(Q=>Q.runtimeId&&Q.apps.some(ne=>Wi(Q.id,ne)===n)),Df=mi&&mi.runtimeId?{runtimeId:mi.runtimeId,name:mi.name,region:mi.region??"cn-beijing"}:void 0,ac=Q=>{Mn(Wr()),v.current="",a(""),r(Q)};return f.jsxs("div",{className:"layout",children:[f.jsx(nF,{agentsSource:D,localApps:e,currentAgentId:n,currentAgentLabel:n?ms(n):"",currentRuntime:Df,author:String((j==null?void 0:j.email)??F??""),onSelectAgent:ac,features:B,sessions:i,currentSessionId:o,streamingSids:w,onNewChat:()=>{G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!1),hs()},onSearch:()=>{G(null),de(!1),_e(!1),Pe(!1),Le(!1),oe(!0),_("")},onQuickCreate:()=>{v.current="",a(""),de(!1),_e(!1),oe(!1),Le(!1),G(null),K(null),Pe(!0),_("")},onSkillCenter:()=>{G(null),_e(!1),Pe(!1),oe(!1),Le(!1),de(!0),_("")},onAddAgent:()=>{v.current="",G(null),de(!1),oe(!1),Le(!1),a(""),Pe(!1),_e(!0),_("")},onManageAgents:()=>{v.current="",a(""),G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!0),_("")},onPickSession:Q=>{G(null),de(!1),_e(!1),Pe(!1),oe(!1),Le(!1),_(""),ps(Q)},onDeleteSession:Of,userInfo:j,onLogout:Mf}),(()=>{const Q=f.jsx(V8,{value:h,onChange:p,onSubmit:()=>{const ne=h,fe=g;p(""),b([]),sc(ne,fe)},disabled:!n||!F,busy:ce,attachments:g,onAddFiles:Rf,onRemoveAttachment:ne=>b(fe=>fe.filter((Me,qe)=>qe!==ne))});return f.jsxs("main",{className:"main",children:[f.jsx(rF,{apps:oc.map(ne=>ne.id),appName:n,onAppChange:ac,agentLabel:ms,title:mt?"添加 Agent":Ae?"添加 AgentKit 智能体":pe?"技能中心":te?"搜索":we?"管理 Agent":$?void 0:n?ms(n):"选择 Agent",crumbs:te||Ae||pe||mt||!$?void 0:$==="menu"?[{label:KZ,onClick:()=>{G(null),K(null),Pe(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ct(!0)},{label:qZ[$]}]}),k&&f.jsx("div",{className:"error",children:k}),T&&f.jsxs("div",{className:"session-loading",children:[f.jsx(bt,{className:"icon spin"})," 加载会话…"]}),we?f.jsx(aF,{author:String((j==null?void 0:j.email)??F??"")}):mt?f.jsx(nC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...B.addAgentkit?[{key:"agentkit",icon:YZ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Pe(!1),_e(!0)}}]:[],{key:"scratch",icon:XZ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Pe(!1),K(null),G("menu")}}]}):te?f.jsx(q$,{userId:F,appId:n,agentLabel:ms,onOpenSession:If}):Ae?f.jsx(oF,{onAdded:ne=>{Mn(Wr()),_e(!1),r(ne)},onCancel:()=>_e(!1)}):pe?f.jsx(D$,{}):$!==null&&!X?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):$==="menu"?f.jsx(kK,{onSelect:ne=>{K(null),G(ne)},onImport:ne=>{K(ne),G("custom")}}):$==="intelligent"?f.jsx(PK,{userId:F,onBack:()=>G("menu"),onCreate:At,onAgentAdded:ic}):$==="custom"?f.jsx(XK,{initialDraft:z??void 0,onBack:()=>G("menu"),onCreate:At,onAgentAdded:ic,author:String((j==null?void 0:j.email)??F??"")}):$==="template"?f.jsx(JK,{onBack:()=>G("menu"),onCreate:At}):$==="workflow"?f.jsx(TZ,{onBack:()=>G("menu"),onCreate:At}):d.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),Q]}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Tf,onScroll:Af,children:d.map((ne,fe)=>{var be;const Me=fe===d.length-1;if(ne.role==="user"){const kt=ne.blocks.map(ke=>ke.kind==="text"?ke.text:"").join(""),xt=ne.blocks.flatMap(ke=>ke.kind==="attachment"?ke.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[xt.length>0&&f.jsx("div",{className:"msg-attachments",children:xt.map((ke,Ue)=>{var Ce;return(Ce=ke.mimeType)!=null&&Ce.startsWith("image/")&&ke.data?f.jsx("img",{className:"attachment-thumb",src:`data:${ke.mimeType};base64,${ke.data}`,alt:ke.name??"image"},Ue):f.jsxs("div",{className:"attachment-file",children:[f.jsx(qy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:ke.name??"文件"})]},Ue)})}),kt&&f.jsx("div",{className:"bubble",children:f.jsx(E0,{text:kt})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((be=ne.meta)==null?void 0:be.ts)&&f.jsx("span",{className:"meta-text",children:nI(ne.meta.ts)}),f.jsx(U_,{text:kt})]})]},fe)}const qe=ne.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:qe?Me&&ce?f.jsx($8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(U8,{blocks:ne.blocks,onAction:Lf,onAuth:Pf}),!(Me&&ce)&&!tJ(ne)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Me&&ce)&&!nJ(ne)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(QZ,{})}),f.jsx(U_,{text:JZ(ne)})]}),ne.meta&&f.jsx("span",{className:"meta-text",children:ZZ(ne.meta)})]})]})},fe)})}),f.jsx(Kw,{appName:n,activeAgent:ae,seenAgents:se,execPath:ye}),Q]})]})})(),C&&o&&f.jsx(IZ,{sessionId:o,onClose:()=>N(!1)}),ur&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ct(!1),children:f.jsxs("div",{className:"confirm-box",onClick:Q=>Q.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ct(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{K(null),G("menu"),ct(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||xp.createRoot(document.getElementById("root")).render(f.jsx(tk.StrictMode,{children:f.jsx(tL,{reducedMotion:"user",children:f.jsx(aJ,{})})})); diff --git a/veadk/webui/assets/index-CSD9mE1w.css b/veadk/webui/assets/index-CSD9mE1w.css deleted file mode 100644 index 0a0c38e8..00000000 --- a/veadk/webui/assets/index-CSD9mE1w.css +++ /dev/null @@ -1,10 +0,0 @@ -.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub - Description: Light theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-light - Current colors taken from GitHub's CSS -*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-textarea{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:400;font-style:normal;font-variant-ligatures:none;line-height:1.55;letter-spacing:normal;tab-size:2;-moz-tab-size:2;box-sizing:border-box;border:none;overflow:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.pp-pre{flex:1;width:100%;height:100%;white-space:pre}.pp-pre,.pp-pre *{font-weight:400!important;font-style:normal!important}.pp-textarea{flex:1;width:100%;height:100%;resize:none;outline:none;background:hsl(var(--background));color:hsl(var(--foreground));white-space:pre;word-wrap:normal;overflow-wrap:normal}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}.cw-skillspane{display:flex;flex-direction:column;gap:10px}.cw-skill-sourcetabs{display:inline-flex;gap:6px;flex-wrap:wrap}.cw-skill-pickertab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:9px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .15s,color .15s,border-color .15s}.cw-skill-pickertab:hover{border-color:hsl(var(--foreground) / .3);color:hsl(var(--foreground))}.cw-skill-pickertab.is-on{background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground))}.cw-skill-tabbody{margin-top:2px}.cw-pill-source{font-size:10.5px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .12);margin-left:4px;line-height:1.4}.cw-pill .cw-i{opacity:.85}.cw-local-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}.cw-local-hint{margin:0 0 8px;font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-skillspace-select{width:100%;margin-bottom:10px}.cw-skill-result-version{color:hsl(var(--muted-foreground));font-weight:400;font-size:11px;margin-left:4px}.cw-skill-result-repo .cw-i{vertical-align:-2px;margin-right:2px}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/assets/index-D58rpHH8.js b/veadk/webui/assets/index-D58rpHH8.js deleted file mode 100644 index ba405338..00000000 --- a/veadk/webui/assets/index-D58rpHH8.js +++ /dev/null @@ -1,794 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Cu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Al(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xk={exports:{}},Md={},Qk={exports:{}},Ne={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Cl=Symbol.for("react.element"),II=Symbol.for("react.portal"),OI=Symbol.for("react.fragment"),RI=Symbol.for("react.strict_mode"),LI=Symbol.for("react.profiler"),PI=Symbol.for("react.provider"),DI=Symbol.for("react.context"),jI=Symbol.for("react.forward_ref"),$I=Symbol.for("react.suspense"),BI=Symbol.for("react.memo"),FI=Symbol.for("react.lazy"),gb=Symbol.iterator;function zI(e){return e===null||typeof e!="object"?null:(e=gb&&e[gb]||e["@@iterator"],typeof e=="function"?e:null)}var Zk={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Jk=Object.assign,eE={};function Io(e,t,n){this.props=e,this.context=t,this.refs=eE,this.updater=n||Zk}Io.prototype.isReactComponent={};Io.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Io.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function tE(){}tE.prototype=Io.prototype;function vg(e,t,n){this.props=e,this.context=t,this.refs=eE,this.updater=n||Zk}var kg=vg.prototype=new tE;kg.constructor=vg;Jk(kg,Io.prototype);kg.isPureReactComponent=!0;var yb=Array.isArray,nE=Object.prototype.hasOwnProperty,Eg={current:null},rE={key:!0,ref:!0,__self:!0,__source:!0};function iE(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)nE.call(t,r)&&!rE.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,V=R[U];if(0>>1;Ui(q,S))Gi(Y,q)?(R[U]=Y,R[G]=S,U=G):(R[U]=q,R[F]=S,U=F);else if(Gi(Y,S))R[U]=Y,R[G]=S,U=G;else break e}}return P}function i(R,P){var S=R.sortIndex-P.sortIndex;return S!==0?S:R.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],u=1,d=null,h=3,p=!1,g=!1,w=!1,x=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(R){for(var P=n(c);P!==null;){if(P.callback===null)r(c);else if(P.startTime<=R)r(c),P.sortIndex=P.expirationTime,t(l,P);else break;P=n(c)}}function v(R){if(w=!1,b(R),!g)if(n(l)!==null)g=!0,O(E);else{var P=n(c);P!==null&&D(v,P.startTime-R)}}function E(R,P){g=!1,w&&(w=!1,m(N),N=-1),p=!0;var S=h;try{for(b(P),d=n(l);d!==null&&(!(d.expirationTime>P)||R&&!$());){var U=d.callback;if(typeof U=="function"){d.callback=null,h=d.priorityLevel;var V=U(d.expirationTime<=P);P=e.unstable_now(),typeof V=="function"?d.callback=V:d===n(l)&&r(l),b(P)}else r(l);d=n(l)}if(d!==null)var C=!0;else{var F=n(c);F!==null&&D(v,F.startTime-P),C=!1}return C}finally{d=null,h=S,p=!1}}var k=!1,A=null,N=-1,I=5,T=-1;function $(){return!(e.unstable_now()-TR||125U?(R.sortIndex=S,t(c,R),n(l)===null&&R===n(c)&&(w?(m(N),N=-1):w=!0,D(v,S-U))):(R.sortIndex=V,t(l,R),g||p||(g=!0,O(E))),R},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(R){var P=h;return function(){var S=h;h=P;try{return R.apply(this,arguments)}finally{h=S}}}})(uE);cE.exports=uE;var ZI=cE.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var JI=_,fn=ZI;function ee(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Np=Object.prototype.hasOwnProperty,eO=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,wb={},xb={};function tO(e){return Np.call(xb,e)?!0:Np.call(wb,e)?!1:eO.test(e)?xb[e]=!0:(wb[e]=!0,!1)}function nO(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function rO(e,t,n,r){if(t===null||typeof t>"u"||nO(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Wt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Nt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Nt[e]=new Wt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Nt[t]=new Wt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Nt[e]=new Wt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Nt[e]=new Wt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Nt[e]=new Wt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Nt[e]=new Wt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Nt[e]=new Wt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Nt[e]=new Wt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Nt[e]=new Wt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Sg=/[\-:]([a-z])/g;function Ng(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Sg,Ng);Nt[t]=new Wt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Sg,Ng);Nt[t]=new Wt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Sg,Ng);Nt[t]=new Wt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Nt[e]=new Wt(e,1,!1,e.toLowerCase(),null,!1,!1)});Nt.xlinkHref=new Wt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Nt[e]=new Wt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Tg(e,t,n,r){var i=Nt.hasOwnProperty(t)?Nt[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Kf=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ca(e):""}function iO(e){switch(e.tag){case 5:return ca(e.type);case 16:return ca("Lazy");case 13:return ca("Suspense");case 19:return ca("SuspenseList");case 0:case 2:case 15:return e=qf(e.type,!1),e;case 11:return e=qf(e.type.render,!1),e;case 1:return e=qf(e.type,!0),e;default:return""}}function Mp(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 Cs:return"Fragment";case As:return"Portal";case Tp:return"Profiler";case Ag:return"StrictMode";case Ap:return"Suspense";case Cp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case hE:return(e.displayName||"Context")+".Consumer";case fE:return(e._context.displayName||"Context")+".Provider";case Cg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Mg:return t=e.displayName||null,t!==null?t:Mp(e.type)||"Memo";case Br:t=e._payload,e=e._init;try{return Mp(e(t))}catch{}}return null}function sO(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 Mp(t);case 8:return t===Ag?"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 ai(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function mE(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function oO(e){var t=mE(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function dc(e){e._valueTracker||(e._valueTracker=oO(e))}function gE(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=mE(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Mu(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 Ip(e,t){var n=t.checked;return Je({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function kb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ai(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 yE(e,t){t=t.checked,t!=null&&Tg(e,"checked",t,!1)}function Op(e,t){yE(e,t);var n=ai(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")?Rp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Rp(e,t.type,ai(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Eb(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 Rp(e,t,n){(t!=="number"||Mu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ua=Array.isArray;function Xs(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=fc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ua(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var xa={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},aO=["Webkit","ms","Moz","O"];Object.keys(xa).forEach(function(e){aO.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),xa[t]=xa[e]})});function vE(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||xa.hasOwnProperty(e)&&xa[e]?(""+t).trim():t+"px"}function kE(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=vE(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var lO=Je({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 Dp(e,t){if(t){if(lO[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ee(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ee(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ee(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ee(62))}}function jp(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 $p=null;function Ig(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bp=null,Qs=null,Zs=null;function Nb(e){if(e=Ol(e)){if(typeof Bp!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Pd(t),Bp(e.stateNode,e.type,t))}}function EE(e){Qs?Zs?Zs.push(e):Zs=[e]:Qs=e}function _E(){if(Qs){var e=Qs,t=Zs;if(Zs=Qs=null,Nb(e),t)for(e=0;e>>=0,e===0?32:31-(wO(e)/xO|0)|0}var hc=64,pc=4194304;function da(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 Lu(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=da(a):(s&=o,s!==0&&(r=da(s)))}else o=n&~i,o!==0?r=da(o):s!==0&&(r=da(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Ml(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function _O(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=ka),Pb=" ",Db=!1;function HE(e,t){switch(e){case"keyup":return ZO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function KE(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ms=!1;function eR(e,t){switch(e){case"compositionend":return KE(t);case"keypress":return t.which!==32?null:(Db=!0,Pb);case"textInput":return e=t.data,e===Pb&&Db?null:e;default:return null}}function tR(e,t){if(Ms)return e==="compositionend"||!Bg&&HE(e,t)?(e=UE(),ru=Dg=Kr=null,Ms=!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)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=Fb(n)}}function YE(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?YE(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function XE(){for(var e=window,t=Mu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mu(e.document)}return t}function Fg(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 uR(e){var t=XE(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&YE(n.ownerDocument.documentElement,n)){if(r!==null&&Fg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=zb(n,s);var o=zb(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Is=null,Kp=null,_a=null,qp=!1;function Ub(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qp||Is==null||Is!==Mu(r)||(r=Is,"selectionStart"in r&&Fg(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}),_a&&Ga(_a,r)||(_a=r,r=ju(Kp,"onSelect"),0Ls||(e.current=Zp[Ls],Zp[Ls]=null,Ls--)}function Fe(e,t){Ls++,Zp[Ls]=e.current,e.current=t}var li={},Pt=fi(li),Zt=fi(!1),Ki=li;function ao(e,t){var n=e.type.contextTypes;if(!n)return li;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function Bu(){He(Zt),He(Pt)}function Yb(e,t,n){if(Pt.current!==li)throw Error(ee(168));Fe(Pt,t),Fe(Zt,n)}function s_(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ee(108,sO(e)||"Unknown",i));return Je({},n,r)}function Fu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||li,Ki=Pt.current,Fe(Pt,e),Fe(Zt,Zt.current),!0}function Xb(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=s_(e,t,Ki),r.__reactInternalMemoizedMergedChildContext=e,He(Zt),He(Pt),Fe(Pt,e)):He(Zt),Fe(Zt,n)}var yr=null,Dd=!1,oh=!1;function o_(e){yr===null?yr=[e]:yr.push(e)}function kR(e){Dd=!0,o_(e)}function hi(){if(!oh&&yr!==null){oh=!0;var e=0,t=De;try{var n=yr;for(De=1;e>=o,i-=o,br=1<<32-Un(t)+i|n<N?(I=A,A=null):I=A.sibling;var T=h(m,A,b[N],v);if(T===null){A===null&&(A=I);break}e&&A&&T.alternate===null&&t(m,A),y=s(T,y,N),k===null?E=T:k.sibling=T,k=T,A=I}if(N===b.length)return n(m,A),Ge&&ki(m,N),E;if(A===null){for(;NN?(I=A,A=null):I=A.sibling;var $=h(m,A,T.value,v);if($===null){A===null&&(A=I);break}e&&A&&$.alternate===null&&t(m,A),y=s($,y,N),k===null?E=$:k.sibling=$,k=$,A=I}if(T.done)return n(m,A),Ge&&ki(m,N),E;if(A===null){for(;!T.done;N++,T=b.next())T=d(m,T.value,v),T!==null&&(y=s(T,y,N),k===null?E=T:k.sibling=T,k=T);return Ge&&ki(m,N),E}for(A=r(m,A);!T.done;N++,T=b.next())T=p(A,m,N,T.value,v),T!==null&&(e&&T.alternate!==null&&A.delete(T.key===null?N:T.key),y=s(T,y,N),k===null?E=T:k.sibling=T,k=T);return e&&A.forEach(function(j){return t(m,j)}),Ge&&ki(m,N),E}function x(m,y,b,v){if(typeof b=="object"&&b!==null&&b.type===Cs&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case uc:e:{for(var E=b.key,k=y;k!==null;){if(k.key===E){if(E=b.type,E===Cs){if(k.tag===7){n(m,k.sibling),y=i(k,b.props.children),y.return=m,m=y;break e}}else if(k.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Br&&Jb(E)===k.type){n(m,k.sibling),y=i(k,b.props),y.ref=Xo(m,k,b),y.return=m,m=y;break e}n(m,k);break}else t(m,k);k=k.sibling}b.type===Cs?(y=$i(b.props.children,m.mode,v,b.key),y.return=m,m=y):(v=du(b.type,b.key,b.props,null,m.mode,v),v.ref=Xo(m,y,b),v.return=m,m=v)}return o(m);case As:e:{for(k=b.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===b.containerInfo&&y.stateNode.implementation===b.implementation){n(m,y.sibling),y=i(y,b.children||[]),y.return=m,m=y;break e}else{n(m,y);break}else t(m,y);y=y.sibling}y=ph(b,m.mode,v),y.return=m,m=y}return o(m);case Br:return k=b._init,x(m,y,k(b._payload),v)}if(ua(b))return g(m,y,b,v);if(Ko(b))return w(m,y,b,v);vc(m,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,y!==null&&y.tag===6?(n(m,y.sibling),y=i(y,b),y.return=m,m=y):(n(m,y),y=hh(b,m.mode,v),y.return=m,m=y),o(m)):n(m,y)}return x}var co=u_(!0),d_=u_(!1),Vu=fi(null),Hu=null,js=null,Hg=null;function Kg(){Hg=js=Hu=null}function qg(e){var t=Vu.current;He(Vu),e._currentValue=t}function tm(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 eo(e,t){Hu=e,Hg=js=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if(Hg!==e)if(e={context:e,memoizedValue:t,next:null},js===null){if(Hu===null)throw Error(ee(308));js=e,Hu.dependencies={lanes:0,firstContext:e}}else js=js.next=e;return t}var Ii=null;function Wg(e){Ii===null?Ii=[e]:Ii.push(e)}function f_(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Wg(t)):(n.next=i.next,i.next=n),t.interleaved=n,Ar(e,r)}function Ar(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 Fr=!1;function Gg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function h_(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 kr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ei(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Me&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Ar(e,n)}return i=r.interleaved,i===null?(t.next=t,Wg(r)):(t.next=i.next,i.next=t),r.interleaved=t,Ar(e,n)}function su(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,Rg(e,n)}}function ew(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Ku(e,t,n,r){var i=e.updateQueue;Fr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var u=e.alternate;u!==null&&(u=u.updateQueue,a=u.lastBaseUpdate,a!==o&&(a===null?u.firstBaseUpdate=c:a.next=c,u.lastBaseUpdate=l))}if(s!==null){var d=i.baseState;o=0,u=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){u!==null&&(u=u.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,w=a;switch(h=t,p=n,w.tag){case 1:if(g=w.payload,typeof g=="function"){d=g.call(p,d,h);break e}d=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=w.payload,h=typeof g=="function"?g.call(p,d,h):g,h==null)break e;d=Je({},d,h);break e;case 2:Fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},u===null?(c=u=p,l=d):u=u.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(u===null&&(l=d),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=u,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);Gi|=o,e.lanes=o,e.memoizedState=d}}function tw(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=lh.transition;lh.transition={};try{e(!1),t()}finally{De=n,lh.transition=r}}function M_(){return An().memoizedState}function NR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},I_(e))O_(t,n);else if(n=f_(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),R_(n,t,r)}}function TR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(I_(e))O_(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Wg(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=f_(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),R_(n,t,r))}}function I_(e){var t=e.alternate;return e===Ze||t!==null&&t===Ze}function O_(e,t){Sa=Wu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function R_(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Rg(e,n)}}var Gu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},AR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:rw,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,au(4194308,4,S_.bind(null,t,e),n)},useLayoutEffect:function(e,t){return au(4194308,4,e,t)},useInsertionEffect:function(e,t){return au(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=NR.bind(null,Ze,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:nw,useDebugValue:ny,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=nw(!1),t=e[0];return e=SR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ze,i=Zn();if(Ge){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),wt===null)throw Error(ee(349));Wi&30||y_(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,rw(w_.bind(null,r,s,e),[e]),r.flags|=2048,nl(9,b_.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=wt.identifierPrefix;if(Ge){var n=wr,r=br;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=el++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Qa]=r,V_(e,t,!1,!1),t.stateNode=e;e:{switch(o=jp(n,r),n){case"dialog":Ve("cancel",e),Ve("close",e),i=r;break;case"iframe":case"object":case"embed":Ve("load",e),i=r;break;case"video":case"audio":for(i=0;iho&&(t.flags|=128,r=!0,Qo(s,!1),t.lanes=4194304)}else{if(!r)if(e=qu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Qo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ge)return Mt(t),null}else 2*st()-s.renderingStartTime>ho&&n!==1073741824&&(t.flags|=128,r=!0,Qo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=st(),t.sibling=null,n=Xe.current,Fe(Xe,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ly(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(Mt(t),t.subtreeFlags&6&&(t.flags|=8192)):Mt(t),null;case 24:return null;case 25:return null}throw Error(ee(156,t.tag))}function DR(e,t){switch(Ug(t),t.tag){case 1:return Jt(t.type)&&Bu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return uo(),He(Zt),He(Pt),Qg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Xg(t),null;case 13:if(He(Xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));lo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He(Xe),null;case 4:return uo(),null;case 10:return qg(t.type._context),null;case 22:case 23:return ly(),null;case 24:return null;default:return null}}var Ec=!1,Ot=!1,jR=typeof WeakSet=="function"?WeakSet:Set,fe=null;function $s(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){nt(e,t,r)}else n.current=null}function um(e,t,n){try{n()}catch(r){nt(e,t,r)}}var pw=!1;function $R(e,t){if(Wp=Pu,e=XE(),Fg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,u=0,d=e,h=null;t:for(;;){for(var p;d!==n||i!==0&&d.nodeType!==3||(a=o+i),d!==s||r!==0&&d.nodeType!==3||(l=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)h=d,d=p;for(;;){if(d===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++u===r&&(l=o),(p=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Gp={focusedElem:e,selectionRange:n},Pu=!1,fe=t;fe!==null;)if(t=fe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,fe=e;else for(;fe!==null;){t=fe;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var w=g.memoizedProps,x=g.memoizedState,m=t.stateNode,y=m.getSnapshotBeforeUpdate(t.elementType===t.type?w:Pn(t.type,w),x);m.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ee(163))}}catch(v){nt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,fe=e;break}fe=t.return}return g=pw,pw=!1,g}function Na(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&um(t,n,s)}i=i.next}while(i!==r)}}function Bd(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 dm(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 q_(e){var t=e.alternate;t!==null&&(e.alternate=null,q_(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Qa],delete t[Qp],delete t[xR],delete t[vR])),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 W_(e){return e.tag===5||e.tag===3||e.tag===4}function mw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||W_(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 fm(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=$u));else if(r!==4&&(e=e.child,e!==null))for(fm(e,t,n),e=e.sibling;e!==null;)fm(e,t,n),e=e.sibling}function hm(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(hm(e,t,n),e=e.sibling;e!==null;)hm(e,t,n),e=e.sibling}var Et=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)G_(e,t,n),n=n.sibling}function G_(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Id,n)}catch{}switch(n.tag){case 5:Ot||$s(n,t);case 6:var r=Et,i=Dn;Et=null,Lr(e,t,n),Et=r,Dn=i,Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Et.removeChild(n.stateNode));break;case 18:Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?sh(e.parentNode,n):e.nodeType===1&&sh(e,n),qa(e)):sh(Et,n.stateNode));break;case 4:r=Et,i=Dn,Et=n.stateNode.containerInfo,Dn=!0,Lr(e,t,n),Et=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&um(n,t,o),i=i.next}while(i!==r)}Lr(e,t,n);break;case 1:if(!Ot&&($s(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){nt(n,t,a)}Lr(e,t,n);break;case 21:Lr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Lr(e,t,n),Ot=r):Lr(e,t,n);break;default:Lr(e,t,n)}}function gw(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new jR),t.forEach(function(r){var i=WR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=st()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*FR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Qu=0,Me&6)throw Error(ee(331));var i=Me;for(Me|=4,fe=e.current;fe!==null;){var s=fe,o=s.child;if(fe.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lst()-oy?ji(e,0):sy|=n),en(e,t)}function nS(e,t){t===0&&(e.mode&1?(t=pc,pc<<=1,!(pc&130023424)&&(pc=4194304)):t=1);var n=Ht();e=Ar(e,t),e!==null&&(Ml(e,t,n),en(e,n))}function qR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),nS(e,n)}function WR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ee(314))}r!==null&&r.delete(t),nS(e,n)}var rS;rS=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,LR(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,Ge&&t.flags&1048576&&a_(t,Uu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;lu(e,t),e=t.pendingProps;var i=ao(t,Pt.current);eo(t,n),i=Jg(null,t,r,e,i,n);var s=ey();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Fu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Gg(t),i.updater=$d,t.stateNode=i,i._reactInternals=t,rm(t,r,e,n),t=om(null,t,r,!0,s,n)):(t.tag=0,Ge&&s&&zg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(lu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=YR(r),e=Pn(r,e),i){case 0:t=sm(null,t,r,e,n);break e;case 1:t=dw(null,t,r,e,n);break e;case 11:t=cw(null,t,r,e,n);break e;case 14:t=uw(null,t,r,Pn(r.type,e),n);break e}throw Error(ee(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),sm(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),dw(e,t,r,i,n);case 3:e:{if(F_(t),e===null)throw Error(ee(387));r=t.pendingProps,s=t.memoizedState,i=s.element,h_(e,t),Ku(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=fo(Error(ee(423)),t),t=fw(e,t,r,n,i);break e}else if(r!==i){i=fo(Error(ee(424)),t),t=fw(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,Ge=!0,$n=null,n=d_(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(lo(),r===i){t=Cr(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return p_(t),e===null&&em(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Yp(r,i)?o=null:s!==null&&Yp(r,s)&&(t.flags|=32),B_(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&em(t),null;case 13:return z_(e,t,n);case 4:return Yg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=co(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),cw(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,Fe(Vu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Cr(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=kr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),tm(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ee(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),tm(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,eo(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),uw(e,t,r,i,n);case 15:return j_(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),lu(e,t),t.tag=1,Jt(r)?(e=!0,Fu(t)):e=!1,eo(t,n),L_(t,r,i),rm(t,r,i,n),om(null,t,r,!0,e,n);case 19:return U_(e,t,n);case 22:return $_(e,t,n)}throw Error(ee(156,t.tag))};function iS(e,t){return IE(e,t)}function GR(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 _n(e,t,n,r){return new GR(e,t,n,r)}function uy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function YR(e){if(typeof e=="function")return uy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Cg)return 11;if(e===Mg)return 14}return 2}function ri(e,t){var n=e.alternate;return n===null?(n=_n(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 du(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")uy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Cs:return $i(n.children,i,s,t);case Ag:o=8,i|=8;break;case Tp:return e=_n(12,n,t,i|2),e.elementType=Tp,e.lanes=s,e;case Ap:return e=_n(13,n,t,i),e.elementType=Ap,e.lanes=s,e;case Cp:return e=_n(19,n,t,i),e.elementType=Cp,e.lanes=s,e;case pE:return zd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case fE:o=10;break e;case hE:o=9;break e;case Cg:o=11;break e;case Mg:o=14;break e;case Br:o=16,r=null;break e}throw Error(ee(130,e==null?e:typeof e,""))}return t=_n(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function $i(e,t,n,r){return e=_n(7,e,r,t),e.lanes=n,e}function zd(e,t,n,r){return e=_n(22,e,r,t),e.elementType=pE,e.lanes=n,e.stateNode={isHidden:!1},e}function hh(e,t,n){return e=_n(6,e,null,t),e.lanes=n,e}function ph(e,t,n){return t=_n(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function XR(e,t,n,r,i){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=Gf(0),this.expirationTimes=Gf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Gf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function dy(e,t,n,r,i,s,o,a,l){return e=new XR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=_n(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Gg(s),e}function QR(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(lS)}catch(e){console.error(e)}}lS(),lE.exports=mn;var nL=lE.exports,_w=nL;Sp.createRoot=_w.createRoot,Sp.hydrateRoot=_w.hydrateRoot;const my=_.createContext({});function qd(e){const t=_.useRef(null);return t.current===null&&(t.current=e()),t.current}const Wd=_.createContext(null),il=_.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class rL extends _.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function iL({children:e,isPresent:t}){const n=_.useId(),r=_.useRef(null),i=_.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=_.useContext(il);return _.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const u=document.createElement("style");return s&&(u.nonce=s),document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` - [data-motion-pop-id="${n}"] { - position: absolute !important; - width: ${o}px !important; - height: ${a}px !important; - top: ${l}px !important; - left: ${c}px !important; - } - `),()=>{document.head.removeChild(u)}},[t]),f.jsx(rL,{isPresent:t,childRef:r,sizeRef:i,children:_.cloneElement(e,{ref:r})})}const sL=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=qd(oL),l=_.useId(),c=_.useCallback(d=>{a.set(d,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),u=_.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:d=>(a.set(d,!1),()=>a.delete(d))}),s?[Math.random(),c]:[n,c]);return _.useMemo(()=>{a.forEach((d,h)=>a.set(h,!1))},[n]),_.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(iL,{isPresent:n,children:e})),f.jsx(Wd.Provider,{value:u,children:e})};function oL(){return new Map}function cS(e=!0){const t=_.useContext(Wd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=_.useId();_.useEffect(()=>{e&&i(s)},[e]);const o=_.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Nc=e=>e.key||"";function Sw(e){const t=[];return _.Children.forEach(e,n=>{_.isValidElement(n)&&t.push(n)}),t}const gy=typeof window<"u",uS=gy?_.useLayoutEffect:_.useEffect,yy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=cS(o),c=_.useMemo(()=>Sw(e),[e]),u=o&&!a?[]:c.map(Nc),d=_.useRef(!0),h=_.useRef(c),p=qd(()=>new Map),[g,w]=_.useState(c),[x,m]=_.useState(c);uS(()=>{d.current=!1,h.current=c;for(let v=0;v{const E=Nc(v),k=o&&!a?!1:c===x||u.includes(E),A=()=>{if(p.has(E))p.set(E,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(b==null||b(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(sL,{isPresent:k,initial:!d.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:k?void 0:A,children:v},E)})})},un=e=>e;let dS=un;const aL={useManualTiming:!1};function lL(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,u=!1,d=!1)=>{const p=d&&r?t:n;return u&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Tc=["read","resolveKeyframes","update","preRender","render","postRender"],cL=40;function fS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Tc.reduce((m,y)=>(m[y]=lL(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:u,render:d,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,cL),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),u.process(i),d.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Tc.reduce((m,y)=>{const b=o[y];return m[y]=(v,E=!1,k=!1)=>(n||g(),b.schedule(v,E,k)),m},{}),cancel:m=>{for(let y=0;yNw[e].some(n=>!!t[n])};function uL(e){for(const t in e)po[t]={...po[t],...e[t]}}const dL=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function ed(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||dL.has(e)}let pS=e=>!ed(e);function mS(e){e&&(pS=t=>t.startsWith("on")?!ed(t):e(t))}try{mS(require("@emotion/is-prop-valid").default)}catch{}function fL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(pS(i)||n===!0&&ed(i)||!t&&!ed(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function hL({children:e,isValidProp:t,...n}){t&&mS(t),n={..._.useContext(il),...n},n.isStatic=qd(()=>n.isStatic);const r=_.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(il.Provider,{value:r,children:e})}function pL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Gd=_.createContext({});function sl(e){return typeof e=="string"||Array.isArray(e)}function Yd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const by=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],wy=["initial",...by];function Xd(e){return Yd(e.animate)||wy.some(t=>sl(e[t]))}function gS(e){return!!(Xd(e)||e.variants)}function mL(e,t){if(Xd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||sl(n)?n:void 0,animate:sl(r)?r:void 0}}return e.inherit!==!1?t:{}}function gL(e){const{initial:t,animate:n}=mL(e,_.useContext(Gd));return _.useMemo(()=>({initial:t,animate:n}),[Tw(t),Tw(n)])}function Tw(e){return Array.isArray(e)?e.join(" "):e}const yL=Symbol.for("motionComponentSymbol");function Fs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function bL(e,t,n){return _.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Fs(n)&&(n.current=r))},[t])}const xy=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),wL="framerAppearId",yS="data-"+xy(wL),{schedule:vy}=fS(queueMicrotask,!1),bS=_.createContext({});function xL(e,t,n,r,i){var s,o;const{visualElement:a}=_.useContext(Gd),l=_.useContext(hS),c=_.useContext(Wd),u=_.useContext(il).reducedMotion,d=_.useRef(null);r=r||l.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u}));const h=d.current,p=_.useContext(bS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&vL(d.current,n,i,p);const g=_.useRef(!1);_.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const w=n[yS],x=_.useRef(!!w&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,w))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,w)));return uS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),vy.render(h.render),x.current&&h.animationState&&h.animationState.animateChanges())}),_.useEffect(()=>{h&&(!x.current&&h.animationState&&h.animationState.animateChanges(),x.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,w)}),x.current=!1))}),h}function vL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:wS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Fs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function wS(e){if(e)return e.options.allowProjection!==!1?e.projection:wS(e.parent)}function kL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&uL(e);function a(c,u){let d;const h={..._.useContext(il),...c,layoutId:EL(c)},{isStatic:p}=h,g=gL(c),w=r(c,p);if(!p&&gy){_L();const x=SL(h);d=x.MeasureLayout,g.visualElement=xL(i,w,h,t,x.ProjectionNode)}return f.jsxs(Gd.Provider,{value:g,children:[d&&g.visualElement?f.jsx(d,{visualElement:g.visualElement,...h}):null,n(i,c,bL(w,g.visualElement,u),w,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=_.forwardRef(a);return l[yL]=i,l}function EL({layoutId:e}){const t=_.useContext(my).id;return t&&e!==void 0?t+"-"+e:e}function _L(e,t){_.useContext(hS).strict}function SL(e){const{drag:t,layout:n}=po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const NL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function ky(e){return typeof e!="string"||e.includes("-")?!1:!!(NL.indexOf(e)>-1||/[A-Z]/u.test(e))}function Aw(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function Ey(e,t,n,r){if(typeof t=="function"){const[i,s]=Aw(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Aw(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const bm=e=>Array.isArray(e),TL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),AL=e=>bm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function fu(e){const t=Rt(e)?e.get():e;return TL(t)?t.toValue():t}function CL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:ML(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const xS=e=>(t,n)=>{const r=_.useContext(Gd),i=_.useContext(Wd),s=()=>CL(e,t,r,i);return n?s():qd(s)};function ML(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=fu(s[h]);let{initial:o,animate:a}=e;const l=Xd(e),c=gS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let u=n?n.initial===!1:!1;u=u||o===!1;const d=u?a:o;if(d&&typeof d!="boolean"&&!Yd(d)){const h=Array.isArray(d)?d:[d];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),kS=vS("--"),IL=vS("var(--"),_y=e=>IL(e)?OL.test(e.split("/*")[0].trim()):!1,OL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,ES=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Mr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},ol={...Po,transform:e=>Mr(0,1,e)},Ac={...Po,default:1},Ll=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),$r=Ll("deg"),ir=Ll("%"),we=Ll("px"),RL=Ll("vh"),LL=Ll("vw"),Cw={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},PL={borderWidth:we,borderTopWidth:we,borderRightWidth:we,borderBottomWidth:we,borderLeftWidth:we,borderRadius:we,radius:we,borderTopLeftRadius:we,borderTopRightRadius:we,borderBottomRightRadius:we,borderBottomLeftRadius:we,width:we,maxWidth:we,height:we,maxHeight:we,top:we,right:we,bottom:we,left:we,padding:we,paddingTop:we,paddingRight:we,paddingBottom:we,paddingLeft:we,margin:we,marginTop:we,marginRight:we,marginBottom:we,marginLeft:we,backgroundPositionX:we,backgroundPositionY:we},DL={rotate:$r,rotateX:$r,rotateY:$r,rotateZ:$r,scale:Ac,scaleX:Ac,scaleY:Ac,scaleZ:Ac,skew:$r,skewX:$r,skewY:$r,distance:we,translateX:we,translateY:we,translateZ:we,x:we,y:we,z:we,perspective:we,transformPerspective:we,opacity:ol,originX:Cw,originY:Cw,originZ:we},Mw={...Po,transform:Math.round},Sy={...PL,...DL,zIndex:Mw,size:we,fillOpacity:ol,strokeOpacity:ol,numOctaves:Mw},jL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},$L=Lo.length;function BL(e,t,n){let r="",i=!0;for(let s=0;s<$L;s++){const o=Lo[s],a=e[o];if(a===void 0)continue;let l=!0;if(typeof a=="number"?l=a===(o.startsWith("scale")?1:0):l=parseFloat(a)===0,!l||n){const c=ES(a,Sy[o]);if(!l){i=!1;const u=jL[o]||o;r+=`${u}(${c}) `}n&&(t[o]=c)}}return r=r.trim(),n?r=n(t,i?"":r):i&&(r="none"),r}function Ny(e,t,n){const{style:r,vars:i,transformOrigin:s}=e;let o=!1,a=!1;for(const l in t){const c=t[l];if(os.has(l)){o=!0;continue}else if(kS(l)){i[l]=c;continue}else{const u=ES(c,Sy[l]);l.startsWith("origin")?(a=!0,s[l]=u):r[l]=u}}if(t.transform||(o||n?r.transform=BL(t,e.transform,n):r.transform&&(r.transform="none")),a){const{originX:l="50%",originY:c="50%",originZ:u=0}=s;r.transformOrigin=`${l} ${c} ${u}`}}const FL={offset:"stroke-dashoffset",array:"stroke-dasharray"},zL={offset:"strokeDashoffset",array:"strokeDasharray"};function UL(e,t,n=1,r=0,i=!0){e.pathLength=1;const s=i?FL:zL;e[s.offset]=we.transform(-r);const o=we.transform(t),a=we.transform(n);e[s.array]=`${o} ${a}`}function Iw(e,t,n){return typeof e=="string"?e:we.transform(t+n*e)}function VL(e,t,n){const r=Iw(t,e.x,e.width),i=Iw(n,e.y,e.height);return`${r} ${i}`}function Ty(e,{attrX:t,attrY:n,attrScale:r,originX:i,originY:s,pathLength:o,pathSpacing:a=1,pathOffset:l=0,...c},u,d){if(Ny(e,c,d),u){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:h,style:p,dimensions:g}=e;h.transform&&(g&&(p.transform=h.transform),delete h.transform),g&&(i!==void 0||s!==void 0||p.transform)&&(p.transformOrigin=VL(g,i!==void 0?i:.5,s!==void 0?s:.5)),t!==void 0&&(h.x=t),n!==void 0&&(h.y=n),r!==void 0&&(h.scale=r),o!==void 0&&UL(h,o,a,l,!1)}const Ay=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),_S=()=>({...Ay(),attrs:{}}),Cy=e=>typeof e=="string"&&e.toLowerCase()==="svg";function SS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const NS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function TS(e,t,n,r){SS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(NS.has(i)?i:xy(i),t.attrs[i])}const td={};function HL(e){Object.assign(td,e)}function AS(e,{layout:t,layoutId:n}){return os.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!td[e]||e==="opacity")}function My(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||AS(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function CS(e,t,n){const r=My(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Lo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function KL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Ow=["x","y","width","height","cx","cy","r"],qL={useVisualState:xS({scrapeMotionValuesFromProps:CS,createRenderState:_S,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(os.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{KL(n,r),Ke.render(()=>{Ty(r,i,Cy(n.tagName),e.transformTemplate),TS(n,r)})})}})},WL={useVisualState:xS({scrapeMotionValuesFromProps:My,createRenderState:Ay})};function MS(e,t,n){for(const r in t)!Rt(t[r])&&!AS(r,n)&&(e[r]=t[r])}function GL({transformTemplate:e},t){return _.useMemo(()=>{const n=Ay();return Ny(n,t,e),Object.assign({},n.vars,n.style)},[t])}function YL(e,t){const n=e.style||{},r={};return MS(r,n,e),Object.assign(r,GL(e,t)),r}function XL(e,t){const n={},r=YL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function QL(e,t,n,r){const i=_.useMemo(()=>{const s=_S();return Ty(s,t,Cy(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};MS(s,e.style,e),i.style={...s,...i.style}}return i}function ZL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(ky(n)?QL:XL)(r,s,o,n),c=fL(r,typeof n=="string",e),u=n!==_.Fragment?{...c,...l,ref:i}:{},{children:d}=r,h=_.useMemo(()=>Rt(d)?d.get():d,[d]);return _.createElement(n,{...u,children:h})}}function JL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...ky(r)?qL:WL,preloadedFeatures:e,useRender:ZL(i),createVisualElement:t,Component:r};return kL(o)}}function IS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(hu===void 0&&sr.set(_t.isProcessing||aL.useManualTiming?_t.timestamp:performance.now()),hu),set:e=>{hu=e,queueMicrotask(eP)}};function Oy(e,t){e.indexOf(t)===-1&&e.push(t)}function Ry(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Ly{constructor(){this.subscriptions=[]}add(t){return Oy(this.subscriptions,t),()=>Ry(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class nP{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=tP(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Ly);const r=this.events[t].add(n);return t==="change"?()=>{r(),Ke.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Rw)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Rw);return RS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function al(e,t){return new nP(e,t)}function rP(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,al(n))}function iP(e,t){const n=Qd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=AL(s[o]);rP(e,o,a)}}function sP(e){return!!(Rt(e)&&e.add)}function wm(e,t){const n=e.getValue("willChange");if(sP(n))return n.add(t)}function LS(e){return e.props[yS]}function Py(e){let t;return()=>(t===void 0&&(t=e()),t)}const oP=Py(()=>window.ScrollTimeline!==void 0);class aP{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(oP()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class lP extends aP{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const Er=e=>e*1e3,_r=e=>e/1e3;function Dy(e){return typeof e=="function"}function Lw(e,t){e.timeline=t,e.onfinish=null}const jy=e=>Array.isArray(e)&&typeof e[0]=="number",cP={linearEasing:void 0};function uP(e,t){const n=Py(e);return()=>{var r;return(r=cP[t])!==null&&r!==void 0?r:n()}}const nd=uP(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),mo=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},PS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,xm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ha([0,.65,.55,1]),circOut:ha([.55,0,1,.45]),backIn:ha([.31,.01,.66,-.59]),backOut:ha([.33,1.53,.69,.99])};function jS(e,t){if(e)return typeof e=="function"&&nd()?PS(e,t):jy(e)?ha(e):Array.isArray(e)?e.map(n=>jS(n,t)||xm.easeOut):xm[e]}const $S=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,dP=1e-7,fP=12;function hP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=$S(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>dP&&++ahP(s,0,1,e,n);return s=>s===0||s===1?s:$S(i(s),t,r)}const BS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,FS=e=>t=>1-e(1-t),zS=Pl(.33,1.53,.69,.99),$y=FS(zS),US=BS($y),VS=e=>(e*=2)<1?.5*$y(e):.5*(2-Math.pow(2,-10*(e-1))),By=e=>1-Math.sin(Math.acos(e)),HS=FS(By),KS=BS(By),qS=e=>/^0[^.\s]+$/u.test(e);function pP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||qS(e):!0}const Ca=e=>Math.round(e*1e5)/1e5,Fy=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function mP(e){return e==null}const gP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,zy=(e,t)=>n=>!!(typeof n=="string"&&gP.test(n)&&n.startsWith(e)||t&&!mP(n)&&Object.prototype.hasOwnProperty.call(n,t)),WS=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Fy);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},yP=e=>Mr(0,255,e),gh={...Po,transform:e=>Math.round(yP(e))},Ri={test:zy("rgb","red"),parse:WS("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+gh.transform(e)+", "+gh.transform(t)+", "+gh.transform(n)+", "+Ca(ol.transform(r))+")"};function bP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const vm={test:zy("#"),parse:bP,transform:Ri.transform},zs={test:zy("hsl","hue"),parse:WS("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ca(t))+", "+ir.transform(Ca(n))+", "+Ca(ol.transform(r))+")"},It={test:e=>Ri.test(e)||vm.test(e)||zs.test(e),parse:e=>Ri.test(e)?Ri.parse(e):zs.test(e)?zs.parse(e):vm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ri.transform(e):zs.transform(e)},wP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function xP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Fy))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(wP))===null||n===void 0?void 0:n.length)||0)>0}const GS="number",YS="color",vP="var",kP="var(",Pw="${}",EP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ll(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(EP,l=>(It.test(l)?(r.color.push(s),i.push(YS),n.push(It.parse(l))):l.startsWith(kP)?(r.var.push(s),i.push(vP),n.push(l)):(r.number.push(s),i.push(GS),n.push(parseFloat(l))),++s,Pw)).split(Pw);return{values:n,split:a,indexes:r,types:i}}function XS(e){return ll(e).values}function QS(e){const{split:t,types:n}=ll(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function SP(e){const t=XS(e);return QS(e)(t.map(_P))}const ui={test:xP,parse:XS,createTransformer:QS,getAnimatableNone:SP},NP=new Set(["brightness","contrast","saturate","opacity"]);function TP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Fy)||[];if(!r)return e;const i=n.replace(r,"");let s=NP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const AP=/\b([a-z-]*)\(.*?\)/gu,km={...ui,getAnimatableNone:e=>{const t=e.match(AP);return t?t.map(TP).join(" "):e}},CP={...Sy,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:km,WebkitFilter:km},Uy=e=>CP[e];function ZS(e,t){let n=Uy(e);return n!==km&&(n=ui),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const MP=new Set(["auto","none","0"]);function IP(e,t,n){let r=0,i;for(;re===Po||e===we,jw=(e,t)=>parseFloat(e.split(", ")[t]),$w=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return jw(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?jw(s[1],e):0}},OP=new Set(["x","y","z"]),RP=Lo.filter(e=>!OP.has(e));function LP(e){const t=[];return RP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const go={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:$w(4,13),y:$w(5,14)};go.translateX=go.x;go.translateY=go.y;const Bi=new Set;let Em=!1,_m=!1;function JS(){if(_m){const e=Array.from(Bi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=LP(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}_m=!1,Em=!1,Bi.forEach(e=>e.complete()),Bi.clear()}function eN(){Bi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(_m=!0)})}function PP(){eN(),JS()}class Vy{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Bi.add(this),Em||(Em=!0,Ke.read(eN),Ke.resolveKeyframes(JS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),DP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function jP(e){const t=DP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function nN(e,t,n=1){const[r,i]=jP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return tN(o)?parseFloat(o):o}return _y(i)?nN(i,t,n+1):i}const rN=e=>t=>t.test(e),$P={test:e=>e==="auto",parse:e=>e},iN=[Po,we,ir,$r,LL,RL,$P],Bw=e=>iN.find(rN(e));class sN extends Vy{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Fw=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ui.test(e)||e==="0")&&!e.startsWith("url("));function BP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Zd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(zP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const UP=40;class oN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>UP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&PP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!FP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Zd(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const u=this.initPlayback(t,n);u!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...u},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Sm=2e4;function aN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=Sm?1/0:t}const Qe=(e,t,n)=>e+(t-e)*n;function yh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function VP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=yh(l,a,e+1/3),s=yh(l,a,e),o=yh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function rd(e,t){return n=>n>0?t:e}const bh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},HP=[vm,Ri,zs],KP=e=>HP.find(t=>t.test(e));function zw(e){const t=KP(e);if(!t)return!1;let n=t.parse(e);return t===zs&&(n=VP(n)),n}const Uw=(e,t)=>{const n=zw(e),r=zw(t);if(!n||!r)return rd(e,t);const i={...n};return s=>(i.red=bh(n.red,r.red,s),i.green=bh(n.green,r.green,s),i.blue=bh(n.blue,r.blue,s),i.alpha=Qe(n.alpha,r.alpha,s),Ri.transform(i))},qP=(e,t)=>n=>t(e(n)),Dl=(...e)=>e.reduce(qP),Nm=new Set(["none","hidden"]);function WP(e,t){return Nm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function GP(e,t){return n=>Qe(e,t,n)}function Hy(e){return typeof e=="number"?GP:typeof e=="string"?_y(e)?rd:It.test(e)?Uw:QP:Array.isArray(e)?lN:typeof e=="object"?It.test(e)?Uw:YP:rd}function lN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>Hy(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function XP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ui.createTransformer(t),r=ll(e),i=ll(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Nm.has(e)&&!i.values.length||Nm.has(t)&&!r.values.length?WP(e,t):Dl(lN(XP(r,i),i.values),n):rd(e,t)};function cN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Qe(e,t,n):Hy(e)(e,t)}const ZP=5;function uN(e,t,n){const r=Math.max(t-ZP,0);return RS(n-e(r),t-r)}const tt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},wh=.001;function JP({duration:e=tt.duration,bounce:t=tt.bounce,velocity:n=tt.velocity,mass:r=tt.mass}){let i,s,o=1-t;o=Mr(tt.minDamping,tt.maxDamping,o),e=Mr(tt.minDuration,tt.maxDuration,_r(e)),o<1?(i=c=>{const u=c*o,d=u*e,h=u-n,p=Tm(c,o),g=Math.exp(-d);return wh-h/p*g},s=c=>{const d=c*o*e,h=d*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-d),w=Tm(Math.pow(c,2),o);return(-i(c)+wh>0?-1:1)*((h-p)*g)/w}):(i=c=>{const u=Math.exp(-c*e),d=(c-n)*e+1;return-wh+u*d},s=c=>{const u=Math.exp(-c*e),d=(n-c)*(e*e);return u*d});const a=5/e,l=tD(i,s,a);if(e=Er(e),isNaN(l))return{stiffness:tt.stiffness,damping:tt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const eD=12;function tD(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function iD(e){let t={velocity:tt.velocity,stiffness:tt.stiffness,damping:tt.damping,mass:tt.mass,isResolvedFromDuration:!1,...e};if(!Vw(e,rD)&&Vw(e,nD))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Mr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:tt.mass,stiffness:i,damping:s}}else{const n=JP(e);t={...t,...n,mass:tt.mass},t.isResolvedFromDuration=!0}return t}function dN(e=tt.visualDuration,t=tt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:u,duration:d,velocity:h,isResolvedFromDuration:p}=iD({...n,velocity:-_r(n.velocity||0)}),g=h||0,w=c/(2*Math.sqrt(l*u)),x=o-s,m=_r(Math.sqrt(l/u)),y=Math.abs(x)<5;r||(r=y?tt.restSpeed.granular:tt.restSpeed.default),i||(i=y?tt.restDelta.granular:tt.restDelta.default);let b;if(w<1){const E=Tm(m,w);b=k=>{const A=Math.exp(-w*m*k);return o-A*((g+w*m*x)/E*Math.sin(E*k)+x*Math.cos(E*k))}}else if(w===1)b=E=>o-Math.exp(-m*E)*(x+(g+m*x)*E);else{const E=m*Math.sqrt(w*w-1);b=k=>{const A=Math.exp(-w*m*k),N=Math.min(E*k,300);return o-A*((g+w*m*x)*Math.sinh(N)+E*x*Math.cosh(N))/E}}const v={calculatedDuration:p&&d||null,next:E=>{const k=b(E);if(p)a.done=E>=d;else{let A=0;w<1&&(A=E===0?Er(g):uN(b,E,k));const N=Math.abs(A)<=r,I=Math.abs(o-k)<=i;a.done=N&&I}return a.value=a.done?o:k,a},toString:()=>{const E=Math.min(aN(v),Sm),k=PS(A=>v.next(E*A).value,E,30);return E+"ms "+k}};return v}function Hw({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:u}){const d=e[0],h={done:!1,value:d},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-w*Math.exp(-N/r),b=N=>m+y(N),v=N=>{const I=y(N),T=b(N);h.done=Math.abs(I)<=c,h.value=h.done?m:T};let E,k;const A=N=>{p(h.value)&&(E=N,k=dN({keyframes:[h.value,g(h.value)],velocity:uN(b,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:u}))};return A(0),{calculatedDuration:null,next:N=>{let I=!1;return!k&&E===void 0&&(I=!0,v(N),A(N)),E!==void 0&&N>=E?k.next(N-E):(!I&&v(N),h)}}}const sD=Pl(.42,0,1,1),oD=Pl(0,0,.58,1),fN=Pl(.42,0,.58,1),aD=e=>Array.isArray(e)&&typeof e[0]!="number",lD={linear:un,easeIn:sD,easeInOut:fN,easeOut:oD,circIn:By,circInOut:KS,circOut:HS,backIn:$y,backInOut:US,backOut:zS,anticipate:VS},Kw=e=>{if(jy(e)){dS(e.length===4);const[t,n,r,i]=e;return Pl(t,n,r,i)}else if(typeof e=="string")return lD[e];return e};function cD(e,t,n){const r=[],i=n||cN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=cD(t,r,i),l=a.length,c=u=>{if(o&&u1)for(;dc(Mr(e[0],e[s-1],u)):c}function dD(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=mo(0,t,r);e.push(Qe(n,1,i))}}function fD(e){const t=[0];return dD(t,e.length-1),t}function hD(e,t){return e.map(n=>n*t)}function pD(e,t){return e.map(()=>t||fN).splice(0,e.length-1)}function id({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=aD(r)?r.map(Kw):Kw(r),s={done:!1,value:t[0]},o=hD(n&&n.length===t.length?n:fD(t),e),a=uD(o,t,{ease:Array.isArray(i)?i:pD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const mD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Ke.update(t,!0),stop:()=>ci(t),now:()=>_t.isProcessing?_t.timestamp:sr.now()}},gD={decay:Hw,inertia:Hw,tween:id,keyframes:id,spring:dN},yD=e=>e/100;class Ky extends oN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||Vy,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Dy(n)?n:gD[n]||id;let l,c;a!==id&&typeof t[0]!="number"&&(l=Dl(yD,cN(t[0],t[1])),t=[0,100]);const u=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),u.calculatedDuration===null&&(u.calculatedDuration=aN(u));const{calculatedDuration:d}=u,h=d+i,p=h*(r+1)-i;return{generator:u,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:d,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:u,resolvedDuration:d}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:w,onUpdate:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-u/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),y=this.speed>=0?m<0:m>u;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let b=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,u)/d;let I=Math.floor(N),T=N%1;!T&&N>=1&&(T=1),T===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(T=1-T,w&&(T-=w/d)):g==="mirror"&&(v=o)),b=Mr(0,1,T)*d}const E=y?{done:!1,value:l[0]}:v.next(b);a&&(E.value=a(E.value));let{done:k}=E;!y&&c!==null&&(k=this.speed>=0?this.currentTime>=u:this.currentTime<=0);const A=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return A&&i!==void 0&&(E.value=Zd(l,this.options,i)),x&&x(E.value),A&&this.finish(),E}get duration(){const{resolved:t}=this;return t?_r(t.calculatedDuration):0}get time(){return _r(this.currentTime)}set time(t){t=Er(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_r(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=mD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const bD=new Set(["opacity","clipPath","filter","transform"]);function wD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const u=jS(a,i);return Array.isArray(u)&&(c.easing=u),e.animate(c,{delay:r,duration:i,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const xD=Py(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),sd=10,vD=2e4;function kD(e){return Dy(e.type)||e.type==="spring"||!DS(e.ease)}function ED(e,t){const n=new Ky({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&nd()&&_D(s)&&(s=hN[s]),kD(this.options)){const{onComplete:d,onUpdate:h,motionValue:p,element:g,...w}=this.options,x=ED(t,w);t=x.keyframes,t.length===1&&(t[1]=t[0]),r=x.duration,i=x.times,s=x.ease,o="keyframes"}const u=wD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return u.startTime=c??this.calcStartTime(),this.pendingTimeline?(Lw(u,this.pendingTimeline),this.pendingTimeline=void 0):u.onfinish=()=>{const{onComplete:d}=this.options;a.set(Zd(t,this.options,n)),d&&d(),this.cancel(),this.resolveFinishedPromise()},{animation:u,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _r(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _r(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=Er(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Lw(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:u,onComplete:d,element:h,...p}=this.options,g=new Ky({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),w=Er(this.time);c.setWithVelocity(g.sample(w-sd).value,g.sample(w).value,sd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return xD()&&r&&bD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const SD={type:"spring",stiffness:500,damping:25,restSpeed:10},ND=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),TD={type:"keyframes",duration:.8},AD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},CD=(e,{keyframes:t})=>t.length>2?TD:os.has(e)?e.startsWith("scale")?ND(t[1]):SD:AD;function MD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...u}){return!!Object.keys(u).length}const qy=(e,t,n,r={},i,s)=>o=>{const a=Iy(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-Er(l);let u={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};MD(a)||(u={...u,...CD(e,u)}),u.duration&&(u.duration=Er(u.duration)),u.repeatDelay&&(u.repeatDelay=Er(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(u.duration=0,u.delay===0&&(d=!0)),d&&!s&&t.get()!==void 0){const h=Zd(u.keyframes,a);if(h!==void 0)return Ke.update(()=>{u.onUpdate(h),u.onComplete()}),new lP([])}return!s&&qw.supports(u)?new qw(u):new Ky(u)};function ID({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function pN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],u=i&&e.animationState&&e.animationState.getState()[i];for(const d in l){const h=e.getValue(d,(s=e.latestValues[d])!==null&&s!==void 0?s:null),p=l[d];if(p===void 0||u&&ID(u,d))continue;const g={delay:n,...Iy(o||{},d)};let w=!1;if(window.MotionHandoffAnimation){const m=LS(e);if(m){const y=window.MotionHandoffAnimation(m,d,Ke);y!==null&&(g.startTime=y,w=!0)}}wm(e,d),h.start(qy(d,h,p,e.shouldReduceMotion&&OS.has(d)?{type:!1}:g,e,w));const x=h.animation;x&&c.push(x)}return a&&Promise.all(c).then(()=>{Ke.update(()=>{a&&iP(e,a)})}),c}function Am(e,t,n={}){var r;const i=Qd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(pN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=s;return OD(e,t,u+c,d,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,u]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>u())}else return Promise.all([o(),a(n.delay)])}function OD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(RD).forEach((c,u)=>{c.notify("AnimationStart",t),o.push(Am(c,t,{...s,delay:n+l(u)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function RD(e,t){return e.sortNodePosition(t)}function LD(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>Am(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=Am(e,t,n);else{const i=typeof t=="function"?Qd(e,t,n.custom):t;r=Promise.all(pN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const PD=wy.length;function mN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?mN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>LD(e,n,r)))}function BD(e){let t=$D(e),n=Ww(),r=!0;const i=l=>(c,u)=>{var d;const h=Qd(e,u,l==="exit"?(d=e.presenceContext)===null||d===void 0?void 0:d.custom:void 0);if(h){const{transition:p,transitionEnd:g,...w}=h;c={...c,...w,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,u=mN(e.parent)||{},d=[],h=new Set;let p={},g=1/0;for(let x=0;xg&&v,I=!1;const T=Array.isArray(b)?b:[b];let $=T.reduce(i(m),{});E===!1&&($={});const{prevResolvedValues:j={}}=y,B={...j,...$},M=D=>{N=!0,h.has(D)&&(I=!0,h.delete(D)),y.needsAnimating[D]=!0;const R=e.getValue(D);R&&(R.liveStyle=!1)};for(const D in B){const R=$[D],P=j[D];if(p.hasOwnProperty(D))continue;let S=!1;bm(R)&&bm(P)?S=!IS(R,P):S=R!==P,S?R!=null?M(D):h.add(D):R!==void 0&&h.has(D)?M(D):y.protectedKeys[D]=!0}y.prevProp=b,y.prevResolvedValues=$,y.isActive&&(p={...p,...$}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(k&&A)||I)&&d.push(...T.map(D=>({animation:D,options:{type:m}})))}if(h.size){const x={};h.forEach(m=>{const y=e.getBaseTarget(m),b=e.getValue(m);b&&(b.liveStyle=!0),x[m]=y??null}),d.push({animation:x})}let w=!!d.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(w=!1),r=!1,w?t(d):Promise.resolve()}function a(l,c){var u;if(n[l].isActive===c)return Promise.resolve();(u=e.variantChildren)===null||u===void 0||u.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const d=o(l);for(const h in n)n[h].protectedKeys={};return d}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Ww(),r=!0}}}function FD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!IS(t,e):!1}function wi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Ww(){return{animate:wi(!0),whileInView:wi(),whileHover:wi(),whileTap:wi(),whileDrag:wi(),whileFocus:wi(),exit:wi()}}class pi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class zD extends pi{constructor(t){super(t),t.animationState||(t.animationState=BD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Yd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let UD=0;class VD extends pi{constructor(){super(...arguments),this.id=UD++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const HD={animation:{Feature:zD},exit:{Feature:VD}},Ln={x:!1,y:!1};function gN(){return Ln.x||Ln.y}function KD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Wy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function cl(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function jl(e){return{point:{x:e.pageX,y:e.pageY}}}const qD=e=>t=>Wy(t)&&e(t,jl(t));function Ma(e,t,n,r){return cl(e,t,qD(n),r)}const Gw=(e,t)=>Math.abs(e-t);function WD(e,t){const n=Gw(e.x,t.x),r=Gw(e.y,t.y);return Math.sqrt(n**2+r**2)}class yN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const d=vh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=WD(d.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=d,{timestamp:w}=_t;this.history.push({...g,timestamp:w});const{onStart:x,onMove:m}=this.handlers;h||(x&&x(this.lastMoveEvent,d),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,d)},this.handlePointerMove=(d,h)=>{this.lastMoveEvent=d,this.lastMoveEventInfo=xh(h,this.transformPagePoint),Ke.update(this.updatePoint,!0)},this.handlePointerUp=(d,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:w}=this.handlers;if(this.dragSnapToOrigin&&w&&w(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=vh(d.type==="pointercancel"?this.lastMoveEventInfo:xh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(d,x),g&&g(d,x)},!Wy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=jl(t),a=xh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=_t;this.history=[{...l,timestamp:c}];const{onSessionStart:u}=n;u&&u(t,vh(a,this.history)),this.removeListeners=Dl(Ma(this.contextWindow,"pointermove",this.handlePointerMove),Ma(this.contextWindow,"pointerup",this.handlePointerUp),Ma(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ci(this.updatePoint)}}function xh(e,t){return t?{point:t(e.point)}:e}function Yw(e,t){return{x:e.x-t.x,y:e.y-t.y}}function vh({point:e},t){return{point:e,delta:Yw(e,bN(t)),offset:Yw(e,GD(t)),velocity:YD(t,.1)}}function GD(e){return e[0]}function bN(e){return e[e.length-1]}function YD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=bN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>Er(t)));)n--;if(!r)return{x:0,y:0};const s=_r(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const wN=1e-4,XD=1-wN,QD=1+wN,xN=.01,ZD=0-xN,JD=0+xN;function hn(e){return e.max-e.min}function ej(e,t,n){return Math.abs(e-t)<=n}function Xw(e,t,n,r=.5){e.origin=r,e.originPoint=Qe(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Qe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=XD&&e.scale<=QD||isNaN(e.scale))&&(e.scale=1),(e.translate>=ZD&&e.translate<=JD||isNaN(e.translate))&&(e.translate=0)}function Ia(e,t,n,r){Xw(e.x,t.x,n.x,r?r.originX:void 0),Xw(e.y,t.y,n.y,r?r.originY:void 0)}function Qw(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function tj(e,t,n){Qw(e.x,t.x,n.x),Qw(e.y,t.y,n.y)}function Zw(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Oa(e,t,n){Zw(e.x,t.x,n.x),Zw(e.y,t.y,n.y)}function nj(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Qe(n,e,r.max):Math.min(e,n)),e}function Jw(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function rj(e,{top:t,left:n,bottom:r,right:i}){return{x:Jw(e.x,n,i),y:Jw(e.y,t,r)}}function ex(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=mo(t.min,t.max-r,e.min):r>i&&(n=mo(e.min,e.max-i,t.min)),Mr(0,1,n)}function oj(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Cm=.35;function aj(e=Cm){return e===!1?e=0:e===!0&&(e=Cm),{x:tx(e,"left","right"),y:tx(e,"top","bottom")}}function tx(e,t,n){return{min:nx(e,t),max:nx(e,n)}}function nx(e,t){return typeof e=="number"?e:e[t]||0}const rx=()=>({translate:0,scale:1,origin:0,originPoint:0}),Us=()=>({x:rx(),y:rx()}),ix=()=>({min:0,max:0}),it=()=>({x:ix(),y:ix()});function wn(e){return[e("x"),e("y")]}function vN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function lj({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function cj(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function kh(e){return e===void 0||e===1}function Mm({scale:e,scaleX:t,scaleY:n}){return!kh(e)||!kh(t)||!kh(n)}function _i(e){return Mm(e)||kN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function kN(e){return sx(e.x)||sx(e.y)}function sx(e){return e&&e!=="0%"}function od(e,t,n){const r=e-n,i=t*r;return n+i}function ox(e,t,n,r,i){return i!==void 0&&(e=od(e,i,r)),od(e,n,r)+t}function Im(e,t=0,n=1,r,i){e.min=ox(e.min,t,n,r,i),e.max=ox(e.max,t,n,r,i)}function EN(e,{x:t,y:n}){Im(e.x,t.translate,t.scale,t.originPoint),Im(e.y,n.translate,n.scale,n.originPoint)}const ax=.999999999999,lx=1.0000000000001;function uj(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;aax&&(t.x=1),t.yax&&(t.y=1)}function Vs(e,t){e.min=e.min+t,e.max=e.max+t}function cx(e,t,n,r,i=.5){const s=Qe(e.min,e.max,i);Im(e,t,n,s,r)}function Hs(e,t){cx(e.x,t.x,t.scaleX,t.scale,t.originX),cx(e.y,t.y,t.scaleY,t.scale,t.originY)}function _N(e,t){return vN(cj(e.getBoundingClientRect(),t))}function dj(e,t,n){const r=_N(e,n),{scroll:i}=t;return i&&(Vs(r.x,i.offset.x),Vs(r.y,i.offset.y)),r}const SN=({current:e})=>e?e.ownerDocument.defaultView:null,fj=new WeakMap;class hj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=it(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=u=>{const{dragSnapToOrigin:d}=this.getProps();d?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(jl(u).point)},s=(u,d)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=KD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),wn(x=>{let m=this.getAxisMotionValue(x).get()||0;if(ir.test(m)){const{projection:y}=this.visualElement;if(y&&y.layout){const b=y.layout.layoutBox[x];b&&(m=hn(b)*(parseFloat(m)/100))}}this.originPoint[x]=m}),g&&Ke.postRender(()=>g(u,d)),wm(this.visualElement,"transform");const{animationState:w}=this.visualElement;w&&w.setActive("whileDrag",!0)},o=(u,d)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:w}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:x}=d;if(p&&this.currentDirection===null){this.currentDirection=pj(x),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",d.point,x),this.updateAxis("y",d.point,x),this.visualElement.render(),w&&w(u,d)},a=(u,d)=>this.stop(u,d),l=()=>wn(u=>{var d;return this.getAnimationState(u)==="paused"&&((d=this.getAxisMotionValue(u).animation)===null||d===void 0?void 0:d.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new yN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:SN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&Ke.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Cc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=nj(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Fs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=rj(i.layoutBox,n):this.constraints=!1,this.elastic=aj(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&wn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=oj(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Fs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=dj(r,i.root,this.visualElement.getTransformPagePoint());let o=ij(i.layout.layoutBox,s);if(n){const a=n(lj(o));this.hasMutatedConstraints=!!a,a&&(o=vN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=wn(u=>{if(!Cc(u,n,this.currentDirection))return;let d=l&&l[u]||{};o&&(d={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[u]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...d};return this.startAxisValueAnimation(u,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return wm(this.visualElement,t),r.start(qy(t,r,0,n,this.visualElement,!1))}stopAnimation(){wn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){wn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){wn(n=>{const{drag:r}=this.getProps();if(!Cc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Qe(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Fs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};wn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=sj({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),wn(o=>{if(!Cc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Qe(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;fj.set(this.visualElement,this);const t=this.visualElement.current,n=Ma(t,"pointerdown",l=>{const{drag:c,dragListener:u=!0}=this.getProps();c&&u&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Fs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Ke.read(r);const o=cl(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(wn(u=>{const d=this.getAxisMotionValue(u);d&&(this.originPoint[u]+=l[u].translate,d.set(d.get()+l[u].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Cm,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Cc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function pj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class mj extends pi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new hj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const ux=e=>(t,n)=>{e&&Ke.postRender(()=>e(t,n))};class gj extends pi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new yN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:SN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:ux(t),onStart:ux(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&Ke.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ma(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const pu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function dx(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Jo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(we.test(e))e=parseFloat(e);else return e;const n=dx(e,t.target.x),r=dx(e,t.target.y);return`${n}% ${r}%`}},yj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=ui.parse(e);if(i.length>5)return r;const s=ui.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Qe(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class bj extends _.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;HL(wj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),pu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||Ke.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),vy.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function NN(e){const[t,n]=cS(),r=_.useContext(my);return f.jsx(bj,{...e,layoutGroup:r,switchLayoutGroup:_.useContext(bS),isPresent:t,safeToRemove:n})}const wj={borderRadius:{...Jo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Jo,borderTopRightRadius:Jo,borderBottomLeftRadius:Jo,borderBottomRightRadius:Jo,boxShadow:yj};function xj(e,t,n){const r=Rt(e)?e:al(e);return r.start(qy("",r,t,n)),r.animation}function vj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const kj=(e,t)=>e.depth-t.depth;class Ej{constructor(){this.children=[],this.isDirty=!1}add(t){Oy(this.children,t),this.isDirty=!0}remove(t){Ry(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(kj),this.isDirty=!1,this.children.forEach(t)}}function _j(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(ci(r),e(s-t))};return Ke.read(r,!0),()=>ci(r)}const TN=["TopLeft","TopRight","BottomLeft","BottomRight"],Sj=TN.length,fx=e=>typeof e=="string"?parseFloat(e):e,hx=e=>typeof e=="number"||we.test(e);function Nj(e,t,n,r,i,s){i?(e.opacity=Qe(0,n.opacity!==void 0?n.opacity:1,Tj(r)),e.opacityExit=Qe(t.opacity!==void 0?t.opacity:1,0,Aj(r))):s&&(e.opacity=Qe(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(mo(e,t,r))}function mx(e,t){e.min=t.min,e.max=t.max}function bn(e,t){mx(e.x,t.x),mx(e.y,t.y)}function gx(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function yx(e,t,n,r,i){return e-=t,e=od(e,1/n,r),i!==void 0&&(e=od(e,1/i,r)),e}function Cj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Qe(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Qe(s.min,s.max,r);e===s&&(a-=t),e.min=yx(e.min,t,n,a,i),e.max=yx(e.max,t,n,a,i)}function bx(e,t,[n,r,i],s,o){Cj(e,t[n],t[r],t[i],t.scale,s,o)}const Mj=["x","scaleX","originX"],Ij=["y","scaleY","originY"];function wx(e,t,n,r){bx(e.x,t,Mj,n?n.x:void 0,r?r.x:void 0),bx(e.y,t,Ij,n?n.y:void 0,r?r.y:void 0)}function xx(e){return e.translate===0&&e.scale===1}function CN(e){return xx(e.x)&&xx(e.y)}function vx(e,t){return e.min===t.min&&e.max===t.max}function Oj(e,t){return vx(e.x,t.x)&&vx(e.y,t.y)}function kx(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function MN(e,t){return kx(e.x,t.x)&&kx(e.y,t.y)}function Ex(e){return hn(e.x)/hn(e.y)}function _x(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class Rj{constructor(){this.members=[]}add(t){Oy(this.members,t),t.scheduleRender()}remove(t){if(Ry(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function Lj(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:u,rotateX:d,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),u&&(r+=`rotate(${u}deg) `),d&&(r+=`rotateX(${d}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},pa=typeof window<"u"&&window.MotionDebug!==void 0,Eh=["","X","Y","Z"],Pj={visibility:"hidden"},Sx=1e3;let Dj=0;function _h(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function IN(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=LS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Ke,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&IN(r)}function ON({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Dj++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,pa&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(Bj),this.nodes.forEach(Hj),this.nodes.forEach(Kj),this.nodes.forEach(Fj),pa&&window.MotionDebug.record(Si)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=_j(h,250),pu.hasAnimatedSinceResize&&(pu.hasAnimatedSinceResize=!1,this.nodes.forEach(Tx))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&u&&(l||c)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=this.options.transition||u.getDefaultTransition()||Xj,{onLayoutAnimationStart:x,onLayoutAnimationComplete:m}=u.getProps(),y=!this.targetLayout||!MN(this.targetLayout,g)||p,b=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||b||h&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,b);const v={...Iy(w,"layout"),onPlay:x,onComplete:m};(u.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||Tx(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ci(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(qj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&IN(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const E=v/1e3;Ax(d.x,o.x,E),Ax(d.y,o.y,E),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Oa(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Gj(this.relativeTarget,this.relativeTargetOrigin,h,E),b&&Oj(this.relativeTarget,b)&&(this.isProjectionDirty=!1),b||(b=it()),bn(b,this.relativeTarget)),w&&(this.animationValues=u,Nj(u,c,this.latestValues,E,y,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ci(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ke.update(()=>{pu.hasAnimatedSinceResize=!0,this.currentAnimation=xj(0,Sx,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Sx),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:u}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&RN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||it();const d=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+d;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Hs(a,u),Ia(this.projectionDeltaWithTransform,this.layoutCorrected,a,u)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new Rj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&_h("z",o,c,this.animationValues);for(let u=0;u{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Nx),this.root.sharedNodes.clear()}}}function jj(e){e.updateLayout()}function $j(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?wn(d=>{const h=o?n.measuredBox[d]:n.layoutBox[d],p=hn(h);h.min=r[d].min,h.max=h.min+p}):RN(s,n.layoutBox,r)&&wn(d=>{const h=o?n.measuredBox[d]:n.layoutBox[d],p=hn(r[d]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+p)});const a=Us();Ia(a,r,n.layoutBox);const l=Us();o?Ia(l,e.applyTransform(i,!0),n.measuredBox):Ia(l,r,n.layoutBox);const c=!CN(a);let u=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:h,layout:p}=d;if(h&&p){const g=it();Oa(g,n.layoutBox,h.layoutBox);const w=it();Oa(w,r,p.layoutBox),MN(g,w)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=w,e.relativeTargetOrigin=g,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:u})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Bj(e){pa&&Si.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Fj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function zj(e){e.clearSnapshot()}function Nx(e){e.clearMeasurements()}function Uj(e){e.isLayoutDirty=!1}function Vj(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Tx(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Hj(e){e.resolveTargetDelta()}function Kj(e){e.calcProjection()}function qj(e){e.resetSkewAndRotation()}function Wj(e){e.removeLeadSnapshot()}function Ax(e,t,n){e.translate=Qe(t.translate,0,n),e.scale=Qe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Cx(e,t,n,r){e.min=Qe(t.min,n.min,r),e.max=Qe(t.max,n.max,r)}function Gj(e,t,n,r){Cx(e.x,t.x,n.x,r),Cx(e.y,t.y,n.y,r)}function Yj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Xj={duration:.45,ease:[.4,0,.1,1]},Mx=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Ix=Mx("applewebkit/")&&!Mx("chrome/")?Math.round:un;function Ox(e){e.min=Ix(e.min),e.max=Ix(e.max)}function Qj(e){Ox(e.x),Ox(e.y)}function RN(e,t,n){return e==="position"||e==="preserve-aspect"&&!ej(Ex(t),Ex(n),.2)}function Zj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const Jj=ON({attachResizeListener:(e,t)=>cl(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Sh={current:void 0},LN=ON({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Sh.current){const e=new Jj({});e.mount(window),e.setOptions({layoutScroll:!0}),Sh.current=e}return Sh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),e$={pan:{Feature:gj},drag:{Feature:mj,ProjectionNode:LN,MeasureLayout:NN}};function t$(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function PN(e,t){const n=t$(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Rx(e){return t=>{t.pointerType==="touch"||gN()||e(t)}}function n$(e,t,n={}){const[r,i,s]=PN(e,n),o=Rx(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const u=Rx(d=>{c(d),l.removeEventListener("pointerleave",u)});l.addEventListener("pointerleave",u,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Lx(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&Ke.postRender(()=>s(t,jl(t)))}class r$ extends pi{mount(){const{current:t}=this.node;t&&(this.unmount=n$(t,n=>(Lx(this.node,n,"Start"),r=>Lx(this.node,r,"End"))))}unmount(){}}class i$ extends pi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Dl(cl(this.node.current,"focus",()=>this.onFocus()),cl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const DN=(e,t)=>t?e===t?!0:DN(e,t.parentElement):!1,s$=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function o$(e){return s$.has(e.tagName)||e.tabIndex!==-1}const ma=new WeakSet;function Px(e){return t=>{t.key==="Enter"&&e(t)}}function Nh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const a$=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Px(()=>{if(ma.has(n))return;Nh(n,"down");const i=Px(()=>{Nh(n,"up")}),s=()=>Nh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Dx(e){return Wy(e)&&!gN()}function l$(e,t,n={}){const[r,i,s]=PN(e,n),o=a=>{const l=a.currentTarget;if(!Dx(a)||ma.has(l))return;ma.add(l);const c=t(a),u=(p,g)=>{window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",h),!(!Dx(p)||!ma.has(l))&&(ma.delete(l),typeof c=="function"&&c(p,{success:g}))},d=p=>{u(p,n.useGlobalTarget||DN(l,p.target))},h=p=>{u(p,!1)};window.addEventListener("pointerup",d,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!o$(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>a$(c,i),i)}),s}function jx(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&Ke.postRender(()=>s(t,jl(t)))}class c$ extends pi{mount(){const{current:t}=this.node;t&&(this.unmount=l$(t,n=>(jx(this.node,n,"Start"),(r,{success:i})=>jx(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Om=new WeakMap,Th=new WeakMap,u$=e=>{const t=Om.get(e.target);t&&t(e)},d$=e=>{e.forEach(u$)};function f$({root:e,...t}){const n=e||document;Th.has(n)||Th.set(n,{});const r=Th.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(d$,{root:e,...t})),r[i]}function h$(e,t,n){const r=f$(t);return Om.set(e,n),r.observe(e),()=>{Om.delete(e),r.unobserve(e)}}const p$={some:0,all:1};class m$ extends pi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:p$[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:u,onViewportLeave:d}=this.node.getProps(),h=c?u:d;h&&h(l)};return h$(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(g$(t,n))&&this.startObserver()}unmount(){}}function g$({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const y$={inView:{Feature:m$},tap:{Feature:c$},focus:{Feature:i$},hover:{Feature:r$}},b$={layout:{ProjectionNode:LN,MeasureLayout:NN}},Rm={current:null},jN={current:!1};function w$(){if(jN.current=!0,!!gy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Rm.current=e.matches;e.addListener(t),t()}else Rm.current=!1}const x$=[...iN,It,ui],v$=e=>x$.find(rN(e)),$x=new WeakMap;function k$(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,al(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,al(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Bx=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class E${scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Vy,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),jN.current||w$(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Rm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){$x.delete(this.current),this.projection&&this.projection.unmount(),ci(this.notifyUpdate),ci(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=os.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&Ke.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in po){const n=po[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):it()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=al(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(tN(i)||qS(i))?i=parseFloat(i):!v$(i)&&ui.test(n)&&(i=ZS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=Ey(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Ly),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class $N extends E${constructor(){super(...arguments),this.KeyframeResolver=sN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function _$(e){return window.getComputedStyle(e)}class S$ extends $N{constructor(){super(...arguments),this.type="html",this.renderInstance=SS}readValueFromInstance(t,n){if(os.has(n)){const r=Uy(n);return r&&r.default||0}else{const r=_$(t),i=(kS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return _N(t,n)}build(t,n,r){Ny(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return My(t,n,r)}}class N$ extends $N{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=it}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(os.has(n)){const r=Uy(n);return r&&r.default||0}return n=NS.has(n)?n:xy(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return CS(t,n,r)}build(t,n,r){Ty(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){TS(t,n,r,i)}mount(t){this.isSVGTag=Cy(t.tagName),super.mount(t)}}const T$=(e,t)=>ky(e)?new N$(t):new S$(t,{allowProjection:e!==_.Fragment}),A$=JL({...HD,...y$,...e$,...b$},T$),Dt=pL(A$);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const C$=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),BN=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var M$={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const I$=_.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:s,iconNode:o,...a},l)=>_.createElement("svg",{ref:l,...M$,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:BN("lucide",i),...a},[...o.map(([c,u])=>_.createElement(c,u)),...Array.isArray(s)?s:[s]]));/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ue=(e,t)=>{const n=_.forwardRef(({className:r,...i},s)=>_.createElement(I$,{ref:s,iconNode:t,className:BN(`lucide-${C$(e)}`,r),...i}));return n.displayName=`${e}`,n};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const O$=ue("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FN=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const R$=ue("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zN=ue("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const L$=ue("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const P$=ue("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yo=ue("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gy=ue("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const D$=ue("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const j$=ue("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $l=ue("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const UN=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $$=ue("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wn=ue("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const B$=ue("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Yy=ue("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const F$=ue("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const z$=ue("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ul=ue("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mu=ue("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const U$=ue("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const V$=ue("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const H$=ue("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VN=ue("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fx=ue("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K$=ue("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xy=ue("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const q$=ue("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const W$=ue("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const G$=ue("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ad=ue("FolderUp",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m9 13 3-3 3 3",key:"1pxg3c"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Y$=ue("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const HN=ue("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const X$=ue("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jd=ue("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Q$=ue("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Z$=ue("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const J$=ue("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ef=ue("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eB=ue("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const KN=ue("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tB=ue("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nB=ue("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rB=ue("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const at=ue("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iB=ue("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sB=ue("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oB=ue("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const aB=ue("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lB=ue("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cB=ue("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uB=ue("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mi=ue("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qN=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qy=ue("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ld=ue("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Lm=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dB=ue("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fB=ue("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zx=ue("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tf=ue("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const WN=ue("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Do=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hB=ue("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pB=ue("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mB=ue("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gB=ue("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zy=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nf=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Ux="veadk_auth_qs";let ea=null;function yB(){if(ea!==null)return ea;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(Ux,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),ea=e):ea=sessionStorage.getItem(Ux)??"",ea}function Ah(e){const t=yB();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*GN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` - -`))!==-1;){const a=r.slice(0,o);r=r.slice(o+2);const l=a.split(` -`).filter(c=>c.startsWith("data:")).map(c=>c.slice(5).trimStart()).join(` -`);if(l)try{yield JSON.parse(l)}catch{}}}}const Ch="",Jy=new Map;function bB(e,t){Jy.set(e,t)}function wB(){Jy.clear()}function as(e){const t=Jy.get(e);return t?{app:t.app,ep:{base:t.base,apiKey:t.apiKey,runtimeId:t.runtimeId,region:t.region}}:{app:e,ep:{}}}function jt(e,t={},n={}){if(n.runtimeId){const r=n.region?`${e.includes("?")?"&":"?"}region=${encodeURIComponent(n.region)}`:"";return fetch(Ah(`${Ch}/web/runtime-proxy/${n.runtimeId}${e}${r}`),t)}if(n.base){const r={...t.headers};return r["X-AgentKit-Base"]=n.base,n.apiKey&&(r["X-AgentKit-Key"]=n.apiKey),fetch(Ah(`${Ch}/agentkit-proxy${e}`),{...t,headers:r})}return fetch(Ah(`${Ch}${e}`),t)}async function xB(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function YN(e,t,n){const r=await jt("/list-apps",{},n??{base:e,apiKey:t});if(!r.ok)throw new Error(`list-apps failed: ${r.status}`);return r.json()}async function Pm(e,t){const{app:n,ep:r}=as(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"},r);if(!i.ok)throw new Error(`create session failed: ${i.status}`);return(await i.json()).id}async function XN(e,t){const{app:n,ep:r}=as(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{},r);if(!i.ok)throw new Error(`list sessions failed: ${i.status}`);return i.json()}async function Dm(e,t,n){const{app:r,ep:i}=as(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{},i);if(!s.ok)throw new Error(`get session failed: ${s.status}`);return s.json()}async function vB(e,t,n){const{app:r,ep:i}=as(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{method:"DELETE"},i);if(!s.ok&&s.status!==404)throw new Error(`delete session failed: ${s.status}`)}async function kB(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function e0(e){const{app:t,ep:n}=as(e),r=await jt(`/web/agent-info/${t}`,{},n);if(!r.ok)throw new Error(`agent-info failed: ${r.status}`);return r.json()}async function EB(e,t){const{app:n}=as(e),r=await jt(`/web/search?source=web&app_name=${encodeURIComponent(n)}&q=${encodeURIComponent(t)}`);if(!r.ok)throw new Error(`web search failed: ${r.status}`);return r.json()}async function*cd({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=as(e),c=[...i.map(d=>({inlineData:{mimeType:d.mimeType,data:d.data,displayName:d.name}})),...s.map(d=>({functionResponse:{id:d.id,name:d.name,response:d.response}})),...r.trim()?[{text:r}]:[]],u=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!u.ok)throw new Error(`run_sse failed: ${u.status}`);for await(const d of GN(u))yield d}async function QN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??""})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of GN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl}}async function _B(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Mh={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function SB(){try{const e=await jt("/web/ui-config");if(!e.ok)return Mh;const t=await e.json();return{studio:t.studio??!1,features:{...Mh.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Mh}}async function Ih(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function NB(e,t="cn-beijing"){try{return await YN("","",{runtimeId:e,region:t})}catch{return null}}async function TB(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function ZN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const AB="send_a2ui_json_to_client",CB="validated_a2ui_json",jm="adk_request_credential";function MB(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Wr(){return{blocks:[],liveStart:0}}const Vx=e=>e.functionCall??e.function_call,$m=e=>e.functionResponse??e.function_response;function IB(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function OB(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:IB(r.data),name:r.displayName??r.display_name})}return t}function Hx(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Oh(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function dl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Vx(l)||$m(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&Hx(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Vx(l),u=$m(l);if(typeof l.text=="string"&&l.text)Hx(n,l.thought?"thinking":"text",l.text);else if(c)if(Oh(n),c.name===jm){const d=c.args??{},h=d.authConfig??d.auth_config??d,g=String(d.functionCallId??d.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:MB(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(u){if(Oh(n),u.name===jm)for(let d=n.length-1;d>=0;d--){const h=n[d];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let d=n.length-1;d>=0;d--){const h=n[d];if(h.kind==="tool"&&!h.done&&h.name===u.name){h.done=!0,h.response=u.response;break}}if(u.name===AB){const d=((a=u.response)==null?void 0:a[CB])??[];if(d.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...d):n.push({kind:"a2ui",messages:d})}}}}return Oh(n),r=n.length,{blocks:n,liveStart:r}}function RB(e){var r;const t=[];let n=Wr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(u=>{var d;return((d=$m(u))==null?void 0:d.name)===jm})){for(let u=t.length-1;u>=0;u--)if(t[u].role==="assistant"){for(let d=t[u].blocks.length-1;d>=0;d--){const h=t[u].blocks[d];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(u=>u.text).filter(u=>!!u).join(""),l=OB(o);if(!a&&!l.length){n=Wr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Wr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Wr()),n=dl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function LB(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const t0="veadk_local_user",PB=/^[A-Za-z0-9]{1,16}$/;function DB(){try{return localStorage.getItem(t0)}catch{return null}}function jB(e){try{localStorage.setItem(t0,e)}catch{}}function $B(){try{localStorage.removeItem(t0)}catch{}}async function BB(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function FB(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function zB(){window.location.assign("/oauth2/logout")}async function UB(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=DB();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function VB(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const HB="https://findskill.com/";function KB(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function qB({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(KB,{}),"技能中心"]})}function WB(){return f.jsx("iframe",{className:"skill-frame",src:HB,title:"技能中心"})}const GB=50,Kx=48;function YB(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function XB(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function QB(e,t,n){const r=Math.max(0,t-Kx),i=Math.min(e.length,t+n+Kx);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Dm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:u}of YB(a)){const d=l.toLowerCase().indexOf(r);if(d!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:XB(a),snippet:QB(l,d,r.length),role:c,ts:u??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,GB)}async function JB(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await EB(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function eF(e,t,n){return e==="session"?{results:await ZB(n.userId,n.appId,t)}:e==="web"?JB(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function JN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function tF({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(JN,{}),"智能搜索"]})}const qx=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function nF(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function rF({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var E;const[i,s]=_.useState("session"),[o,a]=_.useState(""),[l,c]=_.useState([]),[u,d]=_.useState(),[h,p]=_.useState(!1),[g,w]=_.useState(!1),x=_.useRef(0);async function m(k,A){const N=k.trim();if(!N)return;const I=++x.current;p(!0),w(!0);let T;try{T=await eF(A,N,{userId:e,appId:t})}catch($){T={results:[],note:`搜索失败:${String($)}`}}I===x.current&&(c(T.results),d(T.note),p(!1))}function y(k){s(k),g&&o.trim()&&m(o,k)}const b=(E=qx.find(k=>k.id===i))==null?void 0:E.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(JN,{}),f.jsx("input",{className:"search-input",value:o,onChange:k=>a(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(at,{className:"icon spin"}):f.jsx(zN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:qx.map(k=>f.jsxs("button",{className:`search-tab ${i===k.id?"active":""}`,onClick:()=>y(k.id),disabled:!k.ready,title:k.ready?void 0:"即将支持",children:[k.label,!k.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},k.id))}),f.jsx("div",{className:"search-results",children:b?g?h?null:u?f.jsx("div",{className:"search-empty",children:u}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((k,A)=>f.jsx(iF,{result:k,agentLabel:n,onOpen:r},A)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function iF({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(oB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${nF(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Jd,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(H$,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const eT="veadk_agentkit_connections";function Gr(){try{const e=localStorage.getItem(eT);return e?JSON.parse(e):[]}catch{return[]}}function n0(e){try{localStorage.setItem(eT,JSON.stringify(e))}catch{}}function Xi(e,t){return`agentkit:${e}:${t}`}function tT(e){try{return new URL(e).host}catch{return e}}function Bl(e){wB();for(const t of e)for(const n of t.apps)bB(Xi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function nT(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Gr().filter(a=>a.runtimeId!==e),s];return n0(o),Bl(o),s}async function rT(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await YN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||tT(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Gr().filter(l=>l.base!==i),o];return n0(a),Bl(a),o}function sF(e){const t=Gr().filter(n=>n.id!==e);return n0(t),Bl(t),t}function iT(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Xi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:tT(i.base??"")}}));return[...n,...r]}const Wx=Object.freeze(Object.defineProperty({__proto__:null,addConnection:rT,addRuntimeConnection:nT,buildAgentEntries:iT,loadConnections:Gr,registerConnections:Bl,remoteAppId:Xi,removeConnection:sF},Symbol.toStringTag,{value:"Module"})),Gx=15,oF=1e4;function Rh(e,t=oF){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function aF({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,u]=_.useState([]),[d,h]=_.useState([""]),[p,g]=_.useState(0),[w,x]=_.useState(!1),[m,y]=_.useState(null),[b,v]=_.useState(!1),[E,k]=_.useState(""),[A,N]=_.useState(""),[I,T]=_.useState(null),[$,j]=_.useState(new Set),[B,M]=_.useState(o),L=_.useRef(!1),O=_.useCallback(async C=>{if(c[C]){g(C);return}const F=d[C];if(F!==void 0){v(!0),k("");try{const q=await Rh(Ih(a,{nextToken:F,pageSize:Gx}));u(G=>{const Y=[...G];return Y[C]=q.runtimes,Y}),h(G=>{const Y=[...G];return q.nextToken&&(Y[C+1]=q.nextToken),Y}),g(C)}catch(q){k(q instanceof Error?q.message:String(q))}finally{v(!1)}}},[a,d,c]),D=_.useCallback(async()=>{v(!0),k("");try{const C=[];let F="";do{const q=await Rh(Ih(a,{scope:"mine",nextToken:F,pageSize:100}));C.push(...q.runtimes),F=q.nextToken}while(F&&C.length<2e3);y(C)}catch(C){k(C instanceof Error?C.message:String(C))}finally{v(!1)}},[a]);_.useEffect(()=>{e&&r==="cloud"&&!L.current&&(L.current=!0,O(0))},[e,r,O]),_.useEffect(()=>{w&&m===null&&r==="cloud"&&D()},[w,m,r,D]),_.useEffect(()=>{e&&M(o)},[e,o]);function R(){j(new Set),w?(y(null),D()):(u([]),h([""]),g(0),L.current=!0,v(!0),k(""),Rh(Ih(a,{nextToken:"",pageSize:Gx})).then(C=>{u([C.runtimes]),h(C.nextToken?["",C.nextToken]:[""])}).catch(C=>k(C instanceof Error?C.message:String(C))).finally(()=>v(!1)))}const P=!w&&(c[p+1]!==void 0||d[p+1]!==void 0);function S(C){T(C.runtimeId),NB(C.runtimeId,C.region).then(F=>{if(!F||F.length===0){j(Y=>new Set(Y).add(C.runtimeId));return}const q=Object.fromEntries(F.map(Y=>[Y,C.name])),G=nT(C.runtimeId,C.name,C.region,F,q);l(Xi(G.id,F[0])),M({runtimeId:C.runtimeId,name:C.name,region:C.region})}).catch(()=>j(F=>new Set(F).add(C.runtimeId))).finally(()=>T(null))}if(!e)return null;const V=(w?m??[]:c[p]??[]).filter(C=>A?C.name.toLowerCase().includes(A.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Gy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:R,title:"刷新",disabled:b,children:f.jsx(qN,{className:`icon ${b?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(nf,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(C=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${C===s?"active":""}`,onClick:()=>{l(C),t()},children:[f.jsx(ul,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:C})]})},C))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Lm,{className:"icon"}),f.jsx("input",{value:A,onChange:C=>N(C.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:w,onChange:C=>x(C.target.checked)}),"只看我创建的"]})]}),E&&f.jsx("div",{className:"agentsel-error",children:E}),f.jsxs("div",{className:"agentsel-listwrap",children:[V.length===0&&!b?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:V.map(C=>{const F=$.has(C.runtimeId),q=I===C.runtimeId,G=(B==null?void 0:B.runtimeId)===C.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${G?"active":""}`,onClick:()=>S(C),disabled:q,title:C.runtimeId,children:[q?f.jsx(at,{className:"icon spin"}):f.jsx(ul,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:C.name}),C.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),F?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${cF(C.status)}`,children:C.status||"-"})]})},C.runtimeId)})}),b&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(at,{className:"icon spin"})," 加载中…"]})]}),!w&&(p>0||P)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||b,onClick:()=>void O(p-1),"aria-label":"上一页",children:f.jsx($$,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!P||b,onClick:()=>void O(p+1),"aria-label":"下一页",children:f.jsx(Wn,{className:"icon"})})]})]})]}),r==="cloud"&&B&&f.jsx(lF,{runtime:B})]})]})}function lF({runtime:e}){const[t,n]=_.useState(null),[r,i]=_.useState(!0),[s,o]=_.useState("");_.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),ZN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(at,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function cF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const uF="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function dF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function fF({userInfo:e,onLogout:t}){const[n,r]=_.useState(!1);if(!e)return null;const i=VB(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(sB,{className:"icon"})," 退出登录"]})]})]})]})}function hF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:u,onNewChat:d,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:w,onManageAgents:x,onPickSession:m,onDeleteSession:y,userInfo:b,onLogout:v}){const E=L=>(n==null?void 0:n[L])!==!1,[k,A]=_.useState(null),[N,I]=_.useState(!1),[T,$]=_.useState(0),j=_.useRef(null),B=()=>{j.current&&$(j.current.offsetTop),I(L=>!L)},M=[...e].sort((L,O)=>(O.lastUpdateTime??0)-(L.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:uF,alt:"","aria-hidden":!0}),"VeADK"]}),u&&(()=>{const L=i==="cloud"&&!o;return f.jsxs("button",{ref:j,className:`agent-row ${L?"agent-row--empty":""}`,onClick:B,title:"切换 Agent",children:[f.jsx(ul,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:L?"请选择 Agent":a||"选择 Agent"}),f.jsx(Wn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),u&&f.jsx(aF,{open:N,onClose:()=>I(!1),anchorTop:T,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:u}),E("newChat")&&f.jsxs("button",{className:"new-chat",onClick:d,children:[f.jsx(mi,{className:"icon"}),"新会话"]}),E("search")&&f.jsx(tF,{onClick:h}),E("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(dF,{}),"添加 Agent"]}),E("skillCenter")&&f.jsx(qB,{onClick:g}),E("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:x,children:[f.jsx(Gy,{className:"icon"}),"管理 Agent"]})]}),E("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[M.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),M.map(L=>f.jsxs("div",{className:`history-item ${L.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(L.id),title:L.id,children:[(r==null?void 0:r.has(L.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:LB(L.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>A(O=>O===L.id?null:L.id),children:f.jsx(V$,{className:"icon"})}),k===L.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>A(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{A(null),y(L.id)},children:[f.jsx(Do,{className:"icon"})," 删除"]})})]})]},L.id))]})]}),f.jsx(fF,{userInfo:b,onLogout:v})]})}function pF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(_.Fragment,{children:[a>0&&f.jsx(Wn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(mF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function mF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=_.useState(!1),[o,a]=_.useState(null),[l,c]=_.useState({}),[u,d]=_.useState(0),h=_.useRef({}),p=x=>r?r(x):x;function g(x){a(x);const m=h.current[x];if(m){const y=m.getBoundingClientRect(),b=m.closest(".agent-dd");if(b){const v=b.getBoundingClientRect();d(y.top-v.top)}}l[x]===void 0&&(c(y=>({...y,[x]:"loading"})),e0(x).then(y=>c(b=>({...b,[x]:y}))).catch(()=>c(y=>({...y,[x]:"error"}))))}function w(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(x=>!x),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(UN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:w}),f.jsx("div",{className:"agent-dd-menu",children:e.map(x=>f.jsx("div",{ref:m=>h.current[x]=m,className:"agent-dd-row",onMouseEnter:()=>g(x),onMouseLeave:()=>a(m=>m===x?null:m),children:f.jsxs("button",{className:`agent-dd-item ${x===t?"active":""}`,onClick:()=>{n(x),w()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(x)}),x===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},x))}),o&&f.jsx(gF,{state:l[o],top:u})]})]})}function gF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(at,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(ul,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(Zy,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Yx={llm:{icon:yo,label:"LLM"},sequential:{icon:HN,label:"顺序"},parallel:{icon:WN,label:"并行"},loop:{icon:Qy,label:"循环"},a2a:{icon:Jd,label:"A2A"}};function sT(e){return 1+e.children.reduce((t,n)=>t+sT(n),0)}function oT({node:e,activeAgent:t,seen:n,path:r}){const i=Yx[e.type]??Yx.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((u,d)=>f.jsx(oT,{node:u,activeAgent:t,seen:n,path:r},`${u.name}-${d}`))})]})}function Xx({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=_.useState(null);if(_.useEffect(()=>{let a=!1;if(s(null),!!e)return e0(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[sT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Wn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(oT,{node:i,activeAgent:t,seen:n,path:o})})]})}function yF({onAdded:e,onCancel:t}){const[n,r]=_.useState(""),[i,s]=_.useState(""),[o,a]=_.useState(""),[l,c]=_.useState(!1),[u,d]=_.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),d("");try{const g=await rT(o,n,i,o);if(g.apps.length===0){d("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Xi(g.id,g.apps[0]))}catch(g){d(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),u&&f.jsx("div",{className:"addagent-error",children:u}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(at,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function bF({author:e}){const[t,n]=_.useState([]),[r,i]=_.useState(!0),[s,o]=_.useState(""),[a,l]=_.useState(null),[c,u]=_.useState(null),[d,h]=_.useState({}),p=_.useCallback(async()=>{i(!0),o("");try{n(await _B(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);_.useEffect(()=>{p()},[p]);async function g(m){h(b=>({...b,[m.runtimeId]:{loading:!0}}));const y={loading:!1};try{y.detail=await ZN(m.runtimeId,m.region)}catch(b){y.error=b instanceof Error?b.message:String(b)}y.detail&&(y.graphs=[{name:y.detail.name,description:y.detail.description,type:"llm",model:y.detail.model,tools:[],children:[]}],y.graphNote="仅显示主 Agent(控制面信息)。"),h(b=>({...b,[m.runtimeId]:y}))}function w(m){const y=c===m.runtimeId;u(y?null:m.runtimeId),!y&&!d[m.runtimeId]&&g(m)}async function x(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await TB(m.runtimeId,m.region),n(y=>y.filter(b=>b.runtimeId!==m.runtimeId))}catch(y){o(y instanceof Error?y.message:String(y))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(qN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(at,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const y=c===m.runtimeId,b=d[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>w(m),"aria-expanded":y,children:[y?f.jsx(UN,{className:"icon"}):f.jsx(Wn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${vF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void x(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(at,{className:"icon spin"}):f.jsx(Do,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:lT(m.createdAt)})]})]}),y&&f.jsx("div",{className:"manage-detail",children:!b||b.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(at,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[b.error&&f.jsx("div",{className:"manage-error",children:b.error}),b.detail&&f.jsx(wF,{detail:b.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),b.graphs&&b.graphs.length>0?b.graphs.map((v,E)=>f.jsx(aT,{node:v},E)):f.jsx("div",{className:"manage-tree-note",children:b.graphNote})]})})]},m.runtimeId)})})]})}function wF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",lT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const xF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function aT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:xF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(aT,{node:n,depth:t+1},r))]})}function vF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function lT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const kF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function EF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function _F(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function SF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function r0(e,t){if(_F(e))return EF(t,e.path);if(SF(e)){const n=kF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=r0(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function NF(e,t){const n=r0(e,t);return n==null?"":typeof n=="string"?n:String(n)}const cT=new Map;function ls(e,t){cT.set(e,t)}function TF(e){return cT.get(e)}function AF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sr0(r,e.dataModel),resolveString:r=>NF(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=TF(i.component)??CF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function dT(e){const t=_.useRef(null),n=_.useRef(!0),r=28,i=_.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function IF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const OF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RF=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,LF={};function Qx(e,t){return(LF.jsx?RF:OF).test(e)}const PF=/[ \t\n\f\r]/g;function DF(e){return typeof e=="object"?e.type==="text"?Zx(e.value):!1:Zx(e)}function Zx(e){return e.replace(PF,"")===""}let Fl=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Fl.prototype.normal={};Fl.prototype.property={};Fl.prototype.space=void 0;function fT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Fl(n,r,t)}function Bm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let jF=0;const ve=cs(),ft=cs(),Fm=cs(),te=cs(),$e=cs(),Fi=cs(),sn=cs();function cs(){return 2**++jF}const zm=Object.freeze(Object.defineProperty({__proto__:null,boolean:ve,booleanish:ft,commaOrSpaceSeparated:sn,commaSeparated:Fi,number:te,overloadedBoolean:Fm,spaceSeparated:$e},Symbol.toStringTag,{value:"Module"})),Lh=Object.keys(zm);class i0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),Jx(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&UF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(ev,KF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!ev.test(s)){let o=s.replace(zF,HF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=i0}return new i(r,t)}function HF(e){return"-"+e.toLowerCase()}function KF(e){return e.charAt(1).toUpperCase()}const qF=fT([hT,$F,gT,yT,bT],"html"),s0=fT([hT,BF,gT,yT,bT],"svg");function WF(e){return e.join(" ").trim()}var o0={},tv=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,GF=/\n/g,YF=/^\s*/,XF=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,QF=/^:\s*/,ZF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,JF=/^[;\s]*/,e3=/^\s+|\s+$/g,t3=` -`,nv="/",rv="*",Ci="",n3="comment",r3="declaration";function i3(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var w=g.match(GF);w&&(n+=w.length);var x=g.lastIndexOf(t3);r=~x?g.length-x:r+g.length}function s(){var g={line:n,column:r};return function(w){return w.position=new o(g),c(),w}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var w=new Error(t.source+":"+n+":"+r+": "+g);if(w.reason=g,w.filename=t.source,w.line=n,w.column=r,w.source=e,!t.silent)throw w}function l(g){var w=g.exec(e);if(w){var x=w[0];return i(x),e=e.slice(x.length),w}}function c(){l(YF)}function u(g){var w;for(g=g||[];w=d();)w!==!1&&g.push(w);return g}function d(){var g=s();if(!(nv!=e.charAt(0)||rv!=e.charAt(1))){for(var w=2;Ci!=e.charAt(w)&&(rv!=e.charAt(w)||nv!=e.charAt(w+1));)++w;if(w+=2,Ci===e.charAt(w-1))return a("End of comment missing");var x=e.slice(2,w-2);return r+=2,i(x),e=e.slice(w),r+=2,g({type:n3,comment:x})}}function h(){var g=s(),w=l(XF);if(w){if(d(),!l(QF))return a("property missing ':'");var x=l(ZF),m=g({type:r3,property:iv(w[0].replace(tv,Ci)),value:x?iv(x[0].replace(tv,Ci)):Ci});return l(JF),m}}function p(){var g=[];u(g);for(var w;w=h();)w!==!1&&(g.push(w),u(g));return g}return c(),p()}function iv(e){return e?e.replace(e3,Ci):Ci}var s3=i3,o3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(o0,"__esModule",{value:!0});o0.default=l3;const a3=o3(s3);function l3(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,a3.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var rf={};Object.defineProperty(rf,"__esModule",{value:!0});rf.camelCase=void 0;var c3=/^--[a-zA-Z0-9_-]+$/,u3=/-([a-z])/g,d3=/^[^-]+$/,f3=/^-(webkit|moz|ms|o|khtml)-/,h3=/^-(ms)-/,p3=function(e){return!e||d3.test(e)||c3.test(e)},m3=function(e,t){return t.toUpperCase()},sv=function(e,t){return"".concat(t,"-")},g3=function(e,t){return t===void 0&&(t={}),p3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(h3,sv):e=e.replace(f3,sv),e.replace(u3,m3))};rf.camelCase=g3;var y3=Cu&&Cu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},b3=y3(o0),w3=rf;function Um(e,t){var n={};return!e||typeof e!="string"||(0,b3.default)(e,function(r,i){r&&i&&(n[(0,w3.camelCase)(r,t)]=i)}),n}Um.default=Um;var x3=Um;const v3=Al(x3),wT=xT("end"),a0=xT("start");function xT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function k3(e){const t=a0(e),n=wT(e);if(t&&n)return{start:t,end:n}}function Ra(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?ov(e.position):"start"in e||"end"in e?ov(e):"line"in e||"column"in e?Vm(e):""}function Vm(e){return av(e&&e.line)+":"+av(e&&e.column)}function ov(e){return Vm(e&&e.start)+"-"+Vm(e&&e.end)}function av(e){return e&&typeof e=="number"?e:1}class $t extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=Ra(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}$t.prototype.file="";$t.prototype.name="";$t.prototype.reason="";$t.prototype.message="";$t.prototype.stack="";$t.prototype.column=void 0;$t.prototype.line=void 0;$t.prototype.ancestors=void 0;$t.prototype.cause=void 0;$t.prototype.fatal=void 0;$t.prototype.place=void 0;$t.prototype.ruleId=void 0;$t.prototype.source=void 0;const l0={}.hasOwnProperty,E3=new Map,_3=/[A-Z]/g,S3=new Set(["table","tbody","thead","tfoot","tr"]),N3=new Set(["td","th"]),vT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function T3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=P3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=L3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?s0:qF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=kT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function kT(e,t,n){if(t.type==="element")return A3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return C3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return I3(e,t,n);if(t.type==="mdxjsEsm")return M3(e,t);if(t.type==="root")return O3(e,t,n);if(t.type==="text")return R3(e,t)}function A3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=s0,e.schema=i),e.ancestors.push(t);const s=_T(e,t.tagName,!1),o=D3(e,t);let a=u0(e,t);return S3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!DF(l):!0})),ET(e,o,s,t),c0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function C3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}fl(e,t.position)}function M3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);fl(e,t.position)}function I3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=s0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:_T(e,t.name,!0),o=j3(e,t),a=u0(e,t);return ET(e,o,s,t),c0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function O3(e,t,n){const r={};return c0(r,u0(e,t)),e.create(t,e.Fragment,r,n)}function R3(e,t){return t.value}function ET(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function c0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function L3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function P3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=a0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function D3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&l0.call(t.properties,i)){const s=$3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&N3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function j3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else fl(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else fl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function u0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:E3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const uv={}.hasOwnProperty;function NT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=gi(/[A-Za-z]/),Lt=gi(/[\dA-Za-z]/),W3=gi(/[#-'*+\--9=?A-Z^-~]/);function ud(e){return e!==null&&(e<32||e===127)}const Hm=gi(/\d/),G3=gi(/[\dA-Fa-f]/),Y3=gi(/[!-/:-@[-`{-~]/);function ge(e){return e!==null&&e<-2}function Be(e){return e!==null&&(e<0||e===32)}function Se(e){return e===-2||e===-1||e===32}const sf=gi(new RegExp("\\p{P}|\\p{S}","u")),Qi=gi(/\s/);function gi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function $o(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ce(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Se(l)?(e.enter(n),a(l)):t(l)}function a(l){return Se(l)&&s++o))return;const A=t.events.length;let N=A,I,T;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){T=t.events[N][1].end;break}I=!0}for(m(r),k=A;kb;){const E=n[v];t.containerState=E[1],E[0].exit.call(t,e)}n.length=b}function y(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function e4(e,t,n){return Ce(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function bo(e){if(e===null||Be(e)||Qi(e))return 1;if(sf(e))return 2}function of(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d={...e[r][1].end},h={...e[n][1].start};fv(d,-l),fv(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:d,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=kn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=kn(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=kn(c,of(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=kn(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,c=kn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):u=0,dn(e,r-1,n-r+3,c),n=r+c.length-u-2;break}}for(n=-1;++n0&&Se(k)?Ce(e,y,"linePrefix",s+1)(k):y(k)}function y(k){return k===null||ge(k)?e.check(hv,w,v)(k):(e.enter("codeFlowValue"),b(k))}function b(k){return k===null||ge(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),b)}function v(k){return e.exit("codeFenced"),t(k)}function E(k,A,N){let I=0;return T;function T(L){return k.enter("lineEnding"),k.consume(L),k.exit("lineEnding"),$}function $(L){return k.enter("codeFencedFence"),Se(L)?Ce(k,j,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(L):j(L)}function j(L){return L===a?(k.enter("codeFencedFenceSequence"),B(L)):N(L)}function B(L){return L===a?(I++,k.consume(L),B):I>=o?(k.exit("codeFencedFenceSequence"),Se(L)?Ce(k,M,"whitespace")(L):M(L)):N(L)}function M(L){return L===null||ge(L)?(k.exit("codeFencedFence"),A(L)):N(L)}}}function f4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Dh={name:"codeIndented",tokenize:p4},h4={partial:!0,tokenize:m4};function p4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Ce(e,s,"linePrefix",5)(c)}function s(c){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):ge(c)?e.attempt(h4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||ge(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function m4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):ge(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Ce(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):ge(o)?i(o):n(o)}}const g4={name:"codeText",previous:b4,resolve:y4,tokenize:w4};function y4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&ta(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),ta(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),ta(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function OT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return d;function d(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||ud(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),w(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||ge(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function w(m){return!u&&(m===null||m===41||Be(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):u999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):ge(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),d(p))}function d(p){return p===null||p===91||p===93||ge(p)||a++>999?(e.exit("chunkString"),u(p)):(e.consume(p),l||(l=!Se(p)),p===92?h:d)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function LT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):ge(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Ce(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(h))}function u(h){return h===o||h===null||ge(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?d:u)}function d(h){return h===o||h===92?(e.consume(h),u):u(h)}}function La(e,t){let n;return r;function r(i){return ge(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Se(i)?Ce(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const T4={name:"definition",tokenize:C4},A4={partial:!0,tokenize:M4};function C4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return RT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return Be(p)?La(e,c)(p):c(p)}function c(p){return OT(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function u(p){return e.attempt(A4,d,d)(p)}function d(p){return Se(p)?Ce(e,h,"whitespace")(p):h(p)}function h(p){return p===null||ge(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function M4(e,t,n){return r;function r(a){return Be(a)?La(e,i)(a):n(a)}function i(a){return LT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Se(a)?Ce(e,o,"whitespace")(a):o(a)}function o(a){return a===null||ge(a)?t(a):n(a)}}const I4={name:"hardBreakEscape",tokenize:O4};function O4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return ge(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const R4={name:"headingAtx",resolve:L4,tokenize:P4};function L4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function P4(e,t,n){let r=0;return i;function i(u){return e.enter("atxHeading"),s(u)}function s(u){return e.enter("atxHeadingSequence"),o(u)}function o(u){return u===35&&r++<6?(e.consume(u),o):u===null||Be(u)?(e.exit("atxHeadingSequence"),a(u)):n(u)}function a(u){return u===35?(e.enter("atxHeadingSequence"),l(u)):u===null||ge(u)?(e.exit("atxHeading"),t(u)):Se(u)?Ce(e,a,"whitespace")(u):(e.enter("atxHeadingText"),c(u))}function l(u){return u===35?(e.consume(u),l):(e.exit("atxHeadingSequence"),a(u))}function c(u){return u===null||u===35||Be(u)?(e.exit("atxHeadingText"),a(u)):(e.consume(u),c)}}const D4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],mv=["pre","script","style","textarea"],j4={concrete:!0,name:"htmlFlow",resolveTo:F4,tokenize:z4},$4={partial:!0,tokenize:V4},B4={partial:!0,tokenize:U4};function F4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function z4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(C){return u(C)}function u(C){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(C),d}function d(C){return C===33?(e.consume(C),h):C===47?(e.consume(C),s=!0,w):C===63?(e.consume(C),i=3,r.interrupt?t:S):Vt(C)?(e.consume(C),o=String.fromCharCode(C),x):n(C)}function h(C){return C===45?(e.consume(C),i=2,p):C===91?(e.consume(C),i=5,a=0,g):Vt(C)?(e.consume(C),i=4,r.interrupt?t:S):n(C)}function p(C){return C===45?(e.consume(C),r.interrupt?t:S):n(C)}function g(C){const F="CDATA[";return C===F.charCodeAt(a++)?(e.consume(C),a===F.length?r.interrupt?t:j:g):n(C)}function w(C){return Vt(C)?(e.consume(C),o=String.fromCharCode(C),x):n(C)}function x(C){if(C===null||C===47||C===62||Be(C)){const F=C===47,q=o.toLowerCase();return!F&&!s&&mv.includes(q)?(i=1,r.interrupt?t(C):j(C)):D4.includes(o.toLowerCase())?(i=6,F?(e.consume(C),m):r.interrupt?t(C):j(C)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(C):s?y(C):b(C))}return C===45||Lt(C)?(e.consume(C),o+=String.fromCharCode(C),x):n(C)}function m(C){return C===62?(e.consume(C),r.interrupt?t:j):n(C)}function y(C){return Se(C)?(e.consume(C),y):T(C)}function b(C){return C===47?(e.consume(C),T):C===58||C===95||Vt(C)?(e.consume(C),v):Se(C)?(e.consume(C),b):T(C)}function v(C){return C===45||C===46||C===58||C===95||Lt(C)?(e.consume(C),v):E(C)}function E(C){return C===61?(e.consume(C),k):Se(C)?(e.consume(C),E):b(C)}function k(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),l=C,A):Se(C)?(e.consume(C),k):N(C)}function A(C){return C===l?(e.consume(C),l=null,I):C===null||ge(C)?n(C):(e.consume(C),A)}function N(C){return C===null||C===34||C===39||C===47||C===60||C===61||C===62||C===96||Be(C)?E(C):(e.consume(C),N)}function I(C){return C===47||C===62||Se(C)?b(C):n(C)}function T(C){return C===62?(e.consume(C),$):n(C)}function $(C){return C===null||ge(C)?j(C):Se(C)?(e.consume(C),$):n(C)}function j(C){return C===45&&i===2?(e.consume(C),O):C===60&&i===1?(e.consume(C),D):C===62&&i===4?(e.consume(C),U):C===63&&i===3?(e.consume(C),S):C===93&&i===5?(e.consume(C),P):ge(C)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check($4,V,B)(C)):C===null||ge(C)?(e.exit("htmlFlowData"),B(C)):(e.consume(C),j)}function B(C){return e.check(B4,M,V)(C)}function M(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),L}function L(C){return C===null||ge(C)?B(C):(e.enter("htmlFlowData"),j(C))}function O(C){return C===45?(e.consume(C),S):j(C)}function D(C){return C===47?(e.consume(C),o="",R):j(C)}function R(C){if(C===62){const F=o.toLowerCase();return mv.includes(F)?(e.consume(C),U):j(C)}return Vt(C)&&o.length<8?(e.consume(C),o+=String.fromCharCode(C),R):j(C)}function P(C){return C===93?(e.consume(C),S):j(C)}function S(C){return C===62?(e.consume(C),U):C===45&&i===2?(e.consume(C),S):j(C)}function U(C){return C===null||ge(C)?(e.exit("htmlFlowData"),V(C)):(e.consume(C),U)}function V(C){return e.exit("htmlFlow"),t(C)}}function U4(e,t,n){const r=this;return i;function i(o){return ge(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function V4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(zl,t,n)}}const H4={name:"htmlText",tokenize:K4};function K4(e,t,n){const r=this;let i,s,o;return a;function a(S){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(S),l}function l(S){return S===33?(e.consume(S),c):S===47?(e.consume(S),E):S===63?(e.consume(S),b):Vt(S)?(e.consume(S),N):n(S)}function c(S){return S===45?(e.consume(S),u):S===91?(e.consume(S),s=0,g):Vt(S)?(e.consume(S),y):n(S)}function u(S){return S===45?(e.consume(S),p):n(S)}function d(S){return S===null?n(S):S===45?(e.consume(S),h):ge(S)?(o=d,D(S)):(e.consume(S),d)}function h(S){return S===45?(e.consume(S),p):d(S)}function p(S){return S===62?O(S):S===45?h(S):d(S)}function g(S){const U="CDATA[";return S===U.charCodeAt(s++)?(e.consume(S),s===U.length?w:g):n(S)}function w(S){return S===null?n(S):S===93?(e.consume(S),x):ge(S)?(o=w,D(S)):(e.consume(S),w)}function x(S){return S===93?(e.consume(S),m):w(S)}function m(S){return S===62?O(S):S===93?(e.consume(S),m):w(S)}function y(S){return S===null||S===62?O(S):ge(S)?(o=y,D(S)):(e.consume(S),y)}function b(S){return S===null?n(S):S===63?(e.consume(S),v):ge(S)?(o=b,D(S)):(e.consume(S),b)}function v(S){return S===62?O(S):b(S)}function E(S){return Vt(S)?(e.consume(S),k):n(S)}function k(S){return S===45||Lt(S)?(e.consume(S),k):A(S)}function A(S){return ge(S)?(o=A,D(S)):Se(S)?(e.consume(S),A):O(S)}function N(S){return S===45||Lt(S)?(e.consume(S),N):S===47||S===62||Be(S)?I(S):n(S)}function I(S){return S===47?(e.consume(S),O):S===58||S===95||Vt(S)?(e.consume(S),T):ge(S)?(o=I,D(S)):Se(S)?(e.consume(S),I):O(S)}function T(S){return S===45||S===46||S===58||S===95||Lt(S)?(e.consume(S),T):$(S)}function $(S){return S===61?(e.consume(S),j):ge(S)?(o=$,D(S)):Se(S)?(e.consume(S),$):I(S)}function j(S){return S===null||S===60||S===61||S===62||S===96?n(S):S===34||S===39?(e.consume(S),i=S,B):ge(S)?(o=j,D(S)):Se(S)?(e.consume(S),j):(e.consume(S),M)}function B(S){return S===i?(e.consume(S),i=void 0,L):S===null?n(S):ge(S)?(o=B,D(S)):(e.consume(S),B)}function M(S){return S===null||S===34||S===39||S===60||S===61||S===96?n(S):S===47||S===62||Be(S)?I(S):(e.consume(S),M)}function L(S){return S===47||S===62||Be(S)?I(S):n(S)}function O(S){return S===62?(e.consume(S),e.exit("htmlTextData"),e.exit("htmlText"),t):n(S)}function D(S){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),R}function R(S){return Se(S)?Ce(e,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):P(S)}function P(S){return e.enter("htmlTextData"),o(S)}}const h0={name:"labelEnd",resolveAll:Y4,resolveTo:X4,tokenize:Q4},q4={tokenize:Z4},W4={tokenize:J4},G4={tokenize:ez};function Y4(e){let t=-1;const n=[];for(;++t=3&&(c===null||ge(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Se(c)?Ce(e,a,"whitespace")(c):a(c))}}const Gt={continuation:{tokenize:uz},exit:fz,name:"list",tokenize:cz},az={partial:!0,tokenize:hz},lz={partial:!0,tokenize:dz};function cz(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Hm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(gu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Hm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(zl,r.interrupt?n:u,e.attempt(az,h,d))}function u(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function d(p){return Se(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function uz(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(zl,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ce(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Se(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(lz,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ce(e,e.attempt(Gt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function dz(e,t,n){const r=this;return Ce(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function fz(e){e.exit(this.containerState.type)}function hz(e,t,n){const r=this;return Ce(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Se(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const gv={name:"setextUnderline",resolveTo:pz,tokenize:mz};function pz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function mz(e,t,n){const r=this;let i;return s;function s(c){let u=r.events.length,d;for(;u--;)if(r.events[u][1].type!=="lineEnding"&&r.events[u][1].type!=="linePrefix"&&r.events[u][1].type!=="content"){d=r.events[u][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Se(c)?Ce(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||ge(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const gz={tokenize:yz};function yz(e){const t=this,n=e.attempt(zl,r,e.attempt(this.parser.constructs.flowInitial,i,Ce(e,e.attempt(this.parser.constructs.flow,i,e.attempt(k4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const bz={resolveAll:DT()},wz=PT("string"),xz=PT("text");function PT(e){return{resolveAll:DT(e==="text"?vz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(u){return c(u)?s(u):a(u)}function a(u){if(u===null){n.consume(u);return}return n.enter("data"),n.consume(u),l}function l(u){return c(u)?(n.exit("data"),s(u)):(n.consume(u),l)}function c(u){if(u===null)return!0;const d=i[u];let h=-1;if(d)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function Lz(e,t){let n=-1;const r=[];let i;for(;++n0){const Oe=Z.tokenStack[Z.tokenStack.length-1];(Oe[1]||bv).call(Z,void 0,Oe[0])}for(W.position={start:Pr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Pr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},be=-1;++be0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function Gz(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Yz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Xz(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=$o(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,a+=1,e.footnoteCounts.set(r,a);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function Qz(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Zz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function BT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function Jz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return BT(e,t);const i={src:$o(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function e5(e,t){const n={src:$o(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function t5(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function n5(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return BT(e,t);const i={href:$o(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function r5(e,t){const n={href:$o(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function i5(e,t,n){const r=e.all(t),i=n?s5(n):FT(t),s={},o=[];if(typeof t.checked=="boolean"){const u=r[0];let d;u&&u.type==="element"&&u.tagName==="p"?d=u:(d={type:"element",tagName:"p",properties:{},children:[]},r.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let a=-1;for(;++a1}function o5(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=a0(t.children[1]),l=wT(t.children[t.children.length-1]);a&&l&&(o.position={start:a,end:l}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function d5(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,a=o?o.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(vv(t.slice(i),i>0,!1)),s.join("")}function vv(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===wv||s===xv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===wv||s===xv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function p5(e,t){const n={type:"text",value:h5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function m5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const g5={blockquote:Kz,break:qz,code:Wz,delete:Gz,emphasis:Yz,footnoteReference:Xz,heading:Qz,html:Zz,imageReference:Jz,image:e5,inlineCode:t5,linkReference:n5,link:r5,listItem:i5,list:o5,paragraph:a5,root:l5,strong:c5,table:u5,tableCell:f5,tableRow:d5,text:p5,thematicBreak:m5,toml:Mc,yaml:Mc,definition:Mc,footnoteDefinition:Mc};function Mc(){}const zT=-1,af=0,Pa=1,dd=2,p0=3,m0=4,g0=5,y0=6,UT=7,VT=8,HT=typeof self=="object"?self:globalThis,kv=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new HT[e](t)},y5=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case af:case zT:return n(o,i);case Pa:{const a=n([],i);for(const l of o)a.push(r(l));return a}case dd:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case p0:return n(new Date(o),i);case m0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case g0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case y0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case UT:{const{name:a,message:l}=o;return n(typeof HT[a]=="function"?kv(a,l):new Error(l),i)}case VT:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:a}=new Uint8Array(o);return n(new DataView(a),o)}}return n(kv(s,o),i)};return r},Ev=e=>y5(new Map,e)(0),Ni="",{toString:b5}={},{keys:w5}=Object,na=e=>{const t=typeof e;if(t!=="object"||!e)return[af,t];const n=b5.call(e).slice(8,-1);switch(n){case"Array":return[Pa,Ni];case"Object":return[dd,Ni];case"Date":return[p0,Ni];case"RegExp":return[m0,Ni];case"Map":return[g0,Ni];case"Set":return[y0,Ni];case"DataView":return[Pa,n]}return n.includes("Array")?[Pa,n]:e instanceof Error?[UT,e.name||"Error"]:[dd,n]},Ic=([e,t])=>e===af&&(t==="function"||t==="symbol"),x5=(e,t,n,r)=>{const i=(o,a)=>{const l=r.push(o)-1;return n.set(a,l),l},s=o=>{if(n.has(o))return n.get(o);let[a,l]=na(o);switch(a){case af:{let u=o;switch(l){case"bigint":a=VT,u=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);u=null;break;case"undefined":return i([zT],o)}return i([a,u],o)}case Pa:{if(l){let h=o;return l==="DataView"?h=new Uint8Array(o.buffer):l==="ArrayBuffer"&&(h=new Uint8Array(o)),i([l,[...h]],o)}const u=[],d=i([a,u],o);for(const h of o)u.push(s(h));return d}case dd:{if(l)switch(l){case"BigInt":return i([l,o.toString()],o);case"Boolean":case"Number":case"String":return i([l,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const u=[],d=i([a,u],o);for(const h of w5(o))(e||!Ic(na(o[h])))&&u.push([s(h),s(o[h])]);return d}case p0:return i([a,isNaN(o.getTime())?Ni:o.toISOString()],o);case m0:{const{source:u,flags:d}=o;return i([a,{source:u,flags:d}],o)}case g0:{const u=[],d=i([a,u],o);for(const[h,p]of o)(e||!(Ic(na(h))||Ic(na(p))))&&u.push([s(h),s(p)]);return d}case y0:{const u=[],d=i([a,u],o);for(const h of o)(e||!Ic(na(h)))&&u.push(s(h));return d}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},_v=(e,{json:t,lossy:n}={})=>{const r=[];return x5(!(t||n),!!t,new Map,r)(e),r},fd=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Ev(_v(e,t)):structuredClone(e):(e,t)=>Ev(_v(e,t));function v5(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function k5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function E5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||v5,r=e.options.footnoteBackLabel||k5,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(l,p);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,p),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const x=u[u.length-1];if(x&&x.type==="element"&&x.tagName==="p"){const y=x.children[x.children.length-1];y&&y.type==="text"?y.value+=" ":x.children.push({type:"text",value:" "}),x.children.push(...g)}else u.push(...g);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(u,!0)};e.patch(c,m),a.push(m)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...fd(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` -`}]}}const Ul=function(e){if(e==null)return T5;if(typeof e=="function")return lf(e);if(typeof e=="object")return Array.isArray(e)?_5(e):S5(e);if(typeof e=="string")return N5(e);throw new Error("Expected function, string, or object as test")};function _5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=KT,g,w,x;if((!t||s(l,c,u[u.length-1]||void 0))&&(p=I5(n(l,u)),p[0]===qm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==M5)for(w=(r?m.children.length:-1)+o,x=u.concat(m);w>-1&&w0&&n.push({type:"text",value:` -`}),n}function Sv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Nv(e,t){const n=R5(e,t),r=n.one(e,void 0),i=E5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` -`},i),s}function $5(e,t){return e&&"run"in e?async function(n,r){const i=Nv(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Nv(n,{file:r,...e||t})}}function Tv(e){if(e)throw e}var yu=Object.prototype.hasOwnProperty,WT=Object.prototype.toString,Av=Object.defineProperty,Cv=Object.getOwnPropertyDescriptor,Mv=function(t){return typeof Array.isArray=="function"?Array.isArray(t):WT.call(t)==="[object Array]"},Iv=function(t){if(!t||WT.call(t)!=="[object Object]")return!1;var n=yu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&yu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||yu.call(t,i)},Ov=function(t,n){Av&&n.name==="__proto__"?Av(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Rv=function(t,n){if(n==="__proto__")if(yu.call(t,n)){if(Cv)return Cv(t,n).value}else return;return t[n]},B5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,u=!1;for(typeof a=="boolean"&&(u=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const u=c;if(a&&n)throw u;return i(u)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:U5,dirname:V5,extname:H5,join:K5,sep:"/"};function U5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Vl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function V5(e){if(Vl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function H5(e){Vl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function K5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function W5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Vl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const G5={cwd:Y5};function Y5(){return"/"}function Ym(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X5(e){if(typeof e=="string")e=new URL(e);else if(!Ym(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Q5(e)}function Q5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=u;const w=r[h][1];Gm(w)&&Gm(p)&&(p=$h(!0,w,p)),r[h]=[c,p,...g]}}}}const tU=new b0().freeze();function Uh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Vh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Hh(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Pv(e){if(!Gm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Dv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Oc(e){return nU(e)?e:new GT(e)}function nU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function rU(e){return typeof e=="string"||iU(e)}function iU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const sU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",jv=[],$v={allowDangerousHtml:!0},oU=/^(https?|ircs?|mailto|xmpp)$/i,aU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function lU(e){const t=cU(e),n=uU(e);return dU(t.runSync(t.parse(n),n),e)}function cU(e){const t=e.rehypePlugins||jv,n=e.remarkPlugins||jv,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...$v}:$v;return tU().use(Hz).use(n).use($5,r).use(t)}function uU(e){const t=e.children||"",n=new GT;return typeof t=="string"&&(n.value=t),n}function dU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||fU;for(const u of aU)Object.hasOwn(t,u.from)&&(""+u.from+(u.to?"use `"+u.to+"` instead":"remove it")+sU+u.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),cf(e,c),T3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(u,d,h){if(u.type==="raw"&&h&&typeof d=="number")return o?h.children.splice(d,1):h.children[d]={type:"text",value:u.value},d;if(u.type==="element"){let p;for(p in Ph)if(Object.hasOwn(Ph,p)&&Object.hasOwn(u.properties,p)){const g=u.properties[p],w=Ph[p];(w===null||w.includes(u.tagName))&&(u.properties[p]=l(String(g||""),p,u))}}if(u.type==="element"){let p=n?!n.includes(u.tagName):s?s.includes(u.tagName):!1;if(!p&&r&&typeof d=="number"&&(p=!r(u,d,h)),p&&h&&typeof d=="number")return a&&u.children?h.children.splice(d,1,...u.children):h.children.splice(d,1),d}}}function fU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||oU.test(e.slice(0,t))?e:""}function Bv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function hU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function pU(e,t,n){const i=Ul((n||{}).ignore||[]),s=mU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?h.lastIndex=v+1:(g!==v&&y.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=v+b[0].length,m=!0),!h.global)break;b=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Bv(e,"(");let s=Bv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function YT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Qi(n)||sf(n))&&(!t||n!==47)}XT.peek=$U;function MU(){this.buffer()}function IU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function OU(){this.buffer()}function RU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function LU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function PU(e){this.exit(e)}function DU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function jU(e){this.exit(e)}function $U(){return"["}function XT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function BU(){return{enter:{gfmFootnoteCallString:MU,gfmFootnoteCall:IU,gfmFootnoteDefinitionLabelString:OU,gfmFootnoteDefinition:RU},exit:{gfmFootnoteCallString:LU,gfmFootnoteCall:PU,gfmFootnoteDefinitionLabelString:DU,gfmFootnoteDefinition:jU}}}function FU(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:XT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),u=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),u(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` -`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?QT:zU))),c(),l}}function zU(e,t,n){return t===0?e:QT(e,t,n)}function QT(e,t,n){return(n?"":" ")+e}const UU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];ZT.peek=WU;function VU(){return{canContainEols:["delete"],enter:{strikethrough:KU},exit:{strikethrough:qU}}}function HU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:UU}],handlers:{delete:ZT}}}function KU(e){this.enter({type:"delete",children:[]},e)}function qU(e){this.exit(e)}function ZT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function WU(){return"~"}function GU(e){return e.length}function YU(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||GU,s=[],o=[],a=[],l=[];let c=0,u=-1;for(;++uc&&(c=e[u].length);++ml[m])&&(l[m]=b)}w.push(y)}o[u]=w,a[u]=x}let d=-1;if(typeof r=="object"&&"length"in r)for(;++dl[d]&&(l[d]=y),p[d]=y),h[d]=b}o.splice(1,0,h),a.splice(1,0,p),u=-1;const g=[];for(;++u "),s.shift(2);const o=n.indentLines(n.containerFlow(e,s.current()),ZU);return i(),o}function ZU(e,t,n){return">"+(n?"":" ")+e}function JU(e,t){return zv(e,t.inConstruct,!0)&&!zv(e,t.notInConstruct,!1)}function zv(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=s):s=1,i=r+t.length,r=n.indexOf(t,i);return o}function t6(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function n6(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function r6(e,t,n,r){const i=n6(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(t6(e,n)){const d=n.enter("codeIndented"),h=n.indentLines(s,i6);return d(),h}const a=n.createTracker(r),l=i.repeat(Math.max(e6(s,i)+1,3)),c=n.enter("codeFenced");let u=a.move(l);if(e.lang){const d=n.enter(`codeFencedLang${o}`);u+=a.move(n.safe(e.lang,{before:u,after:" ",encode:["`"],...a.current()})),d()}if(e.lang&&e.meta){const d=n.enter(`codeFencedMeta${o}`);u+=a.move(" "),u+=a.move(n.safe(e.meta,{before:u,after:` -`,encode:["`"],...a.current()})),d()}return u+=a.move(` -`),s&&(u+=a.move(s+` -`)),u+=a.move(l),c(),u}function i6(e,t,n){return(n?"":" ")+e}function w0(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function s6(e,t,n,r){const i=w0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("definition");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");return c+=l.move(n.safe(n.associationId(e),{before:c,after:"]",...l.current()})),c+=l.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":` -`,...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),o(),c}function o6(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function hl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function hd(e,t,n){const r=bo(e),i=bo(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}JT.peek=a6;function JT(e,t,n,r){const i=o6(n),s=n.enter("emphasis"),o=n.createTracker(r),a=o.move(i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),u=hd(r.before.charCodeAt(r.before.length-1),c,i);u.inside&&(l=hl(c)+l.slice(1));const d=l.charCodeAt(l.length-1),h=hd(r.after.charCodeAt(0),d,i);h.inside&&(l=l.slice(0,-1)+hl(d));const p=o.move(i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:u.outside},a+l+p}function a6(e,t,n){return n.options.emphasis||"*"}function l6(e,t){let n=!1;return cf(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,qm}),!!((!e.depth||e.depth<3)&&d0(e)&&(t.options.setext||n))}function c6(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),s=n.createTracker(r);if(l6(e,n)){const u=n.enter("headingSetext"),d=n.enter("phrasing"),h=n.containerPhrasing(e,{...s.current(),before:` -`,after:` -`});return d(),u(),h+` -`+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` -`))+1))}const o="#".repeat(i),a=n.enter("headingAtx"),l=n.enter("phrasing");s.move(o+" ");let c=n.containerPhrasing(e,{before:"# ",after:` -`,...s.current()});return/^[\t ]/.test(c)&&(c=hl(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}eA.peek=u6;function eA(e){return e.value||""}function u6(){return"<"}tA.peek=d6;function tA(e,t,n,r){const i=w0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function d6(){return"!"}nA.peek=f6;function nA(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const u=n.stack;n.stack=[],o=n.enter("reference");const d=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=u,s(),i==="full"||!c||c!==d?l+=a.move(d+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function f6(){return"!"}rA.peek=h6;function rA(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}sA.peek=p6;function sA(e,t,n,r){const i=w0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(iA(e,n)){const u=n.stack;n.stack=[],a=n.enter("autolink");let d=o.move("<");return d+=o.move(n.containerPhrasing(e,{before:d,after:">",...o.current()})),d+=o.move(">"),a(),n.stack=u,d}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function p6(e,t,n){return iA(e,n)?"<":"["}oA.peek=m6;function oA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const u=n.stack;n.stack=[],o=n.enter("reference");const d=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=u,s(),i==="full"||!c||c!==d?l+=a.move(d+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function m6(){return"["}function x0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function g6(e){const t=x0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function y6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function aA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function b6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?y6(n):x0(n);const a=e.ordered?o==="."?")":".":g6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const u=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&u&&(!u.children||!u.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),aA(n)===o&&u){let d=-1;for(;++d-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),u);return l(),c;function u(d,h,p){return h?(p?"":" ".repeat(o))+d:(p?s:s+" ".repeat(o-s.length))+d}}function v6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const k6=Ul(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function E6(e,t,n,r){return(e.children.some(function(o){return k6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function _6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}lA.peek=S6;function lA(e,t,n,r){const i=_6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),u=hd(r.before.charCodeAt(r.before.length-1),c,i);u.inside&&(l=hl(c)+l.slice(1));const d=l.charCodeAt(l.length-1),h=hd(r.after.charCodeAt(0),d,i);h.inside&&(l=l.slice(0,-1)+hl(d));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:u.outside},a+l+p}function S6(e,t,n){return n.options.strong||"*"}function N6(e,t,n,r){return n.safe(e.value,r)}function T6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function A6(e,t,n){const r=(aA(n)+(n.options.ruleSpaces?" ":"")).repeat(T6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const cA={blockquote:QU,break:Uv,code:r6,definition:s6,emphasis:JT,hardBreak:Uv,heading:c6,html:eA,image:tA,imageReference:nA,inlineCode:rA,link:sA,linkReference:oA,list:b6,listItem:x6,paragraph:v6,root:E6,strong:lA,text:N6,thematicBreak:A6};function C6(){return{enter:{table:M6,tableData:Vv,tableHeader:Vv,tableRow:O6},exit:{codeText:R6,table:I6,tableData:Gh,tableHeader:Gh,tableRow:Gh}}}function M6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function I6(e){this.exit(e),this.data.inTable=void 0}function O6(e){this.enter({type:"tableRow",children:[]},e)}function Gh(e){this.exit(e)}function Vv(e){this.enter({type:"tableCell",children:[]},e)}function R6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,L6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function L6(e,t){return t==="|"?t:e}function P6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:o,tableCell:l,tableRow:a}};function o(p,g,w,x){return c(u(p,w,x),p.align)}function a(p,g,w,x){const m=d(p,w,x),y=c([m]);return y.slice(0,y.indexOf(` -`))}function l(p,g,w,x){const m=w.enter("tableCell"),y=w.enter("phrasing"),b=w.containerPhrasing(p,{...x,before:s,after:s});return y(),m(),b}function c(p,g){return YU(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function u(p,g,w){const x=p.children;let m=-1;const y=[],b=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const J6={tokenize:aV,partial:!0};function eV(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:iV,continuation:{tokenize:sV},exit:oV}},text:{91:{name:"gfmFootnoteCall",tokenize:rV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:tV,resolveTo:nV}}}}function tV(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function nV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function rV(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(d){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),l}function l(d){return d!==94?n(d):(e.enter("gfmFootnoteCallMarker"),e.consume(d),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(d){if(s>999||d===93&&!o||d===null||d===91||Be(d))return n(d);if(d===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(d)}return Be(d)||(o=!0),s++,e.consume(d),d===92?u:c}function u(d){return d===91||d===92||d===93?(e.consume(d),s++,c):c(d)}}function iV(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):n(g)}function u(g){if(o>999||g===93&&!a||g===null||g===91||Be(g))return n(g);if(g===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return Be(g)||(a=!0),o++,e.consume(g),g===92?d:u}function d(g){return g===91||g===92||g===93?(e.consume(g),o++,u):u(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Ce(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function sV(e,t,n){return e.check(zl,t,e.attempt(J6,t,n))}function oV(e){e.exit("gfmFootnoteDefinition")}function aV(e,t,n){const r=this;return Ce(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function lV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),d++,p);if(d<2&&!n)return l(g);const x=o.exit("strikethroughSequenceTemporary"),m=bo(g);return x._open=!m||m===2&&!!w,x._close=!w||w===2&&!!m,a(g)}}}class cV{constructor(){this.map=[]}add(t,n,r){uV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function uV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const M=r.events[$][1].type;if(M==="lineEnding"||M==="linePrefix")$--;else break}const j=$>-1?r.events[$][1].type:null,B=j==="tableHead"||j==="tableRow"?k:l;return B===k&&r.parser.lazy[r.now().line]?n(T):B(T)}function l(T){return e.enter("tableHead"),e.enter("tableRow"),c(T)}function c(T){return T===124||(o=!0,s+=1),u(T)}function u(T){return T===null?n(T):ge(T)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),p):n(T):Se(T)?Ce(e,u,"whitespace")(T):(s+=1,o&&(o=!1,i+=1),T===124?(e.enter("tableCellDivider"),e.consume(T),e.exit("tableCellDivider"),o=!0,u):(e.enter("data"),d(T)))}function d(T){return T===null||T===124||Be(T)?(e.exit("data"),u(T)):(e.consume(T),T===92?h:d)}function h(T){return T===92||T===124?(e.consume(T),d):d(T)}function p(T){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(T):(e.enter("tableDelimiterRow"),o=!1,Se(T)?Ce(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(T):g(T))}function g(T){return T===45||T===58?x(T):T===124?(o=!0,e.enter("tableCellDivider"),e.consume(T),e.exit("tableCellDivider"),w):E(T)}function w(T){return Se(T)?Ce(e,x,"whitespace")(T):x(T)}function x(T){return T===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(T),e.exit("tableDelimiterMarker"),m):T===45?(s+=1,m(T)):T===null||ge(T)?v(T):E(T)}function m(T){return T===45?(e.enter("tableDelimiterFiller"),y(T)):E(T)}function y(T){return T===45?(e.consume(T),y):T===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(T),e.exit("tableDelimiterMarker"),b):(e.exit("tableDelimiterFiller"),b(T))}function b(T){return Se(T)?Ce(e,v,"whitespace")(T):v(T)}function v(T){return T===124?g(T):T===null||ge(T)?!o||i!==s?E(T):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(T)):E(T)}function E(T){return n(T)}function k(T){return e.enter("tableRow"),A(T)}function A(T){return T===124?(e.enter("tableCellDivider"),e.consume(T),e.exit("tableCellDivider"),A):T===null||ge(T)?(e.exit("tableRow"),t(T)):Se(T)?Ce(e,A,"whitespace")(T):(e.enter("data"),N(T))}function N(T){return T===null||T===124||Be(T)?(e.exit("data"),A(T)):(e.consume(T),T===92?I:N)}function I(T){return T===92||T===124?(e.consume(T),N):N(T)}}function pV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,u,d;const h=new cV;for(;++nn[2]+1){const g=n[2]+1,w=n[3]-n[2]-1;e.add(g,w,[])}}e.add(n[3]+1,0,[["exit",d,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Kv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const mV={name:"tasklistCheck",tokenize:yV};function gV(){return{text:{91:mV}}}function yV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return Be(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return ge(l)?t(l):Se(l)?e.check({tokenize:bV},t,n)(l):n(l)}}function bV(e,t,n){return Ce(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function wV(e){return NT([H6(),eV(),lV(e),fV(),gV()])}const xV={};function vV(e){const t=this,n=e||xV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(wV(n)),s.push(F6()),o.push(z6(n))}const qv=function(e,t,n){const r=Ul(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=u):u&&(c!==void 0&&c>-1&&l.push(` -`.repeat(c)||" "),c=-1,l.push(u))}return l.join("")}function wA(e,t,n){return e.type==="element"?CV(e,t,n):e.type==="text"?n.whitespace==="normal"?xA(e,n):MV(e):[]}function CV(e,t,n){const r=vA(e,n),i=e.children||[];let s=-1,o=[];if(TV(e))return o;let a,l;for(Qm(e)||Xv(e)&&qv(t,e,Xv)?l=` -`:NV(e)?(a=2,l=2):bA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],w=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],x=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:w,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:x},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[E,d,a,n,e.C_BLOCK_COMMENT_MODE,u,c],A={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:k.concat([{begin:/\(/,end:/\)/,keywords:v,contains:k.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,u]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,u,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,u,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function jV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=DV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function kA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},w=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],x=["true","false"],m={match:/(\/[a-z._-]+)+/},y=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],b=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],E=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:w,literal:x,built_in:[...y,...b,"set","shopt",...v,...E]},contains:[p,e.SHEBANG(),g,d,s,o,m,a,l,c,u,n]}}function $V(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",x={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[d,a,n,e.C_BLOCK_COMMENT_MODE,u,c],y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:x,contains:m.concat([{begin:/\(/,end:/\)/,keywords:x,contains:m.concat(["self"]),relevance:0}]),relevance:0},b={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:x,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:x,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,u,a,{begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,u,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C",aliases:["h"],keywords:x,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:d,strings:c,keywords:x}}}function BV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],w=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],x=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:w,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:x},E={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[E,d,a,n,e.C_BLOCK_COMMENT_MODE,u,c],A={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:k.concat([{begin:/\(/,end:/\)/,keywords:v,contains:k.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,u]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,u,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,u,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function FV(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},u={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},d=e.inherit(u,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},w={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},x=e.inherit(w,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[x,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,w,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},y={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,y],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const zV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),UV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],VV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],HV=[...UV,...VV],KV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),qV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),WV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),GV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function YV(e){const t=e.regex,n=zV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+qV.join("|")+")"},{begin:":(:)?("+WV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+GV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:KV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+HV.join("|")+")\\b"}]}}function XV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function QV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"_A(e,t,n-1))}function JV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+_A("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},u={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Qv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Qv,c]}}const Zv="[A-Za-z$_][0-9A-Za-z$_]*",e9=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],t9=["true","false","null","undefined","NaN","Infinity"],SA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],NA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],TA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],n9=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],r9=[].concat(TA,SA,NA);function AA(e){const t=e.regex,n=(R,{after:P})=>{const S="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(R,P)=>{const S=R[0].length+R.index,U=R.input[S];if(U==="<"||U===","){P.ignoreMatch();return}U===">"&&(n(R,{after:S})||P.ignoreMatch());let V;const C=R.input.substring(S);if(V=C.match(/^\s*=/)){P.ignoreMatch();return}if((V=C.match(/^\s+extends\s+/))&&V.index===0){P.ignoreMatch();return}}},a={$pattern:Zv,keyword:e9,literal:t9,built_in:r9,"variable.language":n9},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},w={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},x={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,w,x,{match:/\$\d+/},d];h.contains=b.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(b)});const v=[].concat(y,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),k={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},A={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...SA,...NA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[k],illegal:/%/},$={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function j(R){return t.concat("(?!",R.join("|"),")")}const B={match:t.concat(/\b/,j([...TA,"super","import"].map(R=>`${R}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},M={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},L={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},k]},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(O)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[k]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,w,x,y,{match:/\$\d+/},d,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,e.REGEXP_MODE,{className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},T,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[k,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},M,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[k]},B,$,A,L,{match:/\$[(.]/}]}}function CA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Ns="[0-9](_*[0-9])*",Dc=`\\.(${Ns})`,jc="[0-9a-fA-F](_*[0-9a-fA-F])*",i9={className:"number",variants:[{begin:`(\\b(${Ns})((${Dc})|\\.)?|(${Dc}))[eE][+-]?(${Ns})[fFdD]?\\b`},{begin:`\\b(${Ns})((${Dc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Dc})[fFdD]?\\b`},{begin:`\\b(${Ns})[fFdD]\\b`},{begin:`\\b0[xX]((${jc})\\.?|(${jc})?\\.(${jc}))[pP][+-]?(${Ns})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${jc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function s9(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=i9,u=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=d;return h.variants[1].contains=[d],d.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,u,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,u],relevance:0},e.C_LINE_COMMENT_MODE,u,a,l,o,e.C_NUMBER_MODE]},u]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},c]}}const o9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),a9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],l9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],c9=[...a9,...l9],u9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),MA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),IA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),f9=MA.concat(IA).sort().reverse();function h9(e){const t=o9(e),n=f9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(b){return{className:"string",begin:"~?"+b+".*?"+b}},c=function(b,v,E){return{className:b,begin:v,relevance:E}},u={$pattern:/[a-z-]+/,keyword:r,attribute:u9.join(" ")},d={begin:"\\(",end:"\\)",contains:a,keywords:u,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,d,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},w={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:a,relevance:0}},x={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+c9.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+MA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+IA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},y={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,w,x,y,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function p9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function OA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},d=e.inherit(c,{contains:[]}),h=e.inherit(u,{contains:[]});c.contains.push(h),u.contains.push(d);let p=[n,l];return[c,u,d,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,u),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,u,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function m9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function g9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},u=[e.BACKSLASH_ESCAPE,s,l],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(w,x,m="\\1")=>{const y=m==="\\1"?m:t.concat(m,x);return t.concat(t.concat("(?:",w,")"),x,/(?:\\.|[^\\\/])*?/,y,/(?:\\.|[^\\\/])*?/,m,r)},p=(w,x,m)=>t.concat(t.concat("(?:",w,")"),x,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:u,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...d,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...d,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function y9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(M,L)=>{L.data._beginMatch=M[1]||M[2]},"on:end":(M,L)=>{L.data._beginMatch!==M[1]&&L.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ -]`,g={scope:"string",variants:[u,c,d,h]},w={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},x=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],y=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(M=>{const L=[];return M.forEach(O=>{L.push(O),O.toLowerCase()===O?L.push(O.toUpperCase()):L.push(O.toLowerCase())}),L})(x),built_in:y},E=M=>M.map(L=>L.replace(/\|\d+$/,"")),k={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",E(y).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},A=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),A],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),A],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,w,k]},$={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",E(m).join("\\b|"),"|",E(y).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[T]};T.contains.push($);const j=[I,N,e.C_BLOCK_COMMENT_MODE,g,w,k],B={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:x,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:x,keyword:["new","array"]},contains:["self",...j]},...j,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[B,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,$,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},k,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",B,o,N,e.C_BLOCK_COMMENT_MODE,g,w]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,w]}}function b9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function w9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function LA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},u={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,u,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,u,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,w={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},x={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,w,d,e.HASH_COMMENT_MODE]}]};return c.contains=[d,w,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,w,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},d,x,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[w,m,d]}]}}function x9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function v9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function k9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],u={className:"subst",begin:/#\{/,end:/\}/,keywords:o},d={className:"string",contains:[e.BACKSLASH_ESCAPE,u],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,u]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},w={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},k=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[w]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,u],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);u.contains=k,w.contains=k;const T=[{begin:/^\s*=>/,starts:{end:"$",contains:k}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:k}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(T).concat(c).concat(k)}}function E9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],u=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:u,keyword:a,literal:l,built_in:c},illegal:""},s]}}const _9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),S9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],N9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],T9=[...S9,...N9],A9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),C9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),M9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),I9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function O9(e){const t=_9(e),n=M9,r=C9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+T9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+I9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:A9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function R9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function L9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],u=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=u,g=[...c,...l].filter(E=>!u.includes(E)),w={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},x={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function y(E){return t.concat(/\b/,t.either(...E.map(k=>k.replace(/\s+/,"\\s+"))),/\b/)}const b={scope:"keyword",match:y(h),relevance:0};function v(E,{exceptions:k,when:A}={}){const N=A;return k=k||[],E.map(I=>I.match(/\|\d+$/)||k.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:E=>E.length<3}),literal:s,type:a,built_in:d},contains:[{scope:"type",match:y(o)},b,m,w,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,x]}}function PA(e){return e?typeof e=="string"?e:e.source:null}function ra(e){return je("(?=",e,")")}function je(...e){return e.map(n=>PA(n)).join("")}function P9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(P9(e).capture?"":"?:")+e.map(r=>PA(r)).join("|")+")"}const E0=e=>je(/\b/,e,/\w$/.test(e)?/\b/:/\B/),D9=["Protocol","Type"].map(E0),Jv=["init","self"].map(E0),j9=["Any","Self"],Yh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],e1=["false","nil","true"],$9=["assignment","associativity","higherThan","left","lowerThan","none","right"],B9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],t1=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],DA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),jA=Ft(DA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Xh=je(DA,jA,"*"),$A=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),pd=Ft($A,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=je($A,pd,"*"),$c=je(/[A-Z]/,pd,"*"),F9=["attached","autoclosure",je(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",je(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],z9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function U9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...D9,...Jv)],className:{2:"keyword"}},s={match:je(/\./,Ft(...Yh)),relevance:0},o=Yh.filter(ne=>typeof ne=="string").concat(["_|0"]),a=Yh.filter(ne=>typeof ne!="string").concat(j9).map(E0),l={variants:[{className:"keyword",match:Ft(...a,...Jv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(B9),literal:e1},u=[i,s,l],d={match:je(/\./,Ft(...t1)),relevance:0},h={className:"built_in",match:je(/\b/,Ft(...t1),/(?=\()/)},p=[d,h],g={match:/->/,relevance:0},w={className:"operator",relevance:0,variants:[{match:Xh},{match:`\\.(\\.|${jA})+`}]},x=[g,w],m="([0-9]_*)+",y="([0-9a-fA-F]_*)+",b={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${y})(\\.(${y}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(ne="")=>({className:"subst",variants:[{match:je(/\\/,ne,/[0\\tnr"']/)},{match:je(/\\/,ne,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(ne="")=>({className:"subst",match:je(/\\/,ne,/[\t ]*(?:[\r\n]|\r\n)/)}),k=(ne="")=>({className:"subst",label:"interpol",begin:je(/\\/,ne,/\(/),end:/\)/}),A=(ne="")=>({begin:je(ne,/"""/),end:je(/"""/,ne),contains:[v(ne),E(ne),k(ne)]}),N=(ne="")=>({begin:je(ne,/"/),end:je(/"/,ne),contains:[v(ne),k(ne)]}),I={className:"string",variants:[A(),A("#"),A("##"),A("###"),N(),N("#"),N("##"),N("###")]},T=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],$={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:T},j=ne=>{const he=je(ne,/\//),ie=je(/\//,ne);return{begin:he,end:ie,contains:[...T,{scope:"comment",begin:`#(?!.*${ie})`,end:/$/}]}},B={scope:"regexp",variants:[j("###"),j("##"),j("#"),$]},M={match:je(/`/,Qn,/`/)},L={className:"variable",match:/\$\d+/},O={className:"variable",match:`\\$${pd}+`},D=[M,L,O],R={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:z9,contains:[...x,b,I]}]}},P={scope:"keyword",match:je(/@/,Ft(...F9),ra(Ft(/\(/,/\s+/)))},S={scope:"meta",match:je(/@/,Qn)},U=[R,P,S],V={match:ra(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:je(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,pd,"+")},{className:"type",match:$c,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:je(/\s+&\s+/,ra($c)),relevance:0}]},C={begin://,keywords:c,contains:[...r,...u,...U,g,V]};V.contains.push(C);const F={match:je(Qn,/\s*:/),keywords:"_|0",relevance:0},q={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",F,...r,B,...u,...p,...x,b,I,...D,...U,V]},G={begin://,keywords:"repeat each",contains:[...r,V]},Y={begin:Ft(ra(je(Qn,/\s*:/)),ra(je(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},H={begin:/\(/,end:/\)/,keywords:c,contains:[Y,...r,...u,...x,b,I,...U,V,q],endsParent:!0,illegal:/["']/},Q={match:[/(func|macro)/,/\s+/,Ft(M.match,Qn,Xh)],className:{1:"keyword",3:"title.function"},contains:[G,H,t],illegal:[/\[/,/%/]},oe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[G,H,t],illegal:/\[|%/},ce={match:[/operator/,/\s+/,Xh],className:{1:"keyword",3:"title"}},se={begin:[/precedencegroup/,/\s+/,$c],className:{1:"keyword",3:"title"},contains:[V],keywords:[...$9,...e1],end:/}/},K={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},re={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},le={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[G,...u,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:$c},...u],relevance:0}]};for(const ne of I.variants){const he=ne.contains.find(_e=>_e.label==="interpol");he.keywords=c;const ie=[...u,...p,...x,b,I,...D];he.contains=[...ie,{begin:/\(/,end:/\)/,contains:["self",...ie]}]}return{name:"Swift",keywords:c,contains:[...r,Q,oe,K,re,le,ce,se,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},B,...u,...p,...x,b,I,...D,...U,V,q]}}const md="[A-Za-z$_][0-9A-Za-z$_]*",BA=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],FA=["true","false","null","undefined","NaN","Infinity"],zA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],UA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],VA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],HA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],KA=[].concat(VA,zA,UA);function V9(e){const t=e.regex,n=(R,{after:P})=>{const S="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(R,P)=>{const S=R[0].length+R.index,U=R.input[S];if(U==="<"||U===","){P.ignoreMatch();return}U===">"&&(n(R,{after:S})||P.ignoreMatch());let V;const C=R.input.substring(S);if(V=C.match(/^\s*=/)){P.ignoreMatch();return}if((V=C.match(/^\s+extends\s+/))&&V.index===0){P.ignoreMatch();return}}},a={$pattern:md,keyword:BA,literal:FA,built_in:KA,"variable.language":HA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},w={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},x={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,w,x,{match:/\$\d+/},d];h.contains=b.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(b)});const v=[].concat(y,h.contains),E=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),k={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E},A={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...zA,...UA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[k],illegal:/%/},$={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function j(R){return t.concat("(?!",R.join("|"),")")}const B={match:t.concat(/\b/,j([...VA,"super","import"].map(R=>`${R}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},M={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},L={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},k]},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(O)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[k]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:E,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,w,x,y,{match:/\$\d+/},d,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},D,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,e.REGEXP_MODE,{className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:E}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},T,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[k,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},M,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[k]},B,$,A,L,{match:/\$[(.]/}]}}function qA(e){const t=e.regex,n=V9(e),r=md,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:md,keyword:BA.concat(l),literal:FA,built_in:KA.concat(i),"variable.language":HA},u={className:"meta",begin:"@"+r},d=(w,x,m)=>{const y=w.contains.findIndex(b=>b.label===x);if(y===-1)throw new Error("can not find mode to replace");w.contains.splice(y,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(u);const h=n.contains.find(w=>w.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([u,s,o,p]),d(n,"shebang",e.SHEBANG()),d(n,"use_strict",a);const g=n.contains.find(w=>w.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function H9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:"label",begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,u,d,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function K9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function q9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function WA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},w={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},x=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,w,s,o],m=[...x];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:x}}const W9={arduino:jV,bash:kA,c:$V,cpp:BV,csharp:FV,css:YV,diff:XV,go:QV,graphql:ZV,ini:EA,java:JV,javascript:AA,json:CA,kotlin:s9,less:h9,lua:p9,makefile:OA,markdown:RA,objectivec:m9,perl:g9,php:y9,"php-template":b9,plaintext:w9,python:LA,"python-repl":x9,r:v9,ruby:k9,rust:E9,scss:O9,shell:R9,sql:L9,swift:U9,typescript:qA,vbnet:H9,wasm:K9,xml:q9,yaml:WA};function GA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&GA(n)}),e}let n1=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function YA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const G9="",r1=e=>!!e.scope,Y9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class X9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=YA(t)}openNode(t){if(!r1(t))return;const n=Y9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){r1(t)&&(this.buffer+=G9)}value(){return this.buffer}span(t){this.buffer+=``}}const i1=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class _0{constructor(){this.rootNode=i1(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=i1({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{_0._collapse(n)}))}}class Q9 extends _0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new X9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function pl(e){return e?typeof e=="string"?e:e.source:null}function XA(e){return ds("(?=",e,")")}function Z9(e){return ds("(?:",e,")*")}function J9(e){return ds("(?:",e,")?")}function ds(...e){return e.map(n=>pl(n)).join("")}function e8(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function S0(...e){return"("+(e8(e).capture?"":"?:")+e.map(r=>pl(r)).join("|")+")"}function QA(e){return new RegExp(e.toString()+"|").exec("").length-1}function t8(e,t){const n=e&&e.exec(t);return n&&n.index===0}const n8=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function N0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=pl(r),o="";for(;s.length>0;){const a=n8.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const r8=/\b\B/,ZA="[a-zA-Z]\\w*",T0="[a-zA-Z_]\\w*",JA="\\b\\d+(\\.\\d+)?",eC="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",tC="\\b(0b[01]+)",i8="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",s8=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=ds(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},ml={begin:"\\\\[\\s\\S]",relevance:0},o8={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ml]},a8={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ml]},l8={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},uf=function(e,t,n={}){const r=Yr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=S0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ds(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},c8=uf("//","$"),u8=uf("/\\*","\\*/"),d8=uf("#","$"),f8={scope:"number",begin:JA,relevance:0},h8={scope:"number",begin:eC,relevance:0},p8={scope:"number",begin:tC,relevance:0},m8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ml,{begin:/\[/,end:/\]/,relevance:0,contains:[ml]}]},g8={scope:"title",begin:ZA,relevance:0},y8={scope:"title",begin:T0,relevance:0},b8={begin:"\\.\\s*"+T0,relevance:0},w8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Bc=Object.freeze({__proto__:null,APOS_STRING_MODE:o8,BACKSLASH_ESCAPE:ml,BINARY_NUMBER_MODE:p8,BINARY_NUMBER_RE:tC,COMMENT:uf,C_BLOCK_COMMENT_MODE:u8,C_LINE_COMMENT_MODE:c8,C_NUMBER_MODE:h8,C_NUMBER_RE:eC,END_SAME_AS_BEGIN:w8,HASH_COMMENT_MODE:d8,IDENT_RE:ZA,MATCH_NOTHING_RE:r8,METHOD_GUARD:b8,NUMBER_MODE:f8,NUMBER_RE:JA,PHRASAL_WORDS_MODE:l8,QUOTE_STRING_MODE:a8,REGEXP_MODE:m8,RE_STARTERS_RE:i8,SHEBANG:s8,TITLE_MODE:g8,UNDERSCORE_IDENT_RE:T0,UNDERSCORE_TITLE_MODE:y8});function x8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function v8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function k8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=x8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function E8(e,t){Array.isArray(e.illegal)&&(e.illegal=S0(...e.illegal))}function _8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function S8(e,t){e.relevance===void 0&&(e.relevance=1)}const N8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=ds(n.beforeMatch,XA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},T8=["of","and","for","in","not","or","if","then","parent","list","value"],A8="keyword";function nC(e,t,n=A8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,nC(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,C8(l[0],l[1])]})}}function C8(e,t){return t?Number(t):M8(e)?0:1}function M8(e){return T8.includes(e.toLowerCase())}const s1={},zi=e=>{console.error(e)},o1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},bs=(e,t)=>{s1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),s1[`${e}/${t}`]=!0)},gd=new Error;function rC(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=QA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function I8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw zi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),gd;if(typeof e.beginScope!="object"||e.beginScope===null)throw zi("beginScope must be object"),gd;rC(e,e.begin,{key:"beginScope"}),e.begin=N0(e.begin,{joinWith:""})}}function O8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw zi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),gd;if(typeof e.endScope!="object"||e.endScope===null)throw zi("endScope must be object"),gd;rC(e,e.end,{key:"endScope"}),e.end=N0(e.end,{joinWith:""})}}function R8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function L8(e){R8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),I8(e),O8(e)}function P8(e){function t(o,a){return new RegExp(pl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=QA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(N0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((d,h)=>h>0&&d!==void 0),u=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,u)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,u])=>l.addRule(c,u)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const u=this.getMatcher(0);u.lastIndex=this.lastIndex+1,c=u.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[v8,_8,L8,N8].forEach(u=>u(o,a)),e.compilerExtensions.forEach(u=>u(o,a)),o.__beforeBegin=null,[k8,E8,S8].forEach(u=>u(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=nC(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=pl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(u){return D8(u==="self"?o:u)})),o.contains.forEach(function(u){s(u,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Yr(e.classNameAliases||{}),s(e)}function iC(e){return e?e.endsWithParent||iC(e.starts):!1}function D8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Yr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:iC(e)?Yr(e,{starts:e.starts?Yr(e.starts):null}):Object.isFrozen(e)?Yr(e):e}var j8="11.11.1";class $8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Qh=YA,a1=Yr,l1=Symbol("nomatch"),B8=7,sC=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Q9};function l(O){return a.noHighlightRe.test(O)}function c(O){let D=O.className+" ";D+=O.parentNode?O.parentNode.className:"";const R=a.languageDetectRe.exec(D);if(R){const P=N(R[1]);return P||(o1(s.replace("{}",R[1])),o1("Falling back to no-highlight mode for this block.",O)),P?R[1]:"no-highlight"}return D.split(/\s+/).find(P=>l(P)||N(P))}function u(O,D,R){let P="",S="";typeof D=="object"?(P=O,R=D.ignoreIllegals,S=D.language):(bs("10.7.0","highlight(lang, code, ...args) has been deprecated."),bs("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),S=O,P=D),R===void 0&&(R=!0);const U={code:P,language:S};M("before:highlight",U);const V=U.result?U.result:d(U.language,U.code,R);return V.code=U.code,M("after:highlight",V),V}function d(O,D,R,P){const S=Object.create(null);function U(z,W){return z.keywords[W]}function V(){if(!ie.keywords){ke.addText(ye);return}let z=0;ie.keywordPatternRe.lastIndex=0;let W=ie.keywordPatternRe.exec(ye),Z="";for(;W;){Z+=ye.substring(z,W.index);const ae=le.case_insensitive?W[0].toLowerCase():W[0],be=U(ie,ae);if(be){const[Oe,Bt]=be;if(ke.addText(Z),Z="",S[ae]=(S[ae]||0)+1,S[ae]<=B8&&(Tt+=Bt),Oe.startsWith("_"))Z+=W[0];else{const vt=le.classNameAliases[Oe]||Oe;q(W[0],vt)}}else Z+=W[0];z=ie.keywordPatternRe.lastIndex,W=ie.keywordPatternRe.exec(ye)}Z+=ye.substring(z),ke.addText(Z)}function C(){if(ye==="")return;let z=null;if(typeof ie.subLanguage=="string"){if(!t[ie.subLanguage]){ke.addText(ye);return}z=d(ie.subLanguage,ye,!0,_e[ie.subLanguage]),_e[ie.subLanguage]=z._top}else z=p(ye,ie.subLanguage.length?ie.subLanguage:null);ie.relevance>0&&(Tt+=z.relevance),ke.__addSublanguage(z._emitter,z.language)}function F(){ie.subLanguage!=null?C():V(),ye=""}function q(z,W){z!==""&&(ke.startScope(W),ke.addText(z),ke.endScope())}function G(z,W){let Z=1;const ae=W.length-1;for(;Z<=ae;){if(!z._emit[Z]){Z++;continue}const be=le.classNameAliases[z[Z]]||z[Z],Oe=W[Z];be?q(Oe,be):(ye=Oe,V(),ye=""),Z++}}function Y(z,W){return z.scope&&typeof z.scope=="string"&&ke.openNode(le.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(q(ye,le.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),ye=""):z.beginScope._multi&&(G(z.beginScope,W),ye="")),ie=Object.create(z,{parent:{value:ie}}),ie}function H(z,W,Z){let ae=t8(z.endRe,Z);if(ae){if(z["on:end"]){const be=new n1(z);z["on:end"](W,be),be.isMatchIgnored&&(ae=!1)}if(ae){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return H(z.parent,W,Z)}function Q(z){return ie.matcher.regexIndex===0?(ye+=z[0],1):(Pe=!0,0)}function oe(z){const W=z[0],Z=z.rule,ae=new n1(Z),be=[Z.__beforeBegin,Z["on:begin"]];for(const Oe of be)if(Oe&&(Oe(z,ae),ae.isMatchIgnored))return Q(W);return Z.skip?ye+=W:(Z.excludeBegin&&(ye+=W),F(),!Z.returnBegin&&!Z.excludeBegin&&(ye=W)),Y(Z,z),Z.returnBegin?0:W.length}function ce(z){const W=z[0],Z=D.substring(z.index),ae=H(ie,z,Z);if(!ae)return l1;const be=ie;ie.endScope&&ie.endScope._wrap?(F(),q(W,ie.endScope._wrap)):ie.endScope&&ie.endScope._multi?(F(),G(ie.endScope,z)):be.skip?ye+=W:(be.returnEnd||be.excludeEnd||(ye+=W),F(),be.excludeEnd&&(ye=W));do ie.scope&&ke.closeNode(),!ie.skip&&!ie.subLanguage&&(Tt+=ie.relevance),ie=ie.parent;while(ie!==ae.parent);return ae.starts&&Y(ae.starts,z),be.returnEnd?0:W.length}function se(){const z=[];for(let W=ie;W!==le;W=W.parent)W.scope&&z.unshift(W.scope);z.forEach(W=>ke.openNode(W))}let K={};function re(z,W){const Z=W&&W[0];if(ye+=z,Z==null)return F(),0;if(K.type==="begin"&&W.type==="end"&&K.index===W.index&&Z===""){if(ye+=D.slice(W.index,W.index+1),!i){const ae=new Error(`0 width match regex (${O})`);throw ae.languageName=O,ae.badRule=K.rule,ae}return 1}if(K=W,W.type==="begin")return oe(W);if(W.type==="illegal"&&!R){const ae=new Error('Illegal lexeme "'+Z+'" for mode "'+(ie.scope||"")+'"');throw ae.mode=ie,ae}else if(W.type==="end"){const ae=ce(W);if(ae!==l1)return ae}if(W.type==="illegal"&&Z==="")return ye+=` -`,1;if(xt>1e5&&xt>W.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ye+=Z,Z.length}const le=N(O);if(!le)throw zi(s.replace("{}",O)),new Error('Unknown language: "'+O+'"');const ne=P8(le);let he="",ie=P||ne;const _e={},ke=new a.__emitter(a);se();let ye="",Tt=0,Le=0,xt=0,Pe=!1;try{if(le.__emitTokens)le.__emitTokens(D,ke);else{for(ie.matcher.considerAll();;){xt++,Pe?Pe=!1:ie.matcher.considerAll(),ie.matcher.lastIndex=Le;const z=ie.matcher.exec(D);if(!z)break;const W=D.substring(Le,z.index),Z=re(W,z);Le=z.index+Z}re(D.substring(Le))}return ke.finalize(),he=ke.toHTML(),{language:O,value:he,relevance:Tt,illegal:!1,_emitter:ke,_top:ie}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:O,value:Qh(D),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:Le,context:D.slice(Le-100,Le+100),mode:z.mode,resultSoFar:he},_emitter:ke};if(i)return{language:O,value:Qh(D),illegal:!1,relevance:0,errorRaised:z,_emitter:ke,_top:ie};throw z}}function h(O){const D={value:Qh(O),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return D._emitter.addText(O),D}function p(O,D){D=D||a.languages||Object.keys(t);const R=h(O),P=D.filter(N).filter(T).map(F=>d(F,O,!1));P.unshift(R);const S=P.sort((F,q)=>{if(F.relevance!==q.relevance)return q.relevance-F.relevance;if(F.language&&q.language){if(N(F.language).supersetOf===q.language)return 1;if(N(q.language).supersetOf===F.language)return-1}return 0}),[U,V]=S,C=U;return C.secondBest=V,C}function g(O,D,R){const P=D&&n[D]||R;O.classList.add("hljs"),O.classList.add(`language-${P}`)}function w(O){let D=null;const R=c(O);if(l(R))return;if(M("before:highlightElement",{el:O,language:R}),O.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",O);return}if(O.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(O)),a.throwUnescapedHTML))throw new $8("One of your code blocks includes unescaped HTML.",O.innerHTML);D=O;const P=D.textContent,S=R?u(P,{language:R,ignoreIllegals:!0}):p(P);O.innerHTML=S.value,O.dataset.highlighted="yes",g(O,R,S.language),O.result={language:S.language,re:S.relevance,relevance:S.relevance},S.secondBest&&(O.secondBest={language:S.secondBest.language,relevance:S.secondBest.relevance}),M("after:highlightElement",{el:O,result:S,text:P})}function x(O){a=a1(a,O)}const m=()=>{v(),bs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function y(){v(),bs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let b=!1;function v(){function O(){v()}if(document.readyState==="loading"){b||window.addEventListener("DOMContentLoaded",O,!1),b=!0;return}document.querySelectorAll(a.cssSelector).forEach(w)}function E(O,D){let R=null;try{R=D(e)}catch(P){if(zi("Language definition for '{}' could not be registered.".replace("{}",O)),i)zi(P);else throw P;R=o}R.name||(R.name=O),t[O]=R,R.rawDefinition=D.bind(null,e),R.aliases&&I(R.aliases,{languageName:O})}function k(O){delete t[O];for(const D of Object.keys(n))n[D]===O&&delete n[D]}function A(){return Object.keys(t)}function N(O){return O=(O||"").toLowerCase(),t[O]||t[n[O]]}function I(O,{languageName:D}){typeof O=="string"&&(O=[O]),O.forEach(R=>{n[R.toLowerCase()]=D})}function T(O){const D=N(O);return D&&!D.disableAutodetect}function $(O){O["before:highlightBlock"]&&!O["before:highlightElement"]&&(O["before:highlightElement"]=D=>{O["before:highlightBlock"](Object.assign({block:D.el},D))}),O["after:highlightBlock"]&&!O["after:highlightElement"]&&(O["after:highlightElement"]=D=>{O["after:highlightBlock"](Object.assign({block:D.el},D))})}function j(O){$(O),r.push(O)}function B(O){const D=r.indexOf(O);D!==-1&&r.splice(D,1)}function M(O,D){const R=O;r.forEach(function(P){P[R]&&P[R](D)})}function L(O){return bs("10.7.0","highlightBlock will be removed entirely in v12.0"),bs("10.7.0","Please use highlightElement now."),w(O)}Object.assign(e,{highlight:u,highlightAuto:p,highlightAll:v,highlightElement:w,highlightBlock:L,configure:x,initHighlighting:m,initHighlightingOnLoad:y,registerLanguage:E,unregisterLanguage:k,listLanguages:A,getLanguage:N,registerAliases:I,autoDetection:T,inherit:a1,addPlugin:j,removePlugin:B}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=j8,e.regex={concat:ds,lookahead:XA,either:S0,optional:J9,anyNumberOfTimes:Z9};for(const O in Bc)typeof Bc[O]=="object"&&GA(Bc[O]);return Object.assign(e,Bc),e},wo=sC({});wo.newInstance=()=>sC({});var F8=wo;wo.HighlightJS=wo;wo.default=wo;const tn=Al(F8),c1={},z8="hljs-";function U8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,u){const d=u||c1,h=typeof d.prefix=="string"?d.prefix:z8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:V8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,w=g.data;return w.language=p.language,w.relevance=p.relevance,g}function r(l,c){const d=(c||c1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=x.data.relevance,g=x)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let u;for(u in l)Object.hasOwn(l,u)&&t.registerLanguage(u,l[u])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let u;for(u in l)if(Object.hasOwn(l,u)){const d=l[u];t.registerAliases(typeof d=="string"?d:[...d],{languageName:u})}}}function a(l){return!!t.getLanguage(l)}}class V8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const H8={};function K8(e){const t=e||H8,n=t.aliases,r=t.detect||!1,i=t.languages||W9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=U8(i);if(n&&c.registerAlias(n),o){const u=o.indexOf("-");l=u===-1?o:o.slice(0,u)}return function(u,d){cf(u,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const w=q8(h);if(w===!1||!w&&!r||w&&s&&s.includes(w))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const x=AV(h,{whitespace:"pre"});let m;try{m=w?c.highlight(w,x,{prefix:o}):c.highlightAuto(x,{prefix:o,subset:a})}catch(y){const b=y;if(w&&/Unknown language/.test(b.message)){d.message("Cannot highlight as `"+w+"`, it’s not registered",{ancestors:[g,h],cause:b,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw b}!w&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function q8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const A0=_.memo(W8),oC="send_a2ui_json_to_client";function G8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function aC({text:e,done:t}){const[n,r]=_.useState(!t),i=_.useRef(!1);_.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=dT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(G8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Wn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function Y8(){return f.jsx(aC,{text:"",done:!1})}function X8({name:e,args:t,response:n,done:r}){const[i,s]=_.useState(!1),o=e===oC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` -…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Wn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function Q8({block:e,onAuth:t}){const[n,r]=_.useState(e.done?"done":"idle"),[i,s]=_.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(u){s(u instanceof Error?u.message:String(u)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(zx,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(zx,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(at,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function Z8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(aC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(A0,{text:s})},i):null}case"tool":return r.name===oC&&r.done?null:f.jsx(X8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(Q8,{block:r,onAuth:n},i);case"a2ui":return uT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(MF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function J8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=_.useRef(null),c=_.useRef(null),u=_.useRef(null),[d,h]=_.useState(!1);_.useLayoutEffect(()=>{const x=l.current;x&&(x.style.height="auto",x.style.height=`${Math.min(x.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(x){var m;h(!1),(m=x.current)==null||m.click()}function w(x){x.target.files&&x.target.files.length&&o(x.target.files),x.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((x,m)=>f.jsx(eH,{mimeType:x.mimeType,data:x.data,name:x.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(x=>!x),children:f.jsx(mi,{className:"icon"})}),d&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(J$,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(u),children:[f.jsx(Xy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:x=>t(x.target.value),onKeyDown:x=>{x.key==="Enter"&&!x.shiftKey&&(x.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(at,{className:"icon spin"}):f.jsx(L$,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:w}),f.jsx("input",{ref:u,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:w})]})}function eH({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(Xy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(nf,{className:"icon"})})]})}function lC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Wn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const C0=Symbol.for("yaml.alias"),Zm=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),cC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),Bo=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),Fo=e=>!!e&&typeof e=="object"&&e[Cn]===C0,Hl=e=>!!e&&typeof e=="object"&&e[Cn]===Zm,Kl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,ct=e=>!!e&&typeof e=="object"&&e[Cn]===cC,ze=e=>!!e&&typeof e=="object"&&e[Cn]===ar,ql=e=>!!e&&typeof e=="object"&&e[Cn]===Bo;function ot(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case Bo:return!0}return!1}function lt(e){if(e&&typeof e=="object")switch(e[Cn]){case C0:case ii:case ar:case Bo:return!0}return!1}const uC=e=>(ze(e)||ot(e))&&!!e.anchor,Ti=Symbol("break visit"),tH=Symbol("skip children"),Da=Symbol("remove node");function zo(e,t){const n=nH(t);Hl(e)?Ks(null,e.contents,n,Object.freeze([e]))===Da&&(e.contents=null):Ks(null,e,n,Object.freeze([]))}zo.BREAK=Ti;zo.SKIP=tH;zo.REMOVE=Da;function Ks(e,t,n,r){const i=rH(e,t,n,r);if(lt(i)||ct(i))return iH(e,r,i),Ks(e,i,n,r);if(typeof i!="symbol"){if(ot(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>sH[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+oH(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&<(t.contents)){const s={};zo(t.contents,(o,a)=>{lt(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` -`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function dC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function fC(e){const t=new Set;return zo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function hC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function aH(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=fC(e));const o=hC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(ze(o.node)||ot(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function qs(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!uC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class M0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!Hl(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?qs(s,{"":a},"",a):a}}class I0 extends M0{constructor(t){super(C0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],zo(t,{Node:(s,o)=>{(Fo(o)||uC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=bu(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(dC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function bu(e,t,n){if(Fo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(ot(t)){let r=0;for(const i of t.items){const s=bu(e,i,n);s>r&&(r=s)}return r}else if(ct(t)){const r=bu(e,t.key,n),i=bu(e,t.value,n);return Math.max(r,i)}return 1}const pC=e=>!e||typeof e!="function"&&typeof e!="object";class Ee extends M0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}Ee.BLOCK_FOLDED="BLOCK_FOLDED";Ee.BLOCK_LITERAL="BLOCK_LITERAL";Ee.PLAIN="PLAIN";Ee.QUOTE_DOUBLE="QUOTE_DOUBLE";Ee.QUOTE_SINGLE="QUOTE_SINGLE";const lH="tag:yaml.org,2002:";function cH(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function gl(e,t,n){var d,h,p;if(Hl(e)&&(e=e.contents),lt(e))return e;if(ct(e)){const g=(h=(d=n.schema[ii]).createNode)==null?void 0:h.call(d,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new I0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=lH+t.slice(2));let c=cH(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new Ee(e);return l&&(l.node=g),g}c=e instanceof Map?o[ii]:Symbol.iterator in Object(e)?o[Bo]:o[ii]}s&&(s(c),delete n.onTagObj);const u=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new Ee(e);return t?u.tag=t:c.default||(u.tag=c.tag),l&&(l.node=u),u}function yd(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return gl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ga=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class mC extends M0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>lt(r)||ct(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ga(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(ot(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,yd(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(ot(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&ze(s)?s.value:s:ot(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!ct(n))return!1;const r=n.value;return r==null||t&&ze(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return ot(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(ot(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,yd(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const uH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Li=(e,t,n)=>e.endsWith(` -`)?xr(n,t):n.includes(` -`)?` -`+xr(n,t):(e.endsWith(" ")?"":" ")+n,gC="flow",Jm="block",wu="quoted";function df(e,t,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,s)?c.push(0):d=i-r);let h,p,g=!1,w=-1,x=-1,m=-1;n===Jm&&(w=u1(e,w,t.length),w!==-1&&(d=w+l));for(let b;b=e[w+=1];){if(n===wu&&b==="\\"){switch(x=w,e[w+1]){case"x":w+=3;break;case"u":w+=5;break;case"U":w+=9;break;default:w+=1}m=w}if(b===` -`)n===Jm&&(w=u1(e,w,t.length)),d=w+t.length+l,h=void 0;else{if(b===" "&&p&&p!==" "&&p!==` -`&&p!==" "){const v=e[w+1];v&&v!==" "&&v!==` -`&&v!==" "&&(h=w)}if(w>=d)if(h)c.push(h),d=h+l,h=void 0;else if(n===wu){for(;p===" "||p===" ";)p=b,b=e[w+=1],g=!0;const v=w>m+1?w-2:x-1;if(u[v])return e;c.push(v),u[v]=!0,d=v+l,h=void 0}else g=!0}p=b}if(g&&a&&a(),c.length===0)return e;o&&o();let y=e.slice(0,c[0]);for(let b=0;b({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),hf=e=>/^(%|---|\.\.\.)/m.test(e);function dH(e,t,n){if(!t||t<0)return!1;const r=t-n,i=e.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function ja(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(hf(e)?" ":"");let o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);const u=n.substr(l+2,4);switch(u){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:u.substr(0,2)==="00"?o+="\\x"+u.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||n[l+2]==='"'||n.length -`;let d,h;for(h=n.length;h>0;--h){const E=n[h-1];if(E!==` -`&&E!==" "&&E!==" ")break}let p=n.substring(h);const g=p.indexOf(` -`);g===-1?d="-":n===p||g!==p.length-1?(d="+",s&&s()):d="",p&&(n=n.slice(0,-p.length),p[p.length-1]===` -`&&(p=p.slice(0,-1)),p=p.replace(tg,`$&${c}`));let w=!1,x,m=-1;for(x=0;x{k=!0});const N=df(`${y}${E}${p}`,c,Jm,A);if(!k)return`>${v} -${c}${N}`}return n=n.replace(/\n+/g,`$&${c}`),`|${v} -${c}${y}${n}${p}`}function fH(e,t,n,r){const{type:i,value:s}=e,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:u}=t;if(a&&s.includes(` -`)||u&&/[[\]{},]/.test(s))return Ws(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||u||!s.includes(` -`)?Ws(s,t):xu(e,t,n,r);if(!a&&!u&&i!==Ee.PLAIN&&s.includes(` -`))return xu(e,t,n,r);if(hf(s)){if(l==="")return t.forceBlockIndent=!0,xu(e,t,n,r);if(a&&l===c)return Ws(s,t)}const d=s.replace(/\n+/g,`$& -${l}`);if(o){const h=w=>{var x;return w.default&&w.tag!=="tag:yaml.org,2002:str"&&((x=w.test)==null?void 0:x.test(d))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ws(s,t)}return a?d:df(d,l,gC,ff(t,!1))}function O0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==Ee.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ee.QUOTE_DOUBLE);const l=u=>{switch(u){case Ee.BLOCK_FOLDED:case Ee.BLOCK_LITERAL:return i||s?Ws(o.value,t):xu(o,t,n,r);case Ee.QUOTE_DOUBLE:return ja(o.value,t);case Ee.QUOTE_SINGLE:return eg(o.value,t);case Ee.PLAIN:return fH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:u,defaultStringType:d}=t.options,h=i&&u||d;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function yC(e,t){const n=Object.assign({blockQuote:!0,commentString:uH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function hH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(ze(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function pH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(ze(e)||ot(e))&&e.anchor;s&&dC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(ct(e))return e.toString(t,n,r);if(Fo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=lt(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=hH(t.doc.schema.tags,s));const o=pH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):ze(s)?O0(s,t,n,r):s.toString(t,n,r);return o?ze(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} -${t.indent}${a}`:a}function mH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:d}}=n;let h=lt(e)&&e.comment||null;if(d){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(ot(e)||!lt(e)&&typeof e=="object"){const A="With simple keys, collection cannot be used as a key value";throw new Error(A)}}let p=!d&&(!e||h&&t==null&&!n.inFlow||ot(e)||(ze(e)?e.type===Ee.BLOCK_FOLDED||e.type===Ee.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!s),indent:a+l});let g=!1,w=!1,x=xo(e,n,()=>g=!0,()=>w=!0);if(!p&&!n.inFlow&&x.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),x===""?"?":p?`? ${x}`:x}else if(s&&!d||t==null&&p)return x=`? ${x}`,h&&!g?x+=Li(x,n.indent,c(h)):w&&i&&i(),x;g&&(h=null),p?(h&&(x+=Li(x,n.indent,c(h))),x=`? ${x} -${a}:`):(x=`${x}:`,h&&(x+=Li(x,n.indent,c(h))));let m,y,b;lt(t)?(m=!!t.spaceBefore,y=t.commentBefore,b=t.comment):(m=!1,y=null,b=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&ze(t)&&(n.indentAtStart=x.length+1),w=!1,!u&&l.length>=2&&!n.inFlow&&!p&&ql(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const E=xo(t,n,()=>v=!0,()=>w=!0);let k=" ";if(h||m||y){if(k=m?` -`:"",y){const A=c(y);k+=` -${xr(A,n.indent)}`}E===""&&!n.inFlow?k===` -`&&b&&(k=` - -`):k+=` -${n.indent}`}else if(!p&&ot(t)){const A=E[0],N=E.indexOf(` -`),I=N!==-1,T=n.inFlow??t.flow??t.items.length===0;if(I||!T){let $=!1;if(I&&(A==="&"||A==="!")){let j=E.indexOf(" ");A==="&"&&j!==-1&&je===Fc||typeof e=="symbol"&&e.description===Fc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ee(Symbol(Fc)),{addToJSMap:wC}),stringify:()=>Fc},gH=(e,t)=>(Sr.identify(t)||ze(t)&&(!t.type||t.type===Ee.PLAIN)&&Sr.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===Sr.tag&&n.default));function wC(e,t,n){const r=xC(e,n);if(ql(r))for(const i of r.items)Zh(e,t,i);else if(Array.isArray(r))for(const i of r)Zh(e,t,i);else Zh(e,t,r)}function Zh(e,t,n){const r=xC(e,n);if(!Kl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function xC(e,t){return e&&Fo(t)?t.resolve(e.doc,e):t}function vC(e,t,{key:n,value:r}){if(lt(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(gH(e,n))wC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=yH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function yH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(lt(e)&&(n!=null&&n.doc)){const r=yC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),bC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function R0(e,t,n){const r=gl(e,void 0,n),i=gl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:cC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return lt(n)&&(n=n.clone(t)),lt(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return vC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?mH(this,t,n,r):JSON.stringify(this)}}function kC(e,t,n){return(t.inFlow??e.flow?wH:bH)(e,t,n)}function bH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,u=Object.assign({},n,{indent:s,type:null});let d=!1;const h=[];for(let g=0;gx=null,()=>d=!0);x&&(m+=Li(m,s,c(x))),d&&x&&(d=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;gx=null);c||(c=d.length>u||m.includes(` -`)),g0&&(c||(c=d.reduce((y,b)=>y+b.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),x&&(m+=Li(m,r,a(x))),d.push(m),u=d.length}const{start:h,end:p}=n;if(d.length===0)return h+p;if(!c){const g=d.reduce((w,x)=>w+x.length+2,2);c=t.options.lineWidth>0&&g>t.options.lineWidth}if(c){let g=h;for(const w of d)g+=w?` -${s}${i}${w}`:` -`;return`${g} -${i}${p}`}else return`${h}${o}${d.join(" ")}${o}${p}`}function bd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=xr(t(r),e);n.push(s.trimStart())}}function Pi(e,t){const n=ze(t)?t.value:t;for(const r of e)if(ct(r)&&(r.key===t||r.key===n||ze(r.key)&&r.key.value===n))return r}class En extends mC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ii,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(R0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;ct(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Pi(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);ze(i.value)&&pC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Pi(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Pi(this.items,t),i=r==null?void 0:r.value;return(!n&&ze(i)?i.value:i)??void 0}has(t){return!!Pi(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)vC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!ct(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),kC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Uo={collection:"map",default:!0,nodeClass:En,tag:"tag:yaml.org,2002:map",resolve(e,t){return Kl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>En.from(e,t,n)};class Zi extends mC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(Bo,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=zc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=zc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&ze(i)?i.value:i}has(t){const n=zc(t);return typeof n=="number"&&n=0?t:null}const Vo={collection:"seq",default:!0,nodeClass:Zi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return ql(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Zi.from(e,t,n)},pf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),O0(e,t,n,r)}},mf={identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ee(null),stringify:({source:e},t)=>typeof e=="string"&&mf.test.test(e)?e:t.options.nullStr},L0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ee(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&L0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Gn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const EC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Gn},_C={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Gn(e)}},SC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Ee(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Gn},gf=e=>typeof e=="bigint"||Number.isInteger(e),P0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function NC(e,t,n){const{value:r}=e;return gf(r)&&r>=0?n+r.toString(t):Gn(e)}const TC={identify:e=>gf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>P0(e,2,8,n),stringify:e=>NC(e,8,"0o")},AC={identify:gf,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>P0(e,0,10,n),stringify:Gn},CC={identify:e=>gf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>P0(e,2,16,n),stringify:e=>NC(e,16,"0x")},xH=[Uo,Vo,pf,mf,L0,TC,AC,CC,EC,_C,SC];function d1(e){return typeof e=="bigint"||Number.isInteger(e)}const Uc=({value:e})=>JSON.stringify(e),vH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Uc},{identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Uc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Uc},{identify:d1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>d1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Uc}],kH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},EH=[Uo,Vo].concat(vH,kH),D0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new Ee(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} -${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} -${s.comment}`:r.comment}r=i}e.items[n]=ct(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function IC(e,t,n){const{replacer:r}=n,i=new Zi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(R0(a,l,n))}return i}const j0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:MC,createNode:IC};class no extends Zi{constructor(){super(),this.add=En.prototype.add.bind(this),this.delete=En.prototype.delete.bind(this),this.get=En.prototype.get.bind(this),this.has=En.prototype.has.bind(this),this.set=En.prototype.set.bind(this),this.tag=no.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(ct(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=IC(t,n,r),s=new this;return s.items=i.items,s}}no.tag="tag:yaml.org,2002:omap";const $0={collection:"seq",identify:e=>e instanceof Map,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=MC(e,t),r=[];for(const{key:i}of n.items)ze(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new no,n)},createNode:(e,t,n)=>no.from(e,t,n)};function OC({value:e,source:t},n){return t&&(e?RC:LC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const RC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ee(!0),stringify:OC},LC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ee(!1),stringify:OC},_H={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Gn},SH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Gn(e)}},NH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Ee(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Gn},Wl=e=>typeof e=="bigint"||Number.isInteger(e);function yf(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function B0(e,t,n){const{value:r}=e;if(Wl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Gn(e)}const TH={identify:Wl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>yf(e,2,2,n),stringify:e=>B0(e,2,"0b")},AH={identify:Wl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>yf(e,1,8,n),stringify:e=>B0(e,8,"0")},CH={identify:Wl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>yf(e,0,10,n),stringify:Gn},MH={identify:Wl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>yf(e,2,16,n),stringify:e=>B0(e,16,"0x")};class ro extends En{constructor(t){super(t),this.tag=ro.tag}add(t){let n;ct(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Pi(this.items,n.key)||this.items.push(n)}get(t,n){const r=Pi(this.items,t);return!n&&ct(r)?ze(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Pi(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(R0(o,null,r));return s}}ro.tag="tag:yaml.org,2002:set";const F0={collection:"map",identify:e=>e instanceof Set,nodeClass:ro,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>ro.from(e,t,n),resolve(e,t){if(Kl(e)){if(e.hasAllNullValues(!0))return Object.assign(new ro,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function z0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function PC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Gn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const DC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>z0(e,n),stringify:PC},jC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>z0(e,!1),stringify:PC},bf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(bf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const u=t[8];if(u&&u!=="Z"){let d=z0(u,!1);Math.abs(d)<30&&(d*=60),c-=6e4*d}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},f1=[Uo,Vo,pf,mf,RC,LC,TH,AH,CH,MH,_H,SH,NH,D0,Sr,$0,j0,F0,DC,jC,bf],h1=new Map([["core",xH],["failsafe",[Uo,Vo,pf]],["json",EH],["yaml11",f1],["yaml-1.1",f1]]),p1={binary:D0,bool:L0,float:SC,floatExp:_C,floatNaN:EC,floatTime:jC,int:AC,intHex:CC,intOct:TC,intTime:DC,map:Uo,merge:Sr,null:mf,omap:$0,pairs:j0,seq:Vo,set:F0,timestamp:bf},IH={"tag:yaml.org,2002:binary":D0,"tag:yaml.org,2002:merge":Sr,"tag:yaml.org,2002:omap":$0,"tag:yaml.org,2002:pairs":j0,"tag:yaml.org,2002:set":F0,"tag:yaml.org,2002:timestamp":bf};function Jh(e,t,n){const r=h1.get(t);if(r&&!e)return n&&!r.includes(Sr)?r.concat(Sr):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(h1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(Sr)),i.reduce((s,o)=>{const a=typeof o=="string"?p1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(p1).map(u=>JSON.stringify(u)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const OH=(e,t)=>e.keyt.key?1:0;class U0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Jh(t,"compat"):t?Jh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?IH:{},this.tags=Jh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:Uo}),Object.defineProperty(this,ar,{value:pf}),Object.defineProperty(this,Bo,{value:Vo}),this.sortMapEntries=typeof o=="function"?o:o===!0?OH:null}clone(){const t=Object.create(U0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function RH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=yC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(xr(c,""))}let o=!1,a=null;if(e.contents){if(lt(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const d=s(e.contents.commentBefore);n.push(xr(d,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let u=xo(e.contents,i,()=>a=null,c);a&&(u+=Li(u,"",s(a))),(u[0]==="|"||u[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${u}`:n.push(u)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` -`)?(n.push("..."),n.push(xr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(xr(s(c),"")))}return n.join(` -`)+` -`}class Gl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:Zm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Gl.prototype,{[Cn]:{value:Zm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=lt(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ws(this.contents)&&this.contents.add(t)}addIn(t,n){ws(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=fC(this);t.anchor=!n||r.has(n)?hC(n||"a",r):n}return new I0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const x=y=>typeof y=="number"||y instanceof String||y instanceof Number,m=n.filter(x).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:u}=r??{},{onAnchor:d,setAnchors:h,sourceObjects:p}=aH(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:d,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},w=gl(t,u,g);return a&&ot(w)&&(w.flow=!0),h(),w}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return ws(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ga(t)?this.contents==null?!1:(this.contents=null,!0):ws(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return ot(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ga(t)?!n&&ze(this.contents)?this.contents.value:this.contents:ot(this.contents)?this.contents.getIn(t,n):void 0}has(t){return ot(this.contents)?this.contents.has(t):!1}hasIn(t){return ga(t)?this.contents!==void 0:ot(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=yd(this.schema,[t],n):ws(this.contents)&&this.contents.set(t,n)}setIn(t,n){ga(t)?this.contents=n:this.contents==null?this.contents=yd(this.schema,Array.from(t),n):ws(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new U0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:u}of a.anchors.values())s(u,c);return typeof o=="function"?qs(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return RH(this,t)}}function ws(e){if(ot(e))return!0;throw new Error("Expected a YAML collection as document contents")}class $C extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class ya extends $C{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class LH extends $C{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const m1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… -`),o=a+o}if(/[^ ]/.test(o)){let a=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: - -${o} -${c} -`}};function vo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,u=a,d="",h="",p=!1,g=!1,w=null,x=null,m=null,y=null,b=null,v=null,E=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),w&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(w,"TAB_AS_INDENT","Tabs are not allowed as indentation"),w=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(w=N),u=!0;break;case"comment":{u||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";d?d+=h+I:d=I,h="",c=!1;break}case"newline":c?d?d+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(x||m)&&(y=N),u=!0;break;case"anchor":x&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),x=N,E??(E=N.offset),c=!1,u=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,E??(E=N.offset),c=!1,u=!1,g=!0;break}case n:(x||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",u=!1;break;case"comma":if(t){b&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),b=N,c=!1,u=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,u=!1}const k=e[e.length-1],A=k?k.offset+k.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),w&&(c&&w.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(w,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:b,found:v,spaceBefore:l,comment:d,hasNewline:p,anchor:x,tag:m,newlineAfterProp:y,end:A,start:E??A}}function yl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` -`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(yl(t.key)||yl(t.value))return!0}return!1;default:return!0}}function ng(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&yl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function BC(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||ze(s)&&ze(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const g1="All mapping items must start at the same column";function PH({composeNode:e,composeEmptyNode:t},n,r,i,s){var u;const o=(s==null?void 0:s.nodeClass)??En,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const d of r.items){const{start:h,key:p,sep:g,value:w}=d,x=vo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!x.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",g1)),!x.anchor&&!x.tag&&!g){c=x.end,x.comment&&(a.comment?a.comment+=` -`+x.comment:a.comment=x.comment);continue}(x.newlineAfterProp||yl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((u=x.found)==null?void 0:u.indent)!==r.indent&&i(l,"BAD_INDENT",g1);n.atKey=!0;const y=x.end,b=p?e(n,p,x,i):t(n,y,h,null,x,i);n.schema.compat&&ng(r.indent,p,i),n.atKey=!1,BC(n,a.items,b)&&i(y,"DUPLICATE_KEY","Map keys must be unique");const v=vo(g??[],{indicator:"map-value-ind",next:w,offset:b.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((w==null?void 0:w.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&x.starte&&(e.type==="block-map"||e.type==="block-seq");function jH({composeNode:e,composeEmptyNode:t},n,r,i,s){var x;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?En:Zi),c=new l(n.schema);c.flow=!0;const u=n.atRoot;u&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let d=r.offset+r.start.source.length;for(let m=0;m0){const m=Yl(g,w,n.options.strict,i);m.comment&&(c.comment?c.comment+=` -`+m.comment:c.comment=m.comment),c.range=[r.offset,w,m.offset]}else c.range=[r.offset,w,w];return c}function np(e,t,n,r,i,s){const o=n.type==="block-map"?PH(e,t,n,r,s):n.type==="block-seq"?DH(e,t,n,r,s):jH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function $H(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,w=p&&s?p.offset>s.offset?p:s:p??s;w&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),np(e,t,n,i,o)}const c=np(e,t,n,i,o,l),u=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,d=lt(u)?u:new Ee(u);return d.range=c.range,d.tag=o,l!=null&&l.format&&(d.format=l.format),d}function BH(e,t,n){const r=t.offset,i=FH(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?Ee.BLOCK_FOLDED:Ee.BLOCK_LITERAL,o=t.source?zH(t.source):[];let a=o.length;for(let w=o.length-1;w>=0;--w){const x=o[w][1];if(x===""||x==="\r")a=w;else break}if(a===0){const w=i.chomp==="+"&&o.length>0?` -`.repeat(Math.max(1,o.length-1)):"";let x=r+i.length;return t.source&&(x+=t.source.length),{value:w,type:s,comment:i.comment,range:[r,x,x]}}let l=t.indent+i.indent,c=t.offset+i.length,u=0;for(let w=0;wl&&(l=x.length);else{x.length=a;--w)o[w][0].length>l&&(a=w+1);let d="",h="",p=!1;for(let w=0;wl||m[0]===" "?(h===" "?h=` -`:!p&&h===` -`&&(h=` - -`),d+=h+x.slice(l)+m,h=` -`,p=!0):m===""?h===` -`?d+=` -`:h=` -`:(d+=h+m,h=" ",p=!1)}switch(i.chomp){case"-":break;case"+":for(let w=a;wn(r+h,p,g);switch(i){case"scalar":a=Ee.PLAIN,l=VH(s,c);break;case"single-quoted-scalar":a=Ee.QUOTE_SINGLE,l=HH(s,c);break;case"double-quoted-scalar":a=Ee.QUOTE_DOUBLE,l=KH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const u=r+s.length,d=Yl(o,u,t,n);return{value:l,type:a,comment:d.comment,range:[r,u,d.offset]}}function VH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),FC(e)}function HH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),FC(e.slice(1,-1)).replace(/''/g,"'")}function FC(e){let t,n;try{t=new RegExp(`(.*?)(?s?e.slice(s,r+1):i)}else n+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function qH(e,t){let n="",r=e[t+1];for(;(r===" "||r===" "||r===` -`||r==="\r")&&!(r==="\r"&&e[t+2]!==` -`);)r===` -`&&(n+=` -`),t+=1,r=e[t+1];return n||(n=" "),{fold:n,offset:t}}const WH={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` -`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function GH(e,t,n,r){const i=e.substr(t,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{const a=e.substr(t-2,n+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function zC(e,t,n,r){const{value:i,type:s,comment:o,range:a}=t.type==="block-scalar"?BH(e,t,r):UH(t,e.options.strict,r),l=n?e.directives.tagName(n.source,d=>r(n,"TAG_RESOLVE_FAILED",d)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=YH(e.schema,i,l,n,r):t.type==="scalar"?c=XH(e,i,t,r):c=e.schema[ar];let u;try{const d=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);u=ze(d)?d:new Ee(d)}catch(d){const h=d instanceof Error?d.message:String(d);r(n??t,"TAG_RESOLVE_FAILED",h),u=new Ee(i)}return u.range=a,u.source=i,s&&(u.type=s),l&&(u.tag=l),c.format&&(u.format=c.format),o&&(u.comment=o),u}function YH(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function XH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),u=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",u,!0)}}return o}function QH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const ZH={composeNode:UC,composeEmptyNode:V0};function UC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,u=!0;switch(t.type){case"alias":c=JH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=zC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=$H(ZH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(d){const h=d instanceof Error?d.message:String(d);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const d=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",d),u=!1}}return c??(c=V0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!ze(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&u&&(c.srcToken=t),c}function V0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const u={type:"scalar",offset:QH(t,n,r),indent:-1,source:""},d=zC(e,u,a,c);return o&&(d.anchor=o.source.substring(1),d.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(d.spaceBefore=!0),s&&(d.comment=s,d.range[2]=l),d}function JH({options:e},{offset:t,source:n,end:r},i){const s=new I0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=Yl(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function eK(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Gl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=vo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});u.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!u.hasNewline&&o(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?UC(c,i,u,o):V0(c,u.end,r,null,u,o);const d=l.contents.range[2],h=Yl(s,d,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,d,h.offset],l}function ia(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function y1(e){var i;let t="",n=!1,r=!1;for(let s=0;s{const o=ia(n);s?this.warnings.push(new LH(o,r,i)):this.errors.push(new ya(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=y1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} -${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(ot(s)&&!s.flow&&s.items.length>0){let o=s.items[0];ct(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} -${a}`:r}else{const o=s.commentBefore;s.commentBefore=o?`${r} -${o}`:r}}if(n){for(let s=0;s{const s=ia(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=eK(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new ya(ia(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new ya(ia(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=Yl(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} -${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new ya(ia(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const r=Object.assign({_directives:this.directives},this.options),i=new Gl(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const VC="\uFEFF",HC="",KC="",rg="";function nK(e){switch(e){case VC:return"byte-order-mark";case HC:return"doc-mode";case KC:return"flow-error-end";case rg:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` -`:case`\r -`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Rn(e){switch(e){case void 0:case" ":case` -`:case"\r":case" ":return!0;default:return!1}}const b1=new Set("0123456789ABCDEFabcdef"),rK=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Vc=new Set(",[]{}"),iK=new Set(` ,[]{} -\r `),rp=e=>!e||iK.has(e);class sK{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,n=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!n;let r=this.next??"stream";for(;r&&(n||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let t=this.pos,n=this.buffer[t];for(;n===" "||n===" ";)n=this.buffer[++t];return!n||n==="#"||n===` -`?!0:n==="\r"?this.buffer[t+1]===` -`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let n=this.buffer[t];if(this.indentNext>0){let r=0;for(;n===" ";)n=this.buffer[++r+t];if(n==="\r"){const i=this.buffer[r+t+1];if(i===` -`||!i&&!this.atEnd)return t+r+1}return n===` -`||r>=this.indentNext||!n&&!this.atEnd?t+r:-1}if(n==="-"||n==="."){const r=this.buffer.substr(t,3);if((r==="---"||r==="...")&&Rn(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&tthis.indentValue&&!Rn(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[t,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&Rn(n)){const r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const t=this.getLine();if(t===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(t[n]){case"#":yield*this.pushCount(t.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(rp),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,n,r=-1;do t=yield*this.pushNewline(),t>0?(n=yield*this.pushSpaces(!1),this.indentValue=r=n):n=0,n+=yield*this.pushSpaces(!0);while(t+n>0);const i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Rn(n)||n==="#")}*parseBlockScalar(){let t=this.pos-1,n=0,r;e:for(let s=this.pos;r=this.buffer[s];++s)switch(r){case" ":n+=1;break;case` -`:t=s,n=0;break;case"\r":{const o=this.buffer[s+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===` -`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(t+1);if(s===-1)break;t=this.buffer.indexOf(` -`,s)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(r=this.buffer[i];r===" ";)r=this.buffer[++i];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===` -`;)r=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let s=t-1,o=this.buffer[s];o==="\r"&&(o=this.buffer[--s]);const a=s;for(;o===" ";)o=this.buffer[--s];if(o===` -`&&s>=this.pos&&s+1+n>a)t=s;else break}while(!0);return yield rg,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let n=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){const s=this.buffer[r+1];if(Rn(s)||t&&Vc.has(s))break;n=r}else if(Rn(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` -`?(r+=1,i=` -`,s=this.buffer[r+1]):n=r),s==="#"||t&&Vc.has(s))break;if(i===` -`){const o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&Vc.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield rg,yield*this.pushToIndex(n+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,n){const r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(n&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(rp),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,r=this.charAt(1);if(Rn(r)||n&&Vc.has(r)){n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,n=this.buffer[t];for(;!Rn(n)&&n!==">";)n=this.buffer[++t];return yield*this.pushToIndex(n===">"?t+1:t,!1)}else{let t=this.pos+1,n=this.buffer[t];for(;n;)if(rK.has(n))n=this.buffer[++t];else if(n==="%"&&b1.has(this.buffer[t+1])&&b1.has(this.buffer[t+2]))n=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===` -`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===` -`?yield*this.pushCount(2):0}*pushSpaces(t){let n=this.pos-1,r;do r=this.buffer[++n];while(r===" "||t&&r===" ");const i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(t){let n=this.pos,r=this.buffer[n];for(;!t(r);)r=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class oK{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let n=0,r=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((n=e[++t])==null?void 0:n.type)==="space";);return e.splice(t,e.length)}function wd(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&(t==null?void 0:t.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const n=t??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const r=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in r?r.indent:0:n.type==="flow-collection"&&r.type==="document"&&(n.indent=0),n.type==="flow-collection"&&x1(n),r.type){case"document":r.value=n;break;case"block-scalar":r.props.push(n);break;case"block-map":{const i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{const i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{const i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&w1(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&n.sep&&!n.value){const a=[];for(let l=0;lt.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=n.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(zr(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(qC(n.key)&&!zr(n.sep,"newline")){const a=xs(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:c}]})}else o.length>0?n.sep=n.sep.concat(o,this.sourceToken):n.sep.push(this.sourceToken);else if(zr(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const a=xs(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):zr(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||n.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(a):(Object.assign(n,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!n.explicitKey&&n.sep&&!zr(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){wd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||zr(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=Hc(r),s=xs(i);x1(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` -`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` -`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Hc(t),r=xs(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Hc(t),r=xs(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function lK(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new oK||null,prettyErrors:t}}function cK(e,t={}){const{lineCounter:n,prettyErrors:r}=lK(t),i=new aK(n==null?void 0:n.addNewLine),s=new tK(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ya(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(m1(e,n)),o.warnings.forEach(m1(e,n))),o}function uK(e,t,n){let r;const i=cK(e,n);if(!i)return null;if(i.warnings.forEach(s=>bC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function dK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return Hl(e)&&!r?e.toString(n):new Gl(e,r,n).toString(n)}function fs(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[]}}const WC="https://ark.cn-beijing.volces.com/api/v3/",fK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:WC}],$a=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:WC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],ko=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],GC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:ko},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:ko},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],YC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],XC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:ko},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],QC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:$a,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...$a],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:ko},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...ko,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],ZC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...ko,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],hK=e=>GC.find(t=>t.id===e),pK=e=>YC.find(t=>t.id===e),mK=e=>XC.find(t=>t.id===e),gK=e=>QC.find(t=>t.id===e),yK=e=>ZC.find(t=>t.id===e);function Ui(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function JC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function rt(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function vu(e,t,n){const r=Ui(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function sa(e,t){for(const n of t)e.env.push(n)}function v1(e,t,n){const r=vu(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: - ${JC(i)} - # TODO: 实现「${t}」的逻辑。 - return {"result": f"${r} 尚未实现: {query}"}`),r}function bK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;H0(e,a,c),s.push(c)});const o=[`name=${rt(Ui(t.name,n))}`,`description=${rt(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( - ${o.join(`, - `)}, -)`),n}function wK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${rt(Ui(t.name,n))}`,`url=${rt((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( - ${r.join(`, - `)}, -)`),n}function H0(e,t,n){var l,c,u,d,h,p,g,w,x,m;const r=t.agentType??"llm";if(r==="a2a")return wK(e,t,n);if(r!=="llm")return bK(e,t,n);const i=[];for(const y of t.builtinTools??[]){const b=hK(y);b&&(e.imports.includes(b.importLine)||e.imports.push(b.importLine),i.push(...b.toolNames),sa(e,b.env),b.pipExtra&&e.extras.add(b.pipExtra))}for(const y of t.customTools??[])(l=y.name)!=null&&l.trim()&&i.push(v1(e,y.name,y.description));for(const y of t.mcpTools??[])if(y.transport==="http"&&((c=y.url)!=null&&c.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const b=vu(e,`${y.name||"mcp"}_mcp`,"mcp_tool"),v=(u=y.authToken)!=null&&u.trim()?`, headers={"Authorization": ${rt(`Bearer ${y.authToken.trim()}`)}}`:"";e.preLines.push(`${b} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${rt(y.url.trim())}${v}))`),i.push(b)}else if(y.transport==="stdio"&&((d=y.command)!=null&&d.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const b=vu(e,`${y.name||"mcp"}_mcp`,"mcp_tool"),v=`[${(y.args??[]).filter(E=>E==null?void 0:E.trim()).map(E=>rt(E)).join(", ")}]`;e.preLines.push(`${b} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${rt(y.command.trim())}, args=${v}), timeout=30))`),i.push(b)}for(const y of t.tools??[])y!=null&&y.trim()&&i.push(v1(e,y,""));const s=(t.selectedSkills??[]).map(y=>y.folder).filter(y=>!!y&&y.trim().length>0);if(s.length>0){e.imports.push("from pathlib import Path as _Path"),e.imports.push("from google.adk.skills import load_skill_from_dir"),e.imports.push("from google.adk.tools.skill_toolset import SkillToolset");const y=vu(e,`skills_${n}`,"skill_toolset"),b=s.map(v=>` load_skill_from_dir(_Path(__file__).parent.parent.parent / "skills" / ${rt(v)})`);e.preLines.push(`${y} = SkillToolset(skills=[ -${b.join(`, -`)}, - ])`),i.push(y)}const o=[`name=${rt(Ui(t.name,n))}`,`description=${rt(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${JC(t.instruction||"You are a helpful assistant.")}`),i.length&&o.push(`tools=[${i.join(", ")}]`),(h=t.modelName)!=null&&h.trim()&&o.push(`model_name=${rt(t.modelName.trim())}`),(p=t.modelProvider)!=null&&p.trim()&&o.push(`model_provider=${rt(t.modelProvider.trim())}`),(g=t.modelApiBase)!=null&&g.trim()&&o.push(`model_api_base=${rt(t.modelApiBase.trim())}`),(w=t.memory)!=null&&w.shortTerm){const y=pK(t.shortTermBackend||"local");if(y){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const b=[`backend=${rt(y.id)}`];y.extraArgs&&b.push(y.extraArgs);const v=`stm_${n}`;e.preLines.push(`${v} = ShortTermMemory(${b.join(", ")})`),o.push(`short_term_memory=${v}`),sa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if((x=t.memory)!=null&&x.longTerm){const y=mK(t.longTermBackend||"local");if(y){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const b=Ui(t.name,n),v=`ltm_${n}`;e.preLines.push(`${v} = LongTermMemory(backend=${rt(y.id)}, index=${rt(b)}, app_name=${rt(b)})`),o.push(`long_term_memory=${v}`),t.autoSaveSession&&o.push("auto_save_session=True"),sa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if(t.knowledgebase){const y=gK(t.knowledgebaseBackend||"local");if(y){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const b=Ui(t.name+"_kb",n+"_kb"),v=`kb_${n}`;e.preLines.push(`${v} = KnowledgeBase(backend=${rt(y.id)}, index=${rt(b)}, app_name=${rt(b)})`),o.push(`knowledgebase=${v}`),sa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if(t.tracing&&(((m=t.tracingExporters)==null?void 0:m.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const y=`tracer_${n}`;e.preLines.push(`${y} = OpentelemetryTracer()`),o.push(`tracers=[${y}]`);for(const b of t.tracingExporters??[]){const v=yK(b);v&&(e.env.push({key:v.enableFlag,required:!0,placeholder:"true",comment:`${v.label} 开关`}),sa(e,v.env))}}t.enableA2ui&&(o.push("enable_a2ui=True"),e.extras.add("a2ui"));const a=[];return(t.subAgents??[]).forEach((y,b)=>{const v=`${n}_sub_${b+1}`;H0(e,y,v),a.push(v)}),a.length&&o.push(`sub_agents=[${a.join(", ")}]`),e.preLines.push(`${n} = Agent( - ${o.join(`, - `)}, -)`),n}function xK(e){const t=new Map;for(const n of e){const r=t.get(n.key);r?n.required&&!r.required&&(r.required=!0):t.set(n.key,{...n})}return[...t.values()]}function vK(e){const t=["# 复制为 .env 并填入真实值(或改用 config.yaml)。","# 标记 [必填] 的变量缺失时 Agent 无法启动。",""];for(const n of e)(n.comment||n.required)&&t.push(`# ${n.required?"[必填] ":""}${n.comment??""}`.trimEnd()),t.push(`${n.key}=${n.placeholder??""}`);return t.join(` -`)+` -`}function kK(e){const t=[...e].sort();return`${t.length?`veadk-python[${t.join(",")}]`:"veadk-python"} -agentkit-sdk-python -google-adk -`}function EK(e,t){return[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。",""].join(` -`)}function e2(e){const t=Ui(e.name,"my_agent"),n={imports:[],preLines:[],env:[...fK],extras:new Set,usedNames:new Set};H0(n,e,"agent");const r=["from veadk import Agent",..._K(n.imports)].join(` -`),i=["import os","from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` -`),s=n.preLines.join(` - -`)+` - -# ADK 加载器要求:顶层 agent 必须命名为 root_agent -root_agent = agent -`,o=r+` - -`+s,l=[{path:"app.py",content:`${i} - -# Deployment configuration -HOST = os.getenv("HOST", "0.0.0.0") -PORT = int(os.getenv("PORT", "8000")) - -def build_app(): - """Build AgentKit AgentServerApp for deployment.""" - import veadk - WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" - - # AgentKit's AgentServerApp exposes the ADK-compatible API surface - # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. - short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( - backend="local" - ) - agent_server_app = AgentkitAgentServerApp( - agent=root_agent, - short_term_memory=short_term_memory, - ) - app = agent_server_app.app - - # Add health check endpoint - @app.get("/ping") - def ping() -> dict[str, str]: - return {"status": "ok"} - - # Agent-structure introspection (data plane), consumed by the VeADK web - # UI's "管理 Agent" view to show this runtime's agent name + sub-agent tree. - from fastapi import HTTPException as _HTTPException - - def _agent_type(a: object) -> str: - try: - from google.adk.agents import LoopAgent, ParallelAgent, SequentialAgent - - if isinstance(a, LoopAgent): - return "loop" - if isinstance(a, SequentialAgent): - return "sequential" - if isinstance(a, ParallelAgent): - return "parallel" - except Exception: - pass - try: - from google.adk.agents.remote_a2a_agent import RemoteA2aAgent - - if isinstance(a, RemoteA2aAgent): - return "a2a" - except Exception: - pass - return "llm" - - def _model_name(m: object) -> str: - if isinstance(m, str): - return m - return str(getattr(m, "model", None) or type(m).__name__) - - def _tool_label(t: object) -> str: - name = getattr(t, "name", None) or getattr(t, "__name__", None) - return str(name or type(t).__name__) - - def _agent_node(a: object, depth: int = 0) -> dict: - children = [] - if depth < 8: - children = [_agent_node(s, depth + 1) for s in getattr(a, "sub_agents", []) or []] - return { - "name": getattr(a, "name", "") or "", - "description": getattr(a, "description", "") or "", - "type": _agent_type(a), - "model": _model_name(getattr(a, "model", "")), - "tools": [_tool_label(t) for t in getattr(a, "tools", []) or []], - "children": children, - } - - @app.get("/web/agent-info/{app_name}") - def agent_info(app_name: str) -> dict: - expected_name = getattr(root_agent, "name", "") or "" - if app_name != expected_name: - raise _HTTPException(status_code=404, detail="unknown agent: " + app_name) - return { - "name": expected_name or app_name, - "description": getattr(root_agent, "description", "") or "", - "type": _agent_type(root_agent), - "model": _model_name(getattr(root_agent, "model", "")), - "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], - "subAgents": [getattr(s, "name", "") for s in getattr(root_agent, "sub_agents", []) or []], - "graph": _agent_node(root_agent), - } - - @app.get("/web/agent-graph") - def agent_graph() -> dict: - # Single introspection endpoint on the main agent: returns this runtime's - # root agent + recursive sub-agent tree, with no /list-apps discovery - # needed. Used by the VeADK "管理 Agent" view. - return { - "name": getattr(root_agent, "name", "") or "", - "description": getattr(root_agent, "description", "") or "", - "type": _agent_type(root_agent), - "model": _model_name(getattr(root_agent, "model", "")), - "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], - "graph": _agent_node(root_agent), - } - - # Serve the bundled VeADK web UI without taking over "/", which is reserved - # by AgentServerApp for the A2A protocol surface. - if (WEBUI_DIR / "index.html").is_file(): - if (WEBUI_DIR / "assets").is_dir(): - app.mount( - "/assets", - StaticFiles(directory=str(WEBUI_DIR / "assets")), - name="webui-assets", - ) - - from fastapi.responses import FileResponse as _FileResponse - - @app.get("/") - @app.get("/webui") - @app.get("/webui/{path:path}") - def webui(path: str = ""): - return _FileResponse(WEBUI_DIR / "index.html") - - # AgentServerApp mounts A2A at "/", so routes added after construction must - # be moved before that root mount or they will be shadowed. - _priority_paths = { - "/", - "/ping", - "/web/agent-info/{app_name}", - "/web/agent-graph", - "/assets", - "/webui", - "/webui/{path:path}", - } - _priority_routes = [ - r for r in app.router.routes if getattr(r, "path", None) in _priority_paths - ] - if _priority_routes: - app.router.routes[:] = _priority_routes + [ - r for r in app.router.routes if r not in _priority_routes - ] - - return agent_server_app, app - -agent_server_app, app = build_app() - -if __name__ == "__main__": - agent_server_app.run(host=HOST, port=PORT) -`},{path:`agents/${t}/agent.py`,content:o},{path:`agents/${t}/__init__.py`,content:`from .agent import root_agent - -__all__ = ["root_agent"] -`},{path:".env.example",content:vK(xK(n.env))},{path:"requirements.txt",content:kK(n.extras)},{path:"README.md",content:EK(t,e)}];return{name:t,files:l}}function _K(e){return[...new Set(e)]}const SK=new Set(["local","sqlite","mysql","postgresql"]),NK=new Set(["local","opensearch","redis","viking","mem0"]),TK=new Set(["local","opensearch","viking","context_search"]),AK=new Set(["apmplus","cozeloop","tls"]),t2=new Set(CK());function CK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function Re(e,t=""){return typeof e=="string"?e:t}function vs(e){return e===!0}function ku(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function n2(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:Re(t.name),description:Re(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function ip(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const MK=new Set(["llm","sequential","parallel","loop","a2a"]);function r2(e){return typeof e=="string"&&MK.has(e)?e:"llm"}function i2(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function s2(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...fs(),name:Re(n.name),description:Re(n.description),instruction:Re(n.instruction),agentType:r2(n.agentType),maxIterations:i2(n.maxIterations),a2aUrl:Re(n.a2aUrl),builtinTools:ku(n.builtinTools).filter(r=>t2.has(r)),customTools:n2(n.customTools),subAgents:s2(n.subAgents)}}):[]}function o2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=s2(t.subAgents),i=Array.isArray(t.mcpTools)?t.mcpTools.map(s=>{const o=s&&typeof s=="object"?s:{},a=o.transport==="stdio"?"stdio":"http";return{name:Re(o.name),transport:a,url:Re(o.url),authToken:Re(o.authToken),command:Re(o.command),args:ku(o.args)}}).filter(s=>s.transport==="http"?!!s.url:!!s.command):[];return{...fs(),name:Re(t.name)||"my_agent",description:Re(t.description),instruction:Re(t.instruction)||"You are a helpful assistant.",agentType:r2(t.agentType),maxIterations:i2(t.maxIterations),a2aUrl:Re(t.a2aUrl),modelName:Re(t.modelName),modelProvider:Re(t.modelProvider),modelApiBase:Re(t.modelApiBase),builtinTools:ku(t.builtinTools).filter(s=>t2.has(s)),customTools:n2(t.customTools),mcpTools:i,memory:{shortTerm:vs(n.shortTerm),longTerm:vs(n.longTerm)},shortTermBackend:ip(t.shortTermBackend,SK,"local"),longTermBackend:ip(t.longTermBackend,NK,"local"),autoSaveSession:vs(t.autoSaveSession),knowledgebase:vs(t.knowledgebase),knowledgebaseBackend:ip(t.knowledgebaseBackend,TK,"local"),tracing:vs(t.tracing),tracingExporters:ku(t.tracingExporters).filter(s=>AK.has(s)),enableA2ui:vs(t.enableA2ui),subAgents:r,selectedSkills:(()=>{if(!Array.isArray(t.selectedSkills))return[];const s=[];for(const o of t.selectedSkills){const a=o&&typeof o=="object"?o:{},l=Re(a.source),c=l==="local"||l==="skillspace"||l==="skillhub"?l:"skillhub",u=Re(a.name)||Re(a.slug)||Re(a.skillName)||Re(a.skillId)||"skill",d=Re(a.folder)||u,h=Re(a.description);if(c==="skillhub"){const w=Re(a.slug);if(!w)continue;s.push({source:c,folder:d,name:u,description:h,slug:w,namespace:Re(a.namespace)||"public"});continue}if(c==="local"){const x=(Array.isArray(a.localFiles)?a.localFiles:[]).map(m=>{const y=m&&typeof m=="object"?m:{},b=Re(y.path),v=Re(y.content);return b?{path:b,content:v}:null}).filter(m=>m!==null);if(x.length===0)continue;s.push({source:c,folder:d,name:u,description:h,localFiles:x});continue}const p=Re(a.skillSpaceId),g=Re(a.skillId);!p||!g||s.push({source:c,folder:d,name:u,description:h,skillSpaceId:p,skillSpaceName:Re(a.skillSpaceName),skillId:g,version:Re(a.version)})}return s})()}}function IK(e){var n,r,i,s,o,a,l,c,u,d,h;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(p=>({name:p.name,description:p.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(p=>{var w,x,m,y;const g={name:p.name,transport:p.transport};return(w=p.url)!=null&&w.trim()&&(g.url=p.url.trim()),(x=p.authToken)!=null&&x.trim()&&(g.authToken=p.authToken.trim()),(m=p.command)!=null&&m.trim()&&(g.command=p.command.trim()),(y=p.args)!=null&&y.length&&(g.args=p.args),g})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((u=e.tracingExporters)!=null&&u.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(d=e.selectedSkills)!=null&&d.length&&(t.selectedSkills=e.selectedSkills.map(p=>{const g={source:p.source,name:p.name,folder:p.folder};return p.description&&(g.description=p.description),p.source==="skillhub"?(g.slug=p.slug,g.namespace=p.namespace??"public"):p.source==="local"?g.localFiles=p.localFiles??[]:(g.skillSpaceId=p.skillSpaceId,g.skillSpaceName=p.skillSpaceName,g.skillId=p.skillId,p.version&&(g.version=p.version)),g})),(h=e.subAgents)!=null&&h.length&&(t.subAgents=e.subAgents.map(p=>{var w,x;const g={name:p.name,description:p.description,instruction:p.instruction};return(w=p.builtinTools)!=null&&w.length&&(g.builtinTools=[...p.builtinTools]),(x=p.customTools)!=null&&x.length&&(g.customTools=p.customTools.map(m=>({name:m.name,description:m.description}))),g})),t}function k1(e){return`# VeADK Agent 结构配置 -# 可在「创建 Agent」页通过「导入 YAML」重新载入。 -`+dK(IK(e))}function a2(e){const t=uK(e);return o2(t)}const OK=[{kind:"intelligent",icon:aB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:mB,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:nB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:gB,title:"工作流",desc:"敬请期待",disabled:!0}];function RK({onSelect:e,onImport:t}){const n=_.useRef(null),[r,i]=_.useState(""),s=OK.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const u=await l.text();t(a2(u))}catch(u){i(`导入失败:${u instanceof Error?u.message:String(u)}`)}};return f.jsx(lC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(hB,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const LK="modulepreload",PK=function(e){return"/"+e},E1={},_1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=PK(l),l in E1)return;E1[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":LK,c||(d.as="script"),d.crossOrigin="",d.href=l,a&&d.setAttribute("nonce",a),document.head.appendChild(d),c)return new Promise((h,p)=>{d.addEventListener("load",h),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},DK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function jK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Ye(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const S1=2048,sp=20,N1=0;function $K(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),w=t.encode(p.content),x=jK(w),m=w.length,y=[];rn(y,67324752),Ye(y,sp),Ye(y,S1),Ye(y,N1),Ye(y,0),Ye(y,0),rn(y,x),rn(y,m),rn(y,m),Ye(y,g.length),Ye(y,0);const b=Uint8Array.from(y);n.push(b,g,w),r.push({nameBytes:g,dataBytes:w,crc:x,size:m,offset:i}),i+=b.length+g.length+w.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Ye(g,sp),Ye(g,sp),Ye(g,S1),Ye(g,N1),Ye(g,0),Ye(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Ye(g,p.nameBytes.length),Ye(g,0),Ye(g,0),Ye(g,0),Ye(g,0),rn(g,0),rn(g,p.offset);const w=Uint8Array.from(g);o.push(w,p.nameBytes),a+=w.length+p.nameBytes.length}const l=[];rn(l,101010256),Ye(l,0),Ye(l,0),Ye(l,r.length),Ye(l,r.length),rn(l,a),rn(l,s),Ye(l,0);const c=[...n,...o,Uint8Array.from(l)],u=c.reduce((p,g)=>p+g.length,0),d=new Uint8Array(u);let h=0;for(const p of c)d.set(p,h),h+=p.length;return new Blob([d],{type:"application/zip"})}tn.registerLanguage("python",LA);tn.registerLanguage("typescript",qA);tn.registerLanguage("javascript",AA);tn.registerLanguage("json",CA);tn.registerLanguage("yaml",WA);tn.registerLanguage("markdown",RA);tn.registerLanguage("bash",kA);tn.registerLanguage("ini",EA);tn.registerLanguage("dockerfile",PV);tn.registerLanguage("makefile",OA);const BK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},T1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function A1(e){return e.replace(/&/g,"&").replace(//g,">")}function FK(e){const n=(e.split("/").pop()??e).toLowerCase();if(T1[n])return T1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return BK[i]??null}function zK(e,t){try{const n=FK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:A1(e)}catch{return A1(e)}}const op=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function UK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function VK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function K0({project:e,onChange:t,onDeploy:n,onAgentAdded:r}){var U,V,C;const i=typeof t=="function",[s,o]=_.useState(((V=(U=e==null?void 0:e.files)==null?void 0:U[0])==null?void 0:V.path)??null),[a,l]=_.useState(new Set),[c,u]=_.useState(!1),[d,h]=_.useState(""),[p,g]=_.useState(!1),[w,x]=_.useState(null),[m,y]=_.useState(null),[b,v]=_.useState({}),[E,k]=_.useState(null),[A,N]=_.useState(!1),I=_.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:UK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const T=e.files.find(F=>F.path===s)??null;function $(F){l(q=>{const G=new Set(q);return G.has(F)?G.delete(F):G.add(F),G})}function j(F,q){t&&(t({...e,files:F}),q!==void 0&&o(q))}function B(F){T&&j(e.files.map(q=>q.path===T.path?{...q,content:F}:q))}function M(){const F=d.trim();if(u(!1),h(""),!!F){if(e.files.some(q=>q.path===F)){o(F);return}j([...e.files,{path:F,content:""}],F)}}function L(){if(!T)return;const F=window.prompt("重命名文件",T.path),q=F==null?void 0:F.trim();!q||q===T.path||e.files.some(G=>G.path===q)||j(e.files.map(G=>G.path===T.path?{...G,path:q}:G),q)}function O(){var q;if(!T)return;const F=e.files.filter(G=>G.path!==T.path);j(F,((q=F[0])==null?void 0:q.path)??null)}async function D(){if(!(!n||p)){x(null),y(null),v({}),k(null),g(!0);try{const F=await n(e,q=>{v(G=>({...G,[q.phase]:q})),k(q.phase)});y(F),k(null)}catch(F){x(F instanceof Error?F.message:String(F))}finally{g(!1)}}}async function R(){if(!(!m||A)){N(!0),x(null);try{const{addConnection:F,remoteAppId:q,loadConnections:G}=await _1(async()=>{const{addConnection:H,remoteAppId:Q,loadConnections:oe}=await Promise.resolve().then(()=>Wx);return{addConnection:H,remoteAppId:Q,loadConnections:oe}},void 0),Y=await F(m.agentName,m.url,m.apikey,"");if(Y.apps.length===0)x("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const H={...Y,appLabels:{[Y.apps[0]]:m.agentName}},oe=G().map(se=>se.id===Y.id?H:se);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(oe));const{registerConnections:ce}=await _1(async()=>{const{registerConnections:se}=await Promise.resolve().then(()=>Wx);return{registerConnections:se}},void 0);if(ce(oe),r){const se=q(Y.id,Y.apps[0]);r(se,m.agentName)}else alert(`🎉 Agent "${m.agentName}" 已添加到左上角下拉列表!`)}}catch(F){x(`添加 Agent 失败:${F instanceof Error?F.message:String(F)}`)}finally{N(!1)}}}function P(){const F=$K(e.files),q=URL.createObjectURL(F),G=document.createElement("a");G.href=q,G.download=`${e.name||"project"}.zip`,document.body.appendChild(G),G.click(),document.body.removeChild(G),URL.revokeObjectURL(q)}function S(F,q,G){return VK(F).map(Y=>{const H=G?`${G}/${Y.name}`:Y.name,Q=Y.path!==void 0,oe={paddingLeft:8+q*14};if(Q){const se=Y.path===s;return f.jsxs("button",{type:"button",className:`pp-row pp-file${se?" pp-active":""}`,style:oe,onClick:()=>o(Y.path),title:Y.path,children:[f.jsx(W$,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]},H)}const ce=a.has(H);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:oe,onClick:()=>$(H),children:[f.jsx(Wn,{className:`pp-ic pp-chevron${ce?"":" pp-open"}`}),f.jsx(Y$,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]}),!ce&&S(Y,q+1,H)]},H)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),i&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),h("")},children:f.jsx(K$,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[c&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:d,onChange:F=>h(F.target.value),onBlur:M,onKeyDown:F=>{F.key==="Enter"&&M(),F.key==="Escape"&&(u(!1),h(""))}}),e.files.length===0&&!c?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):S(I,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:T==null?void 0:T.path,children:(T==null?void 0:T.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[i&&T&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:L,children:f.jsx(uB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:O,children:f.jsx(Do,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:P,children:[f.jsx(U$,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:D,disabled:p,children:[p?f.jsx(at,{className:"pp-ic spin"}):f.jsx(ld,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(p||m||Object.keys(b).length>0)&&f.jsx("ol",{className:"pp-steps",children:op.map((F,q)=>{const G=E?op.findIndex(oe=>oe.phase===E):-1,Y=!!w&&(G===-1?q===0:q===G);let H;m?H="done":Y?H="failed":G===-1?H=p?"active":"pending":qF.phase===E))==null?void 0:C.label)??E}阶段):`:"",w]}),m&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:m.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:m.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:m.apikey})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:R,disabled:A,children:[A?f.jsx(at,{className:"pp-ic spin"}):null,A?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:T==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):i?f.jsx("textarea",{className:"pp-textarea",spellCheck:!1,value:T.content,onChange:F=>B(F.target.value)}):f.jsx("pre",{className:"pp-pre hljs",dangerouslySetInnerHTML:{__html:zK(T.content,T.path)}})})]})]})}const C1="dogfooding",ap="dogfooding",lp="dogfooding_b";let HK=0;const cp=()=>++HK;function M1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function KK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function I1(e){const t=[],n=KK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return e2(o2(o))}catch{}return null}function qK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=_.useState([{id:cp(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=_.useState(""),[l,c]=_.useState(!1),[u,d]=_.useState(null),[h,p]=_.useState(null),[g,w]=_.useState(!1),[x,m]=_.useState(null),[y,b]=_.useState(null),[v,E]=_.useState(!1),[k,A]=_.useState(!1),[N,I]=_.useState({}),T=_.useRef(null),$=_.useRef(null),j=_.useRef(null),B=_.useRef(null),M=_.useRef(null);_.useEffect(()=>{const F=B.current;F&&F.scrollTo({top:F.scrollHeight,behavior:"smooth"})},[i,l]),_.useEffect(()=>{const F=M.current;F&&(F.style.height="auto",F.style.height=Math.min(F.scrollHeight,160)+"px")},[o]);const L=F=>s(q=>[...q,{id:cp(),role:"assistant",text:F}]);async function O(){if(T.current)return T.current;const F=await Pm(C1,e);return T.current=F,F}async function D(F,q){if(q.current)return q.current;const G=await Pm(F,e);return q.current=G,G}async function R(F,q){if(!N[F])try{const G=await e0(q);I(Y=>({...Y,[F]:G.model||q}))}catch{I(G=>({...G,[F]:q}))}}async function P(F,q,G){const Y=await D(F,q);let H=Wr();for await(const oe of cd({appName:F,userId:e,sessionId:Y,text:G}))H=dl(H,oe);const Q=M1(H).trim();return{project:I1(Q),finalText:Q}}const S=async F=>QN(F.name,F.files,{region:"cn-beijing",projectName:"default"}),U=async()=>{const F=o.trim();if(!(!F||l)){if(s(q=>[...q,{id:cp(),role:"user",text:F}]),a(""),d(null),c(!0),g){m(null),b(null),E(!0),A(!0),R("a",ap),R("b",lp);const q=P(ap,$,F).then(({project:Y})=>(m(Y),Y)).catch(Y=>{const H=Y instanceof Error?Y.message:String(Y);return d(H),null}).finally(()=>E(!1)),G=P(lp,j,F).then(({project:Y})=>(b(Y),Y)).catch(Y=>{const H=Y instanceof Error?Y.message:String(Y);return d(H),null}).finally(()=>A(!1));try{const[Y,H]=await Promise.all([q,G]),Q=[Y?`方案 A:${Y.name}`:null,H?`方案 B:${H.name}`:null].filter(Boolean);Q.length?L(`已生成两个方案(${Q.join(",")}),请在右侧对比后采用其一。`):L("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const q=await O();let G=Wr();for await(const Q of cd({appName:C1,userId:e,sessionId:q,text:F}))G=dl(G,Q);const Y=M1(G).trim(),H=I1(Y);H?(p(H),L(`已生成项目:${H.name}(${H.files.length} 个文件),可在右侧预览和编辑。`)):L(Y||"(助手没有返回内容,请再描述一下你的需求。)")}catch(q){const G=q instanceof Error?q.message:String(q);d(G),L(`抱歉,调用智能构建助手失败:${G}`)}finally{c(!1)}}},V=F=>{const q=F==="a"?x:y;if(!q)return;p(q),w(!1),m(null),b(null),E(!1),A(!1);const G=F==="a"?"A":"B",Y=F==="a"?N.a:N.b;L(`已采用方案 ${G}(${Y??(F==="a"?ap:lp)}),可继续编辑。`)},C=F=>{F.key==="Enter"&&!F.shiftKey&&!F.nativeEvent.isComposing&&(F.preventDefault(),U())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:B,children:[f.jsx(yy,{initial:!1,children:i.map(F=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${F.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[F.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(yo,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:F.role==="assistant"?f.jsx(A0,{text:F.text}):F.text})]},F.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(yo,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),u&&f.jsxs("div",{className:"ic-error",children:[f.jsx(B$,{className:"ic-error-icon"}),u]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:M,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:F=>a(F.target.value),onKeyDown:C,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void U(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(dB,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:F=>w(F.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(O1,{side:"a",project:x,loading:v,model:N.a,onAdopt:()=>V("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(O1,{side:"b",project:y,loading:k,model:N.b,onAdopt:()=>V("b")})]}):h?f.jsx(K0,{project:h,onChange:p,onDeploy:S,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(G$,{className:"ic-preview-empty-glyph"}),f.jsx(tf,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function O1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(at,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(K0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}function vi(e,t){return e[t]|e[t+1]<<8}function oa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function WK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function l2(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(oa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=vi(e,n+10);let i=oa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;a{var a;return{source:"skillhub",id:o.Id??o.Slug??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function YK(e){const t=e.slug||"",n=e.namespace||"public",r=`${c2}/download/${t}?namespace=${encodeURIComponent(n)}`,i=await fetch(r);if(!i.ok)throw new Error(`下载技能失败 (${i.status})`);const s=new Uint8Array(await i.arrayBuffer()),o=await l2(s),a=e.folder||t.split("/").pop()||"skill";return o.filter(l=>!l.name.endsWith("/")).map(l=>({path:`skills/${a}/${l.name}`,content:l.text}))}async function q0(e){const t=await fetch(e,{headers:{accept:"application/json"}});if(t.status===409)throw new Error("服务端未配置 Volcengine AK/SK,无法访问 SkillSpace");if(t.status===401)throw new Error("请先登录以访问 SkillSpace");if(t.status===404)throw new Error("技能不存在或无 SKILL.md 内容");if(!t.ok){let n="";try{n=(await t.json()).detail||""}catch{}throw new Error(`请求失败 (${t.status})${n?": "+n:""}`)}return t.json()}async function XK(){return(await q0("/web/skill-spaces")).items||[]}async function QK(e){return(await q0(`/web/skill-spaces/${encodeURIComponent(e)}/skills`)).items||[]}async function ZK(e,t,n){const r=n?`?version=${encodeURIComponent(n)}`:"";return q0(`/web/skill-spaces/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}${r}`)}function JK(e,t){return{source:"skillspace",id:`ss:${e.id}/${t.skillId}/${t.version}`,name:t.skillName,description:t.skillDescription,folder:t.skillName,skillSpaceId:e.id,skillSpaceName:e.name,skillId:t.skillId,version:t.version}}async function e7(e,t,n,r){const i=await ZK(e,t,n);return[{path:`skills/${r}/SKILL.md`,content:i.skillMd}]}function t7({selected:e,onChange:t}){const[n,r]=_.useState(""),[i,s]=_.useState([]),[o,a]=_.useState(!1),[l,c]=_.useState(null),[u,d]=_.useState(!1),h=w=>e.some(x=>x.source==="skillhub"&&x.slug===w),p=w=>{w.slug&&(h(w.slug)?t(e.filter(x=>!(x.source==="skillhub"&&x.slug===w.slug))):t([...e,{source:"skillhub",slug:w.slug,name:w.name,folder:w.slug.split("/").pop()||w.name,namespace:w.namespace||"public",description:w.description}]))},g=async w=>{a(!0),c(null),d(!0);try{const x=await GK(w);s(x)}catch(x){c(x instanceof Error?x.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return _.useEffect(()=>{const w=n.trim();if(!w){s([]),d(!1),c(null);return}const x=setTimeout(()=>g(w),300);return()=>clearTimeout(x)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Lm,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:w=>r(w.target.value),onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),n.trim()&&g(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&g(n),disabled:!n.trim()||o,children:[o?f.jsx(at,{className:"cw-i cw-spin"}):f.jsx(Lm,{className:"cw-i"}),"搜索"]})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx(ef,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(w=>{const x=h(w.slug||"");return f.jsxs("button",{type:"button",className:`cw-skill-result ${x?"is-on":""}`,onClick:()=>p(w),"aria-pressed":x,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:x?f.jsx($l,{className:"cw-i cw-i-sm"}):f.jsx(mi,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:w.name}),w.description&&f.jsx("span",{className:"cw-skill-result-desc",children:w.description}),w.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:w.sourceRepo})]})]},w.id||w.slug)})}):u&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!u&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}const ig=/(^|\/)skill\.md$/i;class si extends Error{}function n7(e,t){const n=(e??"").replace(/\r\n?/g,` -`).split(` -`);if(!n.length||n[0].trim()!=="---")throw new si(`${t} 的 SKILL.md 必须以 YAML frontmatter (--- ... ---) 开头`);let r=-1;for(let a=1;a=2&&(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))}function i7(e,t){if(!e)throw new si(`${t} 的 SKILL.md 缺少必填的 name frontmatter`);if(e.length>64)throw new si(`${t} 的 name 长度超过 64 个字符`);if(!/^[a-z0-9-]+$/.test(e))throw new si(`${t} 的 name 必须匹配 [a-z0-9-]+(小写字母、数字、短横线)`)}function s7(e,t){if(!e)throw new si(`${t} 的 SKILL.md 缺少必填的 description frontmatter`);if(e.length>1024)throw new si(`${t} 的 description 长度超过 1024 个字符`);if(/<[^>]+>/.test(e))throw new si(`${t} 的 description 不能包含 XML 标签`)}function u2(e){const t=e.map(r=>({path:r.path.replace(/\\/g,"/").replace(/^\.\//,""),text:r.text})).filter(r=>r.path.length>0&&!r.path.endsWith("/")),n=new Set(t.map(r=>r.path.split("/")[0]));if(n.size===1&&t.every(r=>r.path.includes("/"))){const r=[...n][0]+"/";return t.map(i=>({path:i.path.slice(r.length),text:i.text}))}return t}function o7(e){const t=new Map,n=new Set;for(const r of e)if(ig.test("/"+r.path)){const i=r.path.split("/");n.add(i.slice(0,-1).join("/"))}for(const r of e){const i=r.path.split("/");let s="";for(let c=i.length-1;c>=0;c--){const u=i.slice(0,c).join("/");if(n.has(u)){s=u;break}}const o=ig.test("/"+r.path);if(!s&&!o&&!n.has("")||!n.has(s)&&!o)continue;const a=s?r.path.slice(s.length+1):r.path,l=t.get(s)||[];l.push({path:a,text:r.text}),t.set(s,l)}return t}function a7(e,t,n){const r=`${n}${e?"/"+e:""}`,i=t.find(l=>ig.test("/"+l.path));if(!i)return{hit:null,error:`${r} 缺少 SKILL.md`};let s;try{s=n7(i.text,r)}catch(l){return{hit:null,error:l instanceof Error?l.message:String(l)}}const o=s.name,a=[];for(const l of t){if(l.path.split("/").some(d=>d===".."))return{hit:null,error:`${r} 包含非法路径(..):${l.path}`};const u=`skills/${o}/${l.path}`;if(!u.startsWith(`skills/${o}/`))return{hit:null,error:`${r} 包含非法路径:${l.path}`};a.push({path:u,content:l.text})}return{hit:{source:"local",id:`local:${o}:${t.length}`,name:s.name,description:s.description,folder:o,localFiles:a},error:null}}async function l7(e){const t=new Uint8Array(await e.arrayBuffer()),r=(await l2(t)).map(i=>({path:i.name,text:i.text}));return d2(u2(r),e.name)}async function c7(e){const t=[];for(let n=0;ne.some(y=>y.source==="local"&&y.folder===m),d=m=>{m.localFiles&&(u(m.folder||m.name)?t(e.filter(y=>!(y.source==="local"&&y.folder===(m.folder||m.name)))):t([...e,{source:"local",folder:m.folder||m.name,name:m.name,description:m.description,localFiles:m.localFiles}]))},h=_.useRef([]),p=_.useRef(e);_.useEffect(()=>{h.current=o},[o]),_.useEffect(()=>{p.current=e},[e]);const g=m=>{const y=new Set([...h.current.map(k=>k.folder||k.name),...p.current.filter(k=>k.source==="local").map(k=>k.folder)]),b=[],v=[];for(const k of m.hits){const A=k.folder||k.name;if(y.has(A)){b.push(k.name);continue}y.add(A),v.push(k)}a(k=>[...k,...v]);const E=[...m.errors];if(b.length>0&&E.push(`已跳过重复技能:${b.join("、")}`),s(E),v.length===1&&m.errors.length===0&&b.length===0){const k=v[0];k.localFiles&&t([...p.current,{source:"local",folder:k.folder||k.name,name:k.name,description:k.description,localFiles:k.localFiles}])}},w=async m=>{const y=m.target.files;if(!(!y||y.length===0)){c(!0);try{g(await c7(y))}finally{c(!1),n.current&&(n.current.value="")}}},x=async m=>{var b;const y=(b=m.target.files)==null?void 0:b[0];if(y){c(!0);try{g(await l7(y))}finally{c(!1),r.current&&(r.current.value="")}}};return f.jsxs("div",{className:"cw-local",children:[f.jsxs("div",{className:"cw-local-actions",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var m;return(m=n.current)==null?void 0:m.click()},disabled:l,children:[f.jsx(ad,{className:"cw-i"}),"上传文件夹"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var m;return(m=r.current)==null?void 0:m.click()},disabled:l,children:[f.jsx(ad,{className:"cw-i"}),"上传 .zip"]}),f.jsx("input",{ref:n,type:"file",webkitdirectory:"",directory:"",multiple:!0,hidden:!0,onChange:w}),f.jsx("input",{ref:r,type:"file",accept:".zip,application/zip",hidden:!0,onChange:x})]}),f.jsx("p",{className:"cw-local-hint",children:"每个技能需包含 SKILL.md(含 name / description frontmatter)。支持选择包含多个技能文件夹的目录。"}),l&&f.jsx("p",{className:"cw-empty-line",children:"正在读取文件…"}),i.length>0&&f.jsxs("div",{className:"cw-banner",children:[f.jsx(ef,{className:"cw-i"}),f.jsx("span",{children:i.join(";")})]}),o.length>0&&f.jsx("div",{className:"cw-skill-results",children:o.map(m=>{var b;const y=u(m.folder||m.name);return f.jsxs("button",{type:"button",className:`cw-skill-result ${y?"is-on":""}`,onClick:()=>d(m),"aria-pressed":y,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:y?f.jsx($l,{className:"cw-i cw-i-sm"}):f.jsx(mi,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:m.name}),m.description&&f.jsx("span",{className:"cw-skill-result-desc",children:m.description}),f.jsxs("span",{className:"cw-skill-result-repo",children:["本地 · ",((b=m.localFiles)==null?void 0:b.length)??0," 个文件"]})]})]},m.id)})})]})}function d7({selected:e,onChange:t}){const[n,r]=_.useState([]),[i,s]=_.useState([]),[o,a]=_.useState(""),[l,c]=_.useState(!0),[u,d]=_.useState(!1),[h,p]=_.useState(null);_.useEffect(()=>{let m=!1;return(async()=>{c(!0),p(null);try{const y=await XK();m||(r(y),y.length>0&&a(y[0].id))}catch(y){m||p(y instanceof Error?y.message:"加载失败")}finally{m||c(!1)}})(),()=>{m=!0}},[]),_.useEffect(()=>{if(!o){s([]);return}let m=!1;return(async()=>{d(!0),p(null);try{const y=await QK(o);m||s(y)}catch(y){m||p(y instanceof Error?y.message:"加载失败")}finally{m||d(!1)}})(),()=>{m=!0}},[o]);const g=n.find(m=>m.id===o),w=(m,y)=>e.some(b=>b.source==="skillspace"&&b.skillId===m&&(b.version||"")===y),x=m=>{if(g)if(w(m.skillId,m.version))t(e.filter(y=>!(y.source==="skillspace"&&y.skillId===m.skillId&&(y.version||"")===m.version)));else{const y=JK(g,m);t([...e,{source:"skillspace",folder:y.folder||m.skillName,name:y.name,description:y.description,skillSpaceId:y.skillSpaceId,skillSpaceName:y.skillSpaceName,skillId:y.skillId,version:y.version}])}};return f.jsx("div",{className:"cw-skillspace",children:l?f.jsxs("p",{className:"cw-empty-line",children:[f.jsx(at,{className:"cw-i cw-spin"})," 正在加载 SkillSpace 列表…"]}):h?f.jsxs("div",{className:"cw-banner",children:[f.jsx(ef,{className:"cw-i"}),f.jsx("span",{children:h})]}):n.length===0?f.jsx("p",{className:"cw-empty-line",children:"此账号下没有 SkillSpace。"}):f.jsxs(f.Fragment,{children:[f.jsx("select",{className:"cw-input cw-skillspace-select",value:o,onChange:m=>a(m.target.value),"aria-label":"选择 SkillSpace",children:n.map(m=>f.jsxs("option",{value:m.id,children:[m.name||m.id,m.description?` — ${m.description}`:""]},m.id))}),u?f.jsxs("p",{className:"cw-empty-line",children:[f.jsx(at,{className:"cw-i cw-spin"})," 正在加载技能列表…"]}):i.length===0?f.jsx("p",{className:"cw-empty-line",children:"此 SkillSpace 暂无技能。"}):f.jsx("div",{className:"cw-skill-results",children:i.map(m=>{const y=w(m.skillId,m.version);return f.jsxs("button",{type:"button",className:`cw-skill-result ${y?"is-on":""}`,onClick:()=>x(m),"aria-pressed":y,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:y?f.jsx($l,{className:"cw-i cw-i-sm"}):f.jsx(mi,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsxs("span",{className:"cw-skill-result-name",children:[m.skillName,m.version&&f.jsxs("span",{className:"cw-skill-result-version",children:[" ","v",m.version]})]}),m.skillDescription&&f.jsx("span",{className:"cw-skill-result-desc",children:m.skillDescription}),f.jsxs("span",{className:"cw-skill-result-repo",children:[f.jsx(Yy,{className:"cw-i cw-i-sm"})," ",(g==null?void 0:g.name)||o]})]})]},`${m.skillId}/${m.version}`)})})]})})}function R1(e,t,n="text/plain"){const r=URL.createObjectURL(new Blob([t],{type:`${n};charset=utf-8`})),i=document.createElement("a");i.href=r,i.download=e,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}const L1=[{id:"type",label:"类型",hint:"选择 Agent 类型",icon:fB,required:!0},{id:"basic",label:"基本信息",hint:"名称、描述与系统提示词",icon:ef,required:!0},{id:"model",label:"模型配置",hint:"模型与服务(可选)",icon:ul},{id:"tools",label:"工具",hint:"可调用的能力",icon:Zy},{id:"skills",label:"技能",hint:"声明式技能",icon:tf},{id:"memory",label:"记忆",hint:"短期 / 长期",icon:KN},{id:"knowledge",label:"知识库",hint:"外部知识检索",icon:mu},{id:"tracing",label:"观测",hint:"Tracing 与 A2UI",icon:VN},{id:"subagents",label:"子 Agent",hint:"嵌套协作",icon:Gy},{id:"review",label:"完成",hint:"预览并创建",icon:ld}];function f7({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),f.jsx("path",{d:"M12 6.5c.4 2.4 1 3 3.4 3.4-2.4.4-3 1-3.4 3.4-.4-2.4-1-3-3.4-3.4 2.4-.4 3-1 3.4-3.4Z"})]})}const sg=[{id:"llm",label:"LLM 智能体",desc:"大模型驱动,自主完成任务",icon:f7},{id:"sequential",label:"顺序编排",desc:"子 Agent 按顺序依次执行",icon:HN},{id:"parallel",label:"并行编排",desc:"子 Agent 并行执行后汇总",icon:WN},{id:"loop",label:"循环编排",desc:"子 Agent 循环执行到满足条件",icon:Qy},{id:"a2a",label:"A2A 远程 Agent",desc:"挂载 URL 指向的远程 Agent",icon:Jd}],f2=e=>e==="sequential"||e==="parallel"||e==="loop",W0=e=>e==="a2a";function P1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx($l,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function up({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function h7({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(yy,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(mi,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function p7({s:e,onRemove:t}){let n=tf,r="Skill Hub";return e.source==="local"?(n=ad,r="本地"):e.source==="skillspace"&&(n=Yy,r="SkillSpace"),f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(n,{className:"cw-i cw-i-sm"}),e.name,f.jsx("span",{className:"cw-pill-source",children:r}),f.jsx("button",{type:"button",className:"cw-pill-x",onClick:t,"aria-label":`移除 ${e.name}`,children:f.jsx(nf,{className:"cw-i cw-i-sm"})})]},`${e.source}:${e.folder}:${e.skillId||e.slug||""}:${e.version||""}`)}const m7=[{id:"skillhub",label:"Skill Hub",icon:Jd},{id:"local",label:"本地文件",icon:ad},{id:"skillspace",label:"SkillSpace",icon:Yy}];function g7({selected:e,onChange:t}){const[n,r]=_.useState("skillhub"),i=s=>t(e.filter(o=>dp(o)!==s));return f.jsxs("div",{className:"cw-skillspane",children:[e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(yy,{initial:!1,children:e.map(s=>f.jsx(p7,{s,onRemove:()=>i(dp(s))},dp(s)))})})]}),f.jsx("div",{className:"cw-skill-sourcetabs",role:"tablist",children:m7.map(({id:s,label:o,icon:a})=>f.jsxs("button",{type:"button",role:"tab","aria-selected":n===s,className:`cw-skill-pickertab ${n===s?"is-on":""}`,onClick:()=>r(s),children:[f.jsx(a,{className:"cw-i cw-i-sm"}),o]},s))}),f.jsxs("div",{className:"cw-skill-tabbody",children:[n==="skillhub"&&f.jsx(t7,{selected:e,onChange:t}),n==="local"&&f.jsx(u7,{selected:e,onChange:t}),n==="skillspace"&&f.jsx(d7,{selected:e,onChange:t})]})]})}function dp(e){return e.source==="skillhub"?`hub:${e.namespace}/${e.slug}`:e.source==="local"?`local:${e.folder}`:`ss:${e.skillSpaceId}/${e.skillId}/${e.version||""}`}function ks({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const D1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function y7(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function Eu(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Xl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Xl(s[r],i,n),{...e,subAgents:s}}function b7(e,t){return Xl(e,t,n=>({...n,subAgents:[...n.subAgents,fs()]}))}function w7(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Xl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function x7(e,t,n,r){return Xl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const v7=e=>e==="sequential"||e==="loop",h2=e=>!W0(e.agentType),k7=3,E7=e=>sg.find(t=>t.id===(e??"llm"))??sg[0];function p2(e){return e.name.trim().length===0?"缺少名称":W0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:f2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function m2(e,t=[]){const n=[],r=p2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),h2(e)&&e.subAgents.forEach((i,s)=>n.push(...m2(i,[...t,s]))),n}function g2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=Eu(e,t),o=E7(s.agentType),a=o.icon,l=t.length===0,c=D1(t,n),u=h2(s),d=u&&t.length{const b=b7(e,t),v=Eu(b,t).subAgents.length-1;i(b,[...t,v])},p=()=>i(w7(e,t),t.slice(0,-1)),g=t.slice(0,-1),w=!l&&v7(Eu(e,g).agentType),[x,m]=_.useState(!1),y=b=>{b.preventDefault(),b.stopPropagation(),m(!1);const v=b.dataTransfer.getData("application/x-agent-path");if(!v)return;let E;try{E=JSON.parse(v)}catch{return}if(!D1(E.slice(0,-1),g))return;const k=E[E.length-1],A=t[t.length-1];k!==A&&i(x7(e,g,k,A),[...g,A])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${w?"is-draggable":""} ${x?"is-dragover":""} ${p2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:w,onDragStart:w?b=>{b.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),b.dataTransfer.effectAllowed="move",b.stopPropagation()}:void 0,onDragOver:w?b=>{b.preventDefault(),m(!0)}:void 0,onDragLeave:w?()=>m(!1):void 0,onDrop:w?y:void 0,onClick:()=>r(t),onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[d&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:b=>{b.stopPropagation(),h()},children:f.jsx(mi,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:b=>{b.stopPropagation(),p()},children:f.jsx(Do,{className:"cw-i cw-i-sm"})})]})]}),u&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((b,v)=>f.jsx(g2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function _7({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){const[s,o]=_.useState(()=>r??fs()),[a,l]=_.useState(!1),[c,u]=_.useState(null),[d,h]=_.useState(!1),[p,g]=_.useState("type"),w=_.useRef(null),[x,m]=_.useState(""),y=async K=>{var le;const re=(le=K.target.files)==null?void 0:le[0];if(K.target.value="",!!re){m("");try{const ne=await re.text();o(a2(ne)),v([]),l(!1)}catch(ne){m(`导入失败:${ne instanceof Error?ne.message:String(ne)}`)}}},[b,v]=_.useState([]),E=_.useRef(null),k=_.useRef({}),A=_.useRef(null);A.current||(A.current=({meta:K,children:re})=>f.jsxs("section",{ref:le=>{k.current[K.id]=le},id:`cw-sec-${K.id}`,"data-step-id":K.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[K.label,K.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),re]}));const N=y7(s,b)?b:[],I=Eu(s,N),T=K=>o(re=>Xl(re,N,le=>({...le,...K}))),$=(K,re)=>{o(K),re&&v(re)},j=I.builtinTools??[],B=I.mcpTools??[],M=I.tracingExporters??[],L=I.selectedSkills??[],O=K=>T({builtinTools:j.includes(K)?j.filter(re=>re!==K):[...j,K]}),D=K=>{const re=M.includes(K)?M.filter(le=>le!==K):[...M,K];T({tracingExporters:re,tracing:re.length>0?!0:I.tracing})},R=f2(I.agentType),P=W0(I.agentType),S=I.name.trim().length===0,U=I.instruction.trim().length===0,V=(I.a2aUrl??"").trim().length===0,C=_.useMemo(()=>m2(s),[s]),F=C.length===0,q=_.useMemo(()=>{var K,re,le,ne;return{type:!0,basic:!S&&(R||P||!U),model:!!((K=I.modelName)!=null&&K.trim()||(re=I.modelProvider)!=null&&re.trim()||(le=I.modelApiBase)!=null&&le.trim()),tools:j.length>0||B.length>0,skills:L.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,subagents:(((ne=I.subAgents)==null?void 0:ne.length)??0)>0,review:F}},[I,S,U,R,P,F,j,B,L]),G=R||P?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing"],Y=L1.filter(K=>G.includes(K.id)),H=Y.findIndex(K=>K.id===p),Q=K=>{var re;(re=k.current[K])==null||re.scrollIntoView({behavior:"smooth",block:"start"})};_.useEffect(()=>{if(c)return;const K=E.current;if(!K)return;const re=new IntersectionObserver(le=>{var ie,_e;const he=(_e=(ie=le.filter(ke=>ke.isIntersecting).sort((ke,ye)=>ke.boundingClientRect.top-ye.boundingClientRect.top)[0])==null?void 0:ie.target)==null?void 0:_e.dataset.stepId;he&&g(he)},{root:K,rootMargin:"0px 0px -65% 0px",threshold:0});for(const le of Object.values(k.current))le&&re.observe(le);return()=>re.disconnect()},[c]);const oe=async()=>{if(!F){l(!0),C[0]&&v(C[0].path);return}const K=e2(s),re=[],le=new Set,ne=he=>{for(const ie of he.selectedSkills??[]){const _e=ie.source==="skillhub"?`hub:${ie.namespace}/${ie.slug}`:ie.source==="local"?`local:${ie.folder}`:`ss:${ie.skillSpaceId}/${ie.skillId}/${ie.version||""}`;le.has(_e)||(le.add(_e),re.push(ie))}(he.subAgents??[]).forEach(ne)};if(ne(s),re.length>0){h(!0);try{const he=await Promise.all(re.map(_e=>(_e.source==="local"?Promise.resolve(_e.localFiles??[]):_e.source==="skillspace"?e7(_e.skillSpaceId,_e.skillId,_e.version,_e.folder):YK(_e)).catch(ye=>(console.warn(`下载技能失败:${_e.name}`,ye),[])))),ie=new Set(K.files.map(_e=>_e.path));for(const _e of he)for(const ke of _e)ie.has(ke.path)||(K.files.push(ke),ie.add(ke.path))}finally{h(!1)}}u(K)};if(c){const K=async(re,le)=>QN(re.name,re.files,{region:"cn-beijing",projectName:"default"},{author:i,onStage:le});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>u(null),children:[f.jsx(FN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(ld,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>R1(`${s.name||"agent"}.yaml`,k1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Fx,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(K0,{project:c,onChange:u,onDeploy:K,onAgentAdded:n})})]})}const ce=A.current,se=K=>L1.find(re=>re.id===K);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(g2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:$})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:sg.map(K=>{const re=(I.agentType??"llm")===K.id,le=K.icon;return f.jsxs("label",{className:`cw-typeradio-item ${re?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:re,onChange:()=>T({agentType:K.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(le,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:K.label})]})})]},K.id)})}),C.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",C.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:C.map(K=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v(K.path)},children:[K.name," · ",K.problem]},K.path.join(".")+K.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:E,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(ce,{meta:se("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&S?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:K=>T({name:K.target.value})}),a&&S&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:K=>T({description:K.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),R?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:K=>T({maxIterations:Math.max(1,Number(K.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):P?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&V?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:K=>T({a2aUrl:K.target.value})}),a&&V?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&U?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… - -你的目标是…… - -约束: -- ……`,onChange:K=>T({instruction:K.target.value})}),a&&U?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!R&&!P&&f.jsxs(f.Fragment,{children:[f.jsx(ce,{meta:se("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:K=>T({modelName:K.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:K=>T({modelProvider:K.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:K=>T({modelApiBase:K.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(ce,{meta:se("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(P1,{items:GC,selected:j,onToggle:O})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(h7,{tools:B,onChange:K=>T({mcpTools:K})})]})]})}),f.jsx(ce,{meta:se("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub、本地文件或 AgentKit SkillSpace 添加技能,生成项目时会写入 skills/ 目录。"}),f.jsx(g7,{selected:L,onChange:K=>T({selectedSkills:K})})]})}),f.jsx(ce,{meta:se("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(ks,{checked:I.memory.shortTerm,onChange:K=>T({memory:{...I.memory,shortTerm:K}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:KN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(up,{options:YC,value:I.shortTermBackend,onChange:K=>T({shortTermBackend:K})})]}),f.jsx(ks,{checked:I.memory.longTerm,onChange:K=>T({memory:{...I.memory,longTerm:K}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:mu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(up,{options:XC,value:I.longTermBackend,onChange:K=>T({longTermBackend:K})}),f.jsx(ks,{checked:!!I.autoSaveSession,onChange:K=>T({autoSaveSession:K}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:mu})]})]})}),f.jsx(ce,{meta:se("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(ks,{checked:I.knowledgebase,onChange:K=>T({knowledgebase:K}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:mu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(up,{options:QC,value:I.knowledgebaseBackend,onChange:K=>T({knowledgebaseBackend:K})})]})]})}),f.jsx(ce,{meta:se("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(ks,{checked:I.tracing,onChange:K=>T({tracing:K}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:VN}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(P1,{items:ZC,selected:M,onToggle:D})]}),f.jsx(ks,{checked:I.enableA2ui,onChange:K=>T({enableA2ui:K}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:tB})]})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(H,0)/Math.max(Y.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),Y.map(K=>{const re=K.id===p,le=q[K.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${re?"is-active":""} ${le?"is-done":""}`,onClick:()=>Q(K.id),"aria-current":re?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:K.label}),K.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:K.hint})]})]})},K.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:F?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),C[0]&&v(C[0].path)},children:["待补全(",C.length,"):",C[0].name," · ",C[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[x&&f.jsx("span",{className:"cw-footer-importerr",children:x}),f.jsx("input",{ref:w,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:y}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var K;return(K=w.current)==null?void 0:K.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(q$,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>R1(`${s.name||"agent"}.yaml`,k1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Fx,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:oe,disabled:!F||d,children:d?f.jsxs(f.Fragment,{children:[f.jsx(at,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(ld,{className:"cw-i"}),"生成项目"]})})]})]})]})}function pr(e){return{...fs(),...e}}const S7=[{id:"support",icon:Z$,draft:pr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:j$,draft:pr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:eB,draft:pr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:F$,draft:pr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:lB,draft:pr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:pB,draft:pr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[pr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),pr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),pr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function N7(e){const t=[];return e.tools.length&&t.push({icon:Zy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:D$,label:"记忆"}),e.knowledgebase&&t.push({icon:P$,label:"知识库"}),e.tracing&&t.push({icon:O$,label:"观测"}),e.subAgents.length&&t.push({icon:cB,label:`子Agent ${e.subAgents.length}`}),t}function T7({onBack:e,onCreate:t}){const[n,r]=_.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(C7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(A7,{onPick:r})})}function A7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:S7.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function C7({template:e,onBack:t,onCreate:n}){const[r,i]=_.useState(e.draft.name),s=e.icon,o=N7(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(FN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:M7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Wn,{className:"icon"})]})]})]})}function M7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function pt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function wf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}_u.prototype=wf.prototype={constructor:_u,on:function(e,t){var n=this._,r=O7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),$1.hasOwnProperty(t)?{space:$1[t],local:e}:e}function L7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===og&&t.documentElement.namespaceURI===og?t.createElement(e):t.createElementNS(n,e)}}function P7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function y2(e){var t=xf(e);return(t.local?P7:L7)(t)}function D7(){}function G0(e){return e==null?D7:function(){return this.querySelector(e)}}function j7(e){typeof e!="function"&&(e=G0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=b&&(b=y+1);!(E=x[b])&&++b=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function lq(e){e||(e=cq);function t(d,h){return d&&h?e(d.__data__,h.__data__):!d-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function uq(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function dq(){return Array.from(this)}function fq(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Eq:typeof t=="function"?Sq:_q)(e,t,n??"")):Eo(this.node(),e)}function Eo(e,t){return e.style.getPropertyValue(t)||k2(e).getComputedStyle(e,null).getPropertyValue(t)}function Tq(e){return function(){delete this[e]}}function Aq(e,t){return function(){this[e]=t}}function Cq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Mq(e,t){return arguments.length>1?this.each((t==null?Tq:typeof t=="function"?Cq:Aq)(e,t)):this.node()[e]}function E2(e){return e.trim().split(/^|\s+/)}function Y0(e){return e.classList||new _2(e)}function _2(e){this._node=e,this._names=E2(e.getAttribute("class")||"")}_2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function S2(e,t){for(var n=Y0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function iW(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function ag(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}ag.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function pW(e){return!e.ctrlKey&&!e.button}function mW(){return this.parentNode}function gW(e,t){return t??{x:e.x,y:e.y}}function yW(){return navigator.maxTouchPoints||"ontouchstart"in this}function I2(){var e=pW,t=mW,n=gW,r=yW,i={},s=wf("start","drag","end"),o=0,a,l,c,u,d=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",x).on("touchmove.drag",m,hW).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,E){if(!(u||!e.call(this,v,E))){var k=b(this,t.call(this,v,E),v,E,"mouse");k&&(an(v.view).on("mousemove.drag",g,bl).on("mouseup.drag",w,bl),C2(v.view),fp(v),c=!1,a=v.clientX,l=v.clientY,k("start",v))}}function g(v){if(io(v),!c){var E=v.clientX-a,k=v.clientY-l;c=E*E+k*k>d}i.mouse("drag",v)}function w(v){an(v.view).on("mousemove.drag mouseup.drag",null),M2(v.view,c),io(v),i.mouse("end",v)}function x(v,E){if(e.call(this,v,E)){var k=v.changedTouches,A=t.call(this,v,E),N=k.length,I,T;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?qc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?qc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=wW.exec(e))?new Qt(t[1],t[2],t[3],1):(t=xW.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=vW.exec(e))?qc(t[1],t[2],t[3],t[4]):(t=kW.exec(e))?qc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=EW.exec(e))?K1(t[1],t[2]/100,t[3]/100,1):(t=_W.exec(e))?K1(t[1],t[2]/100,t[3]/100,t[4]):B1.hasOwnProperty(e)?U1(B1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function U1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function qc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function TW(e){return e instanceof Zl||(e=Ji(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function lg(e,t,n,r){return arguments.length===1?TW(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}X0(Qt,lg,O2(Zl,{brighter(e){return e=e==null?vd:Math.pow(vd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?wl:Math.pow(wl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(Vi(this.r),Vi(this.g),Vi(this.b),kd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:V1,formatHex:V1,formatHex8:AW,formatRgb:H1,toString:H1}));function V1(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}`}function AW(){return`#${Di(this.r)}${Di(this.g)}${Di(this.b)}${Di((isNaN(this.opacity)?1:this.opacity)*255)}`}function H1(){const e=kd(this.opacity);return`${e===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${e===1?")":`, ${e})`}`}function kd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Vi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Di(e){return e=Vi(e),(e<16?"0":"")+e.toString(16)}function K1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Bn(e,t,n,r)}function R2(e){if(e instanceof Bn)return new Bn(e.h,e.s,e.l,e.opacity);if(e instanceof Zl||(e=Ji(e)),!e)return new Bn;if(e instanceof Bn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new Bn(o,a,l,e.opacity)}function CW(e,t,n,r){return arguments.length===1?R2(e):new Bn(e,t,n,r??1)}function Bn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}X0(Bn,CW,O2(Zl,{brighter(e){return e=e==null?vd:Math.pow(vd,e),new Bn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?wl:Math.pow(wl,e),new Bn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(hp(e>=240?e-240:e+120,i,r),hp(e,i,r),hp(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Bn(q1(this.h),Wc(this.s),Wc(this.l),kd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=kd(this.opacity);return`${e===1?"hsl(":"hsla("}${q1(this.h)}, ${Wc(this.s)*100}%, ${Wc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function q1(e){return e=(e||0)%360,e<0?e+360:e}function Wc(e){return Math.max(0,Math.min(1,e||0))}function hp(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Q0=e=>()=>e;function MW(e,t){return function(n){return e+n*t}}function IW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function OW(e){return(e=+e)==1?L2:function(t,n){return n-t?IW(t,n,e):Q0(isNaN(t)?n:t)}}function L2(e,t){var n=t-e;return n?MW(e,n):Q0(isNaN(e)?t:e)}const Ed=function e(t){var n=OW(t);function r(i,s){var o=n((i=lg(i)).r,(s=lg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=L2(i.opacity,s.opacity);return function(u){return i.r=o(u),i.g=a(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=e,r}(1);function RW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=pp.lastIndex;return n180?u+=360:u-c>180&&(c+=360),h.push({i:d.push(i(d)+"rotate(",null,r)-2,x:er(c,u)})):u&&d.push(i(d)+"rotate("+u+r)}function a(c,u,d,h){c!==u?h.push({i:d.push(i(d)+"skewX(",null,r)-2,x:er(c,u)}):u&&d.push(i(d)+"skewX("+u+r)}function l(c,u,d,h,p,g){if(c!==d||u!==h){var w=p.push(i(p)+"scale(",null,",",null,")");g.push({i:w-4,x:er(c,d)},{i:w-2,x:er(u,h)})}else(d!==1||h!==1)&&p.push(i(p)+"scale("+d+","+h+")")}return function(c,u){var d=[],h=[];return c=e(c),u=e(u),s(c.translateX,c.translateY,u.translateX,u.translateY,d,h),o(c.rotate,u.rotate,d,h),a(c.skewX,u.skewX,d,h),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,d,h),c=u=null,function(p){for(var g=-1,w=h.length,x;++g=0&&e._call.call(void 0,t),e=e._next;--_o}function Y1(){es=(Sd=vl.now())+vf,_o=ba=0;try{GW()}finally{_o=0,XW(),es=0}}function YW(){var e=vl.now(),t=e-Sd;t>$2&&(vf-=t,Sd=e)}function XW(){for(var e,t=_d,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_d=n);wa=e,dg(r)}function dg(e){if(!_o){ba&&(ba=clearTimeout(ba));var t=e-es;t>24?(e<1/0&&(ba=setTimeout(Y1,e-vl.now()-vf)),aa&&(aa=clearInterval(aa))):(aa||(Sd=vl.now(),aa=setInterval(YW,$2)),_o=1,B2(Y1))}}function X1(e,t,n){var r=new Nd;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var QW=wf("start","end","cancel","interrupt"),ZW=[],z2=0,Q1=1,fg=2,Nu=3,Z1=4,hg=5,Tu=6;function kf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;JW(e,n,{name:t,index:r,group:i,on:QW,tween:ZW,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:z2})}function J0(e,t){var n=Yn(e,t);if(n.state>z2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Nu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function JW(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=F2(s,0,n.time);function s(c){n.state=Q1,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var u,d,h,p;if(n.state!==Q1)return l();for(u in r)if(p=r[u],p.name===n.name){if(p.state===Nu)return X1(o);p.state===Z1?(p.state=Tu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[u]):+ufg&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function CG(e,t,n){var r,i,s=AG(t)?J0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function MG(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(CG(n,e,t))}function IG(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function OG(){return this.on("end.remove",IG(this._id))}function RG(e){var t=this._name,n=this._id;typeof e!="function"&&(e=G0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function iY(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function vr(e,t,n){this.k=e,this.x=t,this.y=n}vr.prototype={constructor:vr,scale:function(e){return e===1?this:new vr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new vr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ef=new vr(1,0,0);K2.prototype=vr.prototype;function K2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ef;return e.__zoom}function mp(e){e.stopImmediatePropagation()}function la(e){e.preventDefault(),e.stopImmediatePropagation()}function sY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function oY(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function J1(){return this.__zoom||Ef}function aY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function lY(){return navigator.maxTouchPoints||"ontouchstart"in this}function cY(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function q2(){var e=sY,t=oY,n=cY,r=aY,i=lY,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Su,c=wf("start","zoom","end"),u,d,h,p=500,g=150,w=0,x=10;function m(M){M.property("__zoom",J1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",T).filter(i).on("touchstart.zoom",$).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(M,L,O,D){var R=M.selection?M.selection():M;R.property("__zoom",J1),M!==R?E(M,L,O,D):R.interrupt().each(function(){k(this,arguments).event(D).start().zoom(null,typeof L=="function"?L.apply(this,arguments):L).end()})},m.scaleBy=function(M,L,O,D){m.scaleTo(M,function(){var R=this.__zoom.k,P=typeof L=="function"?L.apply(this,arguments):L;return R*P},O,D)},m.scaleTo=function(M,L,O,D){m.transform(M,function(){var R=t.apply(this,arguments),P=this.__zoom,S=O==null?v(R):typeof O=="function"?O.apply(this,arguments):O,U=P.invert(S),V=typeof L=="function"?L.apply(this,arguments):L;return n(b(y(P,V),S,U),R,o)},O,D)},m.translateBy=function(M,L,O,D){m.transform(M,function(){return n(this.__zoom.translate(typeof L=="function"?L.apply(this,arguments):L,typeof O=="function"?O.apply(this,arguments):O),t.apply(this,arguments),o)},null,D)},m.translateTo=function(M,L,O,D,R){m.transform(M,function(){var P=t.apply(this,arguments),S=this.__zoom,U=D==null?v(P):typeof D=="function"?D.apply(this,arguments):D;return n(Ef.translate(U[0],U[1]).scale(S.k).translate(typeof L=="function"?-L.apply(this,arguments):-L,typeof O=="function"?-O.apply(this,arguments):-O),P,o)},D,R)};function y(M,L){return L=Math.max(s[0],Math.min(s[1],L)),L===M.k?M:new vr(L,M.x,M.y)}function b(M,L,O){var D=L[0]-O[0]*M.k,R=L[1]-O[1]*M.k;return D===M.x&&R===M.y?M:new vr(M.k,D,R)}function v(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function E(M,L,O,D){M.on("start.zoom",function(){k(this,arguments).event(D).start()}).on("interrupt.zoom end.zoom",function(){k(this,arguments).event(D).end()}).tween("zoom",function(){var R=this,P=arguments,S=k(R,P).event(D),U=t.apply(R,P),V=O==null?v(U):typeof O=="function"?O.apply(R,P):O,C=Math.max(U[1][0]-U[0][0],U[1][1]-U[0][1]),F=R.__zoom,q=typeof L=="function"?L.apply(R,P):L,G=l(F.invert(V).concat(C/F.k),q.invert(V).concat(C/q.k));return function(Y){if(Y===1)Y=q;else{var H=G(Y),Q=C/H[2];Y=new vr(Q,V[0]-H[0]*Q,V[1]-H[1]*Q)}S.zoom(null,Y)}})}function k(M,L,O){return!O&&M.__zooming||new A(M,L)}function A(M,L){this.that=M,this.args=L,this.active=0,this.sourceEvent=null,this.extent=t.apply(M,L),this.taps=0}A.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,L){return this.mouse&&M!=="mouse"&&(this.mouse[1]=L.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=L.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=L.invert(this.touch1[0])),this.that.__zoom=L,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var L=an(this.that).datum();c.call(M,this.that,new iY(M,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),L)}};function N(M,...L){if(!e.apply(this,arguments))return;var O=k(this,L).event(M),D=this.__zoom,R=Math.max(s[0],Math.min(s[1],D.k*Math.pow(2,r.apply(this,arguments)))),P=jn(M);if(O.wheel)(O.mouse[0][0]!==P[0]||O.mouse[0][1]!==P[1])&&(O.mouse[1]=D.invert(O.mouse[0]=P)),clearTimeout(O.wheel);else{if(D.k===R)return;O.mouse=[P,D.invert(P)],Au(this),O.start()}la(M),O.wheel=setTimeout(S,g),O.zoom("mouse",n(b(y(D,R),O.mouse[0],O.mouse[1]),O.extent,o));function S(){O.wheel=null,O.end()}}function I(M,...L){if(h||!e.apply(this,arguments))return;var O=M.currentTarget,D=k(this,L,!0).event(M),R=an(M.view).on("mousemove.zoom",V,!0).on("mouseup.zoom",C,!0),P=jn(M,O),S=M.clientX,U=M.clientY;C2(M.view),mp(M),D.mouse=[P,this.__zoom.invert(P)],Au(this),D.start();function V(F){if(la(F),!D.moved){var q=F.clientX-S,G=F.clientY-U;D.moved=q*q+G*G>w}D.event(F).zoom("mouse",n(b(D.that.__zoom,D.mouse[0]=jn(F,O),D.mouse[1]),D.extent,o))}function C(F){R.on("mousemove.zoom mouseup.zoom",null),M2(F.view,D.moved),la(F),D.event(F).end()}}function T(M,...L){if(e.apply(this,arguments)){var O=this.__zoom,D=jn(M.changedTouches?M.changedTouches[0]:M,this),R=O.invert(D),P=O.k*(M.shiftKey?.5:2),S=n(b(y(O,P),D,R),t.apply(this,L),o);la(M),a>0?an(this).transition().duration(a).call(E,S,D,M):an(this).call(m.transform,S,D,M)}}function $(M,...L){if(e.apply(this,arguments)){var O=M.touches,D=O.length,R=k(this,L,M.changedTouches.length===D).event(M),P,S,U,V;for(mp(M),S=0;S`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},kl=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],W2=["Enter"," ","Escape"],G2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var So;(function(e){e.Strict="strict",e.Loose="loose"})(So||(So={}));var Hi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Hi||(Hi={}));var El;(function(e){e.Partial="partial",e.Full="full"})(El||(El={}));const Y2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Hr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Hr||(Hr={}));var _l;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(_l||(_l={}));var pe;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(pe||(pe={}));const ek={[pe.Left]:pe.Right,[pe.Right]:pe.Left,[pe.Top]:pe.Bottom,[pe.Bottom]:pe.Top};function X2(e){return e===null?null:e?"valid":"invalid"}const Q2=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,uY=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),tb=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Jl=(e,t=[0,0])=>{const{width:n,height:r}=ur(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},dY=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):tb(i)?i:t.nodeLookup.get(i.id));const a=o?Td(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return _f(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Sf(n)},ec=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=_f(n,Td(i)),r=!0)}),r?Sf(n):{x:0,y:0,width:0,height:0}},nb=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a=(t.x-n)/i,l=(t.y-r)/i,c=t.width/i,u=t.height/i,d=[];for(const h of e.values()){const{measured:p,selectable:g=!0,hidden:w=!1}=h;if(o&&!g||w)continue;const x=p.width??h.width??h.initialWidth??0,m=p.height??h.height??h.initialHeight??0,{x:y,y:b}=h.internals.positionAbsolute,v=tM(a,l,c,u,y,b,x,m),E=x*m,k=s&&v>0;(!h.internals.handleBounds||k||v>=E||h.dragging)&&d.push(h)}return d},fY=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function hY(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{let s;if(t!=null&&t.includeHiddenNodes){const{width:o,height:a}=ur(i);s=o>0&&a>0}else s=!!(i.measured.width&&i.measured.height&&!i.hidden);s&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function pY({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=hY(e,o),l=ec(a),c=ib(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function Z2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},u=o.origin??r;let d=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(d=[[l,c],[l+p,c+g]])}else a&&ns(o.extent)&&(d=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=ns(d)?ts(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*u[0],y:h.y-c+(o.measured.height??0)*u[1]},positionAbsolute:h}}async function mY({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(w=>w.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),u=fY(o,l);for(const h of l)a.has(h.id)&&!u.find(g=>g.id===h.id)&&u.push(h);if(!i)return{edges:u,nodes:o};const d=await i({nodes:o,edges:u});return typeof d=="boolean"?d?{edges:u,nodes:o}:{edges:[],nodes:[]}:d}const No=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ts=(e={x:0,y:0},t,n)=>({x:No(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:No(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function J2(e,t,n){const{width:r,height:i}=ur(n),{x:s,y:o}=n.internals.positionAbsolute;return ts(e,[[s,o],[s+r,o+i]],t)}const tk=(e,t,n)=>en?-No(Math.abs(e-n),1,t)/t:0,rb=(e,t,n=15,r=40)=>{const i=tk(e.x,r,t.width-r)*n,s=tk(e.y,r,t.height-r)*n;return[i,s]},_f=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),pg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Sf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Sl=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=tb(e)?e.internals.positionAbsolute:Jl(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Td=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=tb(e)?e.internals.positionAbsolute:Jl(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},eM=(e,t)=>Sf(_f(pg(e),pg(t))),tM=(e,t,n,r,i,s,o,a)=>{const l=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),c=Math.max(0,Math.min(t+r,s+a)-Math.max(t,s));return Math.ceil(l*c)},Ad=(e,t)=>tM(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),nk=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),nM=(e,t)=>(n,r)=>{},tc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),nc=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?tc(a,o):a},To=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Es(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function gY(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Es(e,n),i=Es(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=Es(e.top??e.y??0,n),i=Es(e.bottom??e.y??0,n),s=Es(e.left??e.x??0,t),o=Es(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function yY(e,t,n,r,i,s){const{x:o,y:a}=To(e,[t,n,r]),{x:l,y:c}=To({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-l,d=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(d)}}const ib=(e,t,n,r,i,s)=>{const o=gY(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),u=No(c,r,i),d=e.x+e.width/2,h=e.y+e.height/2,p=t/2-d*u,g=n/2-h*u,w=yY(e,p,g,u,t,n),x={left:Math.min(w.left-o.left,0),top:Math.min(w.top-o.top,0),right:Math.min(w.right-o.right,0),bottom:Math.min(w.bottom-o.bottom,0)};return{x:p-x.left+x.right,y:g-x.top+x.bottom,zoom:u}},Nl=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ns(e){return e!=null&&e!=="parent"}function ur(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function rM(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function iM(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function rk(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function bY(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function wY(e){return{...G2,...e||{}}}function Fa(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=nc({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?tc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const sb=e=>({width:e.offsetWidth,height:e.offsetHeight}),sM=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},xY=["INPUT","SELECT","TEXTAREA"];function oM(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:xY.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const aM=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=aM(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},ik=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...sb(o)}})};function lM({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,u=Math.abs(l-e),d=Math.abs(c-t);return[l,c,u,d]}function Xc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function sk({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case pe.Left:return[t-Xc(t-r,s),n];case pe.Right:return[t+Xc(r-t,s),n];case pe.Top:return[t,n-Xc(n-i,s)];case pe.Bottom:return[t,n+Xc(i-n,s)]}}function cM({sourceX:e,sourceY:t,sourcePosition:n=pe.Bottom,targetX:r,targetY:i,targetPosition:s=pe.Top,curvature:o=.25}){const[a,l]=sk({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,u]=sk({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[d,h,p,g]=lM({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${r},${i}`,d,h,p,g]}function uM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const EY=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,_Y=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),SY=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||EY;let i;return Q2(e)?i={...e}:i={...e,id:r(e)},_Y(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function dM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=uM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const ok={[pe.Left]:{x:-1,y:0},[pe.Right]:{x:1,y:0},[pe.Top]:{x:0,y:-1},[pe.Bottom]:{x:0,y:1}},NY=({source:e,sourcePosition:t=pe.Bottom,target:n})=>t===pe.Left||t===pe.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function TY({source:e,sourcePosition:t=pe.Bottom,target:n,targetPosition:r=pe.Top,center:i,offset:s,stepPosition:o}){const a=ok[t],l=ok[r],c={x:e.x+a.x*s,y:e.y+a.y*s},u={x:n.x+l.x*s,y:n.y+l.y*s},d=NY({source:c,sourcePosition:t,target:u}),h=d.x!==0?"x":"y",p=d[h];let g=[],w,x;const m={x:0,y:0},y={x:0,y:0},[,,b,v]=uM({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(w=i.x??c.x+(u.x-c.x)*o,x=i.y??(c.y+u.y)/2):(w=i.x??(c.x+u.x)/2,x=i.y??c.y+(u.y-c.y)*o);const N=[{x:w,y:c.y},{x:w,y:u.y}],I=[{x:c.x,y:x},{x:u.x,y:x}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:u.y}],I=[{x:u.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const M=Math.abs(e[h]-n[h]);if(M<=s){const L=Math.min(s-1,s-M);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*L:y[h]=(u[h]>n[h]?-1:1)*L}}if(t!==r){const M=h==="x"?"y":"x",L=a[h]===l[M],O=c[M]>u[M],D=c[M]=B?(w=(T.x+$.x)/2,x=g[0].y):(w=g[0].x,x=(T.y+$.y)/2)}const E={x:c.x+m.x,y:c.y+m.y},k={x:u.x+y.x,y:u.y+y.y};return[[e,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,...k.x!==g[g.length-1].x||k.y!==g[g.length-1].y?[k]:[],n],w,x,b,v]}function AY(e,t,n,r){const i=Math.min(ak(e,t)/2,ak(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function gg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function MY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=gg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const fM=1e3,IY=10,ob={nodeOrigin:[0,0],nodeExtent:kl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},OY={...ob,checkEquality:!0};function ab(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function RY(e,t,n){const r=ab(ob,n);for(const i of e.values())if(i.parentId)cb(i,e,t,r);else{const s=Jl(i,r.nodeOrigin),o=ns(i.extent)?i.extent:r.nodeExtent,a=ts(s,o,ur(i));i.internals.positionAbsolute=a}}function LY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function lb(e){return e==="manual"}function yg(e,t,n,r={}){var u,d;const i=ab(OY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!lb(i.zIndexMode)?fM:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=Jl(h,i.nodeOrigin),w=ns(h.extent)?h.extent:i.nodeExtent,x=ts(g,w,ur(h));p={...i.defaults,...h,measured:{width:(u=h.measured)==null?void 0:u.width,height:(d=h.measured)==null?void 0:d.height},internals:{positionAbsolute:x,handleBounds:LY(h,p),z:hM(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&cb(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function PY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function cb(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=ab(ob,r),c=e.parentId,u=t.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}PY(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*IY),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);const d=s&&!lb(l)?fM:0,{x:h,y:p,z:g}=DY(e,u,o,a,d,l),{positionAbsolute:w}=e.internals,x=h!==w.x||p!==w.y;(x||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:h,y:p}:w,z:g}})}function hM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return lb(n)?r:r+(e.selected?t:0)}function DY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=ur(e),c=Jl(e,n),u=ns(e.extent)?ts(c,e.extent,l):c;let d=ts({x:o+u.x,y:a+u.y},r,l);e.extent==="parent"&&(d=J2(d,l,t));const h=hM(e,i,s),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=h?p+1:h}}function ub(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??Sl(l),u=eM(c,a.rect);s.set(a.parentId,{expandedRect:u,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var b;const u=l.internals.positionAbsolute,d=ur(l),h=l.origin??r,p=a.x0||g>0||m||y)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+y}}),(b=n.get(c))==null||b.forEach(v=>{e.some(E=>E.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(d.width0){const p=ub(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function $Y({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function dk(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function pM(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,u=`${s}-${a}--${i}-${o}`;dk("source",l,u,e,i,o),dk("target",l,c,e,s,a),t.set(r.id,r)}}function mM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:mM(n,t):!1}function fk(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function BY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!mM(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function gp({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,u]of t){const d=(o=n.get(c))==null?void 0:o.internals.userNode;d&&i.push({...d,position:u.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function FY({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=tc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function zY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},u=null,d=!1,h=null,p=!1,g=!1,w=null;function x({noDragClassName:y,handleSelector:b,domNode:v,isSelectable:E,nodeId:k,nodeClickDistance:A=0}){h=an(v);function N({x:j,y:B}){const{nodeLookup:M,nodeExtent:L,snapGrid:O,snapToGrid:D,nodeOrigin:R,onNodeDrag:P,onSelectionDrag:S,onError:U,updateNodePositions:V}=t();s={x:j,y:B};let C=!1;const F=a.size>1,q=F&&L?pg(ec(a)):null,G=F&&D?FY({dragItems:a,snapGrid:O,x:j,y:B}):null;for(const[Y,H]of a){if(!M.has(Y))continue;let Q={x:j-H.distance.x,y:B-H.distance.y};D&&(Q=G?{x:Math.round(Q.x+G.x),y:Math.round(Q.y+G.y)}:tc(Q,O));let oe=null;if(F&&L&&!H.extent&&q){const{positionAbsolute:K}=H.internals,re=K.x-q.x+L[0][0],le=K.x+H.measured.width-q.x2+L[1][0],ne=K.y-q.y+L[0][1],he=K.y+H.measured.height-q.y2+L[1][1];oe=[[re,ne],[le,he]]}const{position:ce,positionAbsolute:se}=Z2({nodeId:Y,nextPosition:Q,nodeLookup:M,nodeExtent:oe||L,nodeOrigin:R,onError:U});C=C||H.position.x!==ce.x||H.position.y!==ce.y,H.position=ce,H.internals.positionAbsolute=se}if(g=g||C,!!C&&(V(a,!0),w&&(r||P||!k&&S))){const[Y,H]=gp({nodeId:k,dragItems:a,nodeLookup:M});r==null||r(w,a,Y,H),P==null||P(w,Y,H),k||S==null||S(w,H)}}async function I(){if(!u)return;const{transform:j,panBy:B,autoPanSpeed:M,autoPanOnNodeDrag:L}=t();if(!L){l=!1,cancelAnimationFrame(o);return}const[O,D]=rb(c,u,M);(O!==0||D!==0)&&(s.x=(s.x??0)-O/j[2],s.y=(s.y??0)-D/j[2],await B({x:O,y:D})&&N(s)),o=requestAnimationFrame(I)}function T(j){var F;const{nodeLookup:B,multiSelectionActive:M,nodesDraggable:L,transform:O,snapGrid:D,snapToGrid:R,selectNodesOnDrag:P,onNodeDragStart:S,onSelectionDragStart:U,unselectNodesAndEdges:V}=t();d=!0,(!P||!E)&&!M&&k&&((F=B.get(k))!=null&&F.selected||V()),E&&P&&k&&(e==null||e(k));const C=Fa(j.sourceEvent,{transform:O,snapGrid:D,snapToGrid:R,containerBounds:u});if(s=C,a=BY(B,L,C,k),a.size>0&&(n||S||!k&&U)){const[q,G]=gp({nodeId:k,dragItems:a,nodeLookup:B});n==null||n(j.sourceEvent,a,q,G),S==null||S(j.sourceEvent,q,G),k||U==null||U(j.sourceEvent,G)}}const $=I2().clickDistance(A).on("start",j=>{const{domNode:B,nodeDragThreshold:M,transform:L,snapGrid:O,snapToGrid:D}=t();u=(B==null?void 0:B.getBoundingClientRect())||null,p=!1,g=!1,w=j.sourceEvent,M===0&&T(j),s=Fa(j.sourceEvent,{transform:L,snapGrid:O,snapToGrid:D,containerBounds:u}),c=zn(j.sourceEvent,u)}).on("drag",j=>{const{autoPanOnNodeDrag:B,transform:M,snapGrid:L,snapToGrid:O,nodeDragThreshold:D,nodeLookup:R}=t(),P=Fa(j.sourceEvent,{transform:M,snapGrid:L,snapToGrid:O,containerBounds:u});if(w=j.sourceEvent,(j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||k&&!R.has(k))&&(p=!0),!p){if(!l&&B&&d&&(l=!0,I()),!d){const S=zn(j.sourceEvent,u),U=S.x-c.x,V=S.y-c.y;Math.sqrt(U*U+V*V)>D&&T(j)}(s.x!==P.xSnapped||s.y!==P.ySnapped)&&a&&d&&(c=zn(j.sourceEvent,u),N(P))}}).on("end",j=>{if(!d||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,d=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:B,updateNodePositions:M,onNodeDragStop:L,onSelectionDragStop:O}=t();if(g&&(M(a,!1),g=!1),i||L||!k&&O){const[D,R]=gp({nodeId:k,dragItems:a,nodeLookup:B,dragging:!1});i==null||i(j.sourceEvent,a,D,R),L==null||L(j.sourceEvent,D,R),k||O==null||O(j.sourceEvent,R)}}}).filter(j=>{const B=j.target;return!j.button&&(!y||!fk(B,`.${y}`,v))&&(!b||fk(B,b,v))});h.call($)}function m(){h==null||h.on(".drag",null)}return{update:x,destroy:m}}function UY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Ad(i,Sl(s))>0&&r.push(s);return r}const VY=250;function HY(e,t,n,r){var a,l;let i=[],s=1/0;const o=UY(e,n,t+VY);for(const c of o){const u=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const d of u){if(r.nodeId===d.nodeId&&r.type===d.type&&r.id===d.id)continue;const{x:h,y:p}=rs(c,d,d.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(u=>u.type===c)??i[0]}return i[0]}function gM(e,t,n,r,i,s=!1){var c,u,d;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((u=o.internals.handleBounds)==null?void 0:u.source)??[],...((d=o.internals.handleBounds)==null?void 0:d.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...rs(o,l,l.position,!0)}:l}function yM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function KY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const bM=()=>!0;function qY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:d,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:w,onConnectEnd:x,isValidConnection:m=bM,onReconnectEnd:y,updateConnection:b,getTransform:v,getFromHandle:E,autoPanSpeed:k,dragThreshold:A=1,handleDomNode:N}){const I=sM(e.target);let T=0,$;const{x:j,y:B}=zn(e),M=yM(s,N),L=a==null?void 0:a.getBoundingClientRect();let O=!1;if(!L||!M)return;const D=gM(i,M,r,l,t);if(!D)return;let R=zn(e,L),P=!1,S=null,U=!1,V=null;function C(){if(!u||!L)return;const[ce,se]=rb(R,L,k);h({x:ce,y:se}),T=requestAnimationFrame(C)}const F={...D,nodeId:i,type:M,position:D.position},q=l.get(i);let Y={inProgress:!0,isValid:null,from:rs(q,F,pe.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:q,to:R,toHandle:null,toPosition:ek[F.position],toNode:null,pointer:R};function H(){O=!0,b(Y),g==null||g(e,{nodeId:i,handleId:r,handleType:M})}A===0&&H();function Q(ce){if(!O){const{x:he,y:ie}=zn(ce),_e=he-j,ke=ie-B;if(!(_e*_e+ke*ke>A*A))return;H()}if(!E()||!F){oe(ce);return}const se=v();R=zn(ce,L),$=HY(nc(R,se,!1,[1,1]),n,l,F),P||(C(),P=!0);const K=wM(ce,{handle:$,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:d,nodeLookup:l});V=K.handleDomNode,S=K.connection,U=KY(!!$,K.isValid);const re=l.get(i),le=re?rs(re,F,pe.Left,!0):Y.from,ne={...Y,from:le,isValid:U,to:K.toHandle&&U?To({x:K.toHandle.x,y:K.toHandle.y},se):R,toHandle:K.toHandle,toPosition:U&&K.toHandle?K.toHandle.position:ek[F.position],toNode:K.toHandle?l.get(K.toHandle.nodeId):null,pointer:R};b(ne),Y=ne}function oe(ce){if(!("touches"in ce&&ce.touches.length>0)){if(O){($||V)&&S&&U&&(w==null||w(S));const{inProgress:se,...K}=Y,re={...K,toPosition:Y.toHandle?Y.toPosition:null};x==null||x(ce,re),s&&(y==null||y(ce,re))}p(),cancelAnimationFrame(T),P=!1,U=!1,S=null,V=null,I.removeEventListener("mousemove",Q),I.removeEventListener("mouseup",oe),I.removeEventListener("touchmove",Q),I.removeEventListener("touchend",oe)}}I.addEventListener("mousemove",Q),I.addEventListener("mouseup",oe),I.addEventListener("touchmove",Q),I.addEventListener("touchend",oe)}function wM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=bM,nodeLookup:u}){const d=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),w=o.elementFromPoint(p,g),x=w!=null&&w.classList.contains(`${a}-flow__handle`)?w:h,m={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const y=yM(void 0,x),b=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),E=x.classList.contains("connectable"),k=x.classList.contains("connectableend");if(!b||!y)return m;const A={source:d?b:r,sourceHandle:d?v:i,target:d?r:b,targetHandle:d?i:v};m.connection=A;const I=E&&k&&(n===So.Strict?d&&y==="source"||!d&&y==="target":b!==r||v!==i);m.isValid=I&&c(A),m.toHandle=gM(b,y,v,u,n,!0)}return m}const bg={onPointerDown:qY,isValid:wM};function WY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:d=!0,zoomable:h=!0,inversePan:p=!1}){const g=b=>{if(b.sourceEvent.type!=="wheel"||!t)return;const v=n(),E=b.sourceEvent.ctrlKey&&Nl()?10:1,k=-b.sourceEvent.deltaY*(b.sourceEvent.deltaMode===1?.05:b.sourceEvent.deltaMode?1:.002)*u,A=v[2]*Math.pow(2,k*E);t.scaleTo(A)};let w=[0,0];const x=b=>{(b.sourceEvent.type==="mousedown"||b.sourceEvent.type==="touchstart")&&(w=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY])},m=b=>{const v=n();if(b.sourceEvent.type!=="mousemove"&&b.sourceEvent.type!=="touchmove"||!t)return;const E=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY],k=[E[0]-w[0],E[1]-w[1]];w=E;const A=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-k[0]*A,y:v[1]-k[1]*A},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},y=q2().on("start",x).on("zoom",d?m:null).on("zoom.wheel",h?g:null);i.call(y,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const Nf=e=>({x:e.x,y:e.y,zoom:e.k}),yp=({x:e,y:t,zoom:n})=>Ef.translate(e,t).scale(n),Gs=(e,t)=>e.target.closest(`.${t}`),xM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),GY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,bp=(e,t=0,n=GY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},vM=e=>{const t=e.ctrlKey&&Nl()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function YY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(Gs(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const d=n.property("__zoom").k||1;if(u.ctrlKey&&o){const x=jn(u),m=vM(u),y=d*Math.pow(2,m);r.scaleTo(n,y,x,u);return}const h=u.deltaMode===1?20:1;let p=i===Hi.Vertical?0:u.deltaX*h,g=i===Hi.Horizontal?0:u.deltaY*h;!Nl()&&u.shiftKey&&i!==Hi.Vertical&&(p=u.deltaY*h,g=0),r.translateBy(n,-(p/d)*s,-(g/d)*s,{internal:!0});const w=Nf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l==null||l(u,w):(e.isPanScrolling=!0,a==null||a(u,w)),e.panScrollTimeout=setTimeout(()=>{c==null||c(u,w),e.isPanScrolling=!1},150)}}function XY({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=Gs(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function QY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=Nf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function ZY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&xM(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,Nf(s.transform)))}}function JY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&xM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=Nf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function eX({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:u}){return d=>{var x;const h=e||t,p=n&&d.ctrlKey,g=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(Gs(d,`${c}-flow__node`)||Gs(d,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||u&&!g||Gs(d,a)&&g||Gs(d,l)&&(!g||i&&g&&!e)||!n&&d.ctrlKey&&g)return!1;if(!n&&d.type==="touchstart"&&((x=d.touches)==null?void 0:x.length)>1)return d.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(r)&&!r.includes(d.button)&&d.type==="mousedown")return!1;const w=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||g)&&w}}function tX({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect();let d=[[0,0],[u.width,u.height]];const h=typeof ResizeObserver<"u"?new ResizeObserver(B=>{const M=B[0];M&&(d=[[0,0],[M.contentRect.width,M.contentRect.height]])}):null;h==null||h.observe(e);const p=q2().extent(()=>d).scaleExtent([t,n]).translateExtent(r),g=an(e).call(p);v({x:i.x,y:i.y,zoom:No(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);const w=g.on("wheel.zoom"),x=g.on("dblclick.zoom");p.wheelDelta(vM);async function m(B,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:Su).transform(bp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),B)}):!1}function y({noWheelClassName:B,noPanClassName:M,onPaneContextMenu:L,userSelectionActive:O,panOnScroll:D,panOnDrag:R,panOnScrollMode:P,panOnScrollSpeed:S,preventScrolling:U,zoomOnPinch:V,zoomOnScroll:C,zoomOnDoubleClick:F,zoomActivationKeyPressed:q,lib:G,onTransformChange:Y,connectionInProgress:H,paneClickDistance:Q,selectionOnDrag:oe}){O&&!c.isZoomingOrPanning&&b();const ce=D&&!q&&!O;p.clickDistance(oe?1/0:!Fn(Q)||Q<0?0:Q);const se=ce?YY({zoomPanValues:c,noWheelClassName:B,d3Selection:g,d3Zoom:p,panOnScrollMode:P,panOnScrollSpeed:S,zoomOnPinch:V,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):XY({noWheelClassName:B,preventScrolling:U,d3ZoomHandler:w});g.on("wheel.zoom",se,{passive:!1});const K=QY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});p.on("start",K);const re=ZY({zoomPanValues:c,panOnDrag:R,onPaneContextMenu:!!L,onPanZoom:s,onTransformChange:Y});p.on("zoom",re);const le=JY({zoomPanValues:c,panOnDrag:R,panOnScroll:D,onPaneContextMenu:L,onPanZoomEnd:a,onDraggingChange:l});p.on("end",le);const ne=eX({zoomActivationKeyPressed:q,panOnDrag:R,zoomOnScroll:C,panOnScroll:D,zoomOnDoubleClick:F,zoomOnPinch:V,userSelectionActive:O,noPanClassName:M,noWheelClassName:B,lib:G,connectionInProgress:H});p.filter(ne),F?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function b(){p.on("zoom",null)}async function v(B,M,L){const O=yp(B),D=p==null?void 0:p.constrain()(O,M,L);return D&&await m(D),D}async function E(B,M){const L=yp(B);return await m(L,M),L}function k(B){if(g){const M=yp(B),L=g.property("__zoom");(L.k!==B.zoom||L.x!==B.x||L.y!==B.y)&&(p==null||p.transform(g,M,null,{sync:!0}))}}function A(){const B=g?K2(g.node()):{x:0,y:0,k:1};return{x:B.x,y:B.y,zoom:B.k}}async function N(B,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:Su).scaleTo(bp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),B)}):!1}async function I(B,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:Su).scaleBy(bp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),B)}):!1}function T(B){p==null||p.scaleExtent(B)}function $(B){p==null||p.translateExtent(B)}function j(B){const M=!Fn(B)||B<0?0:B;p==null||p.clickDistance(M)}return{update:y,destroy:b,setViewport:E,setViewportConstrained:v,getViewport:A,scaleTo:N,scaleBy:I,setScaleExtent:T,setTranslateExtent:$,syncViewport:k,setClickDistance:j}}var Ao;(function(e){e.Line="line",e.Handle="handle"})(Ao||(Ao={}));function nX({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function hk(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Dr(e,t){return Math.max(0,t-e)}function jr(e,t){return Math.max(0,e-t)}function Qc(e,t,n){return Math.max(0,t-e,e-n)}function pk(e,t){return e?!t:t}function rX(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:d}=t,h=u&&d,{xSnapped:p,ySnapped:g}=n,{minWidth:w,maxWidth:x,minHeight:m,maxHeight:y}=r,{x:b,y:v,width:E,height:k,aspectRatio:A}=e;let N=Math.floor(u?p-e.pointerX:0),I=Math.floor(d?g-e.pointerY:0);const T=E+(l?-N:N),$=k+(c?-I:I),j=-s[0]*E,B=-s[1]*k;let M=Qc(T,w,x),L=Qc($,m,y);if(o){let R=0,P=0;l&&N<0?R=Dr(b+N+j,o[0][0]):!l&&N>0&&(R=jr(b+T+j,o[1][0])),c&&I<0?P=Dr(v+I+B,o[0][1]):!c&&I>0&&(P=jr(v+$+B,o[1][1])),M=Math.max(M,R),L=Math.max(L,P)}if(a){let R=0,P=0;l&&N>0?R=jr(b+N,a[0][0]):!l&&N<0&&(R=Dr(b+T,a[1][0])),c&&I>0?P=jr(v+I,a[0][1]):!c&&I<0&&(P=Dr(v+$,a[1][1])),M=Math.max(M,R),L=Math.max(L,P)}if(i){if(u){const R=Qc(T/A,m,y)*A;if(M=Math.max(M,R),o){let P=0;!l&&!c||l&&!c&&h?P=jr(v+B+T/A,o[1][1])*A:P=Dr(v+B+(l?N:-N)/A,o[0][1])*A,M=Math.max(M,P)}if(a){let P=0;!l&&!c||l&&!c&&h?P=Dr(v+T/A,a[1][1])*A:P=jr(v+(l?N:-N)/A,a[0][1])*A,M=Math.max(M,P)}}if(d){const R=Qc($*A,w,x)/A;if(L=Math.max(L,R),o){let P=0;!l&&!c||c&&!l&&h?P=jr(b+$*A+j,o[1][0])/A:P=Dr(b+(c?I:-I)*A+j,o[0][0])/A,L=Math.max(L,P)}if(a){let P=0;!l&&!c||c&&!l&&h?P=Dr(b+$*A,a[1][0])/A:P=jr(b+(c?I:-I)*A,a[0][0])/A,L=Math.max(L,P)}}}I=I+(I<0?L:-L),N=N+(N<0?M:-M),i&&(h?T>$*A?I=(pk(l,c)?-N:N)/A:N=(pk(l,c)?-I:I)*A:u?(I=N/A,c=l):(N=I*A,l=c));const O=l?b+N:b,D=c?v+I:v;return{width:E+(l?-N:N),height:k+(c?-I:I),x:s[0]*N*(l?-1:1)+O,y:s[1]*I*(c?-1:1)+D}}const kM={width:0,height:0,x:0,y:0},iX={...kM,pointerX:0,pointerY:0,aspectRatio:1};function sX(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function oX({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:hk("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:u,keepAspectRatio:d,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:w,shouldResize:x}){let m={...kM},y={...iX};o={boundaries:u,resizeDirection:h,keepAspectRatio:d,controlDirection:hk(c)};let b,v=null,E=[],k,A,N,I=!1;const T=I2().on("start",$=>{const{nodeLookup:j,transform:B,snapGrid:M,snapToGrid:L,nodeOrigin:O,paneDomNode:D}=n();if(b=j.get(t),!b)return;v=(D==null?void 0:D.getBoundingClientRect())??null;const{xSnapped:R,ySnapped:P}=Fa($.sourceEvent,{transform:B,snapGrid:M,snapToGrid:L,containerBounds:v});m={width:b.measured.width??0,height:b.measured.height??0,x:b.position.x??0,y:b.position.y??0},y={...m,pointerX:R,pointerY:P,aspectRatio:m.width/m.height},k=void 0,A=ns(b.extent)?b.extent:void 0,b.parentId&&(b.extent==="parent"||b.expandParent)&&(k=j.get(b.parentId)),k&&b.extent==="parent"&&(A=[[0,0],[k.measured.width,k.measured.height]]),E=[],N=void 0;for(const[S,U]of j)if(U.parentId===t&&(E.push({id:S,position:{...U.position},extent:U.extent}),U.extent==="parent"||U.expandParent)){const V=sX(U,b,U.origin??O);N?N=[[Math.min(V[0][0],N[0][0]),Math.min(V[0][1],N[0][1])],[Math.max(V[1][0],N[1][0]),Math.max(V[1][1],N[1][1])]]:N=V}p==null||p($,{...m})}).on("drag",$=>{const{transform:j,snapGrid:B,snapToGrid:M,nodeOrigin:L}=n(),O=Fa($.sourceEvent,{transform:j,snapGrid:B,snapToGrid:M,containerBounds:v}),D=[];if(!b)return;const{x:R,y:P,width:S,height:U}=m,V={},C=b.origin??L,{width:F,height:q,x:G,y:Y}=rX(y,o.controlDirection,O,o.boundaries,o.keepAspectRatio,C,A,N),H=F!==S,Q=q!==U,oe=G!==R&&H,ce=Y!==P&&Q;if(!oe&&!ce&&!H&&!Q)return;if((oe||ce||C[0]===1||C[1]===1)&&(V.x=oe?G:m.x,V.y=ce?Y:m.y,m.x=V.x,m.y=V.y,E.length>0)){const le=G-R,ne=Y-P;for(const he of E)he.position={x:he.position.x-le+C[0]*(F-S),y:he.position.y-ne+C[1]*(q-U)},D.push(he)}if((H||Q)&&(V.width=H&&(!o.resizeDirection||o.resizeDirection==="horizontal")?F:m.width,V.height=Q&&(!o.resizeDirection||o.resizeDirection==="vertical")?q:m.height,m.width=V.width,m.height=V.height),k&&b.expandParent){const le=C[0]*(V.width??0);V.x&&V.x{I&&(w==null||w($,{...m}),i==null||i({...m}),I=!1)});s.call(T)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var EM={exports:{}},_M={},SM={exports:{}},NM={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Co=_;function aX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lX=typeof Object.is=="function"?Object.is:aX,cX=Co.useState,uX=Co.useEffect,dX=Co.useLayoutEffect,fX=Co.useDebugValue;function hX(e,t){var n=t(),r=cX({inst:{value:n,getSnapshot:t}}),i=r[0].inst,s=r[1];return dX(function(){i.value=n,i.getSnapshot=t,wp(i)&&s({inst:i})},[e,n,t]),uX(function(){return wp(i)&&s({inst:i}),e(function(){wp(i)&&s({inst:i})})},[e]),fX(n),n}function wp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lX(e,n)}catch{return!0}}function pX(e,t){return t()}var mX=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?pX:hX;NM.useSyncExternalStore=Co.useSyncExternalStore!==void 0?Co.useSyncExternalStore:mX;SM.exports=NM;var gX=SM.exports;/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Tf=_,yX=gX;function bX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wX=typeof Object.is=="function"?Object.is:bX,xX=yX.useSyncExternalStore,vX=Tf.useRef,kX=Tf.useEffect,EX=Tf.useMemo,_X=Tf.useDebugValue;_M.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=vX(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=EX(function(){function l(p){if(!c){if(c=!0,u=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return d=g}return d=p}if(g=d,wX(u,p))return g;var w=r(p);return i!==void 0&&i(g,w)?(u=p,g):(u=p,d=w)}var c=!1,u,d,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=xX(e,s[0],s[1]);return kX(function(){o.hasValue=!0,o.value=a},[a]),_X(a),a};EM.exports=_M;var SX=EM.exports;const NX=Al(SX),TX={},mk=e=>{let t;const n=new Set,r=(u,d)=>{const h=typeof u=="function"?u(t):u;if(!Object.is(h,t)){const p=t;t=d??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(TX?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},AX=e=>e?mk(e):mk,{useDebugValue:CX}=oE,{useSyncExternalStoreWithSelector:MX}=NX,IX=e=>e;function TM(e,t=IX,n){const r=MX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return CX(r),r}const gk=(e,t)=>{const n=AX(e),r=(i,s=t)=>TM(n,i,s);return Object.assign(r,n),r},OX=(e,t)=>e?gk(e,t):gk;function et(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Af=_.createContext(null),RX=Af.Provider,AM=qn.error001("react");function Ie(e,t){const n=_.useContext(Af);if(n===null)throw new Error(AM);return TM(n,e,t)}function qe(){const e=_.useContext(Af);if(e===null)throw new Error(AM);return _.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const yk={display:"none"},LX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},CM="react-flow__node-desc",MM="react-flow__edge-desc",PX="react-flow__aria-live",DX=e=>e.ariaLiveMessage,jX=e=>e.ariaLabelConfig;function $X({rfId:e}){const t=Ie(DX);return f.jsx("div",{id:`${PX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:LX,children:t})}function BX({rfId:e,disableKeyboardA11y:t}){const n=Ie(jX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${CM}-${e}`,style:yk,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${MM}-${e}`,style:yk,children:n["edge.a11yDescription.default"]}),!t&&f.jsx($X,{rfId:e})]})}const Cf=_.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:pt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});Cf.displayName="Panel";const bk="https://reactflow.dev?utm_source=attribution";function FX({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(Cf,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${bk}`,children:f.jsx("a",{href:bk,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const zX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Zc=e=>e.id;function UX(e,t){return et(e.selectedNodes.map(Zc),t.selectedNodes.map(Zc))&&et(e.selectedEdges.map(Zc),t.selectedEdges.map(Zc))}function VX({onSelectionChange:e}){const t=qe(),{selectedNodes:n,selectedEdges:r}=Ie(zX,UX);return _.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const HX=e=>!!e.onSelectionChangeHandlers;function KX({onSelectionChange:e}){const t=Ie(HX);return e||t?f.jsx(VX,{onSelectionChange:e}):null}const IM=[0,0],qX={x:0,y:0,zoom:1},WX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],wk=[...WX,"rfId"],GX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),xk={translateExtent:kl,nodeOrigin:IM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function YX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Ie(GX,et),c=qe();_.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=xk,a()}),[]);const u=_.useRef(xk);return _.useEffect(()=>{for(const d of wk){const h=e[d],p=u.current[d];h!==p&&(typeof e[d]>"u"||(d==="nodes"?t(h):d==="edges"?n(h):d==="minZoom"?r(h):d==="maxZoom"?i(h):d==="translateExtent"?s(h):d==="nodeExtent"?o(h):d==="ariaLabelConfig"?c.setState({ariaLabelConfig:wY(h)}):d==="fitView"?c.setState({fitViewQueued:h}):d==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[d]:h})))}u.current=e},wk.map(d=>e[d])),null}function vk(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function XX(e){var r;const[t,n]=_.useState(e==="system"?null:e);return _.useEffect(()=>{if(e!=="system"){n(e);return}const i=vk(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=vk())!=null&&r.matches?"dark":"light"}const kk=typeof document<"u"?document:null;function Tl(e=null,t={target:kk,actInsideInputWithModifier:!0}){const[n,r]=_.useState(!1),i=_.useRef(!1),s=_.useRef(new Set([])),[o,a]=_.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.replace("+",` -`).replace(` - -`,` -+`).split(` -`)),u=c.reduce((d,h)=>d.concat(...h),[]);return[c,u]}return[[],[]]},[e]);return _.useEffect(()=>{const l=(t==null?void 0:t.target)??kk,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const u=p=>{var x,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&oM(p))return!1;const w=_k(p.code,a);if(s.current.add(p[w]),Ek(o,s.current,!1)){const y=((m=(x=p.composedPath)==null?void 0:x.call(p))==null?void 0:m[0])||p.target,b=(y==null?void 0:y.nodeName)==="BUTTON"||(y==null?void 0:y.nodeName)==="A";t.preventDefault!==!1&&(i.current||!b)&&p.preventDefault(),r(!0)}},d=p=>{const g=_k(p.code,a);Ek(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",u),l==null||l.addEventListener("keyup",d),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",u),l==null||l.removeEventListener("keyup",d),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function Ek(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function _k(e,t){return t.includes(e)?"code":"key"}const QX=()=>{const e=qe();return _.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=ib(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},u=n.snapGrid??i,d=n.snapToGrid??s;return nc(c,r,d,u)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=To(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function OM(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)ZX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function ZX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function RM(e,t){return OM(e,t)}function LM(e,t){return OM(e,t)}function Ai(e,t){return{id:e,type:"select",selected:t}}function Ys(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ai(s.id,o)))}return r}function Sk({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function Nk(e){return{id:e.id,type:"remove"}}const JX=nM();function PM(e,t,n={}){return SY(e,t,{...n,onError:n.onError??JX})}const Tk=e=>uY(e),eQ=e=>Q2(e);function DM(e){return _.forwardRef(e)}const jM=typeof window<"u"?_.useLayoutEffect:_.useEffect;function Ak(e){const[t,n]=_.useState(BigInt(0)),[r]=_.useState(()=>tQ(()=>n(i=>i+BigInt(1))));return jM(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function tQ(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const $M=_.createContext(null);function nQ({children:e}){const t=qe(),n=_.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:u,onNodesChange:d,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let w=l;for(const m of a)w=typeof m=="function"?m(w):m;let x=Sk({items:w,lookup:h});for(const m of g.values())x=m(x);u&&c(w),x.length>0?d==null||d(x):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:y,setNodes:b}=t.getState();m&&b(y)})},[]),r=Ak(n),i=_.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:u,onEdgesChange:d,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;u?c(p):d&&d(Sk({items:p,lookup:h}))},[]),s=Ak(i),o=_.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx($M.Provider,{value:o,children:e})}function rQ(){const e=_.useContext($M);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const iQ=e=>!!e.panZoom;function db(){const e=QX(),t=qe(),n=rQ(),r=Ie(iQ),i=_.useMemo(()=>{const s=d=>t.getState().nodeLookup.get(d),o=d=>{n.nodeQueue.push(d)},a=d=>{n.edgeQueue.push(d)},l=d=>{var m,y;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=Tk(d)?d:h.get(d.id),w=g.parentId?iM(g.position,g.measured,g.parentId,h,p):g.position,x={...g,position:w,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((y=g.measured)==null?void 0:y.height)??g.height};return Sl(x)},c=(d,h,p={replace:!1})=>{o(g=>g.map(w=>{if(w.id===d){const x=typeof h=="function"?h(w):h;return p.replace&&Tk(x)?x:{...w,...x}}return w}))},u=(d,h,p={replace:!1})=>{a(g=>g.map(w=>{if(w.id===d){const x=typeof h=="function"?h(w):h;return p.replace&&eQ(x)?x:{...w,...x}}return w}))};return{getNodes:()=>t.getState().nodes.map(d=>({...d})),getNode:d=>{var h;return(h=s(d))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:d=[]}=t.getState();return d.map(h=>({...h}))},getEdge:d=>t.getState().edgeLookup.get(d),setNodes:o,setEdges:a,addNodes:d=>{const h=Array.isArray(d)?d:[d];n.nodeQueue.push(p=>[...p,...h])},addEdges:d=>{const h=Array.isArray(d)?d:[d];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:d=[],edges:h=[],transform:p}=t.getState(),[g,w,x]=p;return{nodes:d.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:w,zoom:x}}},deleteElements:async({nodes:d=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:w,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:y,onDelete:b,onBeforeDelete:v}=t.getState(),{nodes:E,edges:k}=await mY({nodesToRemove:d,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),A=k.length>0,N=E.length>0;if(A){const I=k.map(Nk);x==null||x(k),y(I)}if(N){const I=E.map(Nk);w==null||w(E),m(I)}return(N||A)&&(b==null||b({nodes:E,edges:k})),{deletedNodes:E,deletedEdges:k}},getIntersectingNodes:(d,h=!0,p)=>{const g=nk(d),w=g?d:l(d),x=p!==void 0;return w?(p||t.getState().nodes).filter(m=>{const y=t.getState().nodeLookup.get(m.id);if(y&&!g&&(m.id===d.id||!y.internals.positionAbsolute))return!1;const b=Sl(x?m:y),v=Ad(b,w);return h&&v>0||v>=b.width*b.height||v>=w.width*w.height}):[]},isNodeIntersecting:(d,h,p=!0)=>{const w=nk(d)?d:l(d);if(!w)return!1;const x=Ad(w,h);return p&&x>0||x>=h.width*h.height||x>=w.width*w.height},updateNode:c,updateNodeData:(d,h,p={replace:!1})=>{c(d,g=>{const w=typeof h=="function"?h(g):h;return p.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},p)},updateEdge:u,updateEdgeData:(d,h,p={replace:!1})=>{u(d,g=>{const w=typeof h=="function"?h(g):h;return p.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},p)},getNodesBounds:d=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return dY(d,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:d,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${d}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:d,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${d?h?`-${d}-${h}`:`-${d}`:""}`))==null?void 0:g.values())??[])},fitView:async d=>{const h=t.getState().fitViewResolver??bY();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return _.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const Ck=e=>e.selected,sQ=typeof window<"u"?window:void 0;function oQ({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=qe(),{deleteElements:r}=db(),i=Tl(e,{actInsideInputWithModifier:!1}),s=Tl(t,{target:sQ});_.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(Ck),edges:o.filter(Ck)}),n.setState({nodesSelectionActive:!1})}},[i]),_.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function aQ(e){const t=qe();_.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=sb(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Mf={position:"absolute",width:"100%",height:"100%",top:0,left:0},lQ=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function cQ({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Hi.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:u,maxZoom:d,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:w,noPanClassName:x,onViewportChange:m,isControlledViewport:y,paneClickDistance:b,selectionOnDrag:v}){const E=qe(),k=_.useRef(null),{userSelectionActive:A,lib:N,connectionInProgress:I}=Ie(lQ,et),T=Tl(h),$=_.useRef();aQ(k);const j=_.useCallback(B=>{m==null||m({x:B[0],y:B[1],zoom:B[2]}),y||E.setState({transform:B})},[m,y]);return _.useEffect(()=>{if(k.current){$.current=tX({domNode:k.current,minZoom:u,maxZoom:d,translateExtent:c,viewport:l,onDraggingChange:O=>E.setState(D=>D.paneDragging===O?D:{paneDragging:O}),onPanZoomStart:(O,D)=>{const{onViewportChangeStart:R,onMoveStart:P}=E.getState();P==null||P(O,D),R==null||R(D)},onPanZoom:(O,D)=>{const{onViewportChange:R,onMove:P}=E.getState();P==null||P(O,D),R==null||R(D)},onPanZoomEnd:(O,D)=>{const{onViewportChangeEnd:R,onMoveEnd:P}=E.getState();P==null||P(O,D),R==null||R(D)}});const{x:B,y:M,zoom:L}=$.current.getViewport();return E.setState({panZoom:$.current,transform:[B,M,L],domNode:k.current.closest(".react-flow")}),()=>{var O;(O=$.current)==null||O.destroy()}}},[]),_.useEffect(()=>{var B;(B=$.current)==null||B.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:T,preventScrolling:p,noPanClassName:x,userSelectionActive:A,noWheelClassName:w,lib:N,onTransformChange:j,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:b})},[e,t,n,r,i,s,o,a,T,p,x,A,w,N,j,I,v,b]),f.jsx("div",{className:"react-flow__renderer",ref:k,style:Mf,children:g})}const uQ=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function dQ(){const{userSelectionActive:e,userSelectionRect:t}=Ie(uQ,et);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const xp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},fQ=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function hQ({isSelecting:e,selectionKeyPressed:t,selectionMode:n=El.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:w}){const x=_.useRef(0),m=qe(),{userSelectionActive:y,elementsSelectable:b,dragging:v,panBy:E,autoPanSpeed:k}=Ie(fQ,et),A=b&&(e||y),N=_.useRef(null),I=_.useRef(),T=_.useRef(new Set),$=_.useRef(new Set),j=_.useRef(!1),B=_.useRef(!1),M=_.useRef({x:0,y:0}),L=_.useRef(!1),O=H=>{if(B.current||j.current||m.getState().connection.inProgress){B.current=!1,j.current=!1;return}c==null||c(H),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},D=H=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){H.preventDefault();return}u==null||u(H)},R=d?H=>d(H):void 0,P=H=>{B.current&&(H.stopPropagation(),B.current=!1)},S=H=>{var he,ie;const{domNode:Q,transform:oe}=m.getState();if(I.current=Q==null?void 0:Q.getBoundingClientRect(),!I.current)return;const ce=H.target===N.current;if(!ce&&!!H.target.closest(".nokey")||!e||!(o&&ce||t)||H.button!==0||!H.isPrimary)return;(ie=(he=H.target)==null?void 0:he.setPointerCapture)==null||ie.call(he,H.pointerId),B.current=!1;const{x:re,y:le}=zn(H.nativeEvent,I.current),ne=nc({x:re,y:le},oe);m.setState({userSelectionRect:{width:0,height:0,startX:ne.x,startY:ne.y,x:re,y:le}}),ce||(H.stopPropagation(),H.preventDefault())};function U(H,Q){const{userSelectionRect:oe}=m.getState();if(!oe)return;const{transform:ce,nodeLookup:se,edgeLookup:K,connectionLookup:re,triggerNodeChanges:le,triggerEdgeChanges:ne,defaultEdgeOptions:he}=m.getState(),ie={x:oe.startX,y:oe.startY},{x:_e,y:ke}=To(ie,ce),ye={startX:ie.x,startY:ie.y,x:H<_e?H:_e,y:QPe.id)),$.current=new Set;const xt=(he==null?void 0:he.selectable)??!0;for(const Pe of T.current){const z=re.get(Pe);if(z)for(const{edgeId:W}of z.values()){const Z=K.get(W);Z&&(Z.selectable??xt)&&$.current.add(W)}}if(!rk(Tt,T.current)){const Pe=Ys(se,T.current,!0);le(Pe)}if(!rk(Le,$.current)){const Pe=Ys(K,$.current);ne(Pe)}m.setState({userSelectionRect:ye,userSelectionActive:!0,nodesSelectionActive:!1})}function V(){if(!i||!I.current)return;const[H,Q]=rb(M.current,I.current,k);E({x:H,y:Q}).then(oe=>{if(!B.current||!oe){x.current=requestAnimationFrame(V);return}const{x:ce,y:se}=M.current;U(ce,se),x.current=requestAnimationFrame(V)})}const C=()=>{cancelAnimationFrame(x.current),x.current=0,L.current=!1};_.useEffect(()=>()=>C(),[]);const F=H=>{const{userSelectionRect:Q,transform:oe,resetSelectedElements:ce}=m.getState();if(!I.current||!Q)return;const{x:se,y:K}=zn(H.nativeEvent,I.current);M.current={x:se,y:K};const re=To({x:Q.startX,y:Q.startY},oe);if(!B.current){const le=t?0:s;if(Math.hypot(se-re.x,K-re.y)<=le)return;ce(),a==null||a(H)}B.current=!0,L.current||(V(),L.current=!0),U(se,K)},q=H=>{var Q,oe;if(!A){H.target===N.current&&m.getState().connection.inProgress&&(j.current=!0);return}H.button===0&&((oe=(Q=H.target)==null?void 0:Q.releasePointerCapture)==null||oe.call(Q,H.pointerId),!y&&H.target===N.current&&m.getState().userSelectionRect&&(O==null||O(H)),m.setState({userSelectionActive:!1,userSelectionRect:null}),B.current&&(l==null||l(H),m.setState({nodesSelectionActive:T.current.size>0})),C())},G=H=>{var Q,oe;(oe=(Q=H.target)==null?void 0:Q.releasePointerCapture)==null||oe.call(Q,H.pointerId),C()},Y=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:pt(["react-flow__pane",{draggable:Y,dragging:v,selection:e}]),onClick:A?void 0:xp(O,N),onContextMenu:xp(D,N),onWheel:xp(R,N),onPointerEnter:A?void 0:h,onPointerMove:A?F:p,onPointerUp:q,onPointerCancel:A?G:void 0,onPointerDownCapture:A?S:void 0,onClickCapture:A?P:void 0,onPointerLeave:g,ref:N,style:Mf,children:[w,f.jsx(dQ,{})]})}function wg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var u;return(u=r==null?void 0:r.current)==null?void 0:u.blur()})):i([e])}function BM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=qe(),[l,c]=_.useState(!1),u=_.useRef();return _.useEffect(()=>{if(!t)return u.current=zY({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{wg({id:d,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}}),()=>{var d;(d=u.current)==null||d.destroy(),u.current=void 0}},[t,a,e]),_.useEffect(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o})},[n,r,t,s,e,i,o]),l}const pQ=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function FM(){const e=qe();return _.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:u}=e.getState(),d=new Map,h=pQ(o),p=i?s[0]:5,g=i?s[1]:5,w=n.direction.x*p*n.factor,x=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let y={x:m.internals.positionAbsolute.x+w,y:m.internals.positionAbsolute.y+x};i&&(y=tc(y,s));const{position:b,positionAbsolute:v}=Z2({nodeId:m.id,nextPosition:y,nodeLookup:c,nodeExtent:r,nodeOrigin:u,onError:a});m.position=b,m.internals.positionAbsolute=v,d.set(m.id,m)}l(d)},[])}const fb=_.createContext(null),mQ=fb.Provider;fb.Consumer;const zM=()=>_.useContext(fb),gQ=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),UM=_.createContext(null);function yQ({children:e}){const t=Ie(gQ,et);return f.jsx(UM.Provider,{value:t,children:e})}function bQ(){const e=_.useContext(UM);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const wQ={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},xQ=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o;if(!a&&!i)return wQ;const u=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:u,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===So.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:u&&c}};function vQ({type:e="source",position:t=pe.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:d,...h},p){var L,O;const g=o||null,w=e==="target",x=qe(),m=zM(),{connectOnClick:y,noPanClassName:b,rfId:v}=bQ(),{connectingFrom:E,connectingTo:k,clickConnecting:A,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:T,valid:$}=Ie(xQ(m,g,e),et);m||(O=(L=x.getState()).onError)==null||O.call(L,"010",qn.error010());const j=D=>{const{defaultEdgeOptions:R,onConnect:P,hasDefaultEdges:S}=x.getState(),U={...R,...D};if(S){const{edges:V,setEdges:C,onError:F}=x.getState();C(PM(U,V,{onError:F}))}P==null||P(U),a==null||a(U)},B=D=>{if(!m)return;const R=aM(D.nativeEvent);if(i&&(R&&D.button===0||!R)){const P=x.getState();bg.onPointerDown(D.nativeEvent,{handleDomNode:D.currentTarget,autoPanOnConnect:P.autoPanOnConnect,connectionMode:P.connectionMode,connectionRadius:P.connectionRadius,domNode:P.domNode,nodeLookup:P.nodeLookup,lib:P.lib,isTarget:w,handleId:g,nodeId:m,flowId:P.rfId,panBy:P.panBy,cancelConnection:P.cancelConnection,onConnectStart:P.onConnectStart,onConnectEnd:(...S)=>{var U,V;return(V=(U=x.getState()).onConnectEnd)==null?void 0:V.call(U,...S)},updateConnection:P.updateConnection,onConnect:j,isValidConnection:n||((...S)=>{var U,V;return((V=(U=x.getState()).isValidConnection)==null?void 0:V.call(U,...S))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:P.autoPanSpeed,dragThreshold:P.connectionDragThreshold})}R?u==null||u(D):d==null||d(D)},M=D=>{const{onClickConnectStart:R,onClickConnectEnd:P,connectionClickStartHandle:S,connectionMode:U,isValidConnection:V,lib:C,rfId:F,nodeLookup:q,connection:G}=x.getState();if(!m||!S&&!i)return;if(!S){R==null||R(D.nativeEvent,{nodeId:m,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const Y=sM(D.target),H=n||V,{connection:Q,isValid:oe}=bg.isValid(D.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:U,fromNodeId:S.nodeId,fromHandleId:S.id||null,fromType:S.type,isValidConnection:H,flowId:F,doc:Y,lib:C,nodeLookup:q});oe&&Q&&j(Q);const ce=structuredClone(G);delete ce.inProgress,ce.toPosition=ce.toHandle?ce.toHandle.position:null,P==null||P(D,ce),x.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:pt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",b,c,{source:!w,target:w,connectable:r,connectablestart:i,connectableend:s,clickconnecting:A,connectingfrom:E,connectingto:k,valid:$,connectionindicator:r&&(!I||N)&&(I||T?s:i)}]),onMouseDown:B,onTouchStart:B,onClick:y?M:void 0,ref:p,...h,children:l})}const Mo=_.memo(DM(vQ));function kQ({data:e,isConnectable:t,sourcePosition:n=pe.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function EQ({data:e,isConnectable:t,targetPosition:n=pe.Top,sourcePosition:r=pe.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function _Q(){return null}function SQ({data:e,isConnectable:t,targetPosition:n=pe.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Cd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Mk={input:kQ,default:EQ,output:SQ,group:_Q};function NQ(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const TQ=e=>{const{width:t,height:n,x:r,y:i}=ec(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function AQ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=qe(),{width:i,height:s,transformString:o,userSelectionActive:a}=Ie(TQ,et),l=FM(),c=_.useRef(null);_.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const u=!a&&i!==null&&s!==null;if(BM({nodeRef:c,disabled:!u}),!u)return null;const d=e?p=>{const g=r.getState().nodes.filter(w=>w.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Cd,p.key)&&(p.preventDefault(),l({direction:Cd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:pt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const Ik=typeof window<"u"?window:void 0,CQ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function VM({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:u,selectionMode:d,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:w,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:b,panOnScroll:v,panOnScrollSpeed:E,panOnScrollMode:k,zoomOnDoubleClick:A,panOnDrag:N,autoPanOnSelection:I,defaultViewport:T,translateExtent:$,minZoom:j,maxZoom:B,preventScrolling:M,onSelectionContextMenu:L,noWheelClassName:O,noPanClassName:D,disableKeyboardA11y:R,onViewportChange:P,isControlledViewport:S}){const{nodesSelectionActive:U,userSelectionActive:V}=Ie(CQ,et),C=Tl(c,{target:Ik}),F=Tl(w,{target:Ik}),q=F||N,G=F||v,Y=u&&q!==!0,H=C||V||Y;return oQ({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(cQ,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:b,panOnScroll:G,panOnScrollSpeed:E,panOnScrollMode:k,zoomOnDoubleClick:A,panOnDrag:!C&&q,defaultViewport:T,translateExtent:$,minZoom:j,maxZoom:B,zoomActivationKeyCode:x,preventScrolling:M,noWheelClassName:O,noPanClassName:D,onViewportChange:P,isControlledViewport:S,paneClickDistance:a,selectionOnDrag:Y,children:f.jsxs(hQ,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:q,autoPanOnSelection:I,isSelecting:!!H,selectionMode:d,selectionKeyPressed:C,paneClickDistance:a,selectionOnDrag:Y,children:[e,U&&f.jsx(AQ,{onSelectionContextMenu:L,noPanClassName:D,disableKeyboardA11y:R})]})})}VM.displayName="FlowRenderer";const MQ=_.memo(VM),IQ=e=>t=>e?nb(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function OQ(e){return Ie(_.useCallback(IQ(e),[e]),et)}const RQ=e=>e.updateNodeInternals;function LQ(){const e=Ie(RQ),[t]=_.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return _.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function PQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=qe(),s=_.useRef(null),o=_.useRef(null),a=_.useRef(e.sourcePosition),l=_.useRef(e.targetPosition),c=_.useRef(t),u=n&&!!e.internals.handleBounds;return _.useEffect(()=>{s.current&&!e.hidden&&(!u||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[u,e.hidden]),_.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),_.useEffect(()=>{if(s.current){const d=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(d||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function DQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:u,resizeObserver:d,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:w,nodeTypes:x,nodeClickDistance:m,onError:y}){const{node:b,internals:v,isParent:E}=Ie(H=>{const Q=H.nodeLookup.get(e),oe=H.parentLookup.has(e);return{node:Q,internals:Q.internals,isParent:oe}},et);let k=b.type||"default",A=(x==null?void 0:x[k])||Mk[k];A===void 0&&(y==null||y("003",qn.error003(k)),k="default",A=(x==null?void 0:x.default)||Mk.default);const N=!!(b.draggable||a&&typeof b.draggable>"u"),I=!!(b.selectable||l&&typeof b.selectable>"u"),T=!!(b.connectable||c&&typeof b.connectable>"u"),$=!!(b.focusable||u&&typeof b.focusable>"u"),j=qe(),B=rM(b),M=PQ({node:b,nodeType:k,hasDimensions:B,resizeObserver:d}),L=BM({nodeRef:M,disabled:b.hidden||!N,noDragClassName:h,handleSelector:b.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),O=FM();if(b.hidden)return null;const D=ur(b),R=NQ(b),P=I||N||t||n||r||i,S=n?H=>n(H,{...v.userNode}):void 0,U=r?H=>r(H,{...v.userNode}):void 0,V=i?H=>i(H,{...v.userNode}):void 0,C=s?H=>s(H,{...v.userNode}):void 0,F=o?H=>o(H,{...v.userNode}):void 0,q=H=>{const{selectNodesOnDrag:Q,nodeDragThreshold:oe}=j.getState();I&&(!Q||!N||oe>0)&&wg({id:e,store:j,nodeRef:M}),t&&t(H,{...v.userNode})},G=H=>{if(!(oM(H.nativeEvent)||g)){if(W2.includes(H.key)&&I){const Q=H.key==="Escape";wg({id:e,store:j,unselect:Q,nodeRef:M})}else if(N&&b.selected&&Object.prototype.hasOwnProperty.call(Cd,H.key)){H.preventDefault();const{ariaLabelConfig:Q}=j.getState();j.setState({ariaLiveMessage:Q["node.a11yDescription.ariaLiveMessage"]({direction:H.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),O({direction:Cd[H.key],factor:H.shiftKey?4:1})}}},Y=()=>{var re;if(g||!((re=M.current)!=null&&re.matches(":focus-visible")))return;const{transform:H,width:Q,height:oe,autoPanOnNodeFocus:ce,setCenter:se}=j.getState();if(!ce)return;nb(new Map([[e,b]]),{x:0,y:0,width:Q,height:oe},H,!0).length>0||se(b.position.x+D.width/2,b.position.y+D.height/2,{zoom:H[2]})};return f.jsx("div",{className:pt(["react-flow__node",`react-flow__node-${k}`,{[p]:N},b.className,{selected:b.selected,selectable:I,parent:E,draggable:N,dragging:L}]),ref:M,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:B?"visible":"hidden",...b.style,...R},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:S,onMouseMove:U,onMouseLeave:V,onContextMenu:C,onClick:q,onDoubleClick:F,onKeyDown:$?G:void 0,tabIndex:$?0:void 0,onFocus:$?Y:void 0,role:b.ariaRole??($?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${CM}-${w}`,"aria-label":b.ariaLabel,...b.domAttributes,children:f.jsx(mQ,{value:e,children:f.jsx(A,{id:e,data:b.data,type:k,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:b.selected??!1,selectable:I,draggable:N,deletable:b.deletable??!0,isConnectable:T,sourcePosition:b.sourcePosition,targetPosition:b.targetPosition,dragging:L,dragHandle:b.dragHandle,zIndex:v.z,parentId:b.parentId,...D})})})}var jQ=_.memo(DQ);const $Q=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function HM(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Ie($Q,et),s=OQ(e.onlyRenderVisibleElements),o=LQ();return f.jsx("div",{className:"react-flow__nodes",style:Mf,children:s.map(a=>f.jsx(jQ,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}HM.displayName="NodeRenderer";const BQ=_.memo(HM);function FQ(e){return Ie(_.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&kY({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),et)}const zQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},UQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Ok={[_l.Arrow]:zQ,[_l.ArrowClosed]:UQ};function VQ(e){const t=qe();return _.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(Ok,e)?Ok[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const HQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=VQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},KM=({defaultColor:e,rfId:t})=>{const n=Ie(s=>s.edges),r=Ie(s=>s.defaultEdgeOptions),i=_.useMemo(()=>MY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(HQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};KM.displayName="MarkerDefinitions";var KQ=_.memo(KM);function qM({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u}){const[d,h]=_.useState({x:1,y:0,width:0,height:0}),p=pt(["react-flow__edge-textwrapper",c]),g=_.useRef(null);return _.useEffect(()=>{if(g.current){const w=g.current.getBBox();h({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?"visible":"hidden",...u,children:[i&&f.jsx("rect",{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}qM.displayName="EdgeText";const qQ=_.memo(qM);function If({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...u}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...u,d:e,fill:"none",className:pt(["react-flow__edge-path",u.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(qQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Rk({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===pe.Left||e===pe.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function WM({sourceX:e,sourceY:t,sourcePosition:n=pe.Bottom,targetX:r,targetY:i,targetPosition:s=pe.Top}){const[o,a]=Rk({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=Rk({pos:s,x1:r,y1:i,x2:e,y2:t}),[u,d,h,p]=lM({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,u,d,h,p]}function GM(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:w,markerStart:x,interactionWidth:m})=>{const[y,b,v]=WM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),E=e.isInternal?void 0:t;return f.jsx(If,{id:E,path:y,labelX:b,labelY:v,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:w,markerStart:x,interactionWidth:m})})}const WQ=GM({isInternal:!1}),YM=GM({isInternal:!0});WQ.displayName="SimpleBezierEdge";YM.displayName="SimpleBezierEdgeInternal";function XM(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,sourcePosition:p=pe.Bottom,targetPosition:g=pe.Top,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:y})=>{const[b,v,E]=mg({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),k=e.isInternal?void 0:t;return f.jsx(If,{id:k,path:b,labelX:v,labelY:E,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:w,markerStart:x,interactionWidth:y})})}const QM=XM({isInternal:!1}),ZM=XM({isInternal:!0});QM.displayName="SmoothStepEdge";ZM.displayName="SmoothStepEdgeInternal";function JM(e){return _.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx(QM,{...n,id:r,pathOptions:_.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const GQ=JM({isInternal:!1}),eI=JM({isInternal:!0});GQ.displayName="StepEdge";eI.displayName="StepEdgeInternal";function tI(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:p,markerStart:g,interactionWidth:w})=>{const[x,m,y]=dM({sourceX:n,sourceY:r,targetX:i,targetY:s}),b=e.isInternal?void 0:t;return f.jsx(If,{id:b,path:x,labelX:m,labelY:y,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:p,markerStart:g,interactionWidth:w})})}const YQ=tI({isInternal:!1}),nI=tI({isInternal:!0});YQ.displayName="StraightEdge";nI.displayName="StraightEdgeInternal";function rI(e){return _.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=pe.Bottom,targetPosition:a=pe.Top,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:y})=>{const[b,v,E]=cM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),k=e.isInternal?void 0:t;return f.jsx(If,{id:k,path:b,labelX:v,labelY:E,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:w,markerStart:x,interactionWidth:y})})}const XQ=rI({isInternal:!1}),iI=rI({isInternal:!0});XQ.displayName="BezierEdge";iI.displayName="BezierEdgeInternal";const Lk={default:iI,straight:nI,step:eI,smoothstep:ZM,simplebezier:YM},Pk={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},QQ=(e,t,n)=>n===pe.Left?e-t:n===pe.Right?e+t:e,ZQ=(e,t,n)=>n===pe.Top?e-t:n===pe.Bottom?e+t:e,Dk="react-flow__edgeupdater";function jk({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:pt([Dk,`${Dk}-${a}`]),cx:QQ(t,r,e),cy:ZQ(n,r,e),r,stroke:"transparent",fill:"transparent"})}function JQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:u,onReconnectEnd:d,setReconnecting:h,setUpdateHover:p}){const g=qe(),w=(v,E)=>{if(v.button!==0)return;const{autoPanOnConnect:k,domNode:A,connectionMode:N,connectionRadius:I,lib:T,onConnectStart:$,cancelConnection:j,nodeLookup:B,rfId:M,panBy:L,updateConnection:O}=g.getState(),D=E.type==="target",R=(U,V)=>{h(!1),d==null||d(U,n,E.type,V)},P=U=>c==null?void 0:c(n,U),S=(U,V)=>{h(!0),u==null||u(v,n,E.type),$==null||$(U,V)};bg.onPointerDown(v.nativeEvent,{autoPanOnConnect:k,connectionMode:N,connectionRadius:I,domNode:A,handleId:E.id,nodeId:E.nodeId,nodeLookup:B,isTarget:D,edgeUpdaterType:E.type,lib:T,flowId:M,cancelConnection:j,panBy:L,isValidConnection:(...U)=>{var V,C;return((C=(V=g.getState()).isValidConnection)==null?void 0:C.call(V,...U))??!0},onConnect:P,onConnectStart:S,onConnectEnd:(...U)=>{var V,C;return(C=(V=g.getState()).onConnectEnd)==null?void 0:C.call(V,...U)},onReconnectEnd:R,updateConnection:O,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},x=v=>w(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>w(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),y=()=>p(!0),b=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(jk,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:x,onMouseEnter:y,onMouseOut:b,type:"source"}),(e===!0||e==="target")&&f.jsx(jk,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:y,onMouseOut:b,type:"target"})]})}function eZ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:d,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:w,noPanClassName:x,onError:m,disableKeyboardA11y:y}){let b=Ie(se=>se.edgeLookup.get(e));const v=Ie(se=>se.defaultEdgeOptions);b=v?{...v,...b}:b;let E=b.type||"default",k=(w==null?void 0:w[E])||Lk[E];k===void 0&&(m==null||m("011",qn.error011(E)),E="default",k=(w==null?void 0:w.default)||Lk.default);const A=!!(b.focusable||t&&typeof b.focusable>"u"),N=typeof d<"u"&&(b.reconnectable||n&&typeof b.reconnectable>"u"),I=!!(b.selectable||r&&typeof b.selectable>"u"),T=_.useRef(null),[$,j]=_.useState(!1),[B,M]=_.useState(!1),L=qe(),{zIndex:O=b.zIndex,sourceX:D,sourceY:R,targetX:P,targetY:S,sourcePosition:U,targetPosition:V}=Ie(_.useCallback(se=>{const K=se.nodeLookup.get(b.source),re=se.nodeLookup.get(b.target);if(!K||!re)return Pk;const le=CY({id:e,sourceNode:K,targetNode:re,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:se.connectionMode,onError:m}),ne=vY({selected:b.selected,zIndex:b.zIndex,sourceNode:K,targetNode:re,elevateOnSelect:se.elevateEdgesOnSelect,zIndexMode:se.zIndexMode});return{...le||Pk,zIndex:ne}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex]),et),C=_.useMemo(()=>b.markerStart?`url('#${gg(b.markerStart,g)}')`:void 0,[b.markerStart,g]),F=_.useMemo(()=>b.markerEnd?`url('#${gg(b.markerEnd,g)}')`:void 0,[b.markerEnd,g]);if(b.hidden||D===null||R===null||P===null||S===null)return null;const q=se=>{var ne;const{addSelectedEdges:K,unselectNodesAndEdges:re,multiSelectionActive:le}=L.getState();I&&(L.setState({nodesSelectionActive:!1}),b.selected&&le?(re({nodes:[],edges:[b]}),(ne=T.current)==null||ne.blur()):K([e])),i&&i(se,b)},G=s?se=>{s(se,{...b})}:void 0,Y=o?se=>{o(se,{...b})}:void 0,H=a?se=>{a(se,{...b})}:void 0,Q=l?se=>{l(se,{...b})}:void 0,oe=c?se=>{c(se,{...b})}:void 0,ce=se=>{var K;if(!y&&W2.includes(se.key)&&I){const{unselectNodesAndEdges:re,addSelectedEdges:le}=L.getState();se.key==="Escape"?((K=T.current)==null||K.blur(),re({edges:[b]})):le([e])}};return f.jsx("svg",{style:{zIndex:O},children:f.jsxs("g",{className:pt(["react-flow__edge",`react-flow__edge-${E}`,b.className,x,{selected:b.selected,animated:b.animated,inactive:!I&&!i,updating:$,selectable:I}]),onClick:q,onDoubleClick:G,onContextMenu:Y,onMouseEnter:H,onMouseMove:Q,onMouseLeave:oe,onKeyDown:A?ce:void 0,tabIndex:A?0:void 0,role:b.ariaRole??(A?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":A?`${MM}-${g}`:void 0,ref:T,...b.domAttributes,children:[!B&&f.jsx(k,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:I,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:D,sourceY:R,targetX:P,targetY:S,sourcePosition:U,targetPosition:V,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:C,markerEnd:F,pathOptions:"pathOptions"in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),N&&f.jsx(JQ,{edge:b,isReconnectable:N,reconnectRadius:u,onReconnect:d,onReconnectStart:h,onReconnectEnd:p,sourceX:D,sourceY:R,targetX:P,targetY:S,sourcePosition:U,targetPosition:V,setUpdateHover:j,setReconnecting:M})]})})}var tZ=_.memo(eZ);const nZ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function sI({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:w}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:y,onError:b}=Ie(nZ,et),v=FQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(KQ,{defaultColor:e,rfId:n}),v.map(E=>f.jsx(tZ,{id:E,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:y,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,reconnectRadius:d,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:b,edgeTypes:r,disableKeyboardA11y:w},E))]})}sI.displayName="EdgeRenderer";const rZ=_.memo(sI),$k=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function iZ({children:e}){const t=qe(),n=_.useRef(null),[r]=_.useState(()=>t.getState().transform);return jM(()=>{let i=null;const s=()=>{const o=t.getState().transform;i&&o[0]===i[0]&&o[1]===i[1]&&o[2]===i[2]||(i=o,n.current&&(n.current.style.transform=$k(o)))};return s(),t.subscribe(s)},[t]),f.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:$k(r)},children:e})}function sZ(e){const t=db(),n=_.useRef(!1);_.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const oZ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function aZ(e){const t=Ie(oZ),n=qe();return _.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function lZ(e){return e.connection.inProgress?{...e.connection,to:nc(e.connection.to,e.transform)}:{...e.connection}}function cZ(e){return lZ}function uZ(e){const t=cZ();return Ie(t,et)}const dZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function fZ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Ie(dZ,et);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:pt(["react-flow__connection",X2(a)]),children:f.jsx(oI,{style:t,type:n,CustomComponent:r,isValid:a})})})}const oI=({style:e,type:t=Hr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:u,toHandle:d,toPosition:h,pointer:p}=uZ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:X2(r),toNode:u,toHandle:d,pointer:p});let g="";const w={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Hr.Bezier:[g]=cM(w);break;case Hr.SimpleBezier:[g]=WM(w);break;case Hr.Step:[g]=mg({...w,borderRadius:0});break;case Hr.SmoothStep:[g]=mg(w);break;default:[g]=dM(w)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};oI.displayName="ConnectionLine";const hZ={};function Bk(e=hZ){_.useRef(e),qe(),_.useEffect(()=>{},[e])}function pZ(){qe(),_.useRef(!1),_.useEffect(()=>{},[])}function aI({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:w,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:y,selectionOnDrag:b,selectionMode:v,multiSelectionKeyCode:E,panActivationKeyCode:k,zoomActivationKeyCode:A,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:T,defaultViewport:$,translateExtent:j,minZoom:B,maxZoom:M,preventScrolling:L,defaultMarkerColor:O,zoomOnScroll:D,zoomOnPinch:R,panOnScroll:P,panOnScrollSpeed:S,panOnScrollMode:U,zoomOnDoubleClick:V,panOnDrag:C,autoPanOnSelection:F,onPaneClick:q,onPaneMouseEnter:G,onPaneMouseMove:Y,onPaneMouseLeave:H,onPaneScroll:Q,onPaneContextMenu:oe,paneClickDistance:ce,nodeClickDistance:se,onEdgeContextMenu:K,onEdgeMouseEnter:re,onEdgeMouseMove:le,onEdgeMouseLeave:ne,reconnectRadius:he,onReconnect:ie,onReconnectStart:_e,onReconnectEnd:ke,noDragClassName:ye,noWheelClassName:Tt,noPanClassName:Le,disableKeyboardA11y:xt,nodeExtent:Pe,rfId:z,viewport:W,onViewportChange:Z,nodesDraggable:ae}){return Bk(e),Bk(t),pZ(),sZ(n),aZ(W),f.jsx(MQ,{onPaneClick:q,onPaneMouseEnter:G,onPaneMouseMove:Y,onPaneMouseLeave:H,onPaneContextMenu:oe,onPaneScroll:Q,paneClickDistance:ce,deleteKeyCode:N,selectionKeyCode:y,selectionOnDrag:b,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:k,zoomActivationKeyCode:A,elementsSelectable:T,zoomOnScroll:D,zoomOnPinch:R,zoomOnDoubleClick:V,panOnScroll:P,panOnScrollSpeed:S,panOnScrollMode:U,panOnDrag:C,autoPanOnSelection:F,defaultViewport:$,translateExtent:j,minZoom:B,maxZoom:M,onSelectionContextMenu:d,preventScrolling:L,noDragClassName:ye,noWheelClassName:Tt,noPanClassName:Le,disableKeyboardA11y:xt,onViewportChange:Z,isControlledViewport:!!W,children:f.jsxs(iZ,{children:[f.jsx(rZ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ie,onReconnectStart:_e,onReconnectEnd:ke,onlyRenderVisibleElements:I,onEdgeContextMenu:K,onEdgeMouseEnter:re,onEdgeMouseMove:le,onEdgeMouseLeave:ne,reconnectRadius:he,defaultMarkerColor:O,noPanClassName:Le,disableKeyboardA11y:xt,rfId:z}),f.jsx(fZ,{style:w,type:g,component:x,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(BQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:se,onlyRenderVisibleElements:I,noPanClassName:Le,noDragClassName:ye,disableKeyboardA11y:xt,nodeExtent:Pe,rfId:z,nodesDraggable:ae}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}aI.displayName="GraphView";const mZ=_.memo(aI),gZ=nM(),Fk=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:d,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,w=new Map,x=new Map,m=r??t??[],y=n??e??[],b=u??[0,0],v=d??kl;pM(w,x,m);const{nodesInitialized:E}=yg(y,p,g,{nodeOrigin:b,nodeExtent:v,zIndexMode:h});let k=[0,0,1];if(o&&i&&s){const A=ec(p,{filter:$=>!!(($.width||$.initialWidth)&&($.height||$.initialHeight))}),{x:N,y:I,zoom:T}=ib(A,i,s,l,c,(a==null?void 0:a.padding)??.1);k=[N,I,T]}return{rfId:"1",width:i??0,height:s??0,transform:k,nodes:y,nodesInitialized:E,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:x,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:kl,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:So.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:b,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Y2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:gZ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:G2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},yZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,zIndexMode:h})=>OX((p,g)=>{async function w(){const{nodeLookup:x,panZoom:m,fitViewOptions:y,fitViewResolver:b,width:v,height:E,minZoom:k,maxZoom:A}=g();m&&(await pY({nodes:x,width:v,height:E,panZoom:m,minZoom:k,maxZoom:A},y),b==null||b.resolve(!0),p({fitViewResolver:null}))}return{...Fk({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:x=>{const{nodeLookup:m,parentLookup:y,nodeOrigin:b,elevateNodesOnSelect:v,fitViewQueued:E,zIndexMode:k,nodesSelectionActive:A}=g(),{nodesInitialized:N,hasSelectedNodes:I}=yg(x,m,y,{nodeOrigin:b,nodeExtent:d,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:k}),T=A&&I;E&&N?(w(),p({nodes:x,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:T})):p({nodes:x,nodesInitialized:N,nodesSelectionActive:T})},setEdges:x=>{const{connectionLookup:m,edgeLookup:y}=g();pM(m,y,x),p({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:y}=g();y(x),p({hasDefaultNodes:!0})}if(m){const{setEdges:y}=g();y(m),p({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:y,parentLookup:b,domNode:v,nodeOrigin:E,nodeExtent:k,debug:A,fitViewQueued:N,zIndexMode:I}=g(),{changes:T,updatedInternals:$}=jY(x,y,b,v,E,k,I);$&&(RY(y,b,{nodeOrigin:E,nodeExtent:k,zIndexMode:I}),N?(w(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(T==null?void 0:T.length)>0&&(A&&console.log("React Flow: trigger node changes",T),m==null||m(T)))},updateNodePositions:(x,m=!1)=>{const y=[];let b=[];const{nodeLookup:v,triggerNodeChanges:E,connection:k,updateConnection:A,onNodesChangeMiddlewareMap:N}=g();for(const[I,T]of x){const $=v.get(I),j=!!($!=null&&$.expandParent&&($!=null&&$.parentId)&&(T!=null&&T.position)),B={id:I,type:"position",position:j?{x:Math.max(0,T.position.x),y:Math.max(0,T.position.y)}:T.position,dragging:m};if($&&k.inProgress&&k.fromNode.id===$.id){const M=rs($,k.fromHandle,pe.Left,!0);A({...k,from:M})}j&&$.parentId&&y.push({id:I,parentId:$.parentId,rect:{...T.internals.positionAbsolute,width:T.measured.width??0,height:T.measured.height??0}}),b.push(B)}if(y.length>0){const{parentLookup:I,nodeOrigin:T}=g(),$=ub(y,v,I,T);b.push(...$)}for(const I of N.values())b=I(b);E(b)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:y,nodes:b,hasDefaultNodes:v,debug:E}=g();if(x!=null&&x.length){if(v){const k=RM(x,b);y(k)}E&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:y,edges:b,hasDefaultEdges:v,debug:E}=g();if(x!=null&&x.length){if(v){const k=LM(x,b);y(k)}E&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:b,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const k=x.map(A=>Ai(A,!0));v(k);return}v(Ys(b,new Set([...x]),!0)),E(Ys(y))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:b,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const k=x.map(A=>Ai(A,!0));E(k);return}E(Ys(y,new Set([...x]))),v(Ys(b,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:y,nodes:b,nodeLookup:v,triggerNodeChanges:E,triggerEdgeChanges:k}=g(),A=x||b,N=m||y,I=[];for(const $ of A){if(!$.selected)continue;const j=v.get($.id);j&&(j.selected=!1),I.push(Ai($.id,!1))}const T=[];for(const $ of N)$.selected&&T.push(Ai($.id,!1));E(I),k(T)},setMinZoom:x=>{const{panZoom:m,maxZoom:y}=g();m==null||m.setScaleExtent([x,y]),p({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:y}=g();m==null||m.setScaleExtent([y,x]),p({maxZoom:x})},setTranslateExtent:x=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(x),p({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:m,triggerNodeChanges:y,triggerEdgeChanges:b,elementsSelectable:v}=g();if(!v)return;const E=m.reduce((A,N)=>N.selected?[...A,Ai(N.id,!1)]:A,[]),k=x.reduce((A,N)=>N.selected?[...A,Ai(N.id,!1)]:A,[]);y(E),b(k)},setNodeExtent:x=>{const{nodes:m,nodeLookup:y,parentLookup:b,nodeOrigin:v,elevateNodesOnSelect:E,nodeExtent:k,zIndexMode:A}=g();x[0][0]===k[0][0]&&x[0][1]===k[0][1]&&x[1][0]===k[1][0]&&x[1][1]===k[1][1]||(yg(m,y,b,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:A}),p({nodeExtent:x}))},panBy:x=>{const{transform:m,width:y,height:b,panZoom:v,translateExtent:E}=g();return $Y({delta:x,panZoom:v,transform:m,translateExtent:E,width:y,height:b})},setCenter:async(x,m,y)=>{const{width:b,height:v,maxZoom:E,panZoom:k}=g();if(!k)return!1;const A=typeof(y==null?void 0:y.zoom)<"u"?y.zoom:E;return await k.setViewport({x:b/2-x*A,y:v/2-m*A,zoom:A},{duration:y==null?void 0:y.duration,ease:y==null?void 0:y.ease,interpolate:y==null?void 0:y.interpolate}),!0},cancelConnection:()=>{p({connection:{...Y2}})},updateConnection:x=>{p({connection:x})},reset:()=>p({...Fk()})}},Object.is);function lI({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:u,nodeExtent:d,zIndexMode:h,children:p}){const[g]=_.useState(()=>yZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:u,nodeExtent:d,zIndexMode:h}));return f.jsx(RX,{value:g,children:f.jsx(nQ,{children:f.jsx(yQ,{children:p})})})}function bZ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:h,zIndexMode:p}){return _.useContext(Af)?f.jsx(f.Fragment,{children:e}):f.jsx(lI,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:u,nodeOrigin:d,nodeExtent:h,zIndexMode:p,children:e})}const wZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function xZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:d,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:k,onNodeDragStart:A,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:T,onEdgesDelete:$,onDelete:j,onSelectionChange:B,onSelectionDragStart:M,onSelectionDrag:L,onSelectionDragStop:O,onSelectionContextMenu:D,onSelectionStart:R,onSelectionEnd:P,onBeforeDelete:S,connectionMode:U,connectionLineType:V=Hr.Bezier,connectionLineStyle:C,connectionLineComponent:F,connectionLineContainerStyle:q,deleteKeyCode:G="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:H=!1,selectionMode:Q=El.Full,panActivationKeyCode:oe="Space",multiSelectionKeyCode:ce=Nl()?"Meta":"Control",zoomActivationKeyCode:se=Nl()?"Meta":"Control",snapToGrid:K,snapGrid:re,onlyRenderVisibleElements:le=!1,selectNodesOnDrag:ne,nodesDraggable:he,autoPanOnNodeFocus:ie,nodesConnectable:_e,nodesFocusable:ke,nodeOrigin:ye=IM,edgesFocusable:Tt,edgesReconnectable:Le,elementsSelectable:xt=!0,defaultViewport:Pe=qX,minZoom:z=.5,maxZoom:W=2,translateExtent:Z=kl,preventScrolling:ae=!0,nodeExtent:be,defaultMarkerColor:Oe="#b1b1b7",zoomOnScroll:Bt=!0,zoomOnPinch:vt=!0,panOnScroll:Mn=!1,panOnScrollSpeed:dr=.5,panOnScrollMode:ut=Hi.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:rc,onPaneMouseEnter:Of,onPaneMouseMove:Rf,onPaneMouseLeave:Lf,onPaneScroll:Pf,onPaneContextMenu:Df,paneClickDistance:hs=1,nodeClickDistance:ps=0,children:jf,onReconnect:ms,onReconnectStart:$f,onReconnectEnd:ic,onEdgeContextMenu:Bf,onEdgeDoubleClick:Ff,onEdgeMouseEnter:sc,onEdgeMouseMove:gs,onEdgeMouseLeave:yi,reconnectRadius:zf=10,onNodesChange:oc,onEdgesChange:X,noDragClassName:J="nodrag",noWheelClassName:de="nowheel",noPanClassName:Ae="nopan",fitView:We,fitViewOptions:me,connectOnClick:kt,attributionPosition:yt,proOptions:xe,defaultEdgeOptions:Ue,elevateNodesOnSelect:Te=!0,elevateEdgesOnSelect:dt=!1,disableKeyboardA11y:fr=!1,autoPanOnConnect:Ho,autoPanOnNodeDrag:hr,autoPanOnSelection:yn=!0,autoPanSpeed:bi,connectionRadius:ac,isValidConnection:mI,onError:gI,style:yI,id:hb,nodeDragThreshold:bI,connectionDragThreshold:wI,viewport:xI,onViewportChange:vI,width:kI,height:EI,colorMode:_I="light",debug:SI,onScroll:lc,ariaLabelConfig:NI,zIndexMode:pb="basic",...TI},AI){const Uf=hb||"1",CI=XX(_I),MI=_.useCallback(mb=>{mb.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),lc==null||lc(mb)},[lc]);return f.jsx("div",{"data-testid":"rf__wrapper",...TI,onScroll:MI,style:{...yI,...wZ},ref:AI,className:pt(["react-flow",i,CI]),id:hb,role:"application",children:f.jsxs(bZ,{nodes:e,edges:t,width:kI,height:EI,fitView:We,fitViewOptions:me,minZoom:z,maxZoom:W,nodeOrigin:ye,nodeExtent:be,zIndexMode:pb,children:[f.jsx(YX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:he,autoPanOnNodeFocus:ie,nodesConnectable:_e,nodesFocusable:ke,edgesFocusable:Tt,edgesReconnectable:Le,elementsSelectable:xt,elevateNodesOnSelect:Te,elevateEdgesOnSelect:dt,minZoom:z,maxZoom:W,nodeExtent:be,onNodesChange:oc,onEdgesChange:X,snapToGrid:K,snapGrid:re,connectionMode:U,translateExtent:Z,connectOnClick:kt,defaultEdgeOptions:Ue,fitView:We,fitViewOptions:me,onNodesDelete:T,onEdgesDelete:$,onDelete:j,onNodeDragStart:A,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:L,onSelectionDragStart:M,onSelectionDragStop:O,onMove:u,onMoveStart:d,onMoveEnd:h,noPanClassName:Ae,nodeOrigin:ye,rfId:Uf,autoPanOnConnect:Ho,autoPanOnNodeDrag:hr,autoPanSpeed:bi,onError:gI,connectionRadius:ac,isValidConnection:mI,selectNodesOnDrag:ne,nodeDragThreshold:bI,connectionDragThreshold:wI,onBeforeDelete:S,debug:SI,ariaLabelConfig:NI,zIndexMode:pb}),f.jsx(mZ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:k,nodeTypes:s,edgeTypes:o,connectionLineType:V,connectionLineStyle:C,connectionLineComponent:F,connectionLineContainerStyle:q,selectionKeyCode:Y,selectionOnDrag:H,selectionMode:Q,deleteKeyCode:G,multiSelectionKeyCode:ce,panActivationKeyCode:oe,zoomActivationKeyCode:se,onlyRenderVisibleElements:le,defaultViewport:Pe,translateExtent:Z,minZoom:z,maxZoom:W,preventScrolling:ae,zoomOnScroll:Bt,zoomOnPinch:vt,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:dr,panOnScrollMode:ut,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:rc,onPaneMouseEnter:Of,onPaneMouseMove:Rf,onPaneMouseLeave:Lf,onPaneScroll:Pf,onPaneContextMenu:Df,paneClickDistance:hs,nodeClickDistance:ps,onSelectionContextMenu:D,onSelectionStart:R,onSelectionEnd:P,onReconnect:ms,onReconnectStart:$f,onReconnectEnd:ic,onEdgeContextMenu:Bf,onEdgeDoubleClick:Ff,onEdgeMouseEnter:sc,onEdgeMouseMove:gs,onEdgeMouseLeave:yi,reconnectRadius:zf,defaultMarkerColor:Oe,noDragClassName:J,noWheelClassName:de,noPanClassName:Ae,rfId:Uf,disableKeyboardA11y:fr,nodeExtent:be,viewport:xI,onViewportChange:vI,nodesDraggable:he}),f.jsx(KX,{onSelectionChange:B}),jf,f.jsx(FX,{proOptions:xe,position:yt}),f.jsx(BX,{rfId:Uf,disableKeyboardA11y:fr})]})})}var vZ=DM(xZ);function kZ(e){const[t,n]=_.useState(e),r=_.useCallback(i=>n(s=>RM(i,s)),[]);return[t,n,r]}function EZ(e){const[t,n]=_.useState(e),r=_.useCallback(i=>n(s=>LM(i,s)),[]);return[t,n,r]}function _Z({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:pt(["react-flow__background-pattern",n,r])})}function SZ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:pt(["react-flow__background-pattern","dots",t])})}var oi;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(oi||(oi={}));const NZ={[oi.Dots]:1,[oi.Lines]:1,[oi.Cross]:6},TZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function cI({id:e,variant:t=oi.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:u}){const d=_.useRef(null),{transform:h,patternId:p}=Ie(TZ,et),g=r||NZ[t],w=t===oi.Dots,x=t===oi.Cross,m=Array.isArray(n)?n:[n,n],y=[m[0]*h[2]||1,m[1]*h[2]||1],b=g*h[2],v=Array.isArray(s)?s:[s,s],E=x?[b,b]:y,k=[v[0]*h[2]||1+E[0]/2,v[1]*h[2]||1+E[1]/2],A=`${p}${e||""}`;return f.jsxs("svg",{className:pt(["react-flow__background",c]),style:{...l,...Mf,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:d,"data-testid":"rf__background",children:[f.jsx("pattern",{id:A,x:h[0]%y[0],y:h[1]%y[1],width:y[0],height:y[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${k[0]},-${k[1]})`,children:w?f.jsx(SZ,{radius:b/2,className:u}):f.jsx(_Z,{dimensions:E,lineWidth:i,variant:t,className:u})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${A})`})]})}cI.displayName="Background";const AZ=_.memo(cI);function CZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function MZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function IZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function OZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function RZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Jc({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:pt(["react-flow__controls-button",t]),...n,children:e})}const LZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function uI({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:u,position:d="bottom-left",orientation:h="vertical","aria-label":p}){const g=qe(),{isInteractive:w,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:y}=Ie(LZ,et),{zoomIn:b,zoomOut:v,fitView:E}=db(),k=()=>{b(),s==null||s()},A=()=>{v(),o==null||o()},N=()=>{E(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),l==null||l(!w)},T=h==="horizontal"?"horizontal":"vertical";return f.jsxs(Cf,{className:pt(["react-flow__controls",T,c]),position:d,style:e,"data-testid":"rf__controls","aria-label":p??y["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(Jc,{onClick:k,className:"react-flow__controls-zoomin",title:y["controls.zoomIn.ariaLabel"],"aria-label":y["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(CZ,{})}),f.jsx(Jc,{onClick:A,className:"react-flow__controls-zoomout",title:y["controls.zoomOut.ariaLabel"],"aria-label":y["controls.zoomOut.ariaLabel"],disabled:x,children:f.jsx(MZ,{})})]}),n&&f.jsx(Jc,{className:"react-flow__controls-fitview",onClick:N,title:y["controls.fitView.ariaLabel"],"aria-label":y["controls.fitView.ariaLabel"],children:f.jsx(IZ,{})}),r&&f.jsx(Jc,{className:"react-flow__controls-interactive",onClick:I,title:y["controls.interactive.ariaLabel"],"aria-label":y["controls.interactive.ariaLabel"],children:w?f.jsx(RZ,{}):f.jsx(OZ,{})}),u]})}uI.displayName="Controls";const PZ=_.memo(uI);function DZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:u,shapeRendering:d,selected:h,onClick:p}){const{background:g,backgroundColor:w}=s||{},x=o||g||w;return f.jsx("rect",{className:pt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:x,stroke:a,strokeWidth:l},shapeRendering:d,onClick:p?m=>p(m,e):void 0})}const jZ=_.memo(DZ),$Z=e=>e.nodes.map(t=>t.id),vp=e=>e instanceof Function?e:()=>e;function BZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=jZ,onClick:o}){const a=Ie($Z,et),l=vp(t),c=vp(e),u=vp(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(zZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:d},h))})}function FZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:u,y:d,width:h,height:p}=Ie(g=>{const w=g.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const x=w.internals.userNode,{x:m,y}=w.internals.positionAbsolute,{width:b,height:v}=ur(x);return{node:x,x:m,y,width:b,height:v}},et);return!c||c.hidden||!rM(c)?null:f.jsx(a,{x:u,y:d,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const zZ=_.memo(FZ);var UZ=_.memo(BZ);const VZ=200,HZ=150,KZ=e=>!e.hidden,qZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?eM(ec(e.nodeLookup,{filter:KZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},zk=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,WZ=(e,t)=>zk(e.viewBB,t.viewBB)&&zk(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,GZ="react-flow__minimap-desc";function dI({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:u,maskStrokeWidth:d,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:w=!1,zoomable:x=!1,ariaLabel:m,inversePan:y,zoomStep:b=1,offsetScale:v=5}){const E=qe(),k=_.useRef(null),{boundingRect:A,viewBB:N,rfId:I,panZoom:T,translateExtent:$,flowWidth:j,flowHeight:B,ariaLabelConfig:M}=Ie(qZ,WZ),L=(e==null?void 0:e.width)??VZ,O=(e==null?void 0:e.height)??HZ,D=A.width/L,R=A.height/O,P=Math.max(D,R),S=P*L,U=P*O,V=v*P,C=A.x-(S-A.width)/2-V,F=A.y-(U-A.height)/2-V,q=S+V*2,G=U+V*2,Y=`${GZ}-${I}`,H=_.useRef(0),Q=_.useRef();H.current=P,_.useEffect(()=>{if(k.current&&T)return Q.current=WY({domNode:k.current,panZoom:T,getTransform:()=>E.getState().transform,getViewScale:()=>H.current}),()=>{var K;(K=Q.current)==null||K.destroy()}},[T]),_.useEffect(()=>{var K;(K=Q.current)==null||K.update({translateExtent:$,width:j,height:B,inversePan:y,pannable:w,zoomStep:b,zoomable:x})},[w,x,y,b,$,j,B]);const oe=p?K=>{var ne;const[re,le]=((ne=Q.current)==null?void 0:ne.pointer(K))||[0,0];p(K,{x:re,y:le})}:void 0,ce=g?_.useCallback((K,re)=>{const le=E.getState().nodeLookup.get(re).internals.userNode;g(K,le)},[]):void 0,se=m??M["minimap.ariaLabel"];return f.jsx(Cf,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d=="number"?d*P:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:pt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:L,height:O,viewBox:`${C} ${F} ${q} ${G}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:k,onClick:oe,children:[se&&f.jsx("title",{id:Y,children:se}),f.jsx(UZ,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${C-V},${F-V}h${q+V*2}v${G+V*2}h${-q-V*2}z - M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}dI.displayName="MiniMap";const YZ=_.memo(dI),XZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,QZ={[Ao.Line]:"right",[Ao.Handle]:"bottom-right"};function ZZ({nodeId:e,position:t,variant:n=Ao.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:w,onResize:x,onResizeEnd:m}){const y=zM(),b=typeof e=="string"?e:y,v=qe(),E=_.useRef(null),k=n===Ao.Handle,A=Ie(_.useCallback(XZ(k&&p),[k,p]),et),N=_.useRef(null),I=t??QZ[n];_.useEffect(()=>{if(!(!E.current||!b))return N.current||(N.current=oX({domNode:E.current,nodeId:b,getStoreItems:()=>{const{nodeLookup:$,transform:j,snapGrid:B,snapToGrid:M,nodeOrigin:L,domNode:O}=v.getState();return{nodeLookup:$,transform:j,snapGrid:B,snapToGrid:M,nodeOrigin:L,paneDomNode:O}},onChange:($,j)=>{const{triggerNodeChanges:B,nodeLookup:M,parentLookup:L,nodeOrigin:O}=v.getState(),D=[],R={x:$.x,y:$.y},P=M.get(b);if(P&&P.expandParent&&P.parentId){const S=P.origin??O,U=$.width??P.measured.width??0,V=$.height??P.measured.height??0,C={id:P.id,parentId:P.parentId,rect:{width:U,height:V,...iM({x:$.x??P.position.x,y:$.y??P.position.y},{width:U,height:V},P.parentId,M,S)}},F=ub([C],M,L,O);D.push(...F),R.x=$.x?Math.max(S[0]*U,$.x):void 0,R.y=$.y?Math.max(S[1]*V,$.y):void 0}if(R.x!==void 0&&R.y!==void 0){const S={id:b,type:"position",position:{...R}};D.push(S)}if($.width!==void 0&&$.height!==void 0){const U={id:b,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:$.width,height:$.height}};D.push(U)}for(const S of j){const U={...S,type:"position"};D.push(U)}B(D)},onEnd:({width:$,height:j})=>{const B={id:b,type:"dimensions",resizing:!1,dimensions:{width:$,height:j}};v.getState().triggerNodeChanges([B])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:d,resizeDirection:h,onResizeStart:w,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var $;($=N.current)==null||$.destroy()}},[I,a,l,c,u,d,w,x,m,g]);const T=I.split("-");return f.jsx("div",{className:pt(["react-flow__resize-control","nodrag",...T,n,r]),ref:E,style:{...i,scale:A,...o&&{[k?"backgroundColor":"borderColor"]:o}},children:s})}_.memo(ZZ);const JZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:rB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:R$},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Qy}];let xg=0;function kp(){return xg+=1,`node_${xg}`}function Ep(e,t,n){const r=fs();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function eJ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:pe.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(yo,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:pe.Right,className:"wfb-handle"})]})}const tJ={agentNode:eJ},Uk={type:"smoothstep",markerEnd:{type:_l.ArrowClosed,width:16,height:16}};function nJ({onBack:e,onCreate:t}){const n=_.useRef(null),[r,i]=_.useState(""),[s,o]=_.useState(""),[a,l]=_.useState("sequential"),c=_.useMemo(()=>{xg=0;const j=kp();return Ep(j,{x:80,y:120},{name:"agent_1"})},[]),[u,d,h]=kZ([c]),[p,g,w]=EZ([]),[x,m]=_.useState(c.id),y=u.find(j=>j.id===x)??null,b=_.useCallback(j=>g(B=>PM({...j,...Uk},B)),[g]),v=_.useCallback(()=>{const j=kp(),B=u.length*28,M=Ep(j,{x:80+B,y:120+B});d(L=>L.concat(M)),m(j)},[u.length,d]),E=j=>{j.dataTransfer.setData("application/wfb-node","agentNode"),j.dataTransfer.effectAllowed="move"},k=_.useCallback(j=>{j.preventDefault(),j.dataTransfer.dropEffect="move"},[]),A=_.useCallback(j=>{if(j.preventDefault(),j.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const M=n.current.screenToFlowPosition({x:j.clientX,y:j.clientY}),L=kp(),O=Ep(L,M);d(D=>D.concat(O)),m(L)},[d]),N=_.useCallback(j=>{x&&d(B=>B.map(M=>M.id===x?{...M,data:{...M.data,agent:{...M.data.agent,...j}}}:M))},[x,d]),I=_.useCallback(()=>{x&&(d(j=>j.filter(B=>B.id!==x)),g(j=>j.filter(B=>B.source!==x&&B.target!==x)),m(null))},[x,d,g]),T=_.useCallback(()=>{const j=u.map(M=>M.data.agent),B={...fs(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:j,workflow:{type:a,nodes:u.map(M=>({id:M.id,agent:M.data.agent})),edges:p.map(M=>({from:M.source,to:M.target}))}};t(B)},[u,p,r,s,a,t]),$=u.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:j=>i(j.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:j=>o(j.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:JZ.map(({type:j,label:B,desc:M,Icon:L})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===j?"wfb-type--active":""}`,onClick:()=>l(j),children:[f.jsx(L,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:B}),f.jsx("span",{className:"wfb-type-desc",children:M})]})]},j))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:E,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(Q$,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(yo,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(mi,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:T,disabled:!$,type:"button",children:[f.jsx(tf,{className:"icon"}),"创建工作流"]}),f.jsxs(vZ,{nodes:u,edges:p,onNodesChange:h,onEdgesChange:w,onConnect:b,onInit:j=>n.current=j,nodeTypes:tJ,defaultEdgeOptions:Uk,onDrop:A,onDragOver:k,onNodeClick:(j,B)=>m(B.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(AZ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(PZ,{showInteractive:!1}),f.jsx(YZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:y?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(Do,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.name,onChange:j=>N({name:j.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.description,onChange:j=>N({description:j.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:y.data.agent.instruction,onChange:j=>N({instruction:j.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.tools.join(", "),onChange:j=>N({tools:j.target.value.split(",").map(B=>B.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:y.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(yo,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",u.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function rJ(e){return f.jsx(lI,{children:f.jsx(nJ,{...e})})}const Vk=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function _p(e){let t=0;for(let n=0;n>>0;return Vk[t%Vk.length]}function iJ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,u)=>c.start_time-u.start_time,s=(c,u)=>({span:c,depth:u,children:(n.get(c.span_id)??[]).sort(i).map(d=>s(d,u+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function sJ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function Hk(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const oJ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function Kk(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:oJ(t),value:r,long:r.length>80||r.includes(` -`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function aJ({sessionId:e,onClose:t}){const[n,r]=_.useState(null),[i,s]=_.useState(""),[o,a]=_.useState(new Set),[l,c]=_.useState(null);_.useEffect(()=>{r(null),s(""),kB(e).then(m=>{r(m),c(m.length?m.reduce((y,b)=>y.start_time<=b.start_time?y:b).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:u,min:d,total:h}=_.useMemo(()=>iJ(n??[]),[n]),p=_.useMemo(()=>sJ(u,o),[u,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,w=h/1e6,x=m=>a(y=>{const b=new Set(y);return b.has(m)?b.delete(m):b.add(m),b});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${w.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(nf,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(at,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const y=m.span,b=(y.start_time-d)/h*100,v=Math.max((y.end_time-y.start_time)/h*100,.6),E=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===y.span_id?"active":""}`,onClick:()=>c(y.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${E?"":"hidden"} ${o.has(y.span_id)?"":"open"}`,onClick:k=>{k.stopPropagation(),E&&x(y.span_id)},children:f.jsx(Wn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:_p(y.name)}}),f.jsx("span",{className:"trace-name",title:y.name,children:y.name})]}),f.jsx("span",{className:"trace-dur",children:Hk(y.end_time-y.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${b}%`,width:`${v}%`,background:_p(y.name)}})})]},y.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:_p(g.name)}}),Hk(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:Kk(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),Kk(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function lJ(e){return e.toLowerCase()==="github"?f.jsx(X$,{className:"icon"}):f.jsx(iB,{className:"icon"})}function cJ({onUsername:e}){const[t,n]=_.useState(null),[r,i]=_.useState("");_.useEffect(()=>{BB().then(n)},[]);const s=PB.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>FB(a.loginUrl),children:[lJ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(zN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function uJ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}ls("Button",uJ);function dJ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}ls("Card",dJ);const fJ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},hJ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function fI(e){return fJ[e]??"flex-start"}function hI(e){return hJ[e]??"stretch"}function pJ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:fI(e.justify),alignItems:hI(e.align)},children:n.map(r=>t.render(r))})}ls("Column",pJ);function mJ({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}ls("Divider",mJ);const gJ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function yJ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:gJ[t]??"•"})}ls("Icon",yJ);function bJ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:fI(e.justify),alignItems:hI(e.align??"center")},children:n.map(r=>t.render(r))})}ls("Row",bJ);const wJ=new Set(["h1","h2","h3","h4","h5"]);function xJ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=wJ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}ls("Text",xJ);const vJ="创建 Agent",kJ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ts={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},EJ=new Set,_J=[];function qk(){const e=typeof localStorage<"u"?localStorage.getItem(Ts.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function SJ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function NJ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function TJ(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function pI(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function AJ(e){if(!e)return"";const t=[];return e.ts&&t.push(pI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function CJ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const MJ="send_a2ui_json_to_client";function IJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===MJ&&t.done):t.kind==="a2ui"?uT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function OJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function RJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const u=c.data;u&&u.veadkOAuth&&typeof u.url=="string"&&o(u.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function LJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function Wk({text:e}){const[t,n]=_.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx($l,{className:"icon"}):f.jsx(z$,{className:"icon"})})}const Gk=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],Yk=()=>Gk[Math.floor(Math.random()*Gk.length)],PJ=20*1024*1024;function DJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function jJ(){const[e,t]=_.useState([]),[n,r]=_.useState(""),[i,s]=_.useState([]),[o,a]=_.useState(""),[l,c]=_.useState({}),u=l[o]??[],d=(X,J)=>c(de=>({...de,[X]:typeof J=="function"?J(de[X]??[]):J})),[h,p]=_.useState(""),[g,w]=_.useState([]),[x,m]=_.useState(()=>new Set),y=_.useRef(new Map),b=(X,J)=>m(de=>{const Ae=new Set(de);return J?Ae.add(X):Ae.delete(X),Ae}),v=_.useRef(""),[E,k]=_.useState(""),[A,N]=_.useState(!1),[I,T]=_.useState(Yk),[$,j]=_.useState(null),[B,M]=_.useState(""),[L,O]=_.useState(),[D,R]=_.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[P,S]=_.useState("local"),[U,V]=_.useState(!1),[C,F]=_.useState(!1),[q,G]=_.useState({}),[Y,H]=_.useState({}),[Q,oe]=_.useState({}),ce=x.has(o),se=q[o]??"",K=Y[o]??EJ,re=Q[o]??_J,le=(X,J)=>{var me,kt,yt,xe,Ue;const de=J.author&&J.author!=="user"?J.author:void 0;de&&(G(Te=>({...Te,[X]:de})),H(Te=>({...Te,[X]:new Set(Te[X]??[]).add(de)})),oe(Te=>{var dt;return(dt=Te[X])!=null&&dt.length?Te:{...Te,[X]:[de]}}));const Ae=((me=J.actions)==null?void 0:me.transferToAgent)??((kt=J.actions)==null?void 0:kt.transfer_to_agent);Ae&&oe(Te=>{const dt=Te[X]??[];return dt[dt.length-1]===Ae?Te:{...Te,[X]:[...dt,Ae]}}),(((yt=J.actions)==null?void 0:yt.endOfAgent)??((xe=J.actions)==null?void 0:xe.end_of_agent)??((Ue=J.actions)==null?void 0:Ue.escalate))&&oe(Te=>{const dt=Te[X]??[];return dt.length<=1?Te:{...Te,[X]:dt.slice(0,-1)}})},[ne,he]=_.useState(qk),[ie,_e]=_.useState(!0),[ke,ye]=_.useState(!1),[Tt,Le]=_.useState(!1),[xt,Pe]=_.useState(!1),[z,W]=_.useState(null),[Z,ae]=_.useState(!1),[be,Oe]=_.useState(!1),Bt=_.useRef(null),[vt,Mn]=_.useState(()=>{const X=Gr();return Bl(X),X}),[dr,ut]=_.useState(!1),In=_.useRef(!1);function At(X){console.log("create agent draft:",X),he(null),ps()}function rc(X,J){console.log("Agent added, navigating to:",X,J),Mn(Gr()),he(null),r(X)}const{ref:Of,onScroll:Rf}=dT(u);_.useEffect(()=>{UB().then(X=>{M(X.userId),O(X.info),V(!!X.local),j(X.status)})},[]),_.useEffect(()=>{SB().then(X=>{R(X.features),S(X.agentsSource),X.defaultView==="addAgent"&&(he(null),ye(!1),ae(!1),Oe(!1),Le(!1),Pe(!0))})},[]),_.useEffect(()=>{fetch("/web/runtime-config").then(X=>X.ok?X.json():null).then(X=>{X&&_e(!!X.credentials)}).catch(()=>{})},[]);function Lf(X){jB(X),M(X),O({name:X}),V(!0),j("authenticated")}function Pf(){U?($B(),M(""),O(void 0),j("unauthenticated")):zB()}_.useEffect(()=>{$!=="unauthenticated"&&xB().then(X=>{if(t(X),P==="cloud"){r("");return}const J=localStorage.getItem(Ts.app),de=vt.flatMap(me=>me.apps.map(kt=>Xi(me.id,kt))),Ae=J&&(X.includes(J)||de.includes(J)),We=["web_search_agent","web_demo"].find(me=>X.includes(me))??X.find(me=>!/^\d/.test(me))??X[0];r(Ae?J:We||"")}).catch(X=>k(String(X)))},[$,P]),_.useEffect(()=>{n&&localStorage.setItem(Ts.app,n)},[n]),_.useEffect(()=>{localStorage.setItem(Ts.view,ne??"chat")},[ne]),_.useEffect(()=>{localStorage.setItem(Ts.session,o),v.current=o},[o]),_.useEffect(()=>()=>y.current.forEach(X=>X.abort()),[]),_.useEffect(()=>{!n||!B||(async()=>{const X=await hs(n);if(!In.current){In.current=!0;const J=localStorage.getItem(Ts.session)||"";if(qk()===null&&J&&X.some(de=>de.id===J)){ms(J);return}}ps()})()},[n,B]),_.useEffect(()=>{const X=Bt.current;X&&X.app===n&&(Bt.current=null,ms(X.sid))},[n]);function Df(X,J){ae(!1),X===n?ms(J):(Bt.current={app:X,sid:J},r(X))}async function hs(X){try{const J=await XN(X,B),de=await Promise.all(J.map(Ae=>{var We;return(We=Ae.events)!=null&&We.length?Promise.resolve(Ae):Dm(X,B,Ae.id)}));return s(de),de}catch(J){return k(String(J)),[]}}function ps(){k(""),T(Yk()),v.current="",a("")}async function jf(X){var J;try{(J=y.current.get(X))==null||J.abort(),await vB(n,B,X),c(de=>{const{[X]:Ae,...We}=de;return We}),X===o&&ps(),await hs(n)}catch(de){k(String(de))}}async function ms(X){if(X!==o&&(v.current=X,k(""),a(X),l[X]===void 0)){F(!0);try{const J=await Dm(n,B,X);d(X,RB(J.events??[]))}catch(J){k(String(J))}finally{F(!1)}}}async function $f(X){const J=[];for(const de of Array.from(X)){if(de.size>PJ){k(`文件过大(>20MB):${de.name}`);continue}const Ae=await DJ(de);J.push({mimeType:de.type||"application/octet-stream",data:Ae,name:de.name})}J.length&&w(de=>[...de,...J])}async function ic(X,J=[]){if(!X.trim()&&J.length===0||ce||!n||!B)return;k("");let de=o;if(!de)try{de=await Pm(n,B),a(de);const me=Date.now()/1e3,kt={id:de,lastUpdateTime:me,events:[{author:"user",timestamp:me,content:{role:"user",parts:[{text:X}]}}]};s(yt=>[kt,...yt.filter(xe=>xe.id!==de)])}catch(me){k(String(me));return}const Ae=new AbortController;y.current.set(de,Ae),b(de,!0),v.current=de;const We=[];J.length&&We.push({kind:"attachment",files:J.map(me=>({mimeType:me.mimeType,data:me.data,name:me.name}))}),X.trim()&&We.push({kind:"text",text:X}),d(de,me=>[...me,{role:"user",blocks:We,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),G(me=>({...me,[de]:""})),H(me=>({...me,[de]:new Set})),oe(me=>({...me,[de]:[]}));try{let me=Wr(),kt=0,yt=Date.now()/1e3;for await(const xe of cd({appName:n,userId:B,sessionId:de,text:X,attachments:J,signal:Ae.signal})){if(Ae.signal.aborted)break;const Ue=xe.error??xe.errorMessage??xe.error_message;if(typeof Ue=="string"&&Ue){v.current===de&&k(Ue);break}le(de,xe),me=dl(me,xe);const Te=xe.usageMetadata??xe.usage_metadata;Te!=null&&Te.totalTokenCount&&(kt=Te.totalTokenCount),xe.timestamp&&(yt=xe.timestamp);const dt=me.blocks,fr={tokens:kt||void 0,ts:yt};d(de,Ho=>{const hr=Ho.slice(),yn=hr[hr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(hr[hr.length-1]={...yn,blocks:dt,meta:fr}),hr})}hs(n)}catch(me){(me==null?void 0:me.name)!=="AbortError"&&!Ae.signal.aborted&&v.current===de&&k(String(me))}finally{y.current.get(de)===Ae&&y.current.delete(de),b(de,!1),G(me=>({...me,[de]:""})),oe(me=>({...me,[de]:[]}))}}function Bf(X,J){var We,me;const de=((We=X==null?void 0:X.event)==null?void 0:We.name)??J.id,Ae=((me=X==null?void 0:X.event)==null?void 0:me.context)??{};ic(`[ui-action] ${de}: ${JSON.stringify(Ae)}`)}async function Ff(X){if(!X.authUri)throw new Error("事件中没有授权地址。");if(!n||!B||!o)throw new Error("会话尚未就绪。");const J=o,de=await RJ(X.authUri),Ae=LJ(X.authConfig,de),We=xe=>xe.map(Ue=>Ue.kind==="auth"&&!Ue.done?{...Ue,done:!0}:Ue);d(J,xe=>{const Ue=xe.slice(),Te=Ue[Ue.length-1];return(Te==null?void 0:Te.role)==="assistant"&&(Ue[Ue.length-1]={...Te,blocks:We(Te.blocks)}),Ue});const me=u[u.length-1],kt=We(me&&me.role==="assistant"?me.blocks:[]),yt=new AbortController;y.current.set(J,yt),b(J,!0);try{let xe=Wr(),Ue=0,Te=Date.now()/1e3;for await(const dt of cd({appName:n,userId:B,sessionId:o,text:"",functionResponses:[{id:X.callId,name:"adk_request_credential",response:Ae}],signal:yt.signal})){if(yt.signal.aborted)break;le(J,dt),xe=dl(xe,dt);const fr=dt.usageMetadata??dt.usage_metadata;fr!=null&&fr.totalTokenCount&&(Ue=fr.totalTokenCount),dt.timestamp&&(Te=dt.timestamp);const Ho=[...kt,...xe.blocks];d(J,hr=>{var ac;const yn=hr.slice(),bi=yn[yn.length-1];return(bi==null?void 0:bi.role)==="assistant"&&(yn[yn.length-1]={...bi,blocks:Ho,meta:{tokens:Ue||((ac=bi.meta)==null?void 0:ac.tokens),ts:Te}}),yn})}hs(n)}catch(xe){(xe==null?void 0:xe.name)!=="AbortError"&&!yt.signal.aborted&&v.current===J&&k(String(xe))}finally{y.current.get(J)===yt&&y.current.delete(J),b(J,!1),G(xe=>({...xe,[J]:""})),oe(xe=>({...xe,[J]:[]}))}}if($===null)return f.jsx("div",{className:"boot"});if($==="unauthenticated")return f.jsx(cJ,{onUsername:Lf});const sc=iT(e,vt),gs=X=>{var J;return((J=sc.find(de=>de.id===X))==null?void 0:J.label)??X},yi=vt.find(X=>X.runtimeId&&X.apps.some(J=>Xi(X.id,J)===n)),zf=yi&&yi.runtimeId?{runtimeId:yi.runtimeId,name:yi.name,region:yi.region??"cn-beijing"}:void 0,oc=X=>{Mn(Gr()),v.current="",a(""),r(X)};return f.jsxs("div",{className:"layout",children:[f.jsx(hF,{agentsSource:P,localApps:e,currentAgentId:n,currentAgentLabel:n?gs(n):"",currentRuntime:zf,author:String((L==null?void 0:L.email)??B??""),onSelectAgent:oc,features:D,sessions:i,currentSessionId:o,streamingSids:x,onNewChat:()=>{he(null),ye(!1),Le(!1),Pe(!1),ae(!1),Oe(!1),ps()},onSearch:()=>{he(null),ye(!1),Le(!1),Pe(!1),Oe(!1),ae(!0),k("")},onQuickCreate:()=>{v.current="",a(""),ye(!1),Le(!1),ae(!1),Oe(!1),he(null),W(null),Pe(!0),k("")},onSkillCenter:()=>{he(null),Le(!1),Pe(!1),ae(!1),Oe(!1),ye(!0),k("")},onAddAgent:()=>{v.current="",he(null),ye(!1),ae(!1),Oe(!1),a(""),Pe(!1),Le(!0),k("")},onManageAgents:()=>{v.current="",a(""),he(null),ye(!1),Le(!1),Pe(!1),ae(!1),Oe(!0),k("")},onPickSession:X=>{he(null),ye(!1),Le(!1),Pe(!1),ae(!1),Oe(!1),k(""),ms(X)},onDeleteSession:jf,userInfo:L,onLogout:Pf}),(()=>{const X=f.jsx(J8,{value:h,onChange:p,onSubmit:()=>{const J=h,de=g;p(""),w([]),ic(J,de)},disabled:!n||!B,busy:ce,attachments:g,onAddFiles:$f,onRemoveAttachment:J=>w(de=>de.filter((Ae,We)=>We!==J))});return f.jsxs("main",{className:"main",children:[f.jsx(pF,{apps:sc.map(J=>J.id),appName:n,onAppChange:oc,agentLabel:gs,title:xt?"添加 Agent":Tt?"添加 AgentKit 智能体":ke?"技能中心":Z?"搜索":be?"管理 Agent":ne?void 0:n?gs(n):"选择 Agent",crumbs:Z||Tt||ke||xt||!ne?void 0:ne==="menu"?[{label:vJ,onClick:()=>{he(null),W(null),Pe(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ut(!0)},{label:kJ[ne]}]}),E&&f.jsx("div",{className:"error",children:E}),C&&f.jsxs("div",{className:"session-loading",children:[f.jsx(at,{className:"icon spin"})," 加载会话…"]}),be?f.jsx(bF,{author:String((L==null?void 0:L.email)??B??"")}):xt?f.jsx(lC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...D.addAgentkit?[{key:"agentkit",icon:SJ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Pe(!1),Le(!0)}}]:[],{key:"scratch",icon:NJ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Pe(!1),W(null),he("menu")}}]}):Z?f.jsx(rF,{userId:B,appId:n,agentLabel:gs,onOpenSession:Df}):Tt?f.jsx(yF,{onAdded:J=>{Mn(Gr()),Le(!1),r(J)},onCancel:()=>Le(!1)}):ke?f.jsx(WB,{}):ne!==null&&!ie?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):ne==="menu"?f.jsx(RK,{onSelect:J=>{W(null),he(J)},onImport:J=>{W(J),he("custom")}}):ne==="intelligent"?f.jsx(qK,{userId:B,onBack:()=>he("menu"),onCreate:At,onAgentAdded:rc}):ne==="custom"?f.jsx(_7,{initialDraft:z??void 0,onBack:()=>he("menu"),onCreate:At,onAgentAdded:rc,author:String((L==null?void 0:L.email)??B??"")}):ne==="template"?f.jsx(T7,{onBack:()=>he("menu"),onCreate:At}):ne==="workflow"?f.jsx(rJ,{onBack:()=>he("menu"),onCreate:At}):u.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),X]}),f.jsx(Xx,{appName:n,activeAgent:se,seenAgents:K,execPath:re})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Of,onScroll:Rf,children:u.map((J,de)=>{var me;const Ae=de===u.length-1;if(J.role==="user"){const kt=J.blocks.map(xe=>xe.kind==="text"?xe.text:"").join(""),yt=J.blocks.flatMap(xe=>xe.kind==="attachment"?xe.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[yt.length>0&&f.jsx("div",{className:"msg-attachments",children:yt.map((xe,Ue)=>{var Te;return(Te=xe.mimeType)!=null&&Te.startsWith("image/")&&xe.data?f.jsx("img",{className:"attachment-thumb",src:`data:${xe.mimeType};base64,${xe.data}`,alt:xe.name??"image"},Ue):f.jsxs("div",{className:"attachment-file",children:[f.jsx(Xy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:xe.name??"文件"})]},Ue)})}),kt&&f.jsx("div",{className:"bubble",children:f.jsx(A0,{text:kt})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((me=J.meta)==null?void 0:me.ts)&&f.jsx("span",{className:"meta-text",children:pI(J.meta.ts)}),f.jsx(Wk,{text:kt})]})]},de)}const We=J.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:We?Ae&&ce?f.jsx(Y8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(Z8,{blocks:J.blocks,onAction:Bf,onAuth:Ff}),!(Ae&&ce)&&!IJ(J)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Ae&&ce)&&!OJ(J)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(TJ,{})}),f.jsx(Wk,{text:CJ(J)})]}),J.meta&&f.jsx("span",{className:"meta-text",children:AJ(J.meta)})]})]})},de)})}),f.jsx(Xx,{appName:n,activeAgent:se,seenAgents:K,execPath:re}),X]})]})})(),A&&o&&f.jsx(aJ,{sessionId:o,onClose:()=>N(!1)}),dr&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ut(!1),children:f.jsxs("div",{className:"confirm-box",onClick:X=>X.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ut(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{W(null),he("menu"),ut(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||Sp.createRoot(document.getElementById("root")).render(f.jsx(oE.StrictMode,{children:f.jsx(hL,{reducedMotion:"user",children:f.jsx(jJ,{})})})); diff --git a/veadk/webui/assets/index-DkAOnguw.js b/veadk/webui/assets/index-DkAOnguw.js new file mode 100644 index 00000000..7641bac1 --- /dev/null +++ b/veadk/webui/assets/index-DkAOnguw.js @@ -0,0 +1,957 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Ru=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ml(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Qk={exports:{}},Od={},Zk={exports:{}},Ae={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ol=Symbol.for("react.element"),TM=Symbol.for("react.portal"),AM=Symbol.for("react.fragment"),CM=Symbol.for("react.strict_mode"),IM=Symbol.for("react.profiler"),MM=Symbol.for("react.provider"),OM=Symbol.for("react.context"),RM=Symbol.for("react.forward_ref"),LM=Symbol.for("react.suspense"),PM=Symbol.for("react.memo"),DM=Symbol.for("react.lazy"),bb=Symbol.iterator;function jM(e){return e===null||typeof e!="object"?null:(e=bb&&e[bb]||e["@@iterator"],typeof e=="function"?e:null)}var Jk={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},e_=Object.assign,t_={};function Oo(e,t,n){this.props=e,this.context=t,this.refs=t_,this.updater=n||Jk}Oo.prototype.isReactComponent={};Oo.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Oo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function n_(){}n_.prototype=Oo.prototype;function kg(e,t,n){this.props=e,this.context=t,this.refs=t_,this.updater=n||Jk}var _g=kg.prototype=new n_;_g.constructor=kg;e_(_g,Oo.prototype);_g.isPureReactComponent=!0;var wb=Array.isArray,r_=Object.prototype.hasOwnProperty,Eg={current:null},i_={key:!0,ref:!0,__self:!0,__source:!0};function s_(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)r_.call(t,r)&&!i_.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,V=L[H];if(0>>1;Hi(W,S))Zi(J,W)?(L[H]=J,L[Z]=S,H=Z):(L[H]=W,L[U]=S,H=U);else if(Zi(J,S))L[H]=J,L[Z]=S,H=Z;else break e}}return j}function i(L,j){var S=L.sortIndex-j.sortIndex;return S!==0?S:L.id-j.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],c=[],d=1,u=null,h=3,p=!1,g=!1,b=!1,x=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(L){for(var j=n(c);j!==null;){if(j.callback===null)r(c);else if(j.startTime<=L)r(c),j.sortIndex=j.expirationTime,t(l,j);else break;j=n(c)}}function v(L){if(b=!1,w(L),!g)if(n(l)!==null)g=!0,M(_);else{var j=n(c);j!==null&&$(v,j.startTime-L)}}function _(L,j){g=!1,b&&(b=!1,m(N),N=-1),p=!0;var S=h;try{for(w(j),u=n(l);u!==null&&(!(u.expirationTime>j)||L&&!D());){var H=u.callback;if(typeof H=="function"){u.callback=null,h=u.priorityLevel;var V=H(u.expirationTime<=j);j=e.unstable_now(),typeof V=="function"?u.callback=V:u===n(l)&&r(l),w(j)}else r(l);u=n(l)}if(u!==null)var C=!0;else{var U=n(c);U!==null&&$(v,U.startTime-j),C=!1}return C}finally{u=null,h=S,p=!1}}var k=!1,T=null,N=-1,I=5,A=-1;function D(){return!(e.unstable_now()-AL||125H?(L.sortIndex=S,t(c,L),n(l)===null&&L===n(c)&&(b?(m(N),N=-1):b=!0,$(v,S-H))):(L.sortIndex=V,t(l,L),g||p||(g=!0,M(_))),L},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(L){var j=h;return function(){var S=h;h=j;try{return L.apply(this,arguments)}finally{h=S}}}})(d_);u_.exports=d_;var GM=u_.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var YM=E,fn=GM;function ie(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Np=Object.prototype.hasOwnProperty,XM=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,vb={},kb={};function QM(e){return Np.call(kb,e)?!0:Np.call(vb,e)?!1:XM.test(e)?kb[e]=!0:(vb[e]=!0,!1)}function ZM(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function JM(e,t,n,r){if(t===null||typeof t>"u"||ZM(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Wt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Tt[e]=new Wt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Tt[t]=new Wt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Tt[e]=new Wt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Tt[e]=new Wt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Tt[e]=new Wt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Tt[e]=new Wt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Tt[e]=new Wt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Tt[e]=new Wt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Tt[e]=new Wt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ng=/[\-:]([a-z])/g;function Tg(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ng,Tg);Tt[t]=new Wt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ng,Tg);Tt[t]=new Wt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ng,Tg);Tt[t]=new Wt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Tt[e]=new Wt(e,1,!1,e.toLowerCase(),null,!1,!1)});Tt.xlinkHref=new Wt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Tt[e]=new Wt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ag(e,t,n,r){var i=Tt.hasOwnProperty(t)?Tt[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` +`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{Kf=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?da(e):""}function eO(e){switch(e.tag){case 5:return da(e.type);case 16:return da("Lazy");case 13:return da("Suspense");case 19:return da("SuspenseList");case 0:case 2:case 15:return e=qf(e.type,!1),e;case 11:return e=qf(e.type.render,!1),e;case 1:return e=qf(e.type,!0),e;default:return""}}function Ip(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 As:return"Fragment";case Ts:return"Portal";case Tp:return"Profiler";case Cg:return"StrictMode";case Ap:return"Suspense";case Cp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case p_:return(e.displayName||"Context")+".Consumer";case h_:return(e._context.displayName||"Context")+".Provider";case Ig:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Mg:return t=e.displayName||null,t!==null?t:Ip(e.type)||"Memo";case Fr:t=e._payload,e=e._init;try{return Ip(e(t))}catch{}}return null}function tO(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 Ip(t);case 8:return t===Cg?"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 li(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function g_(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function nO(e){var t=g_(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 i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function mc(e){e._valueTracker||(e._valueTracker=nO(e))}function y_(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=g_(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Lu(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 Mp(e,t){var n=t.checked;return tt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Eb(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=li(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 b_(e,t){t=t.checked,t!=null&&Ag(e,"checked",t,!1)}function Op(e,t){b_(e,t);var n=li(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")?Rp(e,t.type,n):t.hasOwnProperty("defaultValue")&&Rp(e,t.type,li(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Sb(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 Rp(e,t,n){(t!=="number"||Lu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var fa=Array.isArray;function Ys(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=gc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ha(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ka={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},rO=["Webkit","ms","Moz","O"];Object.keys(ka).forEach(function(e){rO.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ka[t]=ka[e]})});function k_(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ka.hasOwnProperty(e)&&ka[e]?(""+t).trim():t+"px"}function __(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=k_(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var iO=tt({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 Dp(e,t){if(t){if(iO[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ie(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ie(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ie(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ie(62))}}function jp(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 $p=null;function Og(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bp=null,Xs=null,Qs=null;function Ab(e){if(e=Pl(e)){if(typeof Bp!="function")throw Error(ie(280));var t=e.stateNode;t&&(t=jd(t),Bp(e.stateNode,e.type,t))}}function E_(e){Xs?Qs?Qs.push(e):Qs=[e]:Xs=e}function S_(){if(Xs){var e=Xs,t=Qs;if(Qs=Xs=null,Ab(e),t)for(e=0;e>>=0,e===0?32:31-(mO(e)/gO|0)|0}var yc=64,bc=4194304;function ha(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 $u(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=ha(a):(s&=o,s!==0&&(r=ha(s)))}else o=n&~i,o!==0?r=ha(o):s!==0&&(r=ha(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Rl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Un(t),e[t]=n}function xO(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=Ea),jb=" ",$b=!1;function K_(e,t){switch(e){case"keyup":return GO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function q_(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Cs=!1;function XO(e,t){switch(e){case"compositionend":return q_(t);case"keypress":return t.which!==32?null:($b=!0,jb);case"textInput":return e=t.data,e===jb&&$b?null:e;default:return null}}function QO(e,t){if(Cs)return e==="compositionend"||!Fg&&K_(e,t)?(e=V_(),au=jg=qr=null,Cs=!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)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=Ub(n)}}function X_(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?X_(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Q_(){for(var e=window,t=Lu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Lu(e.document)}return t}function zg(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 oR(e){var t=Q_(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&X_(n.ownerDocument.documentElement,n)){if(r!==null&&zg(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 i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Vb(n,s);var o=Vb(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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=document.documentMode,Is=null,Kp=null,Na=null,qp=!1;function Hb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qp||Is==null||Is!==Lu(r)||(r=Is,"selectionStart"in r&&zg(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}),Na&&Xa(Na,r)||(Na=r,r=zu(Kp,"onSelect"),0Rs||(e.current=Zp[Rs],Zp[Rs]=null,Rs--)}function ze(e,t){Rs++,Zp[Rs]=e.current,e.current=t}var ci={},Pt=hi(ci),Zt=hi(!1),Ki=ci;function ao(e,t){var n=e.type.contextTypes;if(!n)return ci;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Jt(e){return e=e.childContextTypes,e!=null}function Vu(){Ke(Zt),Ke(Pt)}function Qb(e,t,n){if(Pt.current!==ci)throw Error(ie(168));ze(Pt,t),ze(Zt,n)}function oE(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ie(108,tO(e)||"Unknown",i));return tt({},n,r)}function Hu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ci,Ki=Pt.current,ze(Pt,e),ze(Zt,Zt.current),!0}function Zb(e,t,n){var r=e.stateNode;if(!r)throw Error(ie(169));n?(e=oE(e,t,Ki),r.__reactInternalMemoizedMergedChildContext=e,Ke(Zt),Ke(Pt),ze(Pt,e)):Ke(Zt),ze(Zt,n)}var gr=null,$d=!1,oh=!1;function aE(e){gr===null?gr=[e]:gr.push(e)}function bR(e){$d=!0,aE(e)}function pi(){if(!oh&&gr!==null){oh=!0;var e=0,t=je;try{var n=gr;for(je=1;e>=o,i-=o,yr=1<<32-Un(t)+i|n<N?(I=T,T=null):I=T.sibling;var A=h(m,T,w[N],v);if(A===null){T===null&&(T=I);break}e&&T&&A.alternate===null&&t(m,T),y=s(A,y,N),k===null?_=A:k.sibling=A,k=A,T=I}if(N===w.length)return n(m,T),Ge&&Ei(m,N),_;if(T===null){for(;NN?(I=T,T=null):I=T.sibling;var D=h(m,T,A.value,v);if(D===null){T===null&&(T=I);break}e&&T&&D.alternate===null&&t(m,T),y=s(D,y,N),k===null?_=D:k.sibling=D,k=D,T=I}if(A.done)return n(m,T),Ge&&Ei(m,N),_;if(T===null){for(;!A.done;N++,A=w.next())A=u(m,A.value,v),A!==null&&(y=s(A,y,N),k===null?_=A:k.sibling=A,k=A);return Ge&&Ei(m,N),_}for(T=r(m,T);!A.done;N++,A=w.next())A=p(T,m,N,A.value,v),A!==null&&(e&&A.alternate!==null&&T.delete(A.key===null?N:A.key),y=s(A,y,N),k===null?_=A:k.sibling=A,k=A);return e&&T.forEach(function(R){return t(m,R)}),Ge&&Ei(m,N),_}function x(m,y,w,v){if(typeof w=="object"&&w!==null&&w.type===As&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case pc:e:{for(var _=w.key,k=y;k!==null;){if(k.key===_){if(_=w.type,_===As){if(k.tag===7){n(m,k.sibling),y=i(k,w.props.children),y.return=m,m=y;break e}}else if(k.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Fr&&tw(_)===k.type){n(m,k.sibling),y=i(k,w.props),y.ref=Zo(m,k,w),y.return=m,m=y;break e}n(m,k);break}else t(m,k);k=k.sibling}w.type===As?(y=Bi(w.props.children,m.mode,v,w.key),y.return=m,m=y):(v=mu(w.type,w.key,w.props,null,m.mode,v),v.ref=Zo(m,y,w),v.return=m,m=v)}return o(m);case Ts:e:{for(k=w.key;y!==null;){if(y.key===k)if(y.tag===4&&y.stateNode.containerInfo===w.containerInfo&&y.stateNode.implementation===w.implementation){n(m,y.sibling),y=i(y,w.children||[]),y.return=m,m=y;break e}else{n(m,y);break}else t(m,y);y=y.sibling}y=ph(w,m.mode,v),y.return=m,m=y}return o(m);case Fr:return k=w._init,x(m,y,k(w._payload),v)}if(fa(w))return g(m,y,w,v);if(Wo(w))return b(m,y,w,v);Sc(m,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,y!==null&&y.tag===6?(n(m,y.sibling),y=i(y,w),y.return=m,m=y):(n(m,y),y=hh(w,m.mode,v),y.return=m,m=y),o(m)):n(m,y)}return x}var co=dE(!0),fE=dE(!1),Wu=hi(null),Gu=null,Ds=null,Kg=null;function qg(){Kg=Ds=Gu=null}function Wg(e){var t=Wu.current;Ke(Wu),e._currentValue=t}function tm(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 Js(e,t){Gu=e,Kg=Ds=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xt=!0),e.firstContext=null)}function Tn(e){var t=e._currentValue;if(Kg!==e)if(e={context:e,memoizedValue:t,next:null},Ds===null){if(Gu===null)throw Error(ie(308));Ds=e,Gu.dependencies={lanes:0,firstContext:e}}else Ds=Ds.next=e;return t}var Oi=null;function Gg(e){Oi===null?Oi=[e]:Oi.push(e)}function hE(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Gg(t)):(n.next=i.next,i.next=n),t.interleaved=n,Tr(e,r)}function Tr(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 zr=!1;function Yg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function pE(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 vr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ti(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Re&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Tr(e,n)}return i=r.interleaved,i===null?(t.next=t,Gg(r)):(t.next=i.next,i.next=t),r.interleaved=t,Tr(e,n)}function cu(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,Lg(e,n)}}function nw(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,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 Yu(e,t,n,r){var i=e.updateQueue;zr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,o===null?s=c:o.next=c,o=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==o&&(a===null?d.firstBaseUpdate=c:a.next=c,d.lastBaseUpdate=l))}if(s!==null){var u=i.baseState;o=0,d=c=l=null,a=s;do{var h=a.lane,p=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.payload,typeof g=="function"){u=g.call(p,u,h);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=b.payload,h=typeof g=="function"?g.call(p,u,h):g,h==null)break e;u=tt({},u,h);break e;case 2:zr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[a]:h.push(a))}else p={eventTime:p,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(c=d=p,l=u):d=d.next=p,o|=h;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;h=a,a=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);Gi|=o,e.lanes=o,e.memoizedState=u}}function rw(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=lh.transition;lh.transition={};try{e(!1),t()}finally{je=n,lh.transition=r}}function ME(){return An().memoizedState}function kR(e,t,n){var r=ri(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},OE(e))RE(t,n);else if(n=hE(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),LE(n,t,r)}}function _R(e,t,n){var r=ri(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(OE(e))RE(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Kn(a,o)){var l=t.interleaved;l===null?(i.next=i,Gg(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=hE(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),LE(n,t,r))}}function OE(e){var t=e.alternate;return e===et||t!==null&&t===et}function RE(e,t){Ta=Qu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function LE(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Lg(e,n)}}var Zu={readContext:Tn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},ER={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:sw,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,du(4194308,4,NE.bind(null,t,e),n)},useLayoutEffect:function(e,t){return du(4194308,4,e,t)},useInsertionEffect:function(e,t){return du(4,2,e,t)},useMemo:function(e,t){var n=Zn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zn();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=kR.bind(null,et,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:iw,useDebugValue:ry,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=iw(!1),t=e[0];return e=vR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=et,i=Zn();if(Ge){if(n===void 0)throw Error(ie(407));n=n()}else{if(n=t(),vt===null)throw Error(ie(349));Wi&30||bE(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,sw(xE.bind(null,r,s,e),[e]),r.flags|=2048,il(9,wE.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=vt.identifierPrefix;if(Ge){var n=br,r=yr;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=nl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[tr]=t,e[Ja]=r,HE(e,t,!1,!1),t.stateNode=e;e:{switch(o=jp(n,r),n){case"dialog":He("cancel",e),He("close",e),i=r;break;case"iframe":case"object":case"embed":He("load",e),i=r;break;case"video":case"audio":for(i=0;iho&&(t.flags|=128,r=!0,Jo(s,!1),t.lanes=4194304)}else{if(!r)if(e=Xu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Jo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ge)return It(t),null}else 2*at()-s.renderingStartTime>ho&&n!==1073741824&&(t.flags|=128,r=!0,Jo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=at(),t.sibling=null,n=Ze.current,ze(Ze,r?n&1|2:n&1),t):(It(t),null);case 22:case 23:return cy(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?on&1073741824&&(It(t),t.subtreeFlags&6&&(t.flags|=8192)):It(t),null;case 24:return null;case 25:return null}throw Error(ie(156,t.tag))}function OR(e,t){switch(Vg(t),t.tag){case 1:return Jt(t.type)&&Vu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return uo(),Ke(Zt),Ke(Pt),Zg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Qg(t),null;case 13:if(Ke(Ze),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ie(340));lo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ke(Ze),null;case 4:return uo(),null;case 10:return Wg(t.type._context),null;case 22:case 23:return cy(),null;case 24:return null;default:return null}}var Tc=!1,Ot=!1,RR=typeof WeakSet=="function"?WeakSet:Set,pe=null;function js(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){rt(e,t,r)}else n.current=null}function um(e,t,n){try{n()}catch(r){rt(e,t,r)}}var gw=!1;function LR(e,t){if(Wp=Bu,e=Q_(),zg(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 i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,c=0,d=0,u=e,h=null;t:for(;;){for(var p;u!==n||i!==0&&u.nodeType!==3||(a=o+i),u!==s||r!==0&&u.nodeType!==3||(l=o+r),u.nodeType===3&&(o+=u.nodeValue.length),(p=u.firstChild)!==null;)h=u,u=p;for(;;){if(u===e)break t;if(h===n&&++c===i&&(a=o),h===s&&++d===r&&(l=o),(p=u.nextSibling)!==null)break;u=h,h=u.parentNode}u=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Gp={focusedElem:e,selectionRange:n},Bu=!1,pe=t;pe!==null;)if(t=pe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,pe=e;else for(;pe!==null;){t=pe;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var b=g.memoizedProps,x=g.memoizedState,m=t.stateNode,y=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),x);m.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ie(163))}}catch(v){rt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,pe=e;break}pe=t.return}return g=gw,gw=!1,g}function Aa(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&um(t,n,s)}i=i.next}while(i!==r)}}function zd(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 dm(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 WE(e){var t=e.alternate;t!==null&&(e.alternate=null,WE(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Ja],delete t[Qp],delete t[gR],delete t[yR])),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 GE(e){return e.tag===5||e.tag===3||e.tag===4}function yw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||GE(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 fm(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=Uu));else if(r!==4&&(e=e.child,e!==null))for(fm(e,t,n),e=e.sibling;e!==null;)fm(e,t,n),e=e.sibling}function hm(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(hm(e,t,n),e=e.sibling;e!==null;)hm(e,t,n),e=e.sibling}var Et=null,Dn=!1;function Pr(e,t,n){for(n=n.child;n!==null;)YE(e,t,n),n=n.sibling}function YE(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Rd,n)}catch{}switch(n.tag){case 5:Ot||js(n,t);case 6:var r=Et,i=Dn;Et=null,Pr(e,t,n),Et=r,Dn=i,Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Et.removeChild(n.stateNode));break;case 18:Et!==null&&(Dn?(e=Et,n=n.stateNode,e.nodeType===8?sh(e.parentNode,n):e.nodeType===1&&sh(e,n),Ga(e)):sh(Et,n.stateNode));break;case 4:r=Et,i=Dn,Et=n.stateNode.containerInfo,Dn=!0,Pr(e,t,n),Et=r,Dn=i;break;case 0:case 11:case 14:case 15:if(!Ot&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&um(n,t,o),i=i.next}while(i!==r)}Pr(e,t,n);break;case 1:if(!Ot&&(js(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){rt(n,t,a)}Pr(e,t,n);break;case 21:Pr(e,t,n);break;case 22:n.mode&1?(Ot=(r=Ot)||n.memoizedState!==null,Pr(e,t,n),Ot=r):Pr(e,t,n);break;default:Pr(e,t,n)}}function bw(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new RR),t.forEach(function(r){var i=VR.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function On(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=at()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*DR(r/1960))-r,10e?16:e,Wr===null)var r=!1;else{if(e=Wr,Wr=null,td=0,Re&6)throw Error(ie(331));var i=Re;for(Re|=4,pe=e.current;pe!==null;){var s=pe,o=s.child;if(pe.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lat()-ay?$i(e,0):oy|=n),en(e,t)}function rS(e,t){t===0&&(e.mode&1?(t=bc,bc<<=1,!(bc&130023424)&&(bc=4194304)):t=1);var n=Ht();e=Tr(e,t),e!==null&&(Rl(e,t,n),en(e,n))}function UR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),rS(e,n)}function VR(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ie(314))}r!==null&&r.delete(t),rS(e,n)}var iS;iS=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Xt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Xt=!1,IR(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,Ge&&t.flags&1048576&&lE(t,qu,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;fu(e,t),e=t.pendingProps;var i=ao(t,Pt.current);Js(t,n),i=ey(null,t,r,e,i,n);var s=ty();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jt(r)?(s=!0,Hu(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Yg(t),i.updater=Fd,t.stateNode=i,i._reactInternals=t,rm(t,r,e,n),t=om(null,t,r,!0,s,n)):(t.tag=0,Ge&&s&&Ug(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(fu(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=KR(r),e=Pn(r,e),i){case 0:t=sm(null,t,r,e,n);break e;case 1:t=hw(null,t,r,e,n);break e;case 11:t=dw(null,t,r,e,n);break e;case 14:t=fw(null,t,r,Pn(r.type,e),n);break e}throw Error(ie(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),sm(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),hw(e,t,r,i,n);case 3:e:{if(zE(t),e===null)throw Error(ie(387));r=t.pendingProps,s=t.memoizedState,i=s.element,pE(e,t),Yu(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=fo(Error(ie(423)),t),t=pw(e,t,r,n,i);break e}else if(r!==i){i=fo(Error(ie(424)),t),t=pw(e,t,r,n,i);break e}else for(ln=ei(t.stateNode.containerInfo.firstChild),cn=t,Ge=!0,$n=null,n=fE(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(lo(),r===i){t=Ar(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return mE(t),e===null&&em(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Yp(r,i)?o=null:s!==null&&Yp(r,s)&&(t.flags|=32),FE(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&em(t),null;case 13:return UE(e,t,n);case 4:return Xg(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=co(t,null,r,n):zt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),dw(e,t,r,i,n);case 7:return zt(e,t,t.pendingProps,n),t.child;case 8:return zt(e,t,t.pendingProps.children,n),t.child;case 12:return zt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ze(Wu,r._currentValue),r._currentValue=o,s!==null)if(Kn(s.value,o)){if(s.children===i.children&&!Zt.current){t=Ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=vr(-1,n&-n),l.tag=2;var c=s.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),tm(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(ie(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),tm(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}zt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Js(t,n),i=Tn(i),r=r(i),t.flags|=1,zt(e,t,r,n),t.child;case 14:return r=t.type,i=Pn(r,t.pendingProps),i=Pn(r.type,i),fw(e,t,r,i,n);case 15:return $E(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),fu(e,t),t.tag=1,Jt(r)?(e=!0,Hu(t)):e=!1,Js(t,n),PE(t,r,i),rm(t,r,i,n),om(null,t,r,!0,e,n);case 19:return VE(e,t,n);case 22:return BE(e,t,n)}throw Error(ie(156,t.tag))};function sS(e,t){return O_(e,t)}function HR(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 En(e,t,n,r){return new HR(e,t,n,r)}function dy(e){return e=e.prototype,!(!e||!e.isReactComponent)}function KR(e){if(typeof e=="function")return dy(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ig)return 11;if(e===Mg)return 14}return 2}function ii(e,t){var n=e.alternate;return n===null?(n=En(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 mu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")dy(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case As:return Bi(n.children,i,s,t);case Cg:o=8,i|=8;break;case Tp:return e=En(12,n,t,i|2),e.elementType=Tp,e.lanes=s,e;case Ap:return e=En(13,n,t,i),e.elementType=Ap,e.lanes=s,e;case Cp:return e=En(19,n,t,i),e.elementType=Cp,e.lanes=s,e;case m_:return Vd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case h_:o=10;break e;case p_:o=9;break e;case Ig:o=11;break e;case Mg:o=14;break e;case Fr:o=16,r=null;break e}throw Error(ie(130,e==null?e:typeof e,""))}return t=En(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function Bi(e,t,n,r){return e=En(7,e,r,t),e.lanes=n,e}function Vd(e,t,n,r){return e=En(22,e,r,t),e.elementType=m_,e.lanes=n,e.stateNode={isHidden:!1},e}function hh(e,t,n){return e=En(6,e,null,t),e.lanes=n,e}function ph(e,t,n){return t=En(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function qR(e,t,n,r,i){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=Gf(0),this.expirationTimes=Gf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Gf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function fy(e,t,n,r,i,s,o,a,l){return e=new qR(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=En(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Yg(s),e}function WR(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(cS)}catch(e){console.error(e)}}cS(),c_.exports=mn;var ZR=c_.exports,Nw=ZR;Sp.createRoot=Nw.createRoot,Sp.hydrateRoot=Nw.hydrateRoot;const gy=E.createContext({});function Gd(e){const t=E.useRef(null);return t.current===null&&(t.current=e()),t.current}const Yd=E.createContext(null),ol=E.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class JR extends E.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function eL({children:e,isPresent:t}){const n=E.useId(),r=E.useRef(null),i=E.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=E.useContext(ol);return E.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:c}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const d=document.createElement("style");return s&&(d.nonce=s),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(` + [data-motion-pop-id="${n}"] { + position: absolute !important; + width: ${o}px !important; + height: ${a}px !important; + top: ${l}px !important; + left: ${c}px !important; + } + `),()=>{document.head.removeChild(d)}},[t]),f.jsx(JR,{isPresent:t,childRef:r,sizeRef:i,children:E.cloneElement(e,{ref:r})})}const tL=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Gd(nL),l=E.useId(),c=E.useCallback(u=>{a.set(u,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),d=E.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:c,register:u=>(a.set(u,!1),()=>a.delete(u))}),s?[Math.random(),c]:[n,c]);return E.useMemo(()=>{a.forEach((u,h)=>a.set(h,!1))},[n]),E.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(eL,{isPresent:n,children:e})),f.jsx(Yd.Provider,{value:d,children:e})};function nL(){return new Map}function uS(e=!0){const t=E.useContext(Yd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=E.useId();E.useEffect(()=>{e&&i(s)},[e]);const o=E.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Ic=e=>e.key||"";function Tw(e){const t=[];return E.Children.forEach(e,n=>{E.isValidElement(n)&&t.push(n)}),t}const yy=typeof window<"u",dS=yy?E.useLayoutEffect:E.useEffect,by=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=uS(o),c=E.useMemo(()=>Tw(e),[e]),d=o&&!a?[]:c.map(Ic),u=E.useRef(!0),h=E.useRef(c),p=Gd(()=>new Map),[g,b]=E.useState(c),[x,m]=E.useState(c);dS(()=>{u.current=!1,h.current=c;for(let v=0;v{const _=Ic(v),k=o&&!a?!1:c===x||d.includes(_),T=()=>{if(p.has(_))p.set(_,!0);else return;let N=!0;p.forEach(I=>{I||(N=!1)}),N&&(w==null||w(),m(h.current),o&&(l==null||l()),r&&r())};return f.jsx(tL,{isPresent:k,initial:!u.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:k?void 0:T,children:v},_)})})},un=e=>e;let fS=un;const rL={useManualTiming:!1};function iL(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(c){s.has(c)&&(l.schedule(c),e()),c(o)}const l={schedule:(c,d=!1,u=!1)=>{const p=u&&r?t:n;return d&&s.add(c),p.has(c)||p.add(c),c},cancel:c=>{n.delete(c),s.delete(c)},process:c=>{if(o=c,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(c))}};return l}const Mc=["read","resolveKeyframes","update","preRender","render","postRender"],sL=40;function hS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Mc.reduce((m,y)=>(m[y]=iL(s),m),{}),{read:a,resolveKeyframes:l,update:c,preRender:d,render:u,postRender:h}=o,p=()=>{const m=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,sL),1),i.timestamp=m,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),d.process(i),u.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},g=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Mc.reduce((m,y)=>{const w=o[y];return m[y]=(v,_=!1,k=!1)=>(n||g(),w.schedule(v,_,k)),m},{}),cancel:m=>{for(let y=0;yAw[e].some(n=>!!t[n])};function oL(e){for(const t in e)po[t]={...po[t],...e[t]}}const aL=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function id(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||aL.has(e)}let mS=e=>!id(e);function gS(e){e&&(mS=t=>t.startsWith("on")?!id(t):e(t))}try{gS(require("@emotion/is-prop-valid").default)}catch{}function lL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(mS(i)||n===!0&&id(i)||!t&&!id(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function cL({children:e,isValidProp:t,...n}){t&&gS(t),n={...E.useContext(ol),...n},n.isStatic=Gd(()=>n.isStatic);const r=E.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(ol.Provider,{value:r,children:e})}function uL(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const Xd=E.createContext({});function al(e){return typeof e=="string"||Array.isArray(e)}function Qd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const wy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],xy=["initial",...wy];function Zd(e){return Qd(e.animate)||xy.some(t=>al(e[t]))}function yS(e){return!!(Zd(e)||e.variants)}function dL(e,t){if(Zd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||al(n)?n:void 0,animate:al(r)?r:void 0}}return e.inherit!==!1?t:{}}function fL(e){const{initial:t,animate:n}=dL(e,E.useContext(Xd));return E.useMemo(()=>({initial:t,animate:n}),[Cw(t),Cw(n)])}function Cw(e){return Array.isArray(e)?e.join(" "):e}const hL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function pL(e,t,n){return E.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Bs(n)&&(n.current=r))},[t])}const vy=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),mL="framerAppearId",bS="data-"+vy(mL),{schedule:ky}=hS(queueMicrotask,!1),wS=E.createContext({});function gL(e,t,n,r,i){var s,o;const{visualElement:a}=E.useContext(Xd),l=E.useContext(pS),c=E.useContext(Yd),d=E.useContext(ol).reducedMotion,u=E.useRef(null);r=r||l.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:a,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:d}));const h=u.current,p=E.useContext(wS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&yL(u.current,n,i,p);const g=E.useRef(!1);E.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[bS],x=E.useRef(!!b&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,b))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,b)));return dS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),ky.render(h.render),x.current&&h.animationState&&h.animationState.animateChanges())}),E.useEffect(()=>{h&&(!x.current&&h.animationState&&h.animationState.animateChanges(),x.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,b)}),x.current=!1))}),h}function yL(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:xS(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&Bs(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}function xS(e){if(e)return e.options.allowProjection!==!1?e.projection:xS(e.parent)}function bL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&oL(e);function a(c,d){let u;const h={...E.useContext(ol),...c,layoutId:wL(c)},{isStatic:p}=h,g=fL(c),b=r(c,p);if(!p&&yy){xL();const x=vL(h);u=x.MeasureLayout,g.visualElement=gL(i,b,h,t,x.ProjectionNode)}return f.jsxs(Xd.Provider,{value:g,children:[u&&g.visualElement?f.jsx(u,{visualElement:g.visualElement,...h}):null,n(i,c,pL(b,g.visualElement,d),b,p,g.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=E.forwardRef(a);return l[hL]=i,l}function wL({layoutId:e}){const t=E.useContext(gy).id;return t&&e!==void 0?t+"-"+e:e}function xL(e,t){E.useContext(pS).strict}function vL(e){const{drag:t,layout:n}=po;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const kL=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function _y(e){return typeof e!="string"||e.includes("-")?!1:!!(kL.indexOf(e)>-1||/[A-Z]/u.test(e))}function Iw(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function Ey(e,t,n,r){if(typeof t=="function"){const[i,s]=Iw(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Iw(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const bm=e=>Array.isArray(e),_L=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),EL=e=>bm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function gu(e){const t=Rt(e)?e.get():e;return _L(t)?t.toValue():t}function SL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:NL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const vS=e=>(t,n)=>{const r=E.useContext(Xd),i=E.useContext(Yd),s=()=>SL(e,t,r,i);return n?s():Gd(s)};function NL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=gu(s[h]);let{initial:o,animate:a}=e;const l=Zd(e),c=yS(e);t&&c&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const u=d?a:o;if(u&&typeof u!="boolean"&&!Qd(u)){const h=Array.isArray(u)?u:[u];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),_S=kS("--"),TL=kS("var(--"),Sy=e=>TL(e)?AL.test(e.split("/*")[0].trim()):!1,AL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,ES=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Cr=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},ll={...Do,transform:e=>Cr(0,1,e)},Oc={...Do,default:1},jl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=jl("deg"),ir=jl("%"),ve=jl("px"),CL=jl("vh"),IL=jl("vw"),Mw={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},ML={borderWidth:ve,borderTopWidth:ve,borderRightWidth:ve,borderBottomWidth:ve,borderLeftWidth:ve,borderRadius:ve,radius:ve,borderTopLeftRadius:ve,borderTopRightRadius:ve,borderBottomRightRadius:ve,borderBottomLeftRadius:ve,width:ve,maxWidth:ve,height:ve,maxHeight:ve,top:ve,right:ve,bottom:ve,left:ve,padding:ve,paddingTop:ve,paddingRight:ve,paddingBottom:ve,paddingLeft:ve,margin:ve,marginTop:ve,marginRight:ve,marginBottom:ve,marginLeft:ve,backgroundPositionX:ve,backgroundPositionY:ve},OL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Oc,scaleX:Oc,scaleY:Oc,scaleZ:Oc,skew:Br,skewX:Br,skewY:Br,distance:ve,translateX:ve,translateY:ve,translateZ:ve,x:ve,y:ve,z:ve,perspective:ve,transformPerspective:ve,opacity:ll,originX:Mw,originY:Mw,originZ:ve},Ow={...Do,transform:Math.round},Ny={...ML,...OL,zIndex:Ow,size:ve,fillOpacity:ll,strokeOpacity:ll,numOctaves:Ow},RL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},LL=Po.length;function PL(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),SS=()=>({...Cy(),attrs:{}}),Iy=e=>typeof e=="string"&&e.toLowerCase()==="svg";function NS(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const TS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function AS(e,t,n,r){NS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(TS.has(i)?i:vy(i),t.attrs[i])}const sd={};function FL(e){Object.assign(sd,e)}function CS(e,{layout:t,layoutId:n}){return os.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!sd[e]||e==="opacity")}function My(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||CS(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function IS(e,t,n){const r=My(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Po.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function zL(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Lw=["x","y","width","height","cx","cy","r"],UL={useVisualState:vS({scrapeMotionValuesFromProps:IS,createRenderState:SS,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(os.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{zL(n,r),qe.render(()=>{Ay(r,i,Iy(n.tagName),e.transformTemplate),AS(n,r)})})}})},VL={useVisualState:vS({scrapeMotionValuesFromProps:My,createRenderState:Cy})};function MS(e,t,n){for(const r in t)!Rt(t[r])&&!CS(r,n)&&(e[r]=t[r])}function HL({transformTemplate:e},t){return E.useMemo(()=>{const n=Cy();return Ty(n,t,e),Object.assign({},n.vars,n.style)},[t])}function KL(e,t){const n=e.style||{},r={};return MS(r,n,e),Object.assign(r,HL(e,t)),r}function qL(e,t){const n={},r=KL(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function WL(e,t,n,r){const i=E.useMemo(()=>{const s=SS();return Ay(s,t,Iy(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};MS(s,e.style,e),i.style={...s,...i.style}}return i}function GL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(_y(n)?WL:qL)(r,s,o,n),c=lL(r,typeof n=="string",e),d=n!==E.Fragment?{...c,...l,ref:i}:{},{children:u}=r,h=E.useMemo(()=>Rt(u)?u.get():u,[u]);return E.createElement(n,{...d,children:h})}}function YL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={..._y(r)?UL:VL,preloadedFeatures:e,useRender:GL(i),createVisualElement:t,Component:r};return bL(o)}}function OS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(yu===void 0&&sr.set(St.isProcessing||rL.useManualTiming?St.timestamp:performance.now()),yu),set:e=>{yu=e,queueMicrotask(XL)}};function Ry(e,t){e.indexOf(t)===-1&&e.push(t)}function Ly(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Py{constructor(){this.subscriptions=[]}add(t){return Ry(this.subscriptions,t),()=>Ly(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class ZL{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=sr.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=sr.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=QL(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Py);const r=this.events[t].add(n);return t==="change"?()=>{r(),qe.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=sr.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Pw)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Pw);return LS(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function cl(e,t){return new ZL(e,t)}function JL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,cl(n))}function eP(e,t){const n=Jd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=EL(s[o]);JL(e,o,a)}}function tP(e){return!!(Rt(e)&&e.add)}function wm(e,t){const n=e.getValue("willChange");if(tP(n))return n.add(t)}function PS(e){return e.props[bS]}function Dy(e){let t;return()=>(t===void 0&&(t=e()),t)}const nP=Dy(()=>window.ScrollTimeline!==void 0);class rP{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(nP()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class iP extends rP{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const kr=e=>e*1e3,_r=e=>e/1e3;function jy(e){return typeof e=="function"}function Dw(e,t){e.timeline=t,e.onfinish=null}const $y=e=>Array.isArray(e)&&typeof e[0]=="number",sP={linearEasing:void 0};function oP(e,t){const n=Dy(e);return()=>{var r;return(r=sP[t])!==null&&r!==void 0?r:n()}}const od=oP(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),mo=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},DS=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,xm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ma([0,.65,.55,1]),circOut:ma([.55,0,1,.45]),backIn:ma([.31,.01,.66,-.59]),backOut:ma([.33,1.53,.69,.99])};function $S(e,t){if(e)return typeof e=="function"&&od()?DS(e,t):$y(e)?ma(e):Array.isArray(e)?e.map(n=>$S(n,t)||xm.easeOut):xm[e]}const BS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,aP=1e-7,lP=12;function cP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=BS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>aP&&++acP(s,0,1,e,n);return s=>s===0||s===1?s:BS(i(s),t,r)}const FS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,zS=e=>t=>1-e(1-t),US=$l(.33,1.53,.69,.99),By=zS(US),VS=FS(By),HS=e=>(e*=2)<1?.5*By(e):.5*(2-Math.pow(2,-10*(e-1))),Fy=e=>1-Math.sin(Math.acos(e)),KS=zS(Fy),qS=FS(Fy),WS=e=>/^0[^.\s]+$/u.test(e);function uP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||WS(e):!0}const Ma=e=>Math.round(e*1e5)/1e5,zy=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function dP(e){return e==null}const fP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Uy=(e,t)=>n=>!!(typeof n=="string"&&fP.test(n)&&n.startsWith(e)||t&&!dP(n)&&Object.prototype.hasOwnProperty.call(n,t)),GS=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(zy);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},hP=e=>Cr(0,255,e),gh={...Do,transform:e=>Math.round(hP(e))},Li={test:Uy("rgb","red"),parse:GS("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+gh.transform(e)+", "+gh.transform(t)+", "+gh.transform(n)+", "+Ma(ll.transform(r))+")"};function pP(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const vm={test:Uy("#"),parse:pP,transform:Li.transform},Fs={test:Uy("hsl","hue"),parse:GS("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Ma(t))+", "+ir.transform(Ma(n))+", "+Ma(ll.transform(r))+")"},Mt={test:e=>Li.test(e)||vm.test(e)||Fs.test(e),parse:e=>Li.test(e)?Li.parse(e):Fs.test(e)?Fs.parse(e):vm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Li.transform(e):Fs.transform(e)},mP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function gP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(zy))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(mP))===null||n===void 0?void 0:n.length)||0)>0}const YS="number",XS="color",yP="var",bP="var(",jw="${}",wP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ul(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(wP,l=>(Mt.test(l)?(r.color.push(s),i.push(XS),n.push(Mt.parse(l))):l.startsWith(bP)?(r.var.push(s),i.push(yP),n.push(l)):(r.number.push(s),i.push(YS),n.push(parseFloat(l))),++s,jw)).split(jw);return{values:n,split:a,indexes:r,types:i}}function QS(e){return ul(e).values}function ZS(e){const{split:t,types:n}=ul(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function vP(e){const t=QS(e);return ZS(e)(t.map(xP))}const di={test:gP,parse:QS,createTransformer:ZS,getAnimatableNone:vP},kP=new Set(["brightness","contrast","saturate","opacity"]);function _P(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(zy)||[];if(!r)return e;const i=n.replace(r,"");let s=kP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const EP=/\b([a-z-]*)\(.*?\)/gu,km={...di,getAnimatableNone:e=>{const t=e.match(EP);return t?t.map(_P).join(" "):e}},SP={...Ny,color:Mt,backgroundColor:Mt,outlineColor:Mt,fill:Mt,stroke:Mt,borderColor:Mt,borderTopColor:Mt,borderRightColor:Mt,borderBottomColor:Mt,borderLeftColor:Mt,filter:km,WebkitFilter:km},Vy=e=>SP[e];function JS(e,t){let n=Vy(e);return n!==km&&(n=di),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const NP=new Set(["auto","none","0"]);function TP(e,t,n){let r=0,i;for(;re===Do||e===ve,Bw=(e,t)=>parseFloat(e.split(", ")[t]),Fw=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Bw(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Bw(s[1],e):0}},AP=new Set(["x","y","z"]),CP=Po.filter(e=>!AP.has(e));function IP(e){const t=[];return CP.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const go={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Fw(4,13),y:Fw(5,14)};go.translateX=go.x;go.translateY=go.y;const Fi=new Set;let _m=!1,Em=!1;function eN(){if(Em){const e=Array.from(Fi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=IP(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Em=!1,_m=!1,Fi.forEach(e=>e.complete()),Fi.clear()}function tN(){Fi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Em=!0)})}function MP(){tN(),eN()}class Hy{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Fi.add(this),_m||(_m=!0,qe.read(tN),qe.resolveKeyframes(eN))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),OP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function RP(e){const t=OP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function rN(e,t,n=1){const[r,i]=RP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return nN(o)?parseFloat(o):o}return Sy(i)?rN(i,t,n+1):i}const iN=e=>t=>t.test(e),LP={test:e=>e==="auto",parse:e=>e},sN=[Do,ve,ir,Br,IL,CL,LP],zw=e=>sN.find(iN(e));class oN extends Hy{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(c)}),this.resolveNoneKeyframes()}}const Uw=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(di.test(e)||e==="0")&&!e.startsWith("url("));function PP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function ef(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(jP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const $P=40;class aN{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sr.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>$P?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&MP(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=sr.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:c}=this.options;if(!c&&!DP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(ef(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Sm=2e4;function lN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=Sm?1/0:t}const Je=(e,t,n)=>e+(t-e)*n;function yh(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function BP({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=yh(l,a,e+1/3),s=yh(l,a,e),o=yh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function ad(e,t){return n=>n>0?t:e}const bh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},FP=[vm,Li,Fs],zP=e=>FP.find(t=>t.test(e));function Vw(e){const t=zP(e);if(!t)return!1;let n=t.parse(e);return t===Fs&&(n=BP(n)),n}const Hw=(e,t)=>{const n=Vw(e),r=Vw(t);if(!n||!r)return ad(e,t);const i={...n};return s=>(i.red=bh(n.red,r.red,s),i.green=bh(n.green,r.green,s),i.blue=bh(n.blue,r.blue,s),i.alpha=Je(n.alpha,r.alpha,s),Li.transform(i))},UP=(e,t)=>n=>t(e(n)),Bl=(...e)=>e.reduce(UP),Nm=new Set(["none","hidden"]);function VP(e,t){return Nm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function HP(e,t){return n=>Je(e,t,n)}function Ky(e){return typeof e=="number"?HP:typeof e=="string"?Sy(e)?ad:Mt.test(e)?Hw:WP:Array.isArray(e)?cN:typeof e=="object"?Mt.test(e)?Hw:KP:ad}function cN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>Ky(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function qP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=di.createTransformer(t),r=ul(e),i=ul(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Nm.has(e)&&!i.values.length||Nm.has(t)&&!r.values.length?VP(e,t):Bl(cN(qP(r,i),i.values),n):ad(e,t)};function uN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Je(e,t,n):Ky(e)(e,t)}const GP=5;function dN(e,t,n){const r=Math.max(t-GP,0);return LS(n-e(r),t-r)}const nt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},wh=.001;function YP({duration:e=nt.duration,bounce:t=nt.bounce,velocity:n=nt.velocity,mass:r=nt.mass}){let i,s,o=1-t;o=Cr(nt.minDamping,nt.maxDamping,o),e=Cr(nt.minDuration,nt.maxDuration,_r(e)),o<1?(i=c=>{const d=c*o,u=d*e,h=d-n,p=Tm(c,o),g=Math.exp(-u);return wh-h/p*g},s=c=>{const u=c*o*e,h=u*n+n,p=Math.pow(o,2)*Math.pow(c,2)*e,g=Math.exp(-u),b=Tm(Math.pow(c,2),o);return(-i(c)+wh>0?-1:1)*((h-p)*g)/b}):(i=c=>{const d=Math.exp(-c*e),u=(c-n)*e+1;return-wh+d*u},s=c=>{const d=Math.exp(-c*e),u=(n-c)*(e*e);return d*u});const a=5/e,l=QP(i,s,a);if(e=kr(e),isNaN(l))return{stiffness:nt.stiffness,damping:nt.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const XP=12;function QP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function eD(e){let t={velocity:nt.velocity,stiffness:nt.stiffness,damping:nt.damping,mass:nt.mass,isResolvedFromDuration:!1,...e};if(!Kw(e,JP)&&Kw(e,ZP))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Cr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:nt.mass,stiffness:i,damping:s}}else{const n=YP(e);t={...t,...n,mass:nt.mass},t.isResolvedFromDuration=!0}return t}function fN(e=nt.visualDuration,t=nt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:c,mass:d,duration:u,velocity:h,isResolvedFromDuration:p}=eD({...n,velocity:-_r(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*d)),x=o-s,m=_r(Math.sqrt(l/d)),y=Math.abs(x)<5;r||(r=y?nt.restSpeed.granular:nt.restSpeed.default),i||(i=y?nt.restDelta.granular:nt.restDelta.default);let w;if(b<1){const _=Tm(m,b);w=k=>{const T=Math.exp(-b*m*k);return o-T*((g+b*m*x)/_*Math.sin(_*k)+x*Math.cos(_*k))}}else if(b===1)w=_=>o-Math.exp(-m*_)*(x+(g+m*x)*_);else{const _=m*Math.sqrt(b*b-1);w=k=>{const T=Math.exp(-b*m*k),N=Math.min(_*k,300);return o-T*((g+b*m*x)*Math.sinh(N)+_*x*Math.cosh(N))/_}}const v={calculatedDuration:p&&u||null,next:_=>{const k=w(_);if(p)a.done=_>=u;else{let T=0;b<1&&(T=_===0?kr(g):dN(w,_,k));const N=Math.abs(T)<=r,I=Math.abs(o-k)<=i;a.done=N&&I}return a.value=a.done?o:k,a},toString:()=>{const _=Math.min(lN(v),Sm),k=DS(T=>v.next(_*T).value,_,30);return _+"ms "+k}};return v}function qw({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:d}){const u=e[0],h={done:!1,value:u},p=N=>a!==void 0&&Nl,g=N=>a===void 0?l:l===void 0||Math.abs(a-N)-b*Math.exp(-N/r),w=N=>m+y(N),v=N=>{const I=y(N),A=w(N);h.done=Math.abs(I)<=c,h.value=h.done?m:A};let _,k;const T=N=>{p(h.value)&&(_=N,k=fN({keyframes:[h.value,g(h.value)],velocity:dN(w,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:d}))};return T(0),{calculatedDuration:null,next:N=>{let I=!1;return!k&&_===void 0&&(I=!0,v(N),T(N)),_!==void 0&&N>=_?k.next(N-_):(!I&&v(N),h)}}}const tD=$l(.42,0,1,1),nD=$l(0,0,.58,1),hN=$l(.42,0,.58,1),rD=e=>Array.isArray(e)&&typeof e[0]!="number",iD={linear:un,easeIn:tD,easeInOut:hN,easeOut:nD,circIn:Fy,circInOut:qS,circOut:KS,backIn:By,backInOut:VS,backOut:US,anticipate:HS},Ww=e=>{if($y(e)){fS(e.length===4);const[t,n,r,i]=e;return $l(t,n,r,i)}else if(typeof e=="string")return iD[e];return e};function sD(e,t,n){const r=[],i=n||uN,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=sD(t,r,i),l=a.length,c=d=>{if(o&&d1)for(;uc(Cr(e[0],e[s-1],d)):c}function aD(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=mo(0,t,r);e.push(Je(n,1,i))}}function lD(e){const t=[0];return aD(t,e.length-1),t}function cD(e,t){return e.map(n=>n*t)}function uD(e,t){return e.map(()=>t||hN).splice(0,e.length-1)}function ld({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=rD(r)?r.map(Ww):Ww(r),s={done:!1,value:t[0]},o=cD(n&&n.length===t.length?n:lD(t),e),a=oD(o,t,{ease:Array.isArray(i)?i:uD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const dD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>qe.update(t,!0),stop:()=>ui(t),now:()=>St.isProcessing?St.timestamp:sr.now()}},fD={decay:qw,inertia:qw,tween:ld,keyframes:ld,spring:fN},hD=e=>e/100;class qy extends aN{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||Hy,a=(l,c)=>this.onKeyframesResolved(l,c);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=jy(n)?n:fD[n]||ld;let l,c;a!==ld&&typeof t[0]!="number"&&(l=Bl(hD,uN(t[0],t[1])),t=[0,100]);const d=a({...this.options,keyframes:t});s==="mirror"&&(c=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=lN(d));const{calculatedDuration:u}=d,h=u+i,p=h*(r+1)-i;return{generator:d,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:u,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:N}=this.options;return{done:!0,value:N[N.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:d,resolvedDuration:u}=r;if(this.startTime===null)return s.next(0);const{delay:h,repeat:p,repeatType:g,repeatDelay:b,onUpdate:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),y=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let w=this.currentTime,v=s;if(p){const N=Math.min(this.currentTime,d)/u;let I=Math.floor(N),A=N%1;!A&&N>=1&&(A=1),A===1&&I--,I=Math.min(I,p+1),!!(I%2)&&(g==="reverse"?(A=1-A,b&&(A-=b/u)):g==="mirror"&&(v=o)),w=Cr(0,1,A)*u}const _=y?{done:!1,value:l[0]}:v.next(w);a&&(_.value=a(_.value));let{done:k}=_;!y&&c!==null&&(k=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const T=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return T&&i!==void 0&&(_.value=ef(l,this.options,i)),x&&x(_.value),T&&this.finish(),_}get duration(){const{resolved:t}=this;return t?_r(t.calculatedDuration):0}get time(){return _r(this.currentTime)}set time(t){t=kr(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=_r(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=dD,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const pD=new Set(["opacity","clipPath","filter","transform"]);function mD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const c={[t]:n};l&&(c.offset=l);const d=$S(a,i);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const gD=Dy(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),cd=10,yD=2e4;function bD(e){return jy(e.type)||e.type==="spring"||!jS(e.ease)}function wD(e,t){const n=new qy({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:c}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&od()&&xD(s)&&(s=pN[s]),bD(this.options)){const{onComplete:u,onUpdate:h,motionValue:p,element:g,...b}=this.options,x=wD(t,b);t=x.keyframes,t.length===1&&(t[1]=t[0]),r=x.duration,i=x.times,s=x.ease,o="keyframes"}const d=mD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return d.startTime=c??this.calcStartTime(),this.pendingTimeline?(Dw(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:u}=this.options;a.set(ef(t,this.options,n)),u&&u(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return _r(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return _r(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=kr(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return un;const{animation:r}=n;Dw(r,t)}return un}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:c,onUpdate:d,onComplete:u,element:h,...p}=this.options,g=new qy({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=kr(this.time);c.setWithVelocity(g.sample(b-cd).value,g.sample(b).value,cd)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=n.owner.getProps();return gD()&&r&&pD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const vD={type:"spring",stiffness:500,damping:25,restSpeed:10},kD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),_D={type:"keyframes",duration:.8},ED={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},SD=(e,{keyframes:t})=>t.length>2?_D:os.has(e)?e.startsWith("scale")?kD(t[1]):vD:ED;function ND({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:c,...d}){return!!Object.keys(d).length}const Wy=(e,t,n,r={},i,s)=>o=>{const a=Oy(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-kr(l);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:h=>{t.set(h),a.onUpdate&&a.onUpdate(h)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};ND(a)||(d={...d,...SD(e,d)}),d.duration&&(d.duration=kr(d.duration)),d.repeatDelay&&(d.repeatDelay=kr(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let u=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(u=!0)),u&&!s&&t.get()!==void 0){const h=ef(d.keyframes,a);if(h!==void 0)return qe.update(()=>{d.onUpdate(h),d.onComplete()}),new iP([])}return!s&&Gw.supports(d)?new Gw(d):new qy(d)};function TD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function mN(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in l){const h=e.getValue(u,(s=e.latestValues[u])!==null&&s!==void 0?s:null),p=l[u];if(p===void 0||d&&TD(d,u))continue;const g={delay:n,...Oy(o||{},u)};let b=!1;if(window.MotionHandoffAnimation){const m=PS(e);if(m){const y=window.MotionHandoffAnimation(m,u,qe);y!==null&&(g.startTime=y,b=!0)}}wm(e,u),h.start(Wy(u,h,p,e.shouldReduceMotion&&RS.has(u)?{type:!1}:g,e,b));const x=h.animation;x&&c.push(x)}return a&&Promise.all(c).then(()=>{qe.update(()=>{a&&eP(e,a)})}),c}function Am(e,t,n={}){var r;const i=Jd(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(mN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:h}=s;return AD(e,t,d+c,u,h,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[c,d]=l==="beforeChildren"?[o,a]:[a,o];return c().then(()=>d())}else return Promise.all([o(),a(n.delay)])}function AD(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(CD).forEach((c,d)=>{c.notify("AnimationStart",t),o.push(Am(c,t,{...s,delay:n+l(d)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function CD(e,t){return e.sortNodePosition(t)}function ID(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>Am(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=Am(e,t,n);else{const i=typeof t=="function"?Jd(e,t,n.custom):t;r=Promise.all(mN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const MD=xy.length;function gN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?gN(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>ID(e,n,r)))}function PD(e){let t=LD(e),n=Yw(),r=!0;const i=l=>(c,d)=>{var u;const h=Jd(e,d,l==="exit"?(u=e.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(h){const{transition:p,transitionEnd:g,...b}=h;c={...c,...b,...g}}return c};function s(l){t=l(e)}function o(l){const{props:c}=e,d=gN(e.parent)||{},u=[],h=new Set;let p={},g=1/0;for(let x=0;xg&&v,I=!1;const A=Array.isArray(w)?w:[w];let D=A.reduce(i(m),{});_===!1&&(D={});const{prevResolvedValues:R={}}=y,F={...R,...D},O=$=>{N=!0,h.has($)&&(I=!0,h.delete($)),y.needsAnimating[$]=!0;const L=e.getValue($);L&&(L.liveStyle=!1)};for(const $ in F){const L=D[$],j=R[$];if(p.hasOwnProperty($))continue;let S=!1;bm(L)&&bm(j)?S=!OS(L,j):S=L!==j,S?L!=null?O($):h.add($):L!==void 0&&h.has($)?O($):y.protectedKeys[$]=!0}y.prevProp=w,y.prevResolvedValues=D,y.isActive&&(p={...p,...D}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(k&&T)||I)&&u.push(...A.map($=>({animation:$,options:{type:m}})))}if(h.size){const x={};h.forEach(m=>{const y=e.getBaseTarget(m),w=e.getValue(m);w&&(w.liveStyle=!0),x[m]=y??null}),u.push({animation:x})}let b=!!u.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?t(u):Promise.resolve()}function a(l,c){var d;if(n[l].isActive===c)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(l,c)}),n[l].isActive=c;const u=o(l);for(const h in n)n[h].protectedKeys={};return u}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Yw(),r=!0}}}function DD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!OS(t,e):!1}function wi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Yw(){return{animate:wi(!0),whileInView:wi(),whileHover:wi(),whileTap:wi(),whileDrag:wi(),whileFocus:wi(),exit:wi()}}class mi{constructor(t){this.isMounted=!1,this.node=t}update(){}}class jD extends mi{constructor(t){super(t),t.animationState||(t.animationState=PD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Qd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let $D=0;class BD extends mi{constructor(){super(...arguments),this.id=$D++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const FD={animation:{Feature:jD},exit:{Feature:BD}},Ln={x:!1,y:!1};function yN(){return Ln.x||Ln.y}function zD(e){return e==="x"||e==="y"?Ln[e]?null:(Ln[e]=!0,()=>{Ln[e]=!1}):Ln.x||Ln.y?null:(Ln.x=Ln.y=!0,()=>{Ln.x=Ln.y=!1})}const Gy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function dl(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Fl(e){return{point:{x:e.pageX,y:e.pageY}}}const UD=e=>t=>Gy(t)&&e(t,Fl(t));function Oa(e,t,n,r){return dl(e,t,UD(n),r)}const Xw=(e,t)=>Math.abs(e-t);function VD(e,t){const n=Xw(e.x,t.x),r=Xw(e.y,t.y);return Math.sqrt(n**2+r**2)}class bN{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=vh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=VD(u.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=u,{timestamp:b}=St;this.history.push({...g,timestamp:b});const{onStart:x,onMove:m}=this.handlers;h||(x&&x(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,u)},this.handlePointerMove=(u,h)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=xh(h,this.transformPagePoint),qe.update(this.updatePoint,!0)},this.handlePointerUp=(u,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=vh(u.type==="pointercancel"?this.lastMoveEventInfo:xh(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(u,x),g&&g(u,x)},!Gy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=Fl(t),a=xh(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=St;this.history=[{...l,timestamp:c}];const{onSessionStart:d}=n;d&&d(t,vh(a,this.history)),this.removeListeners=Bl(Oa(this.contextWindow,"pointermove",this.handlePointerMove),Oa(this.contextWindow,"pointerup",this.handlePointerUp),Oa(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ui(this.updatePoint)}}function xh(e,t){return t?{point:t(e.point)}:e}function Qw(e,t){return{x:e.x-t.x,y:e.y-t.y}}function vh({point:e},t){return{point:e,delta:Qw(e,wN(t)),offset:Qw(e,HD(t)),velocity:KD(t,.1)}}function HD(e){return e[0]}function wN(e){return e[e.length-1]}function KD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=wN(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>kr(t)));)n--;if(!r)return{x:0,y:0};const s=_r(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const xN=1e-4,qD=1-xN,WD=1+xN,vN=.01,GD=0-vN,YD=0+vN;function hn(e){return e.max-e.min}function XD(e,t,n){return Math.abs(e-t)<=n}function Zw(e,t,n,r=.5){e.origin=r,e.originPoint=Je(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Je(n.min,n.max,e.origin)-e.originPoint,(e.scale>=qD&&e.scale<=WD||isNaN(e.scale))&&(e.scale=1),(e.translate>=GD&&e.translate<=YD||isNaN(e.translate))&&(e.translate=0)}function Ra(e,t,n,r){Zw(e.x,t.x,n.x,r?r.originX:void 0),Zw(e.y,t.y,n.y,r?r.originY:void 0)}function Jw(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function QD(e,t,n){Jw(e.x,t.x,n.x),Jw(e.y,t.y,n.y)}function ex(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function La(e,t,n){ex(e.x,t.x,n.x),ex(e.y,t.y,n.y)}function ZD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Je(n,e,r.max):Math.min(e,n)),e}function tx(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function JD(e,{top:t,left:n,bottom:r,right:i}){return{x:tx(e.x,n,i),y:tx(e.y,t,r)}}function nx(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=mo(t.min,t.max-r,e.min):r>i&&(n=mo(e.min,e.max-i,t.min)),Cr(0,1,n)}function nj(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Cm=.35;function rj(e=Cm){return e===!1?e=0:e===!0&&(e=Cm),{x:rx(e,"left","right"),y:rx(e,"top","bottom")}}function rx(e,t,n){return{min:ix(e,t),max:ix(e,n)}}function ix(e,t){return typeof e=="number"?e:e[t]||0}const sx=()=>({translate:0,scale:1,origin:0,originPoint:0}),zs=()=>({x:sx(),y:sx()}),ox=()=>({min:0,max:0}),ot=()=>({x:ox(),y:ox()});function wn(e){return[e("x"),e("y")]}function kN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function ij({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function sj(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function kh(e){return e===void 0||e===1}function Im({scale:e,scaleX:t,scaleY:n}){return!kh(e)||!kh(t)||!kh(n)}function Ni(e){return Im(e)||_N(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function _N(e){return ax(e.x)||ax(e.y)}function ax(e){return e&&e!=="0%"}function ud(e,t,n){const r=e-n,i=t*r;return n+i}function lx(e,t,n,r,i){return i!==void 0&&(e=ud(e,i,r)),ud(e,n,r)+t}function Mm(e,t=0,n=1,r,i){e.min=lx(e.min,t,n,r,i),e.max=lx(e.max,t,n,r,i)}function EN(e,{x:t,y:n}){Mm(e.x,t.translate,t.scale,t.originPoint),Mm(e.y,n.translate,n.scale,n.originPoint)}const cx=.999999999999,ux=1.0000000000001;function oj(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;acx&&(t.x=1),t.ycx&&(t.y=1)}function Us(e,t){e.min=e.min+t,e.max=e.max+t}function dx(e,t,n,r,i=.5){const s=Je(e.min,e.max,i);Mm(e,t,n,s,r)}function Vs(e,t){dx(e.x,t.x,t.scaleX,t.scale,t.originX),dx(e.y,t.y,t.scaleY,t.scale,t.originY)}function SN(e,t){return kN(sj(e.getBoundingClientRect(),t))}function aj(e,t,n){const r=SN(e,n),{scroll:i}=t;return i&&(Us(r.x,i.offset.x),Us(r.y,i.offset.y)),r}const NN=({current:e})=>e?e.ownerDocument.defaultView:null,lj=new WeakMap;class cj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=ot(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=d=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Fl(d).point)},s=(d,u)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=zD(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),wn(x=>{let m=this.getAxisMotionValue(x).get()||0;if(ir.test(m)){const{projection:y}=this.visualElement;if(y&&y.layout){const w=y.layout.layoutBox[x];w&&(m=hn(w)*(parseFloat(m)/100))}}this.originPoint[x]=m}),g&&qe.postRender(()=>g(d,u)),wm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(d,u)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:x}=u;if(p&&this.currentDirection===null){this.currentDirection=uj(x),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",u.point,x),this.updateAxis("y",u.point,x),this.visualElement.render(),b&&b(d,u)},a=(d,u)=>this.stop(d,u),l=()=>wn(d=>{var u;return this.getAnimationState(d)==="paused"&&((u=this.getAxisMotionValue(d).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new bN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:NN(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&qe.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Rc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=ZD(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&Bs(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=JD(i.layoutBox,n):this.constraints=!1,this.elastic=rj(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&wn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=nj(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Bs(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=aj(r,i.root,this.visualElement.getTransformPagePoint());let o=ej(i.layout.layoutBox,s);if(n){const a=n(ij(o));this.hasMutatedConstraints=!!a,a&&(o=kN(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=wn(d=>{if(!Rc(d,n,this.currentDirection))return;let u=l&&l[d]||{};o&&(u={min:0,max:0});const h=i?200:1e6,p=i?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...s,...u};return this.startAxisValueAnimation(d,g)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return wm(this.visualElement,t),r.start(Wy(t,r,0,n,this.visualElement,!1))}stopAnimation(){wn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){wn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){wn(n=>{const{drag:r}=this.getProps();if(!Rc(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-Je(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Bs(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};wn(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=tj({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),wn(o=>{if(!Rc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Je(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;lj.set(this.visualElement,this);const t=this.visualElement.current,n=Oa(t,"pointerdown",l=>{const{drag:c,dragListener:d=!0}=this.getProps();c&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Bs(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),qe.read(r);const o=dl(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(wn(d=>{const u=this.getAxisMotionValue(d);u&&(this.originPoint[d]+=l[d].translate,u.set(u.get()+l[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Cm,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Rc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function uj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class dj extends mi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new cj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||un}unmount(){this.removeGroupControls(),this.removeListeners()}}const fx=e=>(t,n)=>{e&&qe.postRender(()=>e(t,n))};class fj extends mi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new bN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:NN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:fx(t),onStart:fx(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&qe.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Oa(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const bu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function hx(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ta={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(ve.test(e))e=parseFloat(e);else return e;const n=hx(e,t.target.x),r=hx(e,t.target.y);return`${n}% ${r}%`}},hj={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=di.parse(e);if(i.length>5)return r;const s=di.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const c=Je(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=c),typeof i[3+o]=="number"&&(i[3+o]/=c),s(i)}};class pj extends E.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;FL(mj),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),bu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||qe.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ky.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function TN(e){const[t,n]=uS(),r=E.useContext(gy);return f.jsx(pj,{...e,layoutGroup:r,switchLayoutGroup:E.useContext(wS),isPresent:t,safeToRemove:n})}const mj={borderRadius:{...ta,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ta,borderTopRightRadius:ta,borderBottomLeftRadius:ta,borderBottomRightRadius:ta,boxShadow:hj};function gj(e,t,n){const r=Rt(e)?e:cl(e);return r.start(Wy("",r,t,n)),r.animation}function yj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const bj=(e,t)=>e.depth-t.depth;class wj{constructor(){this.children=[],this.isDirty=!1}add(t){Ry(this.children,t),this.isDirty=!0}remove(t){Ly(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(bj),this.isDirty=!1,this.children.forEach(t)}}function xj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(ui(r),e(s-t))};return qe.read(r,!0),()=>ui(r)}const AN=["TopLeft","TopRight","BottomLeft","BottomRight"],vj=AN.length,px=e=>typeof e=="string"?parseFloat(e):e,mx=e=>typeof e=="number"||ve.test(e);function kj(e,t,n,r,i,s){i?(e.opacity=Je(0,n.opacity!==void 0?n.opacity:1,_j(r)),e.opacityExit=Je(t.opacity!==void 0?t.opacity:1,0,Ej(r))):s&&(e.opacity=Je(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(mo(e,t,r))}function yx(e,t){e.min=t.min,e.max=t.max}function bn(e,t){yx(e.x,t.x),yx(e.y,t.y)}function bx(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function wx(e,t,n,r,i){return e-=t,e=ud(e,1/n,r),i!==void 0&&(e=ud(e,1/i,r)),e}function Sj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Je(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Je(s.min,s.max,r);e===s&&(a-=t),e.min=wx(e.min,t,n,a,i),e.max=wx(e.max,t,n,a,i)}function xx(e,t,[n,r,i],s,o){Sj(e,t[n],t[r],t[i],t.scale,s,o)}const Nj=["x","scaleX","originX"],Tj=["y","scaleY","originY"];function vx(e,t,n,r){xx(e.x,t,Nj,n?n.x:void 0,r?r.x:void 0),xx(e.y,t,Tj,n?n.y:void 0,r?r.y:void 0)}function kx(e){return e.translate===0&&e.scale===1}function IN(e){return kx(e.x)&&kx(e.y)}function _x(e,t){return e.min===t.min&&e.max===t.max}function Aj(e,t){return _x(e.x,t.x)&&_x(e.y,t.y)}function Ex(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function MN(e,t){return Ex(e.x,t.x)&&Ex(e.y,t.y)}function Sx(e){return hn(e.x)/hn(e.y)}function Nx(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class Cj{constructor(){this.members=[]}add(t){Ry(this.members,t),t.scheduleRender()}remove(t){if(Ly(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function Ij(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:d,rotateX:u,rotateY:h,skewX:p,skewY:g}=n;c&&(r=`perspective(${c}px) ${r}`),d&&(r+=`rotate(${d}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),g&&(r+=`skewY(${g}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const Ti={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ga=typeof window<"u"&&window.MotionDebug!==void 0,_h=["","X","Y","Z"],Mj={visibility:"hidden"},Tx=1e3;let Oj=0;function Eh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function ON(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=PS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",qe,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&ON(r)}function RN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Oj++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ga&&(Ti.totalNodes=Ti.resolvedTargetDeltas=Ti.recalculatedProjection=0),this.nodes.forEach(Pj),this.nodes.forEach(Fj),this.nodes.forEach(zj),this.nodes.forEach(Dj),ga&&window.MotionDebug.record(Ti)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=xj(h,250),bu.hasAnimatedSinceResize&&(bu.hasAnimatedSinceResize=!1,this.nodes.forEach(Cx))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||c)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||d.getDefaultTransition()||qj,{onLayoutAnimationStart:x,onLayoutAnimationComplete:m}=d.getProps(),y=!this.targetLayout||!MN(this.targetLayout,g)||p,w=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||w||h&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,w);const v={...Oy(b,"layout"),onPlay:x,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||Cx(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ui(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Uj),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&ON(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const _=v/1e3;Ix(u.x,o.x,_),Ix(u.y,o.y,_),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(La(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Hj(this.relativeTarget,this.relativeTargetOrigin,h,_),w&&Aj(this.relativeTarget,w)&&(this.isProjectionDirty=!1),w||(w=ot()),bn(w,this.relativeTarget)),b&&(this.animationValues=d,kj(d,c,this.latestValues,_,y,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=_},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ui(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=qe.update(()=>{bu.hasAnimatedSinceResize=!0,this.currentAnimation=gj(0,Tx,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Tx),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:d}=o;if(!(!a||!l||!c)){if(this!==o&&this.layout&&c&&LN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||ot();const u=hn(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+u;const h=hn(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+h}bn(a,l),Vs(a,d),Ra(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new Cj),this.sharedNodes.get(o).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&Eh("z",o,c,this.animationValues);for(let d=0;d<_h.length;d++)Eh(`rotate${_h[d]}`,o,c,this.animationValues),Eh(`skew${_h[d]}`,o,c,this.animationValues);o.render();for(const d in c)o.setStaticValue(d,c[d]),this.animationValues&&(this.animationValues[d]=c[d]);o.scheduleRender()}getProjectionStyles(o){var a,l;if(!this.instance||this.isSVG)return;if(!this.isVisible)return Mj;const c={visibility:""},d=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,c.opacity="",c.pointerEvents=gu(o==null?void 0:o.pointerEvents)||"",c.transform=d?d(this.latestValues,""):"none",c;const u=this.getLead();if(!this.projectionDelta||!this.layout||!u.target){const b={};return this.options.layoutId&&(b.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,b.pointerEvents=gu(o==null?void 0:o.pointerEvents)||""),this.hasProjected&&!Ni(this.latestValues)&&(b.transform=d?d({},""):"none",this.hasProjected=!1),b}const h=u.animationValues||u.latestValues;this.applyTransformsToTarget(),c.transform=Ij(this.projectionDeltaWithTransform,this.treeScale,h),d&&(c.transform=d(h,c.transform));const{x:p,y:g}=this.projectionDelta;c.transformOrigin=`${p.origin*100}% ${g.origin*100}% 0`,u.animationValues?c.opacity=u===this?(l=(a=h.opacity)!==null&&a!==void 0?a:this.latestValues.opacity)!==null&&l!==void 0?l:1:this.preserveOpacity?this.latestValues.opacity:h.opacityExit:c.opacity=u===this?h.opacity!==void 0?h.opacity:"":h.opacityExit!==void 0?h.opacityExit:0;for(const b in sd){if(h[b]===void 0)continue;const{correct:x,applyTo:m}=sd[b],y=c.transform==="none"?h[b]:x(h[b],u);if(m){const w=m.length;for(let v=0;v{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Ax),this.root.sharedNodes.clear()}}}function Rj(e){e.updateLayout()}function Lj(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?wn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(h);h.min=r[u].min,h.max=h.min+p}):LN(s,n.layoutBox,r)&&wn(u=>{const h=o?n.measuredBox[u]:n.layoutBox[u],p=hn(r[u]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+p)});const a=zs();Ra(a,r,n.layoutBox);const l=zs();o?Ra(l,e.applyTransform(i,!0),n.measuredBox):Ra(l,r,n.layoutBox);const c=!IN(a);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:p}=u;if(h&&p){const g=ot();La(g,n.layoutBox,h.layoutBox);const b=ot();La(b,r,p.layoutBox),MN(g,b)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function Pj(e){ga&&Ti.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Dj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function jj(e){e.clearSnapshot()}function Ax(e){e.clearMeasurements()}function $j(e){e.isLayoutDirty=!1}function Bj(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Cx(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Fj(e){e.resolveTargetDelta()}function zj(e){e.calcProjection()}function Uj(e){e.resetSkewAndRotation()}function Vj(e){e.removeLeadSnapshot()}function Ix(e,t,n){e.translate=Je(t.translate,0,n),e.scale=Je(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Mx(e,t,n,r){e.min=Je(t.min,n.min,r),e.max=Je(t.max,n.max,r)}function Hj(e,t,n,r){Mx(e.x,t.x,n.x,r),Mx(e.y,t.y,n.y,r)}function Kj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const qj={duration:.45,ease:[.4,0,.1,1]},Ox=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Rx=Ox("applewebkit/")&&!Ox("chrome/")?Math.round:un;function Lx(e){e.min=Rx(e.min),e.max=Rx(e.max)}function Wj(e){Lx(e.x),Lx(e.y)}function LN(e,t,n){return e==="position"||e==="preserve-aspect"&&!XD(Sx(t),Sx(n),.2)}function Gj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const Yj=RN({attachResizeListener:(e,t)=>dl(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Sh={current:void 0},PN=RN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Sh.current){const e=new Yj({});e.mount(window),e.setOptions({layoutScroll:!0}),Sh.current=e}return Sh.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Xj={pan:{Feature:fj},drag:{Feature:dj,ProjectionNode:PN,MeasureLayout:TN}};function Qj(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function DN(e,t){const n=Qj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Px(e){return t=>{t.pointerType==="touch"||yN()||e(t)}}function Zj(e,t,n={}){const[r,i,s]=DN(e,n),o=Px(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const d=Px(u=>{c(u),l.removeEventListener("pointerleave",d)});l.addEventListener("pointerleave",d,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Dx(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&qe.postRender(()=>s(t,Fl(t)))}class Jj extends mi{mount(){const{current:t}=this.node;t&&(this.unmount=Zj(t,n=>(Dx(this.node,n,"Start"),r=>Dx(this.node,r,"End"))))}unmount(){}}class e$ extends mi{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Bl(dl(this.node.current,"focus",()=>this.onFocus()),dl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const jN=(e,t)=>t?e===t?!0:jN(e,t.parentElement):!1,t$=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function n$(e){return t$.has(e.tagName)||e.tabIndex!==-1}const ya=new WeakSet;function jx(e){return t=>{t.key==="Enter"&&e(t)}}function Nh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const r$=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=jx(()=>{if(ya.has(n))return;Nh(n,"down");const i=jx(()=>{Nh(n,"up")}),s=()=>Nh(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function $x(e){return Gy(e)&&!yN()}function i$(e,t,n={}){const[r,i,s]=DN(e,n),o=a=>{const l=a.currentTarget;if(!$x(a)||ya.has(l))return;ya.add(l);const c=t(a),d=(p,g)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),!(!$x(p)||!ya.has(l))&&(ya.delete(l),typeof c=="function"&&c(p,{success:g}))},u=p=>{d(p,n.useGlobalTarget||jN(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",u,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!n$(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>r$(c,i),i)}),s}function Bx(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&qe.postRender(()=>s(t,Fl(t)))}class s$ extends mi{mount(){const{current:t}=this.node;t&&(this.unmount=i$(t,n=>(Bx(this.node,n,"Start"),(r,{success:i})=>Bx(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Om=new WeakMap,Th=new WeakMap,o$=e=>{const t=Om.get(e.target);t&&t(e)},a$=e=>{e.forEach(o$)};function l$({root:e,...t}){const n=e||document;Th.has(n)||Th.set(n,{});const r=Th.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(a$,{root:e,...t})),r[i]}function c$(e,t,n){const r=l$(t);return Om.set(e,n),r.observe(e),()=>{Om.delete(e),r.unobserve(e)}}const u$={some:0,all:1};class d$ extends mi{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:u$[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,s&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:d,onViewportLeave:u}=this.node.getProps(),h=c?d:u;h&&h(l)};return c$(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(f$(t,n))&&this.startObserver()}unmount(){}}function f$({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const h$={inView:{Feature:d$},tap:{Feature:s$},focus:{Feature:e$},hover:{Feature:Jj}},p$={layout:{ProjectionNode:PN,MeasureLayout:TN}},Rm={current:null},$N={current:!1};function m$(){if($N.current=!0,!!yy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Rm.current=e.matches;e.addListener(t),t()}else Rm.current=!1}const g$=[...sN,Mt,di],y$=e=>g$.find(iN(e)),Fx=new WeakMap;function b$(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Rt(i))e.addValue(r,i);else if(Rt(s))e.addValue(r,cl(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,cl(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const zx=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class w${scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Hy,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=sr.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),$N.current||m$(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Rm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Fx.delete(this.current),this.projection&&this.projection.unmount(),ui(this.notifyUpdate),ui(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=os.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&qe.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in po){const n=po[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):ot()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=cl(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(nN(i)||WS(i))?i=parseFloat(i):!y$(i)&&di.test(n)&&(i=JS(t,n)),this.setBaseTarget(t,Rt(i)?i.get():i)),Rt(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=Ey(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Rt(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Py),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class BN extends w${constructor(){super(...arguments),this.KeyframeResolver=oN}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Rt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function x$(e){return window.getComputedStyle(e)}class v$ extends BN{constructor(){super(...arguments),this.type="html",this.renderInstance=NS}readValueFromInstance(t,n){if(os.has(n)){const r=Vy(n);return r&&r.default||0}else{const r=x$(t),i=(_S(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return SN(t,n)}build(t,n,r){Ty(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return My(t,n,r)}}class k$ extends BN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=ot}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(os.has(n)){const r=Vy(n);return r&&r.default||0}return n=TS.has(n)?n:vy(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return IS(t,n,r)}build(t,n,r){Ay(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){AS(t,n,r,i)}mount(t){this.isSVGTag=Iy(t.tagName),super.mount(t)}}const _$=(e,t)=>_y(e)?new k$(t):new v$(t,{allowProjection:e!==E.Fragment}),E$=YL({...FD,...h$,...Xj,...p$},_$),Dt=uL(E$);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S$=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),FN=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var N$={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const T$=E.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:s,iconNode:o,...a},l)=>E.createElement("svg",{ref:l,...N$,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:FN("lucide",i),...a},[...o.map(([c,d])=>E.createElement(c,d)),...Array.isArray(s)?s:[s]]));/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ue=(e,t)=>{const n=E.forwardRef(({className:r,...i},s)=>E.createElement(T$,{ref:s,iconNode:t,className:FN(`lucide-${S$(e)}`,r),...i}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const A$=ue("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zN=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const C$=ue("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const UN=ue("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const I$=ue("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const M$=ue("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yo=ue("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Yy=ue("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const O$=ue("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const R$=ue("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zl=ue("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const VN=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const L$=ue("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wn=ue("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const P$=ue("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xy=ue("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const D$=ue("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const j$=ue("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fl=ue("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wu=ue("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $$=ue("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const B$=ue("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const F$=ue("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const z$=ue("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qy=ue("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ux=ue("FileDown",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const U$=ue("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zy=ue("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const V$=ue("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const H$=ue("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K$=ue("FolderTree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dd=ue("FolderUp",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m9 13 3-3 3 3",key:"1pxg3c"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const q$=ue("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const HN=ue("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const W$=ue("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ul=ue("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const G$=ue("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Y$=ue("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const X$=ue("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tf=ue("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Q$=ue("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const KN=ue("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Z$=ue("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const J$=ue("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const eB=ue("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ct=ue("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tB=ue("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nB=ue("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rB=ue("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iB=ue("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sB=ue("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oB=ue("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const aB=ue("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Or=ue("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qN=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Jy=ue("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hl=ue("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Lm=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lB=ue("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cB=ue("Shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vx=ue("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nf=ue("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WN=ue("Split",[["path",{d:"M16 3h5v5",key:"1806ms"}],["path",{d:"M8 3H3v5",key:"15dfkv"}],["path",{d:"M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3",key:"1qrqzj"}],["path",{d:"m15 9 6-6",key:"ko1vev"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jo=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uB=ue("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dB=ue("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fB=ue("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hB=ue("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e0=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vl=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Hx="veadk_auth_qs";let na=null;function pB(){if(na!==null)return na;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(Hx,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),na=e):na=sessionStorage.getItem(Hx)??"",na}function Ah(e){const t=pB();if(!t)return e;const n=new URL(e,window.location.origin);return new URLSearchParams(t).forEach((r,i)=>{n.searchParams.has(i)||n.searchParams.set(i,r)}),/^https?:\/\//i.test(e)?n.toString():n.pathname+n.search+n.hash}async function*GN(e){if(!e.body)throw new Error("Response has no body");const t=e.body.getReader(),n=new TextDecoder;let r="";for(;;){const{done:i,value:s}=await t.read();if(i)break;r+=n.decode(s,{stream:!0});let o;for(;(o=r.indexOf(` + +`))!==-1;){const a=r.slice(0,o);r=r.slice(o+2);const l=a.split(` +`).filter(c=>c.startsWith("data:")).map(c=>c.slice(5).trimStart()).join(` +`);if(l)try{yield JSON.parse(l)}catch{}}}}const Ch="",t0=new Map;function mB(e,t){t0.set(e,t)}function gB(){t0.clear()}function as(e){const t=t0.get(e);return t?{app:t.app,ep:{base:t.base,apiKey:t.apiKey,runtimeId:t.runtimeId,region:t.region}}:{app:e,ep:{}}}function jt(e,t={},n={}){if(n.runtimeId){const r=n.region?`${e.includes("?")?"&":"?"}region=${encodeURIComponent(n.region)}`:"";return fetch(Ah(`${Ch}/web/runtime-proxy/${n.runtimeId}${e}${r}`),t)}if(n.base){const r={...t.headers};return r["X-AgentKit-Base"]=n.base,n.apiKey&&(r["X-AgentKit-Key"]=n.apiKey),fetch(Ah(`${Ch}/agentkit-proxy${e}`),{...t,headers:r})}return fetch(Ah(`${Ch}${e}`),t)}async function yB(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function YN(e,t,n){const r=await jt("/list-apps",{},n??{base:e,apiKey:t});if(!r.ok)throw new Error(`list-apps failed: ${r.status}`);return r.json()}async function Pm(e,t){const{app:n,ep:r}=as(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"},r);if(!i.ok)throw new Error(`create session failed: ${i.status}`);return(await i.json()).id}async function XN(e,t){const{app:n,ep:r}=as(e),i=await jt(`/apps/${n}/users/${encodeURIComponent(t)}/sessions`,{},r);if(!i.ok)throw new Error(`list sessions failed: ${i.status}`);return i.json()}async function Dm(e,t,n){const{app:r,ep:i}=as(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{},i);if(!s.ok)throw new Error(`get session failed: ${s.status}`);return s.json()}async function bB(e,t,n){const{app:r,ep:i}=as(e),s=await jt(`/apps/${r}/users/${encodeURIComponent(t)}/sessions/${n}`,{method:"DELETE"},i);if(!s.ok&&s.status!==404)throw new Error(`delete session failed: ${s.status}`)}async function wB(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function n0(e){const{app:t,ep:n}=as(e),r=await jt(`/web/agent-info/${t}`,{},n);if(!r.ok)throw new Error(`agent-info failed: ${r.status}`);return r.json()}async function xB(e,t){const{app:n}=as(e),r=await jt(`/web/search?source=web&app_name=${encodeURIComponent(n)}&q=${encodeURIComponent(t)}`);if(!r.ok)throw new Error(`web search failed: ${r.status}`);return r.json()}async function*fd({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=as(e),c=[...i.map(u=>({inlineData:{mimeType:u.mimeType,data:u.data,displayName:u.name}})),...s.map(u=>({functionResponse:{id:u.id,name:u.name,response:u.response}})),...r.trim()?[{text:r}]:[]],d=await jt("/run_sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_name:a,user_id:t,session_id:n,new_message:{role:"user",parts:c},streaming:!0}),signal:o},l);if(!d.ok)throw new Error(`run_sse failed: ${d.status}`);for await(const u of GN(d))yield u}async function QN(e,t,n,r){var o;const i=await jt("/web/deploy-agentkit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,files:t,config:n,author:(r==null?void 0:r.author)??"",im:r==null?void 0:r.im,envs:r==null?void 0:r.envs})});if(!i.ok){const a=await i.text().catch(()=>"");throw new Error(a||`部署失败 (${i.status})`)}let s=null;for await(const a of GN(i)){const l=a;if(l&&l.done){s=l;break}l&&l.message&&((o=r==null?void 0:r.onStage)==null||o.call(r,l))}if(!s)throw new Error("部署失败:连接中断");if(!s.success)throw new Error(s.error||"部署失败");if(!s.url||!s.agentName)throw new Error("部署失败:返回缺少 AgentKit 连接信息");return{apikey:s.apikey??"",url:s.url,agentName:s.agentName,runtimeId:s.runtimeId,consoleUrl:s.consoleUrl,feishuChannel:s.feishuChannel}}async function vB(e,t="cn-beijing"){const n=await jt(`/web/my-runtimes?author=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok)throw new Error(`加载失败 (${n.status})`);return(await n.json()).runtimes??[]}const Ih={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function kB(){try{const e=await jt("/web/ui-config");if(!e.ok)return Ih;const t=await e.json();return{studio:t.studio??!1,features:{...Ih.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return Ih}}async function Mh(e,t={}){const n=new URLSearchParams({author:e,scope:t.scope??"all",page_size:String(t.pageSize??30),region:t.region??"cn-beijing"});t.nextToken&&n.set("next_token",t.nextToken);const r=await jt(`/web/runtimes?${n.toString()}`);if(!r.ok)throw new Error(`加载 Runtime 失败 (${r.status})`);const i=await r.json();return{runtimes:i.runtimes??[],nextToken:i.nextToken??""}}async function _B(e,t="cn-beijing"){try{return await YN("","",{runtimeId:e,region:t})}catch{return null}}async function EB(e,t="cn-beijing"){const n=await jt("/web/delete-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({runtimeId:e,region:t})});if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`删除失败 (${n.status})`)}}async function ZN(e,t="cn-beijing"){const n=await jt(`/web/runtime-detail?runtimeId=${encodeURIComponent(e)}®ion=${encodeURIComponent(t)}`);if(!n.ok){const r=await n.text().catch(()=>"");throw new Error(r||`加载详情失败 (${n.status})`)}return n.json()}const SB="send_a2ui_json_to_client",NB="validated_a2ui_json",jm="adk_request_credential";function TB(e){var r,i,s,o;const t=e,n=((r=t==null?void 0:t.exchangedAuthCredential)==null?void 0:r.oauth2)??((i=t==null?void 0:t.exchanged_auth_credential)==null?void 0:i.oauth2)??((s=t==null?void 0:t.rawAuthCredential)==null?void 0:s.oauth2)??((o=t==null?void 0:t.raw_auth_credential)==null?void 0:o.oauth2);return(n==null?void 0:n.authUri)??(n==null?void 0:n.auth_uri)}function Gr(){return{blocks:[],liveStart:0}}const Kx=e=>e.functionCall??e.function_call,$m=e=>e.functionResponse??e.function_response;function AB(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function CB(e){const t=[];for(const n of e){const r=n.inlineData??n.inline_data;r&&r.data&&t.push({mimeType:r.mimeType??r.mime_type,data:AB(r.data),name:r.displayName??r.display_name})}return t}function qx(e,t,n){const r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push(t==="thinking"?{kind:t,text:n,done:!1}:{kind:t,text:n})}function Oh(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function pl(e,t){var o,a;const n=e.blocks.map(l=>({...l}));let r=e.liveStart;const i=((o=t.content)==null?void 0:o.parts)??[],s=i.some(l=>Kx(l)||$m(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&qx(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Kx(l),d=$m(l);if(typeof l.text=="string"&&l.text)qx(n,l.thought?"thinking":"text",l.text);else if(c)if(Oh(n),c.name===jm){const u=c.args??{},h=u.authConfig??u.auth_config??u,g=String(u.functionCallId??u.function_call_id??"").replace(/^_adk_toolset_auth_/,"")||void 0;n.push({kind:"auth",callId:c.id??"",label:g,authUri:TB(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(d){if(Oh(n),d.name===jm)for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="auth"&&!h.done){h.done=!0;break}}for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.kind==="tool"&&!h.done&&h.name===d.name){h.done=!0,h.response=d.response;break}}if(d.name===SB){const u=((a=d.response)==null?void 0:a[NB])??[];if(u.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...u):n.push({kind:"a2ui",messages:u})}}}}return Oh(n),r=n.length,{blocks:n,liveStart:r}}function IB(e){var r;const t=[];let n=Gr();for(const i of e)if(i.author==="user"){const o=((r=i.content)==null?void 0:r.parts)??[];if(o.some(d=>{var u;return((u=$m(d))==null?void 0:u.name)===jm})){for(let d=t.length-1;d>=0;d--)if(t[d].role==="assistant"){for(let u=t[d].blocks.length-1;u>=0;u--){const h=t[d].blocks[u];if(h.kind==="auth"){h.done=!0;break}}break}}const a=o.map(d=>d.text).filter(d=>!!d).join(""),l=CB(o);if(!a&&!l.length){n=Gr();continue}const c=[];l.length&&c.push({kind:"attachment",files:l}),a&&c.push({kind:"text",text:a}),t.push({role:"user",blocks:c,meta:{ts:i.timestamp}}),n=Gr()}else{let o=t[t.length-1];(!o||o.role!=="assistant")&&(o={role:"assistant",blocks:[],meta:{}},t.push(o),n=Gr()),n=pl(n,i),o.blocks=n.blocks;const a=i.usageMetadata??i.usage_metadata,l=o.meta??(o.meta={});a!=null&&a.totalTokenCount&&(l.tokens=a.totalTokenCount),i.timestamp&&(l.ts=i.timestamp)}return t}function MB(e){var t,n;for(const r of e??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"新会话"}const r0="veadk_local_user",OB=/^[A-Za-z0-9]{1,16}$/;function RB(){try{return localStorage.getItem(r0)}catch{return null}}function LB(e){try{localStorage.setItem(r0,e)}catch{}}function PB(){try{localStorage.removeItem(r0)}catch{}}async function DB(){try{const e=await fetch("/web/auth-config",{headers:{Accept:"application/json"}});if(!e.ok)return[];const t=await e.json();return Array.isArray(t.providers)?t.providers:[]}catch{return[]}}function jB(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function $B(){window.location.assign("/oauth2/logout")}async function BB(){let e=null;try{e=await fetch("/oauth2/userinfo",{headers:{Accept:"application/json"}})}catch{e=null}if(e&&e.ok){const n=await e.json();return{status:"authenticated",userId:String(n.sub??n.user_id??n.email??""),info:n}}if(e&&e.status===401)return{status:"unauthenticated",userId:"",local:!1};const t=RB();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function FB(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const zB="https://findskill.com/";function UB(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"12",cy:"12",r:"8.6"}),f.jsx("path",{d:"M12 6.4 13.25 10.75 17.6 12 13.25 13.25 12 17.6 10.75 13.25 6.4 12 10.75 10.75z",fill:"currentColor",stroke:"none"})]})}function VB({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(UB,{}),"技能中心"]})}function HB(){return f.jsx("iframe",{className:"skill-frame",src:zB,title:"技能中心"})}const KB=50,Wx=48;function qB(e){return(e.events??[]).flatMap(t=>{var i,s;const r=(((i=t.content)==null?void 0:i.parts)??[]).map(o=>typeof o.text=="string"?o.text:"").filter(Boolean).join("");return r?[{text:r,role:t.author??((s=t.content)==null?void 0:s.role)??"",ts:t.timestamp}]:[]})}function WB(e){var t,n;for(const r of e.events??[])if(r.author==="user"||((t=r.content)==null?void 0:t.role)==="user"){const i=(((n=r.content)==null?void 0:n.parts)??[]).map(s=>s.text).find(Boolean);if(i)return i}return"未命名会话"}function GB(e,t,n){const r=Math.max(0,t-Wx),i=Math.min(e.length,t+n+Wx);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Dm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:d}of qB(a)){const u=l.toLowerCase().indexOf(r);if(u!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:WB(a),snippet:GB(l,u,r.length),role:c,ts:d??a.lastUpdateTime});break}}return o.sort((a,l)=>(l.ts??0)-(a.ts??0)),o.slice(0,KB)}async function XB(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await xB(e,t.trim())}catch(o){const a=String(o);return{results:[],note:a.includes("404")?"网页搜索接口未就绪(后端未启用 /web/search)。":`网页搜索失败:${a}`}}const{mounted:r,results:i,error:s}=n;return r?s?{results:[],note:s}:{results:i.map((o,a)=>({type:"web",index:a,title:o.title,url:o.url,siteName:o.siteName,summary:o.summary}))}:{results:[],note:"该 Agent 未挂载 Web Search 工具。"}}async function QB(e,t,n){return e==="session"?{results:await YB(n.userId,n.appId,t)}:e==="web"?XB(n.appId,t):{results:[],note:"该搜索源即将支持。"}}function JN(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),f.jsx("path",{d:"M20 20l-4.6-4.6"}),f.jsx("path",{d:"M10.5 7.6v1.4M10.5 12v1.4M7.6 10.5h1.4M12 10.5h1.4",opacity:"0.7"})]})}function ZB({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(JN,{}),"智能搜索"]})}const Gx=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function JB(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}function eF({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var _;const[i,s]=E.useState("session"),[o,a]=E.useState(""),[l,c]=E.useState([]),[d,u]=E.useState(),[h,p]=E.useState(!1),[g,b]=E.useState(!1),x=E.useRef(0);async function m(k,T){const N=k.trim();if(!N)return;const I=++x.current;p(!0),b(!0);let A;try{A=await QB(T,N,{userId:e,appId:t})}catch(D){A={results:[],note:`搜索失败:${String(D)}`}}I===x.current&&(c(A.results),u(A.note),p(!1))}function y(k){s(k),g&&o.trim()&&m(o,k)}const w=(_=Gx.find(k=>k.id===i))==null?void 0:_.ready,v=i==="web"?"联网搜索…":"搜索当前 Agent 的会话…";return f.jsxs("div",{className:"search",children:[f.jsxs("div",{className:"search-box",children:[f.jsx(JN,{}),f.jsx("input",{className:"search-input",value:o,onChange:k=>a(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),m(o,i))},placeholder:v,autoFocus:!0}),f.jsx("button",{className:"search-go",onClick:()=>void m(o,i),disabled:!o.trim()||h,"aria-label":"搜索",children:h?f.jsx(ct,{className:"icon spin"}):f.jsx(UN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:Gx.map(k=>f.jsxs("button",{className:`search-tab ${i===k.id?"active":""}`,onClick:()=>y(k.id),disabled:!k.ready,title:k.ready?void 0:"即将支持",children:[k.label,!k.ready&&f.jsx("span",{className:"search-soon",children:"敬请期待"})]},k.id))}),f.jsx("div",{className:"search-results",children:w?g?h?null:d?f.jsx("div",{className:"search-empty",children:d}):l.length===0&&g?f.jsxs("div",{className:"search-empty",children:["未找到匹配「",o.trim(),"」的结果。"]}):l.map((k,T)=>f.jsx(tF,{result:k,agentLabel:n,onOpen:r},T)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function tF({result:e,agentLabel:t,onOpen:n}){switch(e.type){case"session":return f.jsxs("button",{className:"search-result",onClick:()=>n(e.appId,e.sessionId),children:[f.jsx(rB,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title}),f.jsxs("span",{className:"search-result-meta",children:[t(e.appId),e.ts?` · ${JB(e.ts)}`:""]})]}),f.jsx("div",{className:"search-result-snippet",children:e.snippet})]})]});case"web":return f.jsxs("a",{className:"search-result",href:e.url||void 0,target:"_blank",rel:"noreferrer noopener",children:[f.jsx(Ul,{className:"search-result-icon"}),f.jsxs("div",{className:"search-result-body",children:[f.jsxs("div",{className:"search-result-head",children:[f.jsx("span",{className:"search-result-title",children:e.title||e.url}),f.jsxs("span",{className:"search-result-meta",children:[e.siteName,e.url&&f.jsx(F$,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const eT="veadk_agentkit_connections";function Yr(){try{const e=localStorage.getItem(eT);return e?JSON.parse(e):[]}catch{return[]}}function i0(e){try{localStorage.setItem(eT,JSON.stringify(e))}catch{}}function Xi(e,t){return`agentkit:${e}:${t}`}function tT(e){try{return new URL(e).host}catch{return e}}function Hl(e){gB();for(const t of e)for(const n of t.apps)mB(Xi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function nT(e,t,n,r,i){const s={id:`rt_${e}`,name:t||e,runtimeId:e,region:n,apps:r,appLabels:i},o=[...Yr().filter(a=>a.runtimeId!==e),s];return i0(o),Hl(o),s}async function rT(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await YN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||tT(i),base:i,apiKey:n.trim(),apps:s,appLabels:r&&s.length>0?{[s[0]]:r}:void 0},a=[...Yr().filter(l=>l.base!==i),o];return i0(a),Hl(a),o}function nF(e){const t=Yr().filter(n=>n.id!==e);return i0(t),Hl(t),t}function iT(e,t){const n=e.map(i=>({id:i,label:i,app:i,remote:!1})),r=t.flatMap(i=>i.apps.map(s=>{var a;const o=((a=i.appLabels)==null?void 0:a[s])??s;return{id:Xi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:tT(i.base??"")}}));return[...n,...r]}const Yx=Object.freeze(Object.defineProperty({__proto__:null,addConnection:rT,addRuntimeConnection:nT,buildAgentEntries:iT,loadConnections:Yr,registerConnections:Hl,remoteAppId:Xi,removeConnection:nF},Symbol.toStringTag,{value:"Module"})),Xx=15,rF=1e4;function Rh(e,t=rF){return new Promise((n,r)=>{const i=setTimeout(()=>r(new Error("加载超时,请重试")),t);e.then(s=>{clearTimeout(i),n(s)},s=>{clearTimeout(i),r(s)})})}function iF({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,d]=E.useState([]),[u,h]=E.useState([""]),[p,g]=E.useState(0),[b,x]=E.useState(!1),[m,y]=E.useState(null),[w,v]=E.useState(!1),[_,k]=E.useState(""),[T,N]=E.useState(""),[I,A]=E.useState(null),[D,R]=E.useState(new Set),[F,O]=E.useState(o),P=E.useRef(!1),M=E.useCallback(async C=>{if(c[C]){g(C);return}const U=u[C];if(U!==void 0){v(!0),k("");try{const W=await Rh(Mh(a,{nextToken:U,pageSize:Xx}));d(Z=>{const J=[...Z];return J[C]=W.runtimes,J}),h(Z=>{const J=[...Z];return W.nextToken&&(J[C+1]=W.nextToken),J}),g(C)}catch(W){k(W instanceof Error?W.message:String(W))}finally{v(!1)}}},[a,u,c]),$=E.useCallback(async()=>{v(!0),k("");try{const C=[];let U="";do{const W=await Rh(Mh(a,{scope:"mine",nextToken:U,pageSize:100}));C.push(...W.runtimes),U=W.nextToken}while(U&&C.length<2e3);y(C)}catch(C){k(C instanceof Error?C.message:String(C))}finally{v(!1)}},[a]);E.useEffect(()=>{e&&r==="cloud"&&!P.current&&(P.current=!0,M(0))},[e,r,M]),E.useEffect(()=>{b&&m===null&&r==="cloud"&&$()},[b,m,r,$]),E.useEffect(()=>{e&&O(o)},[e,o]);function L(){R(new Set),b?(y(null),$()):(d([]),h([""]),g(0),P.current=!0,v(!0),k(""),Rh(Mh(a,{nextToken:"",pageSize:Xx})).then(C=>{d([C.runtimes]),h(C.nextToken?["",C.nextToken]:[""])}).catch(C=>k(C instanceof Error?C.message:String(C))).finally(()=>v(!1)))}const j=!b&&(c[p+1]!==void 0||u[p+1]!==void 0);function S(C){A(C.runtimeId),_B(C.runtimeId,C.region).then(U=>{if(!U||U.length===0){R(J=>new Set(J).add(C.runtimeId));return}const W=Object.fromEntries(U.map(J=>[J,C.name])),Z=nT(C.runtimeId,C.name,C.region,U,W);l(Xi(Z.id,U[0])),O({runtimeId:C.runtimeId,name:C.name,region:C.region})}).catch(()=>R(U=>new Set(U).add(C.runtimeId))).finally(()=>A(null))}if(!e)return null;const V=(b?m??[]:c[p]??[]).filter(C=>T?C.name.toLowerCase().includes(T.toLowerCase()):!0);return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:t}),f.jsxs("div",{className:"agentsel",role:"dialog","aria-label":"选择 Agent",style:{top:n},children:[f.jsxs("div",{className:"agentsel-main",children:[f.jsxs("div",{className:"agentsel-head",children:[f.jsxs("span",{className:"agentsel-title",children:[f.jsx(Yy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:L,title:"刷新",disabled:w,children:f.jsx(qN,{className:`icon ${w?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Vl,{className:"icon"})})]})]}),r==="local"?f.jsx("div",{className:"agentsel-body",children:i.length===0?f.jsx("div",{className:"agentsel-empty",children:"暂无本地 Agent。"}):f.jsx("ul",{className:"agentsel-list",children:i.map(C=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${C===s?"active":""}`,onClick:()=>{l(C),t()},children:[f.jsx(fl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:C})]})},C))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Lm,{className:"icon"}),f.jsx("input",{value:T,onChange:C=>N(C.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:C=>x(C.target.checked)}),"只看我创建的"]})]}),_&&f.jsx("div",{className:"agentsel-error",children:_}),f.jsxs("div",{className:"agentsel-listwrap",children:[V.length===0&&!w?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:V.map(C=>{const U=D.has(C.runtimeId),W=I===C.runtimeId,Z=(F==null?void 0:F.runtimeId)===C.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${Z?"active":""}`,onClick:()=>S(C),disabled:W,title:C.runtimeId,children:[W?f.jsx(ct,{className:"icon spin"}):f.jsx(fl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:C.name}),C.isMine&&f.jsx("span",{className:"agentsel-badge",children:"我创建的"}),U?f.jsx("span",{className:"agentsel-status is-bad",children:"不支持"}):f.jsx("span",{className:`agentsel-status is-${oF(C.status)}`,children:C.status||"-"})]})},C.runtimeId)})}),w&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(ct,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||j)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||w,onClick:()=>void M(p-1),"aria-label":"上一页",children:f.jsx(L$,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!j||w,onClick:()=>void M(p+1),"aria-label":"下一页",children:f.jsx(Wn,{className:"icon"})})]})]})]}),r==="cloud"&&F&&f.jsx(sF,{runtime:F})]})]})}function sF({runtime:e}){const[t,n]=E.useState(null),[r,i]=E.useState(!0),[s,o]=E.useState("");E.useEffect(()=>{let l=!0;return i(!0),o(""),n(null),ZN(e.runtimeId,e.region).then(c=>l&&n(c)).catch(c=>l&&o(c instanceof Error?c.message:String(c))).finally(()=>l&&i(!1)),()=>{l=!1}},[e.runtimeId,e.region]);const a=[];if(t){t.model&&a.push(["模型",t.model]),t.description&&a.push(["描述",t.description]),t.status&&a.push(["状态",t.status]),t.region&&a.push(["区域",t.region]);const l=t.resources,c=[l.cpuMilli!=null?`CPU ${l.cpuMilli}m`:"",l.memoryMb!=null?`内存 ${l.memoryMb}MB`:"",l.minInstance!=null||l.maxInstance!=null?`实例 ${l.minInstance??"?"}~${l.maxInstance??"?"}`:""].filter(Boolean).join(" · ");c&&a.push(["资源",c]),t.currentVersion!=null&&a.push(["版本",String(t.currentVersion)])}return f.jsxs("div",{className:"agentsel-detail",children:[f.jsx("div",{className:"agentsel-head",children:f.jsx("span",{className:"agentsel-title",children:e.name})}),f.jsxs("div",{className:"agentsel-detail-body",children:[f.jsx("div",{className:"agentsel-detail-id",title:e.runtimeId,children:e.runtimeId}),r?f.jsxs("div",{className:"agentsel-apps-note",children:[f.jsx(ct,{className:"icon spin"})," 读取详情…"]}):s?f.jsx("div",{className:"agentsel-error",children:s}):t?f.jsxs(f.Fragment,{children:[f.jsx("dl",{className:"agentsel-kv",children:a.map(([l,c])=>f.jsxs("div",{className:"agentsel-kv-row",children:[f.jsx("dt",{children:l}),f.jsx("dd",{children:c})]},l))}),t.envs.length>0&&f.jsxs("div",{className:"agentsel-envs",children:[f.jsx("div",{className:"agentsel-envs-head",children:"环境变量"}),t.envs.map(l=>f.jsxs("div",{className:"agentsel-env",children:[f.jsx("code",{className:"agentsel-env-k",children:l.key}),f.jsx("code",{className:"agentsel-env-v",children:l.value})]},l.key))]})]}):null]})]})}function oF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}const aF="data:image/svg+xml,%3csvg%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eVolcengine%3c/title%3e%3cpath%20d='M19.44%2010.153l-2.936%2011.586a.215.215%200%2000.214.261h5.87a.215.215%200%2000.214-.261l-2.95-11.586a.214.214%200%2000-.412%200zM3.28%2012.778l-2.275%208.96A.214.214%200%20001.22%2022h4.532a.212.212%200%2000.214-.165.214.214%200%20000-.097l-2.276-8.96a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3cpath%20d='M7.29%205.359L3.148%2021.738a.215.215%200%2000.203.261h8.29a.214.214%200%2000.215-.261L7.7%205.358a.214.214%200%2000-.41%200z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M14.44.15a.214.214%200%2000-.41%200L8.366%2021.739a.214.214%200%2000.214.261H19.9a.216.216%200%2000.171-.078.214.214%200%2000.044-.183L14.439.15z'%20fill='%23006EFF'%3e%3c/path%3e%3cpath%20d='M10.278%207.741L6.685%2021.736a.214.214%200%2000.214.264h7.17a.215.215%200%2000.214-.264L10.688%207.741a.214.214%200%2000-.41%200z'%20fill='%2300E5E5'%3e%3c/path%3e%3c/svg%3e";function lF(){return f.jsxs("svg",{className:"icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("path",{d:"M12.5 3 5.5 13h5l-1 8 8-11h-5l.5-7z",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M19 4.5v3M17.5 6h3",opacity:"0.85"})]})}function cF({userInfo:e,onLogout:t}){const[n,r]=E.useState(!1);if(!e)return null;const i=FB(e),s=String(e.email??e.sub??""),o=(i||"U").slice(0,1).toUpperCase();return f.jsxs("div",{className:"sidebar-user",children:[f.jsxs("button",{className:"sidebar-user-btn",onClick:()=>r(a=>!a),children:[f.jsx("span",{className:"account-avatar",children:o}),f.jsx("span",{className:"sidebar-user-name",children:i})]}),n&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>r(!1)}),f.jsxs("div",{className:"account-pop sidebar-user-pop",children:[f.jsxs("div",{className:"account-head",children:[f.jsx("div",{className:"account-avatar account-avatar--lg",children:o}),f.jsxs("div",{className:"account-id",children:[f.jsx("div",{className:"account-name",children:i}),s&&s!==i&&f.jsx("div",{className:"account-sub",children:s})]})]}),f.jsxs("button",{className:"account-logout",onClick:()=>{r(!1),t()},children:[f.jsx(nB,{className:"icon"})," 退出登录"]})]})]})]})}function uF({sessions:e,currentSessionId:t,features:n,streamingSids:r,agentsSource:i="local",localApps:s=[],currentAgentId:o="",currentAgentLabel:a="",currentRuntime:l,author:c="",onSelectAgent:d,onNewChat:u,onSearch:h,onQuickCreate:p,onSkillCenter:g,onAddAgent:b,onManageAgents:x,onPickSession:m,onDeleteSession:y,userInfo:w,onLogout:v}){const _=P=>(n==null?void 0:n[P])!==!1,[k,T]=E.useState(null),[N,I]=E.useState(!1),[A,D]=E.useState(0),R=E.useRef(null),F=()=>{R.current&&D(R.current.offsetTop),I(P=>!P)},O=[...e].sort((P,M)=>(M.lastUpdateTime??0)-(P.lastUpdateTime??0));return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-top",children:[f.jsxs("div",{className:"brand",children:[f.jsx("img",{className:"brand-logo",src:aF,alt:"","aria-hidden":!0}),"VeADK"]}),d&&(()=>{const P=i==="cloud"&&!o;return f.jsxs("button",{ref:R,className:`agent-row ${P?"agent-row--empty":""}`,onClick:F,title:"切换 Agent",children:[f.jsx(fl,{className:"icon agent-row-lead"}),f.jsx("span",{className:"agent-row-name",children:P?"请选择 Agent":a||"选择 Agent"}),f.jsx(Wn,{className:`icon agent-row-chev ${N?"open":""}`})]})})(),d&&f.jsx(iF,{open:N,onClose:()=>I(!1),anchorTop:A,agentsSource:i,localApps:s,currentId:o,currentRuntime:l,author:c,onSelect:d}),_("newChat")&&f.jsxs("button",{className:"new-chat",onClick:u,children:[f.jsx(Or,{className:"icon"}),"新会话"]}),_("search")&&f.jsx(ZB,{onClick:h}),_("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(lF,{}),"添加 Agent"]}),_("skillCenter")&&f.jsx(VB,{onClick:g}),_("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:x,children:[f.jsx(Yy,{className:"icon"}),"管理 Agent"]})]}),_("history")&&f.jsxs("div",{className:"sidebar-history",children:[f.jsx("div",{className:"history-head",children:f.jsx("span",{children:"历史会话"})}),f.jsxs("div",{className:"history-list",children:[O.length===0&&f.jsx("div",{className:"history-empty",children:"暂无会话"}),O.map(P=>f.jsxs("div",{className:`history-item ${P.id===t?"active":""}`,children:[f.jsxs("button",{className:"history-item-btn",onClick:()=>m(P.id),title:P.id,children:[(r==null?void 0:r.has(P.id))&&f.jsx("span",{className:"history-streaming",title:"正在生成…","aria-label":"正在生成"}),f.jsx("span",{className:"history-title",children:MB(P.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>T(M=>M===P.id?null:P.id),children:f.jsx(B$,{className:"icon"})}),k===P.id&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>T(null)}),f.jsx("div",{className:"history-menu",children:f.jsxs("button",{className:"menu-item menu-item--danger",onClick:()=>{T(null),y(P.id)},children:[f.jsx(jo,{className:"icon"})," 删除"]})})]})]},P.id))]})]}),f.jsx(cF,{userInfo:w,onLogout:v})]})}function dF({apps:e,appName:t,onAppChange:n,agentLabel:r,title:i,crumbs:s}){return f.jsx("div",{className:"navbar",children:s&&s.length>0?f.jsx("nav",{className:"navbar-crumbs","aria-label":"面包屑",children:s.map((o,a)=>f.jsxs(E.Fragment,{children:[a>0&&f.jsx(Wn,{className:"crumb-sep"}),o.onClick?f.jsx("button",{className:"crumb crumb-link",onClick:o.onClick,children:o.label}):f.jsx("span",{className:"crumb crumb-current",children:o.label})]},a))}):i?f.jsx("div",{className:"navbar-title",children:i}):f.jsx(fF,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function fF({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=E.useState(!1),[o,a]=E.useState(null),[l,c]=E.useState({}),[d,u]=E.useState(0),h=E.useRef({}),p=x=>r?r(x):x;function g(x){a(x);const m=h.current[x];if(m){const y=m.getBoundingClientRect(),w=m.closest(".agent-dd");if(w){const v=w.getBoundingClientRect();u(y.top-v.top)}}l[x]===void 0&&(c(y=>({...y,[x]:"loading"})),n0(x).then(y=>c(w=>({...w,[x]:y}))).catch(()=>c(y=>({...y,[x]:"error"}))))}function b(){s(!1),a(null)}return f.jsxs("div",{className:"agent-dd",children:[f.jsxs("button",{className:"agent-dd-trigger",onClick:()=>s(x=>!x),children:[f.jsx("span",{className:"agent-dd-current",children:t?p(t):"选择 Agent"}),f.jsx(VN,{className:`agent-dd-chev ${i?"open":""}`})]}),i&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:b}),f.jsx("div",{className:"agent-dd-menu",children:e.map(x=>f.jsx("div",{ref:m=>h.current[x]=m,className:"agent-dd-row",onMouseEnter:()=>g(x),onMouseLeave:()=>a(m=>m===x?null:m),children:f.jsxs("button",{className:`agent-dd-item ${x===t?"active":""}`,onClick:()=>{n(x),b()},children:[f.jsx("span",{className:"agent-dd-item-name",children:p(x)}),x===t&&f.jsx("span",{className:"agent-dd-item-dot","aria-label":"当前"})]})},x))}),o&&f.jsx(hF,{state:l[o],top:d})]})]})}function hF({state:e,top:t}){return f.jsx("div",{className:"agent-dd-flyout",style:{top:`${t}px`},children:e===void 0||e==="loading"?f.jsxs("div",{className:"agent-dd-fly-loading",children:[f.jsx(ct,{className:"icon spin"})," 加载中…"]}):e==="error"?f.jsx("div",{className:"agent-dd-fly-loading",children:"读取信息失败"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"agent-dd-fly-name",children:e.name}),e.description&&f.jsx("div",{className:"agent-dd-fly-desc",children:e.description}),f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx(fl,{className:"icon"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.model})]}),e.tools.length>0&&f.jsxs("div",{className:"agent-dd-fly-field agent-dd-fly-field--tools",children:[f.jsx(e0,{className:"icon"}),f.jsx("div",{className:"agent-dd-fly-chips",children:e.tools.map(n=>f.jsx("span",{className:"agent-dd-chip",children:n},n))})]}),e.subAgents.length>0&&f.jsxs("div",{className:"agent-dd-fly-field",children:[f.jsx("span",{className:"agent-dd-fly-label",children:"子 Agent"}),f.jsx("span",{className:"agent-dd-fly-model",children:e.subAgents.join("、")})]})]})})}const Qx={llm:{icon:yo,label:"LLM"},sequential:{icon:HN,label:"顺序"},parallel:{icon:WN,label:"并行"},loop:{icon:Jy,label:"循环"},a2a:{icon:Ul,label:"A2A"}};function sT(e){return 1+e.children.reduce((t,n)=>t+sT(n),0)}function oT({node:e,activeAgent:t,seen:n,path:r}){const i=Qx[e.type]??Qx.llm,s=i.icon,o=!!e.name,a=o&&e.name===t,l=o&&!a&&r.has(e.name),c=o&&!a&&!l&&n.has(e.name);return f.jsxs("div",{className:"topo-branch",children:[f.jsxs("div",{className:`topo-node topo-type-${e.type} ${a?"is-active":""} ${l?"is-onpath":""} ${c?"is-done":""}`,title:e.description||e.name,children:[f.jsx(s,{className:"topo-icon"}),f.jsx("span",{className:"topo-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"topo-badge",children:i.label})]}),a&&e.type==="a2a"&&f.jsx("div",{className:"topo-remote",children:"远程执行中…"}),e.children.length>0&&f.jsx("div",{className:"topo-children",children:e.children.map((d,u)=>f.jsx(oT,{node:d,activeAgent:t,seen:n,path:r},`${d.name}-${u}`))})]})}function Zx({appName:e,activeAgent:t,seenAgents:n,execPath:r=[]}){const[i,s]=E.useState(null);if(E.useEffect(()=>{let a=!1;if(s(null),!!e)return n0(e).then(l=>{a||s(l.graph??null)}).catch(()=>{a||s(null)}),()=>{a=!0}},[e]),!i||i.children.length===0)return null;const o=new Set(r);return f.jsxs("aside",{className:"topo","aria-label":"Agent 拓扑",children:[f.jsxs("div",{className:"topo-head",children:[f.jsx("span",{className:"topo-head-title",children:"Agent 拓扑"}),f.jsxs("span",{className:"topo-head-sub",children:[sT(i)," 个"]})]}),r.length>0&&f.jsx("div",{className:"topo-path","aria-label":"执行路径",children:r.map((a,l)=>f.jsxs("span",{className:"topo-path-seg",children:[l>0&&f.jsx(Wn,{className:"topo-path-sep"}),f.jsx("span",{className:l===r.length-1?"topo-path-name is-current":"topo-path-name",children:a})]},`${a}-${l}`))}),f.jsx("div",{className:"topo-tree",children:f.jsx(oT,{node:i,activeAgent:t,seen:n,path:o})})]})}function pF({onAdded:e,onCancel:t}){const[n,r]=E.useState(""),[i,s]=E.useState(""),[o,a]=E.useState(""),[l,c]=E.useState(!1),[d,u]=E.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),u("");try{const g=await rT(o,n,i,o);if(g.apps.length===0){u("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Xi(g.id,g.apps[0]))}catch(g){u(`连接失败:${String(g)}。请检查 URL、API Key,以及该网关是否允许跨域。`),c(!1)}}}return f.jsx("div",{className:"addagent",children:f.jsxs("div",{className:"addagent-card",children:[f.jsx("h2",{className:"addagent-title",children:"添加 AgentKit 智能体"}),f.jsx("p",{className:"addagent-sub",children:"填入 AgentKit 部署的访问地址与 API Key,将通过 ADK 协议连接,连接成功后其 Agent 会出现在左上角的下拉中。"}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"访问地址 URL"}),f.jsx("input",{className:"addagent-input",value:n,onChange:g=>r(g.target.value),placeholder:"https://xxxxx.apigateway-cn-beijing.volceapi.com",autoFocus:!0})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"API Key"}),f.jsx("input",{className:"addagent-input",type:"password",value:i,onChange:g=>s(g.target.value),placeholder:"以 Authorization: Bearer 方式连接"})]}),f.jsxs("label",{className:"addagent-field",children:[f.jsx("span",{className:"addagent-label",children:"显示名称(可选)"}),f.jsx("input",{className:"addagent-input",value:o,onChange:g=>a(g.target.value),placeholder:"默认取 URL 的主机名"})]}),d&&f.jsx("div",{className:"addagent-error",children:d}),f.jsxs("div",{className:"addagent-actions",children:[f.jsx("button",{className:"addagent-btn addagent-btn--ghost",onClick:t,disabled:l,children:"取消"}),f.jsxs("button",{className:"addagent-btn addagent-btn--primary",onClick:p,disabled:!h,children:[l?f.jsx(ct,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function mF({author:e}){const[t,n]=E.useState([]),[r,i]=E.useState(!0),[s,o]=E.useState(""),[a,l]=E.useState(null),[c,d]=E.useState(null),[u,h]=E.useState({}),p=E.useCallback(async()=>{i(!0),o("");try{n(await vB(e))}catch(m){o(m instanceof Error?m.message:String(m))}finally{i(!1)}},[e]);E.useEffect(()=>{p()},[p]);async function g(m){h(w=>({...w,[m.runtimeId]:{loading:!0}}));const y={loading:!1};try{y.detail=await ZN(m.runtimeId,m.region)}catch(w){y.error=w instanceof Error?w.message:String(w)}y.detail&&(y.graphs=[{name:y.detail.name,description:y.detail.description,type:"llm",model:y.detail.model,tools:[],children:[]}],y.graphNote="仅显示主 Agent(控制面信息)。"),h(w=>({...w,[m.runtimeId]:y}))}function b(m){const y=c===m.runtimeId;d(y?null:m.runtimeId),!y&&!u[m.runtimeId]&&g(m)}async function x(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await EB(m.runtimeId,m.region),n(y=>y.filter(w=>w.runtimeId!==m.runtimeId))}catch(y){o(y instanceof Error?y.message:String(y))}finally{l(null)}}}return f.jsxs("div",{className:"manage",children:[f.jsxs("div",{className:"manage-head",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"manage-title",children:"管理 Agent"}),f.jsx("p",{className:"manage-sub",children:e?`列出你(${e})通过本工作台部署到 AgentKit 的 Runtime。`:"列出通过本工作台部署到 AgentKit 的 Runtime。"})]}),f.jsxs("button",{type:"button",className:"manage-refresh",onClick:()=>void p(),disabled:r,title:"刷新",children:[f.jsx(qN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(ct,{className:"icon spin"})," 加载中…"]}):t.length===0?f.jsx("div",{className:"manage-empty",children:"暂无你部署的 Agent。"}):f.jsx("ul",{className:"manage-list",children:t.map(m=>{const y=c===m.runtimeId,w=u[m.runtimeId];return f.jsxs("li",{className:"manage-item",children:[f.jsxs("div",{className:"manage-item-row",children:[f.jsxs("button",{type:"button",className:"manage-item-toggle",onClick:()=>b(m),"aria-expanded":y,children:[y?f.jsx(VN,{className:"icon"}):f.jsx(Wn,{className:"icon"}),f.jsxs("span",{className:"manage-item-main",children:[f.jsx("span",{className:"manage-item-name",children:m.name}),f.jsx("span",{className:`manage-badge is-${bF(m.status)}`,children:m.status||"-"})]})]}),f.jsx("button",{type:"button",className:"manage-del",onClick:()=>void x(m),disabled:a===m.runtimeId,title:"删除该 Runtime",children:a===m.runtimeId?f.jsx(ct,{className:"icon spin"}):f.jsx(jo,{className:"icon"})})]}),f.jsxs("div",{className:"manage-item-meta",children:[f.jsx("span",{className:"manage-item-id",title:m.runtimeId,children:m.runtimeId}),f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:m.region}),m.createdAt&&f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"manage-item-dot",children:"·"}),f.jsx("span",{children:lT(m.createdAt)})]})]}),y&&f.jsx("div",{className:"manage-detail",children:!w||w.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(ct,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[w.error&&f.jsx("div",{className:"manage-error",children:w.error}),w.detail&&f.jsx(gF,{detail:w.detail}),f.jsx("div",{className:"manage-tree-head",children:"Agent 结构"}),w.graphs&&w.graphs.length>0?w.graphs.map((v,_)=>f.jsx(aT,{node:v},_)):f.jsx("div",{className:"manage-tree-note",children:w.graphNote})]})})]},m.runtimeId)})})]})}function gF({detail:e}){const t=e.resources,n=[];e.model&&n.push(["模型",e.model]),e.description&&n.push(["描述",e.description]),e.statusMessage&&n.push(["状态信息",e.statusMessage]),e.project&&n.push(["Project",e.project]),e.currentVersion!=null&&n.push(["版本",String(e.currentVersion)]);const r=[t.cpuMilli!=null?`CPU ${t.cpuMilli}m`:"",t.memoryMb!=null?`内存 ${t.memoryMb}MB`:"",t.minInstance!=null||t.maxInstance!=null?`实例 ${t.minInstance??"?"}~${t.maxInstance??"?"}`:"",t.maxConcurrency!=null?`并发 ${t.maxConcurrency}`:""].filter(Boolean).join(" · ");return r&&n.push(["资源",r]),e.memoryId&&n.push(["Memory",e.memoryId]),e.toolId&&n.push(["Tool",e.toolId]),e.knowledgeId&&n.push(["Knowledge",e.knowledgeId]),e.mcpToolsetId&&n.push(["MCP Toolset",e.mcpToolsetId]),e.updatedAt&&n.push(["更新时间",lT(e.updatedAt)]),f.jsxs("div",{className:"manage-detail-card",children:[f.jsx("dl",{className:"manage-kv",children:n.map(([i,s])=>f.jsxs("div",{className:"manage-kv-row",children:[f.jsx("dt",{children:i}),f.jsx("dd",{children:s})]},i))}),e.envs.length>0&&f.jsxs("div",{className:"manage-envs",children:[f.jsx("div",{className:"manage-envs-head",children:"环境变量"}),e.envs.map(i=>f.jsxs("div",{className:"manage-env",children:[f.jsx("code",{className:"manage-env-k",children:i.key}),f.jsx("code",{className:"manage-env-v",children:i.value})]},i.key))]})]})}const yF={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function aT({node:e,depth:t=0}){return f.jsxs("div",{className:"manage-tree",style:{marginLeft:t?16:0},children:[f.jsxs("div",{className:"manage-tree-node",children:[f.jsx("span",{className:"manage-tree-name",children:e.name||"(未命名)"}),f.jsx("span",{className:"manage-tree-type",children:yF[e.type]||e.type}),e.model&&f.jsx("span",{className:"manage-tree-model",children:e.model})]}),e.tools.length>0&&f.jsx("div",{className:"manage-tree-tools",children:e.tools.map(n=>f.jsx("span",{className:"manage-tree-tool",children:n},n))}),e.children.map((n,r)=>f.jsx(aT,{node:n,depth:t+1},r))]})}function bF(e){const t=(e||"").toLowerCase();return t.includes("run")||t.includes("ready")||t.includes("active")?"ok":t.includes("creat")||t.includes("pend")||t.includes("deploy")?"warn":t.includes("fail")||t.includes("error")||t.includes("delet")?"bad":"muted"}function lT(e){const t=Number(e),n=Number.isFinite(t)&&String(t)===e?new Date(t*1e3):new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString()}const wF={formatDate(e){const t=e.value??e.date??e.timestamp;if(t==null)return"";const n=new Date(t);return isNaN(n.getTime())?String(t):n.toLocaleString()}};function xF(e,t){if(!t||t==="/")return e;const n=t.replace(/^\//,"").split("/").map(i=>i.replace(/~1/g,"/").replace(/~0/g,"~"));let r=e;for(const i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function vF(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function kF(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function s0(e,t){if(vF(e))return xF(t,e.path);if(kF(e)){const n=wF[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=s0(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function _F(e,t){const n=s0(e,t);return n==null?"":typeof n=="string"?n:String(n)}const cT=new Map;function ls(e,t){cT.set(e,t)}function EF(e){return cT.get(e)}function SF(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;ss0(r,e.dataModel),resolveString:r=>_F(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=EF(i.component)??NF;return f.jsx(s,{node:i,ctx:n},r)}};return f.jsx("div",{className:"a2ui-surface","data-a2ui-surface":e.surfaceId,children:n.render(e.rootId)})}function dT(e){const t=E.useRef(null),n=E.useRef(!0),r=28,i=E.useCallback(()=>{const s=t.current;s&&(n.current=s.scrollHeight-s.scrollTop-s.clientHeight{const s=t.current;s&&n.current&&(s.scrollTop=s.scrollHeight)},[e]),{ref:t,onScroll:i}}function AF(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const CF=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,IF=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,MF={};function Jx(e,t){return(MF.jsx?IF:CF).test(e)}const OF=/[ \t\n\f\r]/g;function RF(e){return typeof e=="object"?e.type==="text"?ev(e.value):!1:ev(e)}function ev(e){return e.replace(OF,"")===""}let Kl=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Kl.prototype.normal={};Kl.prototype.property={};Kl.prototype.space=void 0;function fT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Kl(n,r,t)}function Bm(e){return e.toLowerCase()}class nn{constructor(t,n){this.attribute=n,this.property=t}}nn.prototype.attribute="";nn.prototype.booleanish=!1;nn.prototype.boolean=!1;nn.prototype.commaOrSpaceSeparated=!1;nn.prototype.commaSeparated=!1;nn.prototype.defined=!1;nn.prototype.mustUseProperty=!1;nn.prototype.number=!1;nn.prototype.overloadedBoolean=!1;nn.prototype.property="";nn.prototype.spaceSeparated=!1;nn.prototype.space=void 0;let LF=0;const Se=cs(),pt=cs(),Fm=cs(),se=cs(),Fe=cs(),to=cs(),sn=cs();function cs(){return 2**++LF}const zm=Object.freeze(Object.defineProperty({__proto__:null,boolean:Se,booleanish:pt,commaOrSpaceSeparated:sn,commaSeparated:to,number:se,overloadedBoolean:Fm,spaceSeparated:Fe},Symbol.toStringTag,{value:"Module"})),Lh=Object.keys(zm);class o0 extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),tv(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&BF.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(nv,UF);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!nv.test(s)){let o=s.replace($F,zF);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=o0}return new i(r,t)}function zF(e){return"-"+e.toLowerCase()}function UF(e){return e.charAt(1).toUpperCase()}const VF=fT([hT,PF,gT,yT,bT],"html"),a0=fT([hT,DF,gT,yT,bT],"svg");function HF(e){return e.join(" ").trim()}var l0={},rv=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,KF=/\n/g,qF=/^\s*/,WF=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,GF=/^:\s*/,YF=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,XF=/^[;\s]*/,QF=/^\s+|\s+$/g,ZF=` +`,iv="/",sv="*",Ii="",JF="comment",e3="declaration";function t3(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(g){var b=g.match(KF);b&&(n+=b.length);var x=g.lastIndexOf(ZF);r=~x?g.length-x:r+g.length}function s(){var g={line:n,column:r};return function(b){return b.position=new o(g),c(),b}}function o(g){this.start=g,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function a(g){var b=new Error(t.source+":"+n+":"+r+": "+g);if(b.reason=g,b.filename=t.source,b.line=n,b.column=r,b.source=e,!t.silent)throw b}function l(g){var b=g.exec(e);if(b){var x=b[0];return i(x),e=e.slice(x.length),b}}function c(){l(qF)}function d(g){var b;for(g=g||[];b=u();)b!==!1&&g.push(b);return g}function u(){var g=s();if(!(iv!=e.charAt(0)||sv!=e.charAt(1))){for(var b=2;Ii!=e.charAt(b)&&(sv!=e.charAt(b)||iv!=e.charAt(b+1));)++b;if(b+=2,Ii===e.charAt(b-1))return a("End of comment missing");var x=e.slice(2,b-2);return r+=2,i(x),e=e.slice(b),r+=2,g({type:JF,comment:x})}}function h(){var g=s(),b=l(WF);if(b){if(u(),!l(GF))return a("property missing ':'");var x=l(YF),m=g({type:e3,property:ov(b[0].replace(rv,Ii)),value:x?ov(x[0].replace(rv,Ii)):Ii});return l(XF),m}}function p(){var g=[];d(g);for(var b;b=h();)b!==!1&&(g.push(b),d(g));return g}return c(),p()}function ov(e){return e?e.replace(QF,Ii):Ii}var n3=t3,r3=Ru&&Ru.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(l0,"__esModule",{value:!0});l0.default=s3;const i3=r3(n3);function s3(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,i3.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:a}=s;i?t(o,a,s):a&&(n=n||{},n[o]=a)}),n}var rf={};Object.defineProperty(rf,"__esModule",{value:!0});rf.camelCase=void 0;var o3=/^--[a-zA-Z0-9_-]+$/,a3=/-([a-z])/g,l3=/^[^-]+$/,c3=/^-(webkit|moz|ms|o|khtml)-/,u3=/^-(ms)-/,d3=function(e){return!e||l3.test(e)||o3.test(e)},f3=function(e,t){return t.toUpperCase()},av=function(e,t){return"".concat(t,"-")},h3=function(e,t){return t===void 0&&(t={}),d3(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(u3,av):e=e.replace(c3,av),e.replace(a3,f3))};rf.camelCase=h3;var p3=Ru&&Ru.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},m3=p3(l0),g3=rf;function Um(e,t){var n={};return!e||typeof e!="string"||(0,m3.default)(e,function(r,i){r&&i&&(n[(0,g3.camelCase)(r,t)]=i)}),n}Um.default=Um;var y3=Um;const b3=Ml(y3),wT=xT("end"),c0=xT("start");function xT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function w3(e){const t=c0(e),n=wT(e);if(t&&n)return{start:t,end:n}}function Pa(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?lv(e.position):"start"in e||"end"in e?lv(e):"line"in e||"column"in e?Vm(e):""}function Vm(e){return cv(e&&e.line)+":"+cv(e&&e.column)}function lv(e){return Vm(e&&e.start)+"-"+Vm(e&&e.end)}function cv(e){return e&&typeof e=="number"?e:1}class $t extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const a=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=a?a.line:void 0,this.name=Pa(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}$t.prototype.file="";$t.prototype.name="";$t.prototype.reason="";$t.prototype.message="";$t.prototype.stack="";$t.prototype.column=void 0;$t.prototype.line=void 0;$t.prototype.ancestors=void 0;$t.prototype.cause=void 0;$t.prototype.fatal=void 0;$t.prototype.place=void 0;$t.prototype.ruleId=void 0;$t.prototype.source=void 0;const u0={}.hasOwnProperty,x3=new Map,v3=/[A-Z]/g,k3=new Set(["table","tbody","thead","tfoot","tr"]),_3=new Set(["td","th"]),vT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function E3(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=O3(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=M3(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?a0:VF,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=kT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function kT(e,t,n){if(t.type==="element")return S3(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return N3(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return A3(e,t,n);if(t.type==="mdxjsEsm")return T3(e,t);if(t.type==="root")return C3(e,t,n);if(t.type==="text")return I3(e,t)}function S3(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=a0,e.schema=i),e.ancestors.push(t);const s=ET(e,t.tagName,!1),o=R3(e,t);let a=f0(e,t);return k3.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!RF(l):!0})),_T(e,o,s,t),d0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function N3(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}ml(e,t.position)}function T3(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);ml(e,t.position)}function A3(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=a0,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:ET(e,t.name,!0),o=L3(e,t),a=f0(e,t);return _T(e,o,s,t),d0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function C3(e,t,n){const r={};return d0(r,f0(e,t)),e.create(t,e.Fragment,r,n)}function I3(e,t){return t.value}function _T(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function d0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function M3(e,t,n){return r;function r(i,s,o,a){const c=Array.isArray(o.children)?n:t;return a?c(s,o,a):c(s,o)}}function O3(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=c0(r);return t(i,s,o,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}function R3(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&u0.call(t.properties,i)){const s=P3(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&_3.has(t.tagName)?r=a:n[o]=a}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function L3(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const a=o.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else ml(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const a=r.value.data.estree.body[0];a.type,s=e.evaluater.evaluateExpression(a.expression)}else ml(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function f0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:x3;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s0?(dn(e,e.length,0,t),e):t}const fv={}.hasOwnProperty;function NT(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Hn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vt=gi(/[A-Za-z]/),Lt=gi(/[\dA-Za-z]/),H3=gi(/[#-'*+\--9=?A-Z^-~]/);function hd(e){return e!==null&&(e<32||e===127)}const Hm=gi(/\d/),K3=gi(/[\dA-Fa-f]/),q3=gi(/[!-/:-@[-`{-~]/);function we(e){return e!==null&&e<-2}function Be(e){return e!==null&&(e<0||e===32)}function Te(e){return e===-2||e===-1||e===32}const sf=gi(new RegExp("\\p{P}|\\p{S}","u")),Qi=gi(/\s/);function gi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Bo(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const a=e.charCodeAt(n+1);s<56320&&a>56319&&a<57344?(o=String.fromCharCode(s,a),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Me(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(l){return Te(l)?(e.enter(n),a(l)):t(l)}function a(l){return Te(l)&&s++o))return;const T=t.events.length;let N=T,I,A;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){if(I){A=t.events[N][1].end;break}I=!0}for(m(r),k=T;kw;){const _=n[v];t.containerState=_[1],_[0].exit.call(t,e)}n.length=w}function y(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Q3(e,t,n){return Me(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function bo(e){if(e===null||Be(e)||Qi(e))return 1;if(sf(e))return 2}function of(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const u={...e[r][1].end},h={...e[n][1].start};pv(u,-l),pv(h,l),o={type:l>1?"strongSequence":"emphasisSequence",start:u,end:{...e[r][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:l>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[r][1].end={...o.start},e[n][1].start={...a.end},c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=kn(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=kn(c,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),c=kn(c,of(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=kn(c,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=kn(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dn(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n0&&Te(k)?Me(e,y,"linePrefix",s+1)(k):y(k)}function y(k){return k===null||we(k)?e.check(mv,b,v)(k):(e.enter("codeFlowValue"),w(k))}function w(k){return k===null||we(k)?(e.exit("codeFlowValue"),y(k)):(e.consume(k),w)}function v(k){return e.exit("codeFenced"),t(k)}function _(k,T,N){let I=0;return A;function A(P){return k.enter("lineEnding"),k.consume(P),k.exit("lineEnding"),D}function D(P){return k.enter("codeFencedFence"),Te(P)?Me(k,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):R(P)}function R(P){return P===a?(k.enter("codeFencedFenceSequence"),F(P)):N(P)}function F(P){return P===a?(I++,k.consume(P),F):I>=o?(k.exit("codeFencedFenceSequence"),Te(P)?Me(k,O,"whitespace")(P):O(P)):N(P)}function O(P){return P===null||we(P)?(k.exit("codeFencedFence"),T(P)):N(P)}}}function c4(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Dh={name:"codeIndented",tokenize:d4},u4={partial:!0,tokenize:f4};function d4(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Me(e,s,"linePrefix",5)(c)}function s(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(c):n(c)}function o(c){return c===null?l(c):we(c)?e.attempt(u4,o,l)(c):(e.enter("codeFlowValue"),a(c))}function a(c){return c===null||we(c)?(e.exit("codeFlowValue"),o(c)):(e.consume(c),a)}function l(c){return e.exit("codeIndented"),t(c)}}function f4(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Me(e,s,"linePrefix",5)(o)}function s(o){const a=r.events[r.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(o):we(o)?i(o):n(o)}}const h4={name:"codeText",previous:m4,resolve:p4,tokenize:g4};function p4(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&ra(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),ra(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),ra(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function OT(e,t,n,r,i,s,o,a,l){const c=l||Number.POSITIVE_INFINITY;let d=0;return u;function u(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||hd(m)?n(m):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),b(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===62?(e.exit("chunkString"),e.exit(a),h(m)):m===null||m===60||we(m)?n(m):(e.consume(m),m===92?g:p)}function g(m){return m===60||m===62||m===92?(e.consume(m),p):p(m)}function b(m){return!d&&(m===null||m===41||Be(m))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(m)):d999||p===null||p===91||p===93&&!l||p===94&&!a&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(s),e.enter(i),e.consume(p),e.exit(i),e.exit(r),t):we(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(p){return p===null||p===91||p===93||we(p)||a++>999?(e.exit("chunkString"),d(p)):(e.consume(p),l||(l=!Te(p)),p===92?h:u)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,u):u(p)}}function LT(e,t,n,r,i,s){let o;return a;function a(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,l):n(h)}function l(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),c(h))}function c(h){return h===o?(e.exit(s),l(o)):h===null?n(h):we(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Me(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||we(h)?(e.exit("chunkString"),c(h)):(e.consume(h),h===92?u:d)}function u(h){return h===o||h===92?(e.consume(h),d):d(h)}}function Da(e,t){let n;return r;function r(i){return we(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Te(i)?Me(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const E4={name:"definition",tokenize:N4},S4={partial:!0,tokenize:T4};function N4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return RT.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function a(p){return i=Hn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),l):n(p)}function l(p){return Be(p)?Da(e,c)(p):c(p)}function c(p){return OT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(S4,u,u)(p)}function u(p){return Te(p)?Me(e,h,"whitespace")(p):h(p)}function h(p){return p===null||we(p)?(e.exit("definition"),r.parser.defined.push(i),t(p)):n(p)}}function T4(e,t,n){return r;function r(a){return Be(a)?Da(e,i)(a):n(a)}function i(a){return LT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Te(a)?Me(e,o,"whitespace")(a):o(a)}function o(a){return a===null||we(a)?t(a):n(a)}}const A4={name:"hardBreakEscape",tokenize:C4};function C4(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return we(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const I4={name:"headingAtx",resolve:M4,tokenize:O4};function M4(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function O4(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Be(d)?(e.exit("atxHeadingSequence"),a(d)):n(d)}function a(d){return d===35?(e.enter("atxHeadingSequence"),l(d)):d===null||we(d)?(e.exit("atxHeading"),t(d)):Te(d)?Me(e,a,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function l(d){return d===35?(e.consume(d),l):(e.exit("atxHeadingSequence"),a(d))}function c(d){return d===null||d===35||Be(d)?(e.exit("atxHeadingText"),a(d)):(e.consume(d),c)}}const R4=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],yv=["pre","script","style","textarea"],L4={concrete:!0,name:"htmlFlow",resolveTo:j4,tokenize:$4},P4={partial:!0,tokenize:F4},D4={partial:!0,tokenize:B4};function j4(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function $4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(C){return d(C)}function d(C){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(C),u}function u(C){return C===33?(e.consume(C),h):C===47?(e.consume(C),s=!0,b):C===63?(e.consume(C),i=3,r.interrupt?t:S):Vt(C)?(e.consume(C),o=String.fromCharCode(C),x):n(C)}function h(C){return C===45?(e.consume(C),i=2,p):C===91?(e.consume(C),i=5,a=0,g):Vt(C)?(e.consume(C),i=4,r.interrupt?t:S):n(C)}function p(C){return C===45?(e.consume(C),r.interrupt?t:S):n(C)}function g(C){const U="CDATA[";return C===U.charCodeAt(a++)?(e.consume(C),a===U.length?r.interrupt?t:R:g):n(C)}function b(C){return Vt(C)?(e.consume(C),o=String.fromCharCode(C),x):n(C)}function x(C){if(C===null||C===47||C===62||Be(C)){const U=C===47,W=o.toLowerCase();return!U&&!s&&yv.includes(W)?(i=1,r.interrupt?t(C):R(C)):R4.includes(o.toLowerCase())?(i=6,U?(e.consume(C),m):r.interrupt?t(C):R(C)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(C):s?y(C):w(C))}return C===45||Lt(C)?(e.consume(C),o+=String.fromCharCode(C),x):n(C)}function m(C){return C===62?(e.consume(C),r.interrupt?t:R):n(C)}function y(C){return Te(C)?(e.consume(C),y):A(C)}function w(C){return C===47?(e.consume(C),A):C===58||C===95||Vt(C)?(e.consume(C),v):Te(C)?(e.consume(C),w):A(C)}function v(C){return C===45||C===46||C===58||C===95||Lt(C)?(e.consume(C),v):_(C)}function _(C){return C===61?(e.consume(C),k):Te(C)?(e.consume(C),_):w(C)}function k(C){return C===null||C===60||C===61||C===62||C===96?n(C):C===34||C===39?(e.consume(C),l=C,T):Te(C)?(e.consume(C),k):N(C)}function T(C){return C===l?(e.consume(C),l=null,I):C===null||we(C)?n(C):(e.consume(C),T)}function N(C){return C===null||C===34||C===39||C===47||C===60||C===61||C===62||C===96||Be(C)?_(C):(e.consume(C),N)}function I(C){return C===47||C===62||Te(C)?w(C):n(C)}function A(C){return C===62?(e.consume(C),D):n(C)}function D(C){return C===null||we(C)?R(C):Te(C)?(e.consume(C),D):n(C)}function R(C){return C===45&&i===2?(e.consume(C),M):C===60&&i===1?(e.consume(C),$):C===62&&i===4?(e.consume(C),H):C===63&&i===3?(e.consume(C),S):C===93&&i===5?(e.consume(C),j):we(C)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(P4,V,F)(C)):C===null||we(C)?(e.exit("htmlFlowData"),F(C)):(e.consume(C),R)}function F(C){return e.check(D4,O,V)(C)}function O(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),P}function P(C){return C===null||we(C)?F(C):(e.enter("htmlFlowData"),R(C))}function M(C){return C===45?(e.consume(C),S):R(C)}function $(C){return C===47?(e.consume(C),o="",L):R(C)}function L(C){if(C===62){const U=o.toLowerCase();return yv.includes(U)?(e.consume(C),H):R(C)}return Vt(C)&&o.length<8?(e.consume(C),o+=String.fromCharCode(C),L):R(C)}function j(C){return C===93?(e.consume(C),S):R(C)}function S(C){return C===62?(e.consume(C),H):C===45&&i===2?(e.consume(C),S):R(C)}function H(C){return C===null||we(C)?(e.exit("htmlFlowData"),V(C)):(e.consume(C),H)}function V(C){return e.exit("htmlFlow"),t(C)}}function B4(e,t,n){const r=this;return i;function i(o){return we(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function F4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(ql,t,n)}}const z4={name:"htmlText",tokenize:U4};function U4(e,t,n){const r=this;let i,s,o;return a;function a(S){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(S),l}function l(S){return S===33?(e.consume(S),c):S===47?(e.consume(S),_):S===63?(e.consume(S),w):Vt(S)?(e.consume(S),N):n(S)}function c(S){return S===45?(e.consume(S),d):S===91?(e.consume(S),s=0,g):Vt(S)?(e.consume(S),y):n(S)}function d(S){return S===45?(e.consume(S),p):n(S)}function u(S){return S===null?n(S):S===45?(e.consume(S),h):we(S)?(o=u,$(S)):(e.consume(S),u)}function h(S){return S===45?(e.consume(S),p):u(S)}function p(S){return S===62?M(S):S===45?h(S):u(S)}function g(S){const H="CDATA[";return S===H.charCodeAt(s++)?(e.consume(S),s===H.length?b:g):n(S)}function b(S){return S===null?n(S):S===93?(e.consume(S),x):we(S)?(o=b,$(S)):(e.consume(S),b)}function x(S){return S===93?(e.consume(S),m):b(S)}function m(S){return S===62?M(S):S===93?(e.consume(S),m):b(S)}function y(S){return S===null||S===62?M(S):we(S)?(o=y,$(S)):(e.consume(S),y)}function w(S){return S===null?n(S):S===63?(e.consume(S),v):we(S)?(o=w,$(S)):(e.consume(S),w)}function v(S){return S===62?M(S):w(S)}function _(S){return Vt(S)?(e.consume(S),k):n(S)}function k(S){return S===45||Lt(S)?(e.consume(S),k):T(S)}function T(S){return we(S)?(o=T,$(S)):Te(S)?(e.consume(S),T):M(S)}function N(S){return S===45||Lt(S)?(e.consume(S),N):S===47||S===62||Be(S)?I(S):n(S)}function I(S){return S===47?(e.consume(S),M):S===58||S===95||Vt(S)?(e.consume(S),A):we(S)?(o=I,$(S)):Te(S)?(e.consume(S),I):M(S)}function A(S){return S===45||S===46||S===58||S===95||Lt(S)?(e.consume(S),A):D(S)}function D(S){return S===61?(e.consume(S),R):we(S)?(o=D,$(S)):Te(S)?(e.consume(S),D):I(S)}function R(S){return S===null||S===60||S===61||S===62||S===96?n(S):S===34||S===39?(e.consume(S),i=S,F):we(S)?(o=R,$(S)):Te(S)?(e.consume(S),R):(e.consume(S),O)}function F(S){return S===i?(e.consume(S),i=void 0,P):S===null?n(S):we(S)?(o=F,$(S)):(e.consume(S),F)}function O(S){return S===null||S===34||S===39||S===60||S===61||S===96?n(S):S===47||S===62||Be(S)?I(S):(e.consume(S),O)}function P(S){return S===47||S===62||Be(S)?I(S):n(S)}function M(S){return S===62?(e.consume(S),e.exit("htmlTextData"),e.exit("htmlText"),t):n(S)}function $(S){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),L}function L(S){return Te(S)?Me(e,j,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):j(S)}function j(S){return e.enter("htmlTextData"),o(S)}}const m0={name:"labelEnd",resolveAll:q4,resolveTo:W4,tokenize:G4},V4={tokenize:Y4},H4={tokenize:X4},K4={tokenize:Q4};function q4(e){let t=-1;const n=[];for(;++t=3&&(c===null||we(c))?(e.exit("thematicBreak"),t(c)):n(c)}function l(c){return c===i?(e.consume(c),r++,l):(e.exit("thematicBreakSequence"),Te(c)?Me(e,a,"whitespace")(c):a(c))}}const Gt={continuation:{tokenize:az},exit:cz,name:"list",tokenize:oz},iz={partial:!0,tokenize:uz},sz={partial:!0,tokenize:lz};function oz(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return a;function a(p){const g=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(g==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Hm(p)){if(r.containerState.type||(r.containerState.type=g,e.enter(g,{_container:!0})),g==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(xu,n,c)(p):c(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(p)}return n(p)}function l(p){return Hm(p)&&++o<10?(e.consume(p),l):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),c(p)):n(p)}function c(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(ql,r.interrupt?n:d,e.attempt(iz,h,u))}function d(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function u(p){return Te(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),h):n(p)}function h(p){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function az(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(ql,i,s);function i(a){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Me(e,t,"listItemIndent",r.containerState.size+1)(a)}function s(a){return r.containerState.furtherBlankLines||!Te(a)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(a)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(sz,t,o)(a))}function o(a){return r.containerState._closeFlow=!0,r.interrupt=void 0,Me(e,e.attempt(Gt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function lz(e,t,n){const r=this;return Me(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function cz(e){e.exit(this.containerState.type)}function uz(e,t,n){const r=this;return Me(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!Te(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const bv={name:"setextUnderline",resolveTo:dz,tokenize:fz};function dz(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function fz(e,t,n){const r=this;let i;return s;function s(c){let d=r.events.length,u;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){u=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||u)?(e.enter("setextHeadingLine"),i=c,o(c)):n(c)}function o(c){return e.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===i?(e.consume(c),a):(e.exit("setextHeadingLineSequence"),Te(c)?Me(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||we(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const hz={tokenize:pz};function pz(e){const t=this,n=e.attempt(ql,r,e.attempt(this.parser.constructs.flowInitial,i,Me(e,e.attempt(this.parser.constructs.flow,i,e.attempt(w4,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const mz={resolveAll:DT()},gz=PT("string"),yz=PT("text");function PT(e){return{resolveAll:DT(e==="text"?bz:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,a);return o;function o(d){return c(d)?s(d):a(d)}function a(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),l}function l(d){return c(d)?(n.exit("data"),s(d)):(n.consume(d),l)}function c(d){if(d===null)return!0;const u=i[d];let h=-1;if(u)for(;++h-1){const a=o[0];typeof a=="string"?o[0]=a.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function Mz(e,t){let n=-1;const r=[];let i;for(;++n0){const Le=ne.tokenStack[ne.tokenStack.length-1];(Le[1]||xv).call(ne,void 0,Le[0])}for(K.position={start:Dr(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Dr(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},xe=-1;++xe0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function Kz(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function qz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Wz(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Bo(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,a=e.footnoteCounts.get(r);a===void 0?(a=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,a+=1,e.footnoteCounts.set(r,a);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)}function Gz(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Yz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function BT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function Xz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return BT(e,t);const i={src:Bo(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function Qz(e,t){const n={src:Bo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Zz(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Jz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return BT(e,t);const i={href:Bo(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function e5(e,t){const n={href:Bo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function t5(e,t,n){const r=e.all(t),i=n?n5(n):FT(t),s={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let u;d&&d.type==="element"&&d.tagName==="p"?u=d:(u={type:"element",tagName:"p",properties:{},children:[]},r.unshift(u)),u.children.length>0&&u.children.unshift({type:"text",value:" "}),u.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let a=-1;for(;++a1}function r5(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=c0(t.children[1]),l=wT(t.children[t.children.length-1]);a&&l&&(o.position={start:a,end:l}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function l5(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,a=o?o.length:t.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(_v(t.slice(i),i>0,!1)),s.join("")}function _v(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===vv||s===kv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===vv||s===kv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function d5(e,t){const n={type:"text",value:u5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function f5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const h5={blockquote:Uz,break:Vz,code:Hz,delete:Kz,emphasis:qz,footnoteReference:Wz,heading:Gz,html:Yz,imageReference:Xz,image:Qz,inlineCode:Zz,linkReference:Jz,link:e5,listItem:t5,list:r5,paragraph:i5,root:s5,strong:o5,table:a5,tableCell:c5,tableRow:l5,text:d5,thematicBreak:f5,toml:Lc,yaml:Lc,definition:Lc,footnoteDefinition:Lc};function Lc(){}const zT=-1,af=0,ja=1,pd=2,g0=3,y0=4,b0=5,w0=6,UT=7,VT=8,p5=typeof self=="object"?self:globalThis,Ev=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new p5[e](t)},m5=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case af:case zT:return n(o,i);case ja:{const a=n([],i);for(const l of o)a.push(r(l));return a}case pd:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case g0:return n(new Date(o),i);case y0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case b0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case w0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case UT:{const{name:a,message:l}=o;return n(Ev(a,l),i)}case VT:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:a}=new Uint8Array(o);return n(new DataView(a),o)}}return n(Ev(s,o),i)};return r},Sv=e=>m5(new Map,e)(0),bs="",{toString:g5}={},{keys:y5}=Object,ia=e=>{const t=typeof e;if(t!=="object"||!e)return[af,t];const n=g5.call(e).slice(8,-1);switch(n){case"Array":return[ja,bs];case"Object":return[pd,bs];case"Date":return[g0,bs];case"RegExp":return[y0,bs];case"Map":return[b0,bs];case"Set":return[w0,bs];case"DataView":return[ja,n]}return n.includes("Array")?[ja,n]:n.includes("Error")?[UT,n]:[pd,n]},Pc=([e,t])=>e===af&&(t==="function"||t==="symbol"),b5=(e,t,n,r)=>{const i=(o,a)=>{const l=r.push(o)-1;return n.set(a,l),l},s=o=>{if(n.has(o))return n.get(o);let[a,l]=ia(o);switch(a){case af:{let d=o;switch(l){case"bigint":a=VT,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);d=null;break;case"undefined":return i([zT],o)}return i([a,d],o)}case ja:{if(l){let h=o;return l==="DataView"?h=new Uint8Array(o.buffer):l==="ArrayBuffer"&&(h=new Uint8Array(o)),i([l,[...h]],o)}const d=[],u=i([a,d],o);for(const h of o)d.push(s(h));return u}case pd:{if(l)switch(l){case"BigInt":return i([l,o.toString()],o);case"Boolean":case"Number":case"String":return i([l,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const d=[],u=i([a,d],o);for(const h of y5(o))(e||!Pc(ia(o[h])))&&d.push([s(h),s(o[h])]);return u}case g0:return i([a,o.toISOString()],o);case y0:{const{source:d,flags:u}=o;return i([a,{source:d,flags:u}],o)}case b0:{const d=[],u=i([a,d],o);for(const[h,p]of o)(e||!(Pc(ia(h))||Pc(ia(p))))&&d.push([s(h),s(p)]);return u}case w0:{const d=[],u=i([a,d],o);for(const h of o)(e||!Pc(ia(h)))&&d.push(s(h));return u}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},Nv=(e,{json:t,lossy:n}={})=>{const r=[];return b5(!(t||n),!!t,new Map,r)(e),r},md=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Sv(Nv(e,t)):structuredClone(e):(e,t)=>Sv(Nv(e,t));function w5(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function x5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function v5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||w5,r=e.options.footnoteBackLabel||x5,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&g.push({type:"text",value:" "});let y=typeof n=="string"?n:n(l,p);typeof y=="string"&&(y={type:"text",value:y}),g.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,p),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const x=d[d.length-1];if(x&&x.type==="element"&&x.tagName==="p"){const y=x.children[x.children.length-1];y&&y.type==="text"?y.value+=" ":x.children.push({type:"text",value:" "}),x.children.push(...g)}else d.push(...g);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(d,!0)};e.patch(c,m),a.push(m)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...md(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:` +`}]}}const Wl=function(e){if(e==null)return S5;if(typeof e=="function")return lf(e);if(typeof e=="object")return Array.isArray(e)?k5(e):_5(e);if(typeof e=="string")return E5(e);throw new Error("Expected function, string, or object as test")};function k5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=HT,g,b,x;if((!t||s(l,c,d[d.length-1]||void 0))&&(p=C5(n(l,d)),p[0]===qm))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==A5)for(b=(r?m.children.length:-1)+o,x=d.concat(m);b>-1&&b0&&n.push({type:"text",value:` +`}),n}function Tv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Av(e,t){const n=M5(e,t),r=n.one(e,void 0),i=v5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` +`},i),s}function D5(e,t){return e&&"run"in e?async function(n,r){const i=Av(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Av(n,{file:r,...e||t})}}function Cv(e){if(e)throw e}var vu=Object.prototype.hasOwnProperty,qT=Object.prototype.toString,Iv=Object.defineProperty,Mv=Object.getOwnPropertyDescriptor,Ov=function(t){return typeof Array.isArray=="function"?Array.isArray(t):qT.call(t)==="[object Array]"},Rv=function(t){if(!t||qT.call(t)!=="[object Object]")return!1;var n=vu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&vu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||vu.call(t,i)},Lv=function(t,n){Iv&&n.name==="__proto__"?Iv(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Pv=function(t,n){if(n==="__proto__")if(vu.call(t,n)){if(Mv)return Mv(t,n).value}else return;return t[n]},j5=function e(){var t,n,r,i,s,o,a=arguments[0],l=1,c=arguments.length,d=!1;for(typeof a=="boolean"&&(d=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});lo.length;let l;a&&o.push(i);try{l=e.apply(this,o)}catch(c){const d=c;if(a&&n)throw d;return i(d)}a||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(o,...a){n||(n=!0,t(o,...a))}function s(o){i(null,o)}}const Jn={basename:F5,dirname:z5,extname:U5,join:V5,sep:"/"};function F5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Gl(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,a=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),a>-1&&(e.codePointAt(i)===t.codePointAt(a--)?a<0&&(r=i):(a=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function z5(e){if(Gl(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function U5(e){Gl(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const a=e.codePointAt(t);if(a===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),a===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function V5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function K5(e,t){let n="",r=0,i=-1,s=0,o=-1,a,l;for(;++o<=e.length;){if(o2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else a===46&&s>-1?s++:s=-1}return n}function Gl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const q5={cwd:W5};function W5(){return"/"}function Ym(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function G5(e){if(typeof e=="string")e=new URL(e);else if(!Ym(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Y5(e)}function Y5(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...g]=d;const b=r[h][1];Gm(b)&&Gm(p)&&(p=$h(!0,b,p)),r[h]=[c,p,...g]}}}}const J5=new x0().freeze();function Uh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Vh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Hh(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function jv(e){if(!Gm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function $v(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Dc(e){return eU(e)?e:new WT(e)}function eU(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function tU(e){return typeof e=="string"||nU(e)}function nU(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const rU="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Bv=[],Fv={allowDangerousHtml:!0},iU=/^(https?|ircs?|mailto|xmpp)$/i,sU=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function oU(e){const t=aU(e),n=lU(e);return cU(t.runSync(t.parse(n),n),e)}function aU(e){const t=e.rehypePlugins||Bv,n=e.remarkPlugins||Bv,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Fv}:Fv;return J5().use(zz).use(n).use(D5,r).use(t)}function lU(e){const t=e.children||"",n=new WT;return typeof t=="string"&&(n.value=t),n}function cU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||uU;for(const d of sU)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+rU+d.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),cf(e,c),E3(e,{Fragment:f.Fragment,components:i,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0});function c(d,u,h){if(d.type==="raw"&&h&&typeof u=="number")return o?h.children.splice(u,1):h.children[u]={type:"text",value:d.value},u;if(d.type==="element"){let p;for(p in Ph)if(Object.hasOwn(Ph,p)&&Object.hasOwn(d.properties,p)){const g=d.properties[p],b=Ph[p];(b===null||b.includes(d.tagName))&&(d.properties[p]=l(String(g||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!p&&r&&typeof u=="number"&&(p=!r(d,u,h)),p&&h&&typeof u=="number")return a&&d.children?h.children.splice(u,1,...d.children):h.children.splice(u,1),u}}}function uU(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||iU.test(e.slice(0,t))?e:""}function zv(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function dU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function fU(e,t,n){const i=Wl((n||{}).ignore||[]),s=hU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?h.lastIndex=v+1:(g!==v&&y.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(k)?y.push(...k):k&&y.push(k),g=v+w[0].length,m=!0),!h.global)break;w=h.exec(c.value)}return m?(g?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=zv(e,"(");let s=zv(e,")");for(;r!==-1&&i>s;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),s++;return[e,n]}function GT(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Qi(n)||sf(n))&&(!t||n!==47)}YT.peek=DU;function AU(){this.buffer()}function CU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function IU(){this.buffer()}function MU(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function OU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function RU(e){this.exit(e)}function LU(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Hn(this.sliceSerialize(e)).toLowerCase(),n.label=t}function PU(e){this.exit(e)}function DU(){return"["}function YT(e,t,n,r){const i=n.createTracker(r);let s=i.move("[^");const o=n.enter("footnoteReference"),a=n.enter("reference");return s+=i.move(n.safe(n.associationId(e),{after:"]",before:s})),a(),o(),s+=i.move("]"),s}function jU(){return{enter:{gfmFootnoteCallString:AU,gfmFootnoteCall:CU,gfmFootnoteDefinitionLabelString:IU,gfmFootnoteDefinition:MU},exit:{gfmFootnoteCallString:OU,gfmFootnoteCall:RU,gfmFootnoteDefinitionLabelString:LU,gfmFootnoteDefinition:PU}}}function $U(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:YT},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,s,o){const a=s.createTracker(o);let l=a.move("[^");const c=s.enter("footnoteDefinition"),d=s.enter("label");return l+=a.move(s.safe(s.associationId(r),{before:l,after:"]"})),d(),l+=a.move("]:"),r.children&&r.children.length>0&&(a.shift(4),l+=a.move((t?` +`:" ")+s.indentLines(s.containerFlow(r,a.current()),t?XT:BU))),c(),l}}function BU(e,t,n){return t===0?e:XT(e,t,n)}function XT(e,t,n){return(n?"":" ")+e}const FU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];QT.peek=KU;function zU(){return{canContainEols:["delete"],enter:{strikethrough:VU},exit:{strikethrough:HU}}}function UU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:FU}],handlers:{delete:QT}}}function VU(e){this.enter({type:"delete",children:[]},e)}function HU(e){this.exit(e)}function QT(e,t,n,r){const i=n.createTracker(r),s=n.enter("strikethrough");let o=i.move("~~");return o+=n.containerPhrasing(e,{...i.current(),before:o,after:"~"}),o+=i.move("~~"),s(),o}function KU(){return"~"}function qU(e){return e.length}function WU(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||qU,s=[],o=[],a=[],l=[];let c=0,d=-1;for(;++dc&&(c=e[d].length);++ml[m])&&(l[m]=w)}b.push(y)}o[d]=b,a[d]=x}let u=-1;if(typeof r=="object"&&"length"in r)for(;++ul[u]&&(l[u]=y),p[u]=y),h[u]=w}o.splice(1,0,h),a.splice(1,0,p),d=-1;const g=[];for(;++d "),s.shift(2);const o=n.indentLines(n.containerFlow(e,s.current()),XU);return i(),o}function XU(e,t,n){return">"+(n?"":" ")+e}function QU(e,t){return Vv(e,t.inConstruct,!0)&&!Vv(e,t.notInConstruct,!1)}function Vv(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=s):s=1,i=r+t.length,r=n.indexOf(t,i);return o}function JU(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function e6(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function t6(e,t,n,r){const i=e6(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(JU(e,n)){const u=n.enter("codeIndented"),h=n.indentLines(s,n6);return u(),h}const a=n.createTracker(r),l=i.repeat(Math.max(ZU(s,i)+1,3)),c=n.enter("codeFenced");let d=a.move(l);if(e.lang){const u=n.enter(`codeFencedLang${o}`);d+=a.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...a.current()})),u()}if(e.lang&&e.meta){const u=n.enter(`codeFencedMeta${o}`);d+=a.move(" "),d+=a.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...a.current()})),u()}return d+=a.move(` +`),s&&(d+=a.move(s+` +`)),d+=a.move(l),c(),d}function n6(e,t,n){return(n?"":" ")+e}function v0(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function r6(e,t,n,r){const i=v0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("definition");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("[");return c+=l.move(n.safe(n.associationId(e),{before:c,after:"]",...l.current()})),c+=l.move("]: "),a(),!e.url||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":` +`,...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),o(),c}function i6(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function gl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function gd(e,t,n){const r=bo(e),i=bo(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}ZT.peek=s6;function ZT(e,t,n,r){const i=i6(n),s=n.enter("emphasis"),o=n.createTracker(r),a=o.move(i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=gd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=gl(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=gd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+gl(u));const p=o.move(i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function s6(e,t,n){return n.options.emphasis||"*"}function o6(e,t){let n=!1;return cf(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,qm}),!!((!e.depth||e.depth<3)&&h0(e)&&(t.options.setext||n))}function a6(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),s=n.createTracker(r);if(o6(e,n)){const d=n.enter("headingSetext"),u=n.enter("phrasing"),h=n.containerPhrasing(e,{...s.current(),before:` +`,after:` +`});return u(),d(),h+` +`+(i===1?"=":"-").repeat(h.length-(Math.max(h.lastIndexOf("\r"),h.lastIndexOf(` +`))+1))}const o="#".repeat(i),a=n.enter("headingAtx"),l=n.enter("phrasing");s.move(o+" ");let c=n.containerPhrasing(e,{before:"# ",after:` +`,...s.current()});return/^[\t ]/.test(c)&&(c=gl(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}JT.peek=l6;function JT(e){return e.value||""}function l6(){return"<"}eA.peek=c6;function eA(e,t,n,r){const i=v0(n),s=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let a=n.enter("label");const l=n.createTracker(r);let c=l.move("![");return c+=l.move(n.safe(e.alt,{before:c,after:"]",...l.current()})),c+=l.move("]("),a(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(a=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(a=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),a(),e.title&&(a=n.enter(`title${s}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),a()),c+=l.move(")"),o(),c}function c6(){return"!"}tA.peek=u6;function tA(e,t,n,r){const i=e.referenceType,s=n.enter("imageReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("![");const c=n.safe(e.alt,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function u6(){return"!"}nA.peek=d6;function nA(e,t,n){let r=e.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s\u007F]/.test(e.url))}iA.peek=f6;function iA(e,t,n,r){const i=v0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(rA(e,n)){const d=n.stack;n.stack=[],a=n.enter("autolink");let u=o.move("<");return u+=o.move(n.containerPhrasing(e,{before:u,after:">",...o.current()})),u+=o.move(">"),a(),n.stack=d,u}a=n.enter("link"),l=n.enter("label");let c=o.move("[");return c+=o.move(n.containerPhrasing(e,{before:c,after:"](",...o.current()})),c+=o.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=o.move("<"),c+=o.move(n.safe(e.url,{before:c,after:">",...o.current()})),c+=o.move(">")):(l=n.enter("destinationRaw"),c+=o.move(n.safe(e.url,{before:c,after:e.title?" ":")",...o.current()}))),l(),e.title&&(l=n.enter(`title${s}`),c+=o.move(" "+i),c+=o.move(n.safe(e.title,{before:c,after:i,...o.current()})),c+=o.move(i),l()),c+=o.move(")"),a(),c}function f6(e,t,n){return rA(e,n)?"<":"["}sA.peek=h6;function sA(e,t,n,r){const i=e.referenceType,s=n.enter("linkReference");let o=n.enter("label");const a=n.createTracker(r);let l=a.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...a.current()});l+=a.move(c+"]["),o();const d=n.stack;n.stack=[],o=n.enter("reference");const u=n.safe(n.associationId(e),{before:l,after:"]",...a.current()});return o(),n.stack=d,s(),i==="full"||!c||c!==u?l+=a.move(u+"]"):i==="shortcut"?l=l.slice(0,-1):l+=a.move("]"),l}function h6(){return"["}function k0(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function p6(e){const t=k0(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function m6(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function oA(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function g6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?m6(n):k0(n);const a=e.ordered?o==="."?")":".":p6(n);let l=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(l=!0),oA(n)===o&&d){let u=-1;for(;++u-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+s);let o=s.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const a=n.createTracker(r);a.move(s+" ".repeat(o-s.length)),a.shift(o);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,a.current()),d);return l(),c;function d(u,h,p){return h?(p?"":" ".repeat(o))+u:(p?s:s+" ".repeat(o-s.length))+u}}function w6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const x6=Wl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function v6(e,t,n,r){return(e.children.some(function(o){return x6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function k6(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}aA.peek=_6;function aA(e,t,n,r){const i=k6(n),s=n.enter("strong"),o=n.createTracker(r),a=o.move(i+i);let l=o.move(n.containerPhrasing(e,{after:i,before:a,...o.current()}));const c=l.charCodeAt(0),d=gd(r.before.charCodeAt(r.before.length-1),c,i);d.inside&&(l=gl(c)+l.slice(1));const u=l.charCodeAt(l.length-1),h=gd(r.after.charCodeAt(0),u,i);h.inside&&(l=l.slice(0,-1)+gl(u));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:d.outside},a+l+p}function _6(e,t,n){return n.options.strong||"*"}function E6(e,t,n,r){return n.safe(e.value,r)}function S6(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function N6(e,t,n){const r=(oA(n)+(n.options.ruleSpaces?" ":"")).repeat(S6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const lA={blockquote:YU,break:Hv,code:t6,definition:r6,emphasis:ZT,hardBreak:Hv,heading:a6,html:JT,image:eA,imageReference:tA,inlineCode:nA,link:iA,linkReference:sA,list:g6,listItem:b6,paragraph:w6,root:v6,strong:aA,text:E6,thematicBreak:N6};function T6(){return{enter:{table:A6,tableData:Kv,tableHeader:Kv,tableRow:I6},exit:{codeText:M6,table:C6,tableData:Gh,tableHeader:Gh,tableRow:Gh}}}function A6(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function C6(e){this.exit(e),this.data.inTable=void 0}function I6(e){this.enter({type:"tableRow",children:[]},e)}function Gh(e){this.exit(e)}function Kv(e){this.enter({type:"tableCell",children:[]},e)}function M6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,O6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function O6(e,t){return t==="|"?t:e}function R6(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:h,table:o,tableCell:l,tableRow:a}};function o(p,g,b,x){return c(d(p,b,x),p.align)}function a(p,g,b,x){const m=u(p,b,x),y=c([m]);return y.slice(0,y.indexOf(` +`))}function l(p,g,b,x){const m=b.enter("tableCell"),y=b.enter("phrasing"),w=b.containerPhrasing(p,{...x,before:s,after:s});return y(),m(),w}function c(p,g){return WU(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function d(p,g,b){const x=p.children;let m=-1;const y=[],w=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const Q6={tokenize:sV,partial:!0};function Z6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:nV,continuation:{tokenize:rV},exit:iV}},text:{91:{name:"gfmFootnoteCall",tokenize:tV},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:J6,resolveTo:eV}}}}function J6(e,t,n){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const l=r.events[i][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return n(l);const c=Hn(r.sliceSerialize({start:o.end,end:r.now()}));return c.codePointAt(0)!==94||!s.includes(c.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function eV(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},a=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",s,t],["enter",o,t],["exit",o,t],["exit",s,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...a),e}function tV(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,o;return a;function a(u){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),l}function l(u){return u!==94?n(u):(e.enter("gfmFootnoteCallMarker"),e.consume(u),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",c)}function c(u){if(s>999||u===93&&!o||u===null||u===91||Be(u))return n(u);if(u===93){e.exit("chunkString");const h=e.exit("gfmFootnoteCallString");return i.includes(Hn(r.sliceSerialize(h)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return Be(u)||(o=!0),s++,e.consume(u),u===92?d:c}function d(u){return u===91||u===92||u===93?(e.consume(u),s++,c):c(u)}}function nV(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,o=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||Be(g))return n(g);if(g===93){e.exit("chunkString");const b=e.exit("gfmFootnoteDefinitionLabelString");return s=Hn(r.sliceSerialize(b)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return Be(g)||(a=!0),o++,e.consume(g),g===92?u:d}function u(g){return g===91||g===92||g===93?(e.consume(g),o++,d):d(g)}function h(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(s)||i.push(s),Me(e,p,"gfmFootnoteDefinitionWhitespace")):n(g)}function p(g){return t(g)}}function rV(e,t,n){return e.check(ql,t,e.attempt(Q6,t,n))}function iV(e){e.exit("gfmFootnoteDefinition")}function sV(e,t,n){const r=this;return Me(e,i,"gfmFootnoteDefinitionIndent",5);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(s):n(s)}}function oV(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,a){let l=-1;for(;++l1?l(g):(o.consume(g),u++,p);if(u<2&&!n)return l(g);const x=o.exit("strikethroughSequenceTemporary"),m=bo(g);return x._open=!m||m===2&&!!b,x._close=!b||b===2&&!!m,a(g)}}}class aV{constructor(){this.map=[]}add(t,n,r){lV(this,t,n,r)}consume(t){if(this.map.sort(function(s,o){return s[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const s of i)t.push(s);i=r.pop()}this.map.length=0}}function lV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const O=r.events[D][1].type;if(O==="lineEnding"||O==="linePrefix")D--;else break}const R=D>-1?r.events[D][1].type:null,F=R==="tableHead"||R==="tableRow"?k:l;return F===k&&r.parser.lazy[r.now().line]?n(A):F(A)}function l(A){return e.enter("tableHead"),e.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,s+=1),d(A)}function d(A){return A===null?n(A):we(A)?s>1?(s=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),p):n(A):Te(A)?Me(e,d,"whitespace")(A):(s+=1,o&&(o=!1,i+=1),A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),o=!0,d):(e.enter("data"),u(A)))}function u(A){return A===null||A===124||Be(A)?(e.exit("data"),d(A)):(e.consume(A),A===92?h:u)}function h(A){return A===92||A===124?(e.consume(A),u):u(A)}function p(A){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(A):(e.enter("tableDelimiterRow"),o=!1,Te(A)?Me(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?x(A):A===124?(o=!0,e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),b):_(A)}function b(A){return Te(A)?Me(e,x,"whitespace")(A):x(A)}function x(A){return A===58?(s+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),m):A===45?(s+=1,m(A)):A===null||we(A)?v(A):_(A)}function m(A){return A===45?(e.enter("tableDelimiterFiller"),y(A)):_(A)}function y(A){return A===45?(e.consume(A),y):A===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(A),e.exit("tableDelimiterMarker"),w):(e.exit("tableDelimiterFiller"),w(A))}function w(A){return Te(A)?Me(e,v,"whitespace")(A):v(A)}function v(A){return A===124?g(A):A===null||we(A)?!o||i!==s?_(A):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(A)):_(A)}function _(A){return n(A)}function k(A){return e.enter("tableRow"),T(A)}function T(A){return A===124?(e.enter("tableCellDivider"),e.consume(A),e.exit("tableCellDivider"),T):A===null||we(A)?(e.exit("tableRow"),t(A)):Te(A)?Me(e,T,"whitespace")(A):(e.enter("data"),N(A))}function N(A){return A===null||A===124||Be(A)?(e.exit("data"),T(A)):(e.consume(A),A===92?I:N)}function I(A){return A===92||A===124?(e.consume(A),N):N(A)}}function fV(e,t){let n=-1,r=!0,i=0,s=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,u;const h=new aV;for(;++nn[2]+1){const g=n[2]+1,b=n[3]-n[2]-1;e.add(g,b,[])}}e.add(n[3]+1,0,[["exit",u,t]])}return i!==void 0&&(s.end=Object.assign({},_s(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Wv(e,t,n,r,i){const s=[],o=_s(t.events,n);i&&(i.end=Object.assign({},o),s.push(["exit",i,t])),r.end=Object.assign({},o),s.push(["exit",r,t]),e.add(n+1,0,s)}function _s(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const hV={name:"tasklistCheck",tokenize:mV};function pV(){return{text:{91:hV}}}function mV(e,t,n){const r=this;return i;function i(l){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(l):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),s)}function s(l){return Be(l)?(e.enter("taskListCheckValueUnchecked"),e.consume(l),e.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(e.enter("taskListCheckValueChecked"),e.consume(l),e.exit("taskListCheckValueChecked"),o):n(l)}function o(l){return l===93?(e.enter("taskListCheckMarker"),e.consume(l),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(l)}function a(l){return we(l)?t(l):Te(l)?e.check({tokenize:gV},t,n)(l):n(l)}}function gV(e,t,n){return Me(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function yV(e){return NT([U6(),Z6(),oV(e),uV(),pV()])}const bV={};function wV(e){const t=this,n=e||bV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(yV(n)),s.push($6()),o.push(B6(n))}const Gv=function(e,t,n){const r=Wl(n);if(!e||!e.type||!e.children)throw new Error("Expected parent node");if(typeof t=="number"){if(t<0||t===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(t=e.children.indexOf(t),t<0)throw new Error("Expected child node or index");for(;++tc&&(c=d):d&&(c!==void 0&&c>-1&&l.push(` +`.repeat(c)||" "),c=-1,l.push(d))}return l.join("")}function bA(e,t,n){return e.type==="element"?TV(e,t,n):e.type==="text"?n.whitespace==="normal"?wA(e,n):AV(e):[]}function TV(e,t,n){const r=xA(e,n),i=e.children||[];let s=-1,o=[];if(SV(e))return o;let a,l;for(Qm(e)||Zv(e)&&Gv(t,e,Zv)?l=` +`:EV(e)?(a=2,l=2):yA(e)&&(a=1,l=1);++s]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],x=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:x},_={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[_,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],T={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:k.concat([{begin:/\(/,end:/\)/,keywords:v,contains:k.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function PV(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=LV(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function vA(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},s=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(a);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},d={match:/\\'/},u={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),g={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},b=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],x=["true","false"],m={match:/(\/[a-z._-]+)+/},y=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],w=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],_=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:b,literal:x,built_in:[...y,...w,"set","shopt",...v,..._]},contains:[p,e.SHEBANG(),g,u,s,o,m,a,l,c,d,n]}}function DV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",x={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:x,contains:m.concat([{begin:/\(/,end:/\)/,keywords:x,contains:m.concat(["self"]),relevance:0}]),relevance:0},w={begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:x,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:x,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(h,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:x,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:x}}}function jV(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",a={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},p=t.optional(i)+e.IDENT_RE+"\\s*\\(",g=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],b=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],x=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],m=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],v={type:b,keyword:g,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:x},_={className:"function.dispatch",relevance:0,keywords:{_hint:m},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[_,u,a,n,e.C_BLOCK_COMMENT_MODE,d,c],T={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:k.concat([{begin:/\(/,end:/\)/,keywords:v,contains:k.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+o+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:p,returnBegin:!0,contains:[h],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,c,d,a,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,c,d,a]}]},a,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:v,illegal:"",keywords:v,contains:["self",a]},{begin:e.IDENT_RE+"::",keywords:v},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function $V(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(s),built_in:t,literal:r},a=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},d={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},u=e.inherit(d,{illegal:/\n/}),h={className:"subst",begin:/\{/,end:/\}/,keywords:o},p=e.inherit(h,{illegal:/\n/}),g={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,p]},b={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]},x=e.inherit(b,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},p]});h.contains=[b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.C_BLOCK_COMMENT_MODE],p.contains=[x,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,l,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const m={variants:[c,b,g,d,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},y={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]},w=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",v={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},m,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},a,y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[a,y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+w+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,y],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[m,l,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},v]}}const BV=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),FV=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],zV=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],UV=[...FV,...zV],VV=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),HV=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),KV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),qV=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function WV(e){const t=e.regex,n=BV(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+HV.join("|")+")"},{begin:":(:)?("+KV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+qV.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:VV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+UV.join("|")+")\\b"}]}}function GV(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function YV(e){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"_A(e,t,n-1))}function QV(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+_A("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},d={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Jv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Jv,c]}}const e1="[A-Za-z$_][0-9A-Za-z$_]*",ZV=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],JV=["true","false","null","undefined","NaN","Infinity"],EA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],SA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],NA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],e9=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],t9=[].concat(NA,EA,SA);function TA(e){const t=e.regex,n=(L,{after:j})=>{const S="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,j)=>{const S=L[0].length+L.index,H=L.input[S];if(H==="<"||H===","){j.ignoreMatch();return}H===">"&&(n(L,{after:S})||j.ignoreMatch());let V;const C=L.input.substring(S);if(V=C.match(/^\s*=/)){j.ignoreMatch();return}if((V=C.match(/^\s+extends\s+/))&&V.index===0){j.ignoreMatch();return}}},a={$pattern:e1,keyword:ZV,literal:JV,built_in:t9,"variable.language":e9},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},x={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},w=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,x,{match:/\$\d+/},u];h.contains=w.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(w)});const v=[].concat(y,h.contains),_=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),k={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:_},T={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...EA,...SA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[k],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...NA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},P={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},k]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",$={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[k]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:_,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,x,y,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},$,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:_}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[k,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[k]},F,D,T,P,{match:/\$[(.]/}]}}function AA(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Ss="[0-9](_*[0-9])*",Fc=`\\.(${Ss})`,zc="[0-9a-fA-F](_*[0-9a-fA-F])*",n9={className:"number",variants:[{begin:`(\\b(${Ss})((${Fc})|\\.)?|(${Fc}))[eE][+-]?(${Ss})[fFdD]?\\b`},{begin:`\\b(${Ss})((${Fc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Fc})[fFdD]?\\b`},{begin:`\\b(${Ss})[fFdD]\\b`},{begin:`\\b0[xX]((${zc})\\.?|(${zc})?\\.(${zc}))[pP][+-]?(${Ss})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${zc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function r9(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(o);const a={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},c=n9,d=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),u={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},h=u;return h.variants[1].contains=[u],u.variants[1].contains=[h],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,d,n,r,a,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[u,e.C_LINE_COMMENT_MODE,d],relevance:0},e.C_LINE_COMMENT_MODE,d,a,l,o,e.C_NUMBER_MODE]},d]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},a,l]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},c]}}const i9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),s9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],o9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],a9=[...s9,...o9],l9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),CA=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),IA=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),c9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),u9=CA.concat(IA).sort().reverse();function d9(e){const t=i9(e),n=u9,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",o=[],a=[],l=function(w){return{className:"string",begin:"~?"+w+".*?"+w}},c=function(w,v,_){return{className:w,begin:v,relevance:_}},d={$pattern:/[a-z-]+/,keyword:r,attribute:l9.join(" ")},u={begin:"\\(",end:"\\)",contains:a,keywords:d,relevance:0};a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l("'"),l('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,u,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const h=a.concat({begin:/\{/,end:/\}/,contains:o}),p={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(a)},g={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+c9.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:a}}]},b={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:d,returnEnd:!0,contains:a,relevance:0}},x={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:h}},m={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,p,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+a9.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+CA.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+IA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},y={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,x,y,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function f9(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function MA(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},a=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,a,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},d={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},u=e.inherit(c,{contains:[]}),h=e.inherit(d,{contains:[]});c.contains.push(h),d.contains.push(u);let p=[n,l];return[c,d,u,h].forEach(m=>{m.contains=m.contains.concat(p)}),p=p.concat(c,d),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:p},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:p}]}]},n,s,c,d,{className:"quote",begin:"^>\\s+",contains:p,end:"$"},i,r,l,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function h9(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,a={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:a,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function p9(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},a={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[a]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},d=[e.BACKSLASH_ESCAPE,s,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],h=(b,x,m="\\1")=>{const y=m==="\\1"?m:t.concat(m,x);return t.concat(t.concat("(?:",b,")"),x,/(?:\\.|[^\\\/])*?/,y,/(?:\\.|[^\\\/])*?/,m,r)},p=(b,x,m)=>t.concat(t.concat("(?:",b,")"),x,/(?:\\.|[^\\\/])*?/,m,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:d,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:h("s|tr|y",t.either(...u,{capture:!0}))},{begin:h("s|tr|y","\\(","\\)")},{begin:h("s|tr|y","\\[","\\]")},{begin:h("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:p("(?:m|qr)?",/\//,/\//)},{begin:p("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:p("m|qr",/\(/,/\)/)},{begin:p("m|qr",/\[/,/\]/)},{begin:p("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,a,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function m9(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=e.inherit(e.APOS_STRING_MODE,{illegal:null}),d=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),u={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(O,P)=>{P.data._beginMatch=O[1]||O[2]},"on:end":(O,P)=>{P.data._beginMatch!==O[1]&&P.ignoreMatch()}},h=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[ +]`,g={scope:"string",variants:[d,c,u,h]},b={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},x=["false","null","true"],m=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],y=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:m,literal:(O=>{const P=[];return O.forEach(M=>{P.push(M),M.toLowerCase()===M?P.push(M.toUpperCase()):P.push(M.toLowerCase())}),P})(x),built_in:y},_=O=>O.map(P=>P.replace(/\|\d+$/,"")),k={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",_(y).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},T=t.concat(r,"\\b(?!\\()"),N={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),T],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),T],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},I={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},A={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,k]},D={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",_(m).join("\\b|"),"|",_(y).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[A]};A.contains.push(D);const R=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,k],F={begin:t.concat(/#\[\s*\\?/,t.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:x,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:x,keyword:["new","array"]},contains:["self",...R]},...R,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:v,contains:[F,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,D,N,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},k,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",F,o,N,e.C_BLOCK_COMMENT_MODE,g,b]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},g,b]}}function g9(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function y9(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function RA(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},d={begin:/\{\{/,relevance:0},u={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,l,d,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,d,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,d,c]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",p=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,g=`\\b|${r.join("|")}`,b={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${p}))[eE][+-]?(${h})[jJ]?(?=${g})`},{begin:`(${p})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${h})[jJ](?=${g})`}]},x={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",l,b,u,e.HASH_COMMENT_MODE]}]};return c.contains=[u,b,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,b,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},u,x,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,m,u]}]}}function b9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function w9(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function x9(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],d={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"string",contains:[e.BACKSLASH_ESCAPE,d],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,d]})]}]},h="[1-9](_?[0-9])*|0",p="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${h})(\\.(${p}))?([eE][+-]?(${p})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},k=[u,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[u,{begin:n}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,d],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);d.contains=k,b.contains=k;const A=[{begin:/^\s*=>/,starts:{end:"$",contains:k}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:o,contains:k}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(A).concat(c).concat(k)}}function v9(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o="([ui](8|16|32|64|128|size)|f(32|64))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],d=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:d,keyword:a,literal:l,built_in:c},illegal:""},s]}}const k9=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),_9=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],E9=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],S9=[..._9,...E9],N9=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),T9=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),A9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),C9=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function I9(e){const t=k9(e),n=A9,r=T9,i="@[a-z-]+",s="and or not only",a={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+S9.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},a,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+C9.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,a,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:N9.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},a,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function M9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function O9(e){const t=e.regex,n=e.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],d=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],u=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],p=d,g=[...c,...l].filter(_=>!d.includes(_)),b={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},x={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},m={match:t.concat(/\b/,t.either(...p),/\s*\(/),relevance:0,keywords:{built_in:p}};function y(_){return t.concat(/\b/,t.either(..._.map(k=>k.replace(/\s+/,"\\s+"))),/\b/)}const w={scope:"keyword",match:y(h),relevance:0};function v(_,{exceptions:k,when:T}={}){const N=T;return k=k||[],_.map(I=>I.match(/\|\d+$/)||k.includes(I)?I:N(I)?`${I}|0`:I)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:v(g,{when:_=>_.length<3}),literal:s,type:a,built_in:u},contains:[{scope:"type",match:y(o)},w,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,x]}}function LA(e){return e?typeof e=="string"?e:e.source:null}function sa(e){return $e("(?=",e,")")}function $e(...e){return e.map(n=>LA(n)).join("")}function R9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ft(...e){return"("+(R9(e).capture?"":"?:")+e.map(r=>LA(r)).join("|")+")"}const S0=e=>$e(/\b/,e,/\w$/.test(e)?/\b/:/\B/),L9=["Protocol","Type"].map(S0),t1=["init","self"].map(S0),P9=["Any","Self"],Yh=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],n1=["false","nil","true"],D9=["assignment","associativity","higherThan","left","lowerThan","none","right"],j9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],r1=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],PA=Ft(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),DA=Ft(PA,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Xh=$e(PA,DA,"*"),jA=Ft(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),yd=Ft(jA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=$e(jA,yd,"*"),Uc=$e(/[A-Z]/,yd,"*"),$9=["attached","autoclosure",$e(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",$e(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],B9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function F9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...L9,...t1)],className:{2:"keyword"}},s={match:$e(/\./,Ft(...Yh)),relevance:0},o=Yh.filter(B=>typeof B=="string").concat(["_|0"]),a=Yh.filter(B=>typeof B!="string").concat(P9).map(S0),l={variants:[{className:"keyword",match:Ft(...a,...t1)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(j9),literal:n1},d=[i,s,l],u={match:$e(/\./,Ft(...r1)),relevance:0},h={className:"built_in",match:$e(/\b/,Ft(...r1),/(?=\()/)},p=[u,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Xh},{match:`\\.(\\.|${DA})+`}]},x=[g,b],m="([0-9]_*)+",y="([0-9a-fA-F]_*)+",w={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${y})(\\.(${y}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(B="")=>({className:"subst",variants:[{match:$e(/\\/,B,/[0\\tnr"']/)},{match:$e(/\\/,B,/u\{[0-9a-fA-F]{1,8}\}/)}]}),_=(B="")=>({className:"subst",match:$e(/\\/,B,/[\t ]*(?:[\r\n]|\r\n)/)}),k=(B="")=>({className:"subst",label:"interpol",begin:$e(/\\/,B,/\(/),end:/\)/}),T=(B="")=>({begin:$e(B,/"""/),end:$e(/"""/,B),contains:[v(B),_(B),k(B)]}),N=(B="")=>({begin:$e(B,/"/),end:$e(/"/,B),contains:[v(B),k(B)]}),I={className:"string",variants:[T(),T("#"),T("##"),T("###"),N(),N("#"),N("##"),N("###")]},A=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],D={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:A},R=B=>{const Y=$e(B,/\//),X=$e(/\//,B);return{begin:Y,end:X,contains:[...A,{scope:"comment",begin:`#(?!.*${X})`,end:/$/}]}},F={scope:"regexp",variants:[R("###"),R("##"),R("#"),D]},O={match:$e(/`/,Qn,/`/)},P={className:"variable",match:/\$\d+/},M={className:"variable",match:`\\$${yd}+`},$=[O,P,M],L={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:B9,contains:[...x,w,I]}]}},j={scope:"keyword",match:$e(/@/,Ft(...$9),sa(Ft(/\(/,/\s+/)))},S={scope:"meta",match:$e(/@/,Qn)},H=[L,j,S],V={match:sa(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:$e(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,yd,"+")},{className:"type",match:Uc,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:$e(/\s+&\s+/,sa(Uc)),relevance:0}]},C={begin://,keywords:c,contains:[...r,...d,...H,g,V]};V.contains.push(C);const U={match:$e(Qn,/\s*:/),keywords:"_|0",relevance:0},W={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",U,...r,F,...d,...p,...x,w,I,...$,...H,V]},Z={begin://,keywords:"repeat each",contains:[...r,V]},J={begin:Ft(sa($e(Qn,/\s*:/)),sa($e(Qn,/\s+/,Qn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Qn}]},q={begin:/\(/,end:/\)/,keywords:c,contains:[J,...r,...d,...x,w,I,...H,V,W],endsParent:!0,illegal:/["']/},te={match:[/(func|macro)/,/\s+/,Ft(O.match,Qn,Xh)],className:{1:"keyword",3:"title.function"},contains:[Z,q,t],illegal:[/\[/,/%/]},ce={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Z,q,t],illegal:/\[|%/},de={match:[/operator/,/\s+/,Xh],className:{1:"keyword",3:"title"}},le={begin:[/precedencegroup/,/\s+/,Uc],className:{1:"keyword",3:"title"},contains:[V],keywords:[...D9,...n1],end:/}/},oe={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},G={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},ee={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Qn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[Z,...d,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:Uc},...d],relevance:0}]};for(const B of I.variants){const Y=B.contains.find(ge=>ge.label==="interpol");Y.keywords=c;const X=[...d,...p,...x,w,I,...$];Y.contains=[...X,{begin:/\(/,end:/\)/,contains:["self",...X]}]}return{name:"Swift",keywords:c,contains:[...r,te,ce,oe,G,ee,de,le,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},F,...d,...p,...x,w,I,...$,...H,V,W]}}const bd="[A-Za-z$_][0-9A-Za-z$_]*",$A=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],BA=["true","false","null","undefined","NaN","Infinity"],FA=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],zA=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],UA=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],VA=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],HA=[].concat(UA,FA,zA);function z9(e){const t=e.regex,n=(L,{after:j})=>{const S="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(L,j)=>{const S=L[0].length+L.index,H=L.input[S];if(H==="<"||H===","){j.ignoreMatch();return}H===">"&&(n(L,{after:S})||j.ignoreMatch());let V;const C=L.input.substring(S);if(V=C.match(/^\s*=/)){j.ignoreMatch();return}if((V=C.match(/^\s+extends\s+/))&&V.index===0){j.ignoreMatch();return}}},a={$pattern:bd,keyword:$A,literal:BA,built_in:HA,"variable.language":VA},l="[0-9](_?[0-9])*",c=`\\.(${l})`,d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",u={className:"number",variants:[{begin:`(\\b(${d})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${d})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},p={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},b={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},x={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},y={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},w=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,x,{match:/\$\d+/},u];h.contains=w.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(w)});const v=[].concat(y,h.contains),_=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),k={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:_},T={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},N={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...FA,...zA]}},I={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},A={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[k],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function R(L){return t.concat("(?!",L.join("|"),")")}const F={match:t.concat(/\b/,R([...UA,"super","import"].map(L=>`${L}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},O={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},P={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},k]},M="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",$={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(M)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[k]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:_,CLASS_REFERENCE:N},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),I,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,g,b,x,y,{match:/\$\d+/},u,N,{scope:"attr",match:r+t.lookahead(":"),relevance:0},$,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,e.REGEXP_MODE,{className:"function",begin:M,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:_}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},A,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[k,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[k]},F,D,T,P,{match:/\$[(.]/}]}}function KA(e){const t=e.regex,n=z9(e),r=bd,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},o={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:bd,keyword:$A.concat(l),literal:BA,built_in:HA.concat(i),"variable.language":VA},d={className:"meta",begin:"@"+r},u=(b,x,m)=>{const y=b.contains.findIndex(w=>w.label===x);if(y===-1)throw new Error("can not find mode to replace");b.contains.splice(y,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(d);const h=n.contains.find(b=>b.scope==="attr"),p=Object.assign({},h,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,h,p]),n.contains=n.contains.concat([d,s,o,p]),u(n,"shebang",e.SHEBANG()),u(n,"use_strict",a);const g=n.contains.find(b=>b.label==="func.def");return g.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function U9(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,a=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:t.concat(/# */,t.either(s,i),/ *#/)},{begin:t.concat(/# */,a,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(s,i),/ +/,t.either(o,a),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},d={className:"label",begin:/^\w+:/},u=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),h=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,d,u,h,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[h]}]}}function V9(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},a={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,o,i,e.QUOTE_STRING_MODE,l,c,a]}}function H9(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(s,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,a,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,o,l,a]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function qA(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},o={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},a=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},p={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},g={begin:/\{/,end:/\}/,contains:[p],illegal:"\\n",relevance:0},b={begin:"\\[",end:"\\]",contains:[p],illegal:"\\n",relevance:0},x=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},h,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},g,b,s,o],m=[...x];return m.pop(),m.push(a),p.contains=m,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:x}}const K9={arduino:PV,bash:vA,c:DV,cpp:jV,csharp:$V,css:WV,diff:GV,go:YV,graphql:XV,ini:kA,java:QV,javascript:TA,json:AA,kotlin:r9,less:d9,lua:f9,makefile:MA,markdown:OA,objectivec:h9,perl:p9,php:m9,"php-template":g9,plaintext:y9,python:RA,"python-repl":b9,r:w9,ruby:x9,rust:v9,scss:I9,shell:M9,sql:O9,swift:F9,typescript:KA,vbnet:U9,wasm:V9,xml:H9,yaml:qA};function WA(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&WA(n)}),e}let i1=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function GA(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Xr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const q9="",s1=e=>!!e.scope,W9=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class G9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=GA(t)}openNode(t){if(!s1(t))return;const n=W9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){s1(t)&&(this.buffer+=q9)}value(){return this.buffer}span(t){this.buffer+=``}}const o1=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class N0{constructor(){this.rootNode=o1(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=o1({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{N0._collapse(n)}))}}class Y9 extends N0{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new G9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function yl(e){return e?typeof e=="string"?e:e.source:null}function YA(e){return ds("(?=",e,")")}function X9(e){return ds("(?:",e,")*")}function Q9(e){return ds("(?:",e,")?")}function ds(...e){return e.map(n=>yl(n)).join("")}function Z9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function T0(...e){return"("+(Z9(e).capture?"":"?:")+e.map(r=>yl(r)).join("|")+")"}function XA(e){return new RegExp(e.toString()+"|").exec("").length-1}function J9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const e8=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function A0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=yl(r),o="";for(;s.length>0;){const a=e8.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const t8=/\b\B/,QA="[a-zA-Z]\\w*",C0="[a-zA-Z_]\\w*",ZA="\\b\\d+(\\.\\d+)?",JA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",eC="\\b(0b[01]+)",n8="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",r8=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=ds(t,/.*\b/,e.binary,/\b.*/)),Xr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},bl={begin:"\\\\[\\s\\S]",relevance:0},i8={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[bl]},s8={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[bl]},o8={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},uf=function(e,t,n={}){const r=Xr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=T0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ds(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},a8=uf("//","$"),l8=uf("/\\*","\\*/"),c8=uf("#","$"),u8={scope:"number",begin:ZA,relevance:0},d8={scope:"number",begin:JA,relevance:0},f8={scope:"number",begin:eC,relevance:0},h8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[bl,{begin:/\[/,end:/\]/,relevance:0,contains:[bl]}]},p8={scope:"title",begin:QA,relevance:0},m8={scope:"title",begin:C0,relevance:0},g8={begin:"\\.\\s*"+C0,relevance:0},y8=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Vc=Object.freeze({__proto__:null,APOS_STRING_MODE:i8,BACKSLASH_ESCAPE:bl,BINARY_NUMBER_MODE:f8,BINARY_NUMBER_RE:eC,COMMENT:uf,C_BLOCK_COMMENT_MODE:l8,C_LINE_COMMENT_MODE:a8,C_NUMBER_MODE:d8,C_NUMBER_RE:JA,END_SAME_AS_BEGIN:y8,HASH_COMMENT_MODE:c8,IDENT_RE:QA,MATCH_NOTHING_RE:t8,METHOD_GUARD:g8,NUMBER_MODE:u8,NUMBER_RE:ZA,PHRASAL_WORDS_MODE:o8,QUOTE_STRING_MODE:s8,REGEXP_MODE:h8,RE_STARTERS_RE:n8,SHEBANG:r8,TITLE_MODE:p8,UNDERSCORE_IDENT_RE:C0,UNDERSCORE_TITLE_MODE:m8});function b8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function w8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function x8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=b8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function v8(e,t){Array.isArray(e.illegal)&&(e.illegal=T0(...e.illegal))}function k8(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function _8(e,t){e.relevance===void 0&&(e.relevance=1)}const E8=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=ds(n.beforeMatch,YA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},S8=["of","and","for","in","not","or","if","then","parent","list","value"],N8="keyword";function tC(e,t,n=N8){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(s){Object.assign(r,tC(e[s],t,s))}),r;function i(s,o){t&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,T8(l[0],l[1])]})}}function T8(e,t){return t?Number(t):A8(e)?0:1}function A8(e){return S8.includes(e.toLowerCase())}const a1={},zi=e=>{console.error(e)},l1=(e,...t)=>{console.log(`WARN: ${e}`,...t)},ws=(e,t)=>{a1[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),a1[`${e}/${t}`]=!0)},wd=new Error;function nC(e,t,{key:n}){let r=0;const i=e[n],s={},o={};for(let a=1;a<=t.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=XA(t[a-1]);e[n]=o,e[n]._emit=s,e[n]._multi=!0}function C8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw zi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),wd;if(typeof e.beginScope!="object"||e.beginScope===null)throw zi("beginScope must be object"),wd;nC(e,e.begin,{key:"beginScope"}),e.begin=A0(e.begin,{joinWith:""})}}function I8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw zi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),wd;if(typeof e.endScope!="object"||e.endScope===null)throw zi("endScope must be object"),wd;nC(e,e.end,{key:"endScope"}),e.end=A0(e.end,{joinWith:""})}}function M8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function O8(e){M8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),C8(e),I8(e)}function R8(e){function t(o,a){return new RegExp(yl(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=XA(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=t(A0(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((u,h)=>h>0&&u!==void 0),d=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,d)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new n;return this.rules.slice(a).forEach(([c,d])=>l.addRule(c,d)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,c=d.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[w8,k8,O8,E8].forEach(d=>d(o,a)),e.compilerExtensions.forEach(d=>d(o,a)),o.__beforeBegin=null,[x8,v8,_8].forEach(d=>d(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=tC(o.keywords,e.case_insensitive)),l.keywordPatternRe=t(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=t(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=t(l.end)),l.terminatorEnd=yl(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(d){return L8(d==="self"?o:d)})),o.contains.forEach(function(d){s(d,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Xr(e.classNameAliases||{}),s(e)}function rC(e){return e?e.endsWithParent||rC(e.starts):!1}function L8(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Xr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:rC(e)?Xr(e,{starts:e.starts?Xr(e.starts):null}):Object.isFrozen(e)?Xr(e):e}var P8="11.11.1";class D8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Qh=GA,c1=Xr,u1=Symbol("nomatch"),j8=7,iC=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Y9};function l(M){return a.noHighlightRe.test(M)}function c(M){let $=M.className+" ";$+=M.parentNode?M.parentNode.className:"";const L=a.languageDetectRe.exec($);if(L){const j=N(L[1]);return j||(l1(s.replace("{}",L[1])),l1("Falling back to no-highlight mode for this block.",M)),j?L[1]:"no-highlight"}return $.split(/\s+/).find(j=>l(j)||N(j))}function d(M,$,L){let j="",S="";typeof $=="object"?(j=M,L=$.ignoreIllegals,S=$.language):(ws("10.7.0","highlight(lang, code, ...args) has been deprecated."),ws("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),S=M,j=$),L===void 0&&(L=!0);const H={code:j,language:S};O("before:highlight",H);const V=H.result?H.result:u(H.language,H.code,L);return V.code=H.code,O("after:highlight",V),V}function u(M,$,L,j){const S=Object.create(null);function H(z,K){return z.keywords[K]}function V(){if(!X.keywords){ye.addText(fe);return}let z=0;X.keywordPatternRe.lastIndex=0;let K=X.keywordPatternRe.exec(fe),ne="";for(;K;){ne+=fe.substring(z,K.index);const ae=ee.case_insensitive?K[0].toLowerCase():K[0],xe=H(X,ae);if(xe){const[Le,Bt]=xe;if(ye.addText(ne),ne="",S[ae]=(S[ae]||0)+1,S[ae]<=j8&&(_e+=Bt),Le.startsWith("_"))ne+=K[0];else{const kt=ee.classNameAliases[Le]||Le;W(K[0],kt)}}else ne+=K[0];z=X.keywordPatternRe.lastIndex,K=X.keywordPatternRe.exec(fe)}ne+=fe.substring(z),ye.addText(ne)}function C(){if(fe==="")return;let z=null;if(typeof X.subLanguage=="string"){if(!t[X.subLanguage]){ye.addText(fe);return}z=u(X.subLanguage,fe,!0,ge[X.subLanguage]),ge[X.subLanguage]=z._top}else z=p(fe,X.subLanguage.length?X.subLanguage:null);X.relevance>0&&(_e+=z.relevance),ye.__addSublanguage(z._emitter,z.language)}function U(){X.subLanguage!=null?C():V(),fe=""}function W(z,K){z!==""&&(ye.startScope(K),ye.addText(z),ye.endScope())}function Z(z,K){let ne=1;const ae=K.length-1;for(;ne<=ae;){if(!z._emit[ne]){ne++;continue}const xe=ee.classNameAliases[z[ne]]||z[ne],Le=K[ne];xe?W(Le,xe):(fe=Le,V(),fe=""),ne++}}function J(z,K){return z.scope&&typeof z.scope=="string"&&ye.openNode(ee.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(W(fe,ee.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),fe=""):z.beginScope._multi&&(Z(z.beginScope,K),fe="")),X=Object.create(z,{parent:{value:X}}),X}function q(z,K,ne){let ae=J9(z.endRe,ne);if(ae){if(z["on:end"]){const xe=new i1(z);z["on:end"](K,xe),xe.isMatchIgnored&&(ae=!1)}if(ae){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return q(z.parent,K,ne)}function te(z){return X.matcher.regexIndex===0?(fe+=z[0],1):(De=!0,0)}function ce(z){const K=z[0],ne=z.rule,ae=new i1(ne),xe=[ne.__beforeBegin,ne["on:begin"]];for(const Le of xe)if(Le&&(Le(z,ae),ae.isMatchIgnored))return te(K);return ne.skip?fe+=K:(ne.excludeBegin&&(fe+=K),U(),!ne.returnBegin&&!ne.excludeBegin&&(fe=K)),J(ne,z),ne.returnBegin?0:K.length}function de(z){const K=z[0],ne=$.substring(z.index),ae=q(X,z,ne);if(!ae)return u1;const xe=X;X.endScope&&X.endScope._wrap?(U(),W(K,X.endScope._wrap)):X.endScope&&X.endScope._multi?(U(),Z(X.endScope,z)):xe.skip?fe+=K:(xe.returnEnd||xe.excludeEnd||(fe+=K),U(),xe.excludeEnd&&(fe=K));do X.scope&&ye.closeNode(),!X.skip&&!X.subLanguage&&(_e+=X.relevance),X=X.parent;while(X!==ae.parent);return ae.starts&&J(ae.starts,z),xe.returnEnd?0:K.length}function le(){const z=[];for(let K=X;K!==ee;K=K.parent)K.scope&&z.unshift(K.scope);z.forEach(K=>ye.openNode(K))}let oe={};function G(z,K){const ne=K&&K[0];if(fe+=z,ne==null)return U(),0;if(oe.type==="begin"&&K.type==="end"&&oe.index===K.index&&ne===""){if(fe+=$.slice(K.index,K.index+1),!i){const ae=new Error(`0 width match regex (${M})`);throw ae.languageName=M,ae.badRule=oe.rule,ae}return 1}if(oe=K,K.type==="begin")return ce(K);if(K.type==="illegal"&&!L){const ae=new Error('Illegal lexeme "'+ne+'" for mode "'+(X.scope||"")+'"');throw ae.mode=X,ae}else if(K.type==="end"){const ae=de(K);if(ae!==u1)return ae}if(K.type==="illegal"&&ne==="")return fe+=` +`,1;if(it>1e5&&it>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return fe+=ne,ne.length}const ee=N(M);if(!ee)throw zi(s.replace("{}",M)),new Error('Unknown language: "'+M+'"');const B=R8(ee);let Y="",X=j||B;const ge={},ye=new a.__emitter(a);le();let fe="",_e=0,Ne=0,it=0,De=!1;try{if(ee.__emitTokens)ee.__emitTokens($,ye);else{for(X.matcher.considerAll();;){it++,De?De=!1:X.matcher.considerAll(),X.matcher.lastIndex=Ne;const z=X.matcher.exec($);if(!z)break;const K=$.substring(Ne,z.index),ne=G(K,z);Ne=z.index+ne}G($.substring(Ne))}return ye.finalize(),Y=ye.toHTML(),{language:M,value:Y,relevance:_e,illegal:!1,_emitter:ye,_top:X}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:M,value:Qh($),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:Ne,context:$.slice(Ne-100,Ne+100),mode:z.mode,resultSoFar:Y},_emitter:ye};if(i)return{language:M,value:Qh($),illegal:!1,relevance:0,errorRaised:z,_emitter:ye,_top:X};throw z}}function h(M){const $={value:Qh(M),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return $._emitter.addText(M),$}function p(M,$){$=$||a.languages||Object.keys(t);const L=h(M),j=$.filter(N).filter(A).map(U=>u(U,M,!1));j.unshift(L);const S=j.sort((U,W)=>{if(U.relevance!==W.relevance)return W.relevance-U.relevance;if(U.language&&W.language){if(N(U.language).supersetOf===W.language)return 1;if(N(W.language).supersetOf===U.language)return-1}return 0}),[H,V]=S,C=H;return C.secondBest=V,C}function g(M,$,L){const j=$&&n[$]||L;M.classList.add("hljs"),M.classList.add(`language-${j}`)}function b(M){let $=null;const L=c(M);if(l(L))return;if(O("before:highlightElement",{el:M,language:L}),M.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",M);return}if(M.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(M)),a.throwUnescapedHTML))throw new D8("One of your code blocks includes unescaped HTML.",M.innerHTML);$=M;const j=$.textContent,S=L?d(j,{language:L,ignoreIllegals:!0}):p(j);M.innerHTML=S.value,M.dataset.highlighted="yes",g(M,L,S.language),M.result={language:S.language,re:S.relevance,relevance:S.relevance},S.secondBest&&(M.secondBest={language:S.secondBest.language,relevance:S.secondBest.relevance}),O("after:highlightElement",{el:M,result:S,text:j})}function x(M){a=c1(a,M)}const m=()=>{v(),ws("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function y(){v(),ws("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let w=!1;function v(){function M(){v()}if(document.readyState==="loading"){w||window.addEventListener("DOMContentLoaded",M,!1),w=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function _(M,$){let L=null;try{L=$(e)}catch(j){if(zi("Language definition for '{}' could not be registered.".replace("{}",M)),i)zi(j);else throw j;L=o}L.name||(L.name=M),t[M]=L,L.rawDefinition=$.bind(null,e),L.aliases&&I(L.aliases,{languageName:M})}function k(M){delete t[M];for(const $ of Object.keys(n))n[$]===M&&delete n[$]}function T(){return Object.keys(t)}function N(M){return M=(M||"").toLowerCase(),t[M]||t[n[M]]}function I(M,{languageName:$}){typeof M=="string"&&(M=[M]),M.forEach(L=>{n[L.toLowerCase()]=$})}function A(M){const $=N(M);return $&&!$.disableAutodetect}function D(M){M["before:highlightBlock"]&&!M["before:highlightElement"]&&(M["before:highlightElement"]=$=>{M["before:highlightBlock"](Object.assign({block:$.el},$))}),M["after:highlightBlock"]&&!M["after:highlightElement"]&&(M["after:highlightElement"]=$=>{M["after:highlightBlock"](Object.assign({block:$.el},$))})}function R(M){D(M),r.push(M)}function F(M){const $=r.indexOf(M);$!==-1&&r.splice($,1)}function O(M,$){const L=M;r.forEach(function(j){j[L]&&j[L]($)})}function P(M){return ws("10.7.0","highlightBlock will be removed entirely in v12.0"),ws("10.7.0","Please use highlightElement now."),b(M)}Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:P,configure:x,initHighlighting:m,initHighlightingOnLoad:y,registerLanguage:_,unregisterLanguage:k,listLanguages:T,getLanguage:N,registerAliases:I,autoDetection:A,inherit:c1,addPlugin:R,removePlugin:F}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=P8,e.regex={concat:ds,lookahead:YA,either:T0,optional:Q9,anyNumberOfTimes:X9};for(const M in Vc)typeof Vc[M]=="object"&&WA(Vc[M]);return Object.assign(e,Vc),e},wo=iC({});wo.newInstance=()=>iC({});var $8=wo;wo.HighlightJS=wo;wo.default=wo;const tn=Ml($8),d1={},B8="hljs-";function F8(e){const t=tn.newInstance();return e&&s(e),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:o,registered:a};function n(l,c,d){const u=d||d1,h=typeof u.prefix=="string"?u.prefix:B8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:z8,classPrefix:h});const p=t.highlight(c,{ignoreIllegals:!0,language:l});if(p.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:p.errorRaised});const g=p._emitter.root,b=g.data;return b.language=p.language,b.relevance=p.relevance,g}function r(l,c){const u=(c||d1).subset||i();let h=-1,p=0,g;for(;++hp&&(p=x.data.relevance,g=x)}return g||{type:"root",children:[],data:{language:void 0,relevance:p}}}function i(){return t.listLanguages()}function s(l,c){if(typeof l=="string")t.registerLanguage(l,c);else{let d;for(d in l)Object.hasOwn(l,d)&&t.registerLanguage(d,l[d])}}function o(l,c){if(typeof l=="string")t.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let d;for(d in l)if(Object.hasOwn(l,d)){const u=l[d];t.registerAliases(typeof u=="string"?u:[...u],{languageName:d})}}}function a(l){return!!t.getLanguage(l)}}class z8{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,a){return a?o+"_".repeat(a):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const U8={};function V8(e){const t=e||U8,n=t.aliases,r=t.detect||!1,i=t.languages||K9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=F8(i);if(n&&c.registerAlias(n),o){const d=o.indexOf("-");l=d===-1?o:o.slice(0,d)}return function(d,u){cf(d,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=H8(h);if(b===!1||!b&&!r||b&&s&&s.includes(b))return;Array.isArray(h.properties.className)||(h.properties.className=[]),h.properties.className.includes(l)||h.properties.className.unshift(l);const x=NV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,x,{prefix:o}):c.highlightAuto(x,{prefix:o,subset:a})}catch(y){const w=y;if(b&&/Unknown language/.test(w.message)){u.message("Cannot highlight as `"+b+"`, it’s not registered",{ancestors:[g,h],cause:w,place:h.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw w}!b&&m.data&&m.data.language&&h.properties.className.push("language-"+m.data.language),m.children.length>0&&(h.children=m.children)})}}function H8(e){const t=e.properties.className;let n=-1;if(!Array.isArray(t))return;let r;for(;++nf.jsx("a",{...r,target:"_blank",rel:"noopener noreferrer"})},children:e})})}const I0=E.memo(K8),sC="send_a2ui_json_to_client";function q8({className:e}){return f.jsx("svg",{className:e,viewBox:"0 0 24 24",width:"15",height:"15",fill:"currentColor","aria-hidden":!0,children:f.jsx("path",{d:"M12 2.2l1.7 5.1a3 3 0 0 0 1.9 1.9L20.8 11l-5.1 1.7a3 3 0 0 0-1.9 1.9L12 19.8l-1.7-5.1a3 3 0 0 0-1.9-1.9L3.2 11l5.1-1.7a3 3 0 0 0 1.9-1.9L12 2.2z"})})}function oC({text:e,done:t}){const[n,r]=E.useState(!t),i=E.useRef(!1);E.useEffect(()=>{i.current||r(!t)},[t]);const s=()=>{i.current=!0,r(c=>!c)},o=e.replace(/^\s+/,""),{ref:a,onScroll:l}=dT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx(q8,{className:`spark ${t?"":"pulse"}`}),f.jsx("span",{className:`think-label ${t?"think-label--done":"shimmer"}`,children:t?"已完成思考":"思考中"}),f.jsx(Wn,{className:`chev ${n?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${n&&o?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsx("div",{className:"think-body scroll",ref:a,onScroll:l,children:o})})})]})}function W8(){return f.jsx(oC,{text:"",done:!1})}function G8({name:e,args:t,response:n,done:r}){const[i,s]=E.useState(!1),o=e===sC?"渲染 UI":e,a=n==null?null:typeof n=="string"?n:JSON.stringify(n,null,2),l=a&&a.length>2e3?a.slice(0,2e3)+` +…(已截断)`:a;return f.jsxs(Dt.div,{className:"block-tool",initial:{opacity:0,y:4},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("button",{className:"tool-head",onClick:()=>s(c=>!c),type:"button",children:[f.jsx("span",{className:`tool-dot ${r?"tool-dot--done":"tool-dot--running"}`,"aria-hidden":!0}),f.jsx("span",{className:`tool-name ${r?"":"shimmer"}`,children:o}),f.jsx(Wn,{className:`chev ${i?"open":""}`})]}),f.jsx("div",{className:`think-collapse ${i?"open":""}`,children:f.jsx("div",{className:"think-collapse-inner",children:f.jsxs("div",{className:"tool-detail",children:[t!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"参数"}),f.jsx("pre",{className:"tool-args",children:JSON.stringify(t,null,2)})]}),l!=null&&f.jsxs("div",{className:"tool-section",children:[f.jsx("div",{className:"tool-section-label",children:"返回"}),f.jsx("pre",{className:"tool-args tool-result",children:l})]})]})})})]})}function Y8({block:e,onAuth:t}){const[n,r]=E.useState(e.done?"done":"idle"),[i,s]=E.useState(""),o=e.label||"MCP 工具集",a=(()=>{try{return e.authUri?new URL(e.authUri).host:""}catch{return""}})(),l=async()=>{if(t){s(""),r("authorizing");try{await t(e),r("done")}catch(d){s(d instanceof Error?d.message:String(d)),r("idle")}}};return e.done||n==="done"?f.jsxs(Dt.div,{className:"auth-card-collapsed",initial:{opacity:0},animate:{opacity:1},transition:{duration:.2},children:[f.jsx(Vx,{className:"auth-card-icon auth-card-icon--done"}),f.jsxs("span",{children:["已授权 · ",o]})]}):f.jsxs(Dt.div,{className:"auth-card",initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[f.jsxs("div",{className:"auth-card-head",children:[f.jsx(Vx,{className:"auth-card-icon"}),f.jsxs("span",{className:"auth-card-title",children:[o," 需要授权"]})]}),f.jsxs("p",{className:"auth-card-desc",children:["工具集 ",f.jsx("code",{className:"auth-card-code",children:o})," 使用 OAuth 保护, 需登录授权后方可调用。",a&&f.jsxs(f.Fragment,{children:[" ","将跳转至 ",f.jsx("code",{className:"auth-card-code",children:a})," 完成登录,"]}),"授权完成后对话自动继续。"]}),f.jsx("button",{className:"auth-card-btn",onClick:l,disabled:n==="authorizing"||!e.authUri,children:n==="authorizing"?f.jsxs(f.Fragment,{children:[f.jsx(ct,{className:"cw-i spin"})," 等待授权…"]}):f.jsx(f.Fragment,{children:"去授权"})}),!e.authUri&&f.jsx("div",{className:"auth-card-err",children:"未在事件中找到授权地址。"}),i&&f.jsx("div",{className:"auth-card-err",children:i})]})}function X8({blocks:e,onAction:t,onAuth:n}){return f.jsx(f.Fragment,{children:e.map((r,i)=>{switch(r.kind){case"thinking":return f.jsx(oC,{text:r.text,done:r.done},i);case"text":{const s=r.text.replace(/^\s+/,"");return s?f.jsx("div",{className:"bubble",children:f.jsx(I0,{text:s})},i):null}case"tool":return r.name===sC&&r.done?null:f.jsx(G8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(Y8,{block:r,onAuth:n},i);case"a2ui":return uT(r.messages).filter(s=>s.components[s.rootId]).map(s=>f.jsx(Dt.div,{initial:{opacity:0,y:8,scale:.985},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:380,damping:30},children:f.jsx(TF,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function Q8({value:e,onChange:t,onSubmit:n,disabled:r,busy:i,attachments:s,onAddFiles:o,onRemoveAttachment:a}){const l=E.useRef(null),c=E.useRef(null),d=E.useRef(null),[u,h]=E.useState(!1);E.useLayoutEffect(()=>{const x=l.current;x&&(x.style.height="auto",x.style.height=`${Math.min(x.scrollHeight,200)}px`)},[e]);const p=!r&&!i&&(e.trim().length>0||s.length>0);function g(x){var m;h(!1),(m=x.current)==null||m.click()}function b(x){x.target.files&&x.target.files.length&&o(x.target.files),x.target.value=""}return f.jsxs("div",{className:"composer",children:[s.length>0&&f.jsx("div",{className:"attachment-row",children:s.map((x,m)=>f.jsx(Z8,{mimeType:x.mimeType,data:x.data,name:x.name,onRemove:()=>a(m)},m))}),f.jsxs("div",{className:"composer-box",children:[f.jsxs("div",{className:"composer-menu-wrap",children:[f.jsx("button",{type:"button",className:"comp-icon",title:"添加","aria-label":"添加",disabled:r,onClick:()=>h(x=>!x),children:f.jsx(Or,{className:"icon"})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-scrim",onClick:()=>h(!1)}),f.jsxs("div",{className:"composer-menu",role:"menu",children:[f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(c),children:[f.jsx(X$,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(d),children:[f.jsx(Zy,{className:"icon"}),"上传文件 (PDF)"]})]})]})]}),f.jsx("textarea",{ref:l,className:"comp-input scroll",rows:1,value:e,disabled:r,placeholder:r?"连接中…":"给智能体发消息…",onChange:x=>t(x.target.value),onKeyDown:x=>{x.key==="Enter"&&!x.shiftKey&&(x.preventDefault(),p&&n())}}),f.jsx(Dt.button,{type:"button",className:"comp-send",disabled:!p,onClick:n,"aria-label":"发送",whileTap:p?{scale:.9}:void 0,transition:{type:"spring",stiffness:600,damping:22},children:i?f.jsx(ct,{className:"icon spin"}):f.jsx(I$,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:d,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function Z8({mimeType:e,data:t,name:n,onRemove:r}){const i=e.startsWith("image/");return f.jsxs("div",{className:i?"attachment-thumb-wrap":"attachment-file",children:[i?f.jsx("img",{className:"attachment-thumb",src:`data:${e};base64,${t}`,alt:n??"image"}):f.jsxs(f.Fragment,{children:[f.jsx(Zy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:n??"file.pdf"})]}),f.jsx("button",{type:"button",className:"attachment-remove","aria-label":"移除",onClick:r,children:f.jsx(Vl,{className:"icon"})})]})}function aC({title:e,sub:t,cards:n,footer:r}){return f.jsxs("div",{className:"stk",children:[f.jsxs("div",{className:"stk-head",children:[f.jsx("h1",{className:"stk-title",children:e}),t&&f.jsx("p",{className:"stk-sub",children:t})]}),f.jsx("div",{className:"stk-list",children:n.map((i,s)=>f.jsxs(Dt.button,{type:"button",className:`stk-card ${i.disabled?"stk-card-disabled":""}`,onClick:i.disabled?void 0:i.onClick,disabled:i.disabled,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.18,ease:"easeOut",delay:s*.04},children:[f.jsx("span",{className:"stk-card-icon",children:f.jsx(i.icon,{})}),f.jsxs("span",{className:"stk-card-text",children:[f.jsx("span",{className:"stk-card-title",children:i.title}),f.jsx("span",{className:"stk-card-desc",children:i.desc})]}),f.jsx(Wn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const M0=Symbol.for("yaml.alias"),Zm=Symbol.for("yaml.document"),si=Symbol.for("yaml.map"),lC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),Fo=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),zo=e=>!!e&&typeof e=="object"&&e[Cn]===M0,Yl=e=>!!e&&typeof e=="object"&&e[Cn]===Zm,Xl=e=>!!e&&typeof e=="object"&&e[Cn]===si,dt=e=>!!e&&typeof e=="object"&&e[Cn]===lC,Ue=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Ql=e=>!!e&&typeof e=="object"&&e[Cn]===Fo;function lt(e){if(e&&typeof e=="object")switch(e[Cn]){case si:case Fo:return!0}return!1}function ut(e){if(e&&typeof e=="object")switch(e[Cn]){case M0:case si:case ar:case Fo:return!0}return!1}const cC=e=>(Ue(e)||lt(e))&&!!e.anchor,Ai=Symbol("break visit"),J8=Symbol("skip children"),$a=Symbol("remove node");function Uo(e,t){const n=eH(t);Yl(e)?Hs(null,e.contents,n,Object.freeze([e]))===$a&&(e.contents=null):Hs(null,e,n,Object.freeze([]))}Uo.BREAK=Ai;Uo.SKIP=J8;Uo.REMOVE=$a;function Hs(e,t,n,r){const i=tH(e,t,n,r);if(ut(i)||dt(i))return nH(e,r,i),Hs(e,i,n,r);if(typeof i!="symbol"){if(lt(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>rH[t]);class Ut{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},Ut.defaultYaml,t),this.tags=Object.assign({},Ut.defaultTags,n)}clone(){const t=new Ut(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new Ut(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},Ut.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:Ut.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},Ut.defaultTags),this.atNextDocument=!1);const r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,o]=r;return this.tags[s]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const o=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const o=t.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}const[,r,i]=t.match(/^(.*!)([^!]*)$/s);i||n(`The ${t} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(o){return n(String(o)),null}return r==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,r]of Object.entries(this.tags))if(t.startsWith(r))return n+iH(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(t&&r.length>0&&ut(t.contents)){const s={};Uo(t.contents,(o,a)=>{ut(a)&&a.tag&&(s[a.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,o]of r)s==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${s} ${o}`);return n.join(` +`)}}Ut.defaultYaml={explicit:!1,version:"1.2"};Ut.defaultTags={"!!":"tag:yaml.org,2002:"};function uC(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function dC(e){const t=new Set;return Uo(e,{Value(n,r){r.anchor&&t.add(r.anchor)}}),t}function fC(e,t){for(let n=1;;++n){const r=`${e}${n}`;if(!t.has(r))return r}}function sH(e,t){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=dC(e));const o=fC(t,i);return i.add(o),o},setAnchors:()=>{for(const s of n){const o=r.get(s);if(typeof o=="object"&&o.anchor&&(Ue(o.node)||lt(o.node)))o.node.anchor=o.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:r}}function Ks(e,t,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iNn(r,String(i),n));if(e&&typeof e.toJSON=="function"){if(!n||!cC(e))return e.toJSON(t,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e=="bigint"&&!(n!=null&&n.keep)?Number(e):e}class O0{constructor(t){Object.defineProperty(this,Cn,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!Yl(t))throw new TypeError("A document argument is required");const o={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Nn(this,"",o);if(typeof i=="function")for(const{count:l,res:c}of o.anchors.values())i(c,l);return typeof s=="function"?Ks(s,{"":a},"",a):a}}class R0 extends O0{constructor(t){super(M0),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if((n==null?void 0:n.maxAliasCount)===0)throw new ReferenceError("Alias resolution is disabled");let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],Uo(t,{Node:(s,o)=>{(zo(o)||cC(o))&&r.push(o)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(t,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,o=this.resolve(i,n);if(!o){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Nn(o,null,n),a=r.get(o)),(a==null?void 0:a.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=ku(i,o,r)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,r){const i=`*${this.source}`;if(t){if(uC(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${i} `}return i}}function ku(e,t,n){if(zo(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(lt(t)){let r=0;for(const i of t.items){const s=ku(e,i,n);s>r&&(r=s)}return r}else if(dt(t)){const r=ku(e,t.key,n),i=ku(e,t.value,n);return Math.max(r,i)}return 1}const hC=e=>!e||typeof e!="function"&&typeof e!="object";class Ee extends O0{constructor(t){super(ar),this.value=t}toJSON(t,n){return n!=null&&n.keep?this.value:Nn(this.value,t,n)}toString(){return String(this.value)}}Ee.BLOCK_FOLDED="BLOCK_FOLDED";Ee.BLOCK_LITERAL="BLOCK_LITERAL";Ee.PLAIN="PLAIN";Ee.QUOTE_DOUBLE="QUOTE_DOUBLE";Ee.QUOTE_SINGLE="QUOTE_SINGLE";const oH="tag:yaml.org,2002:";function aH(e,t,n){if(t){const r=n.filter(s=>s.tag===t),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,e))&&!r.format})}function wl(e,t,n){var u,h,p;if(Yl(e)&&(e=e.contents),ut(e))return e;if(dt(e)){const g=(h=(u=n.schema[si]).createNode)==null?void 0:h.call(u,n.schema,null,n);return g.items.push(e),g}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:o,sourceObjects:a}=n;let l;if(r&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=i(e)),new R0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=oH+t.slice(2));let c=aH(e,t,o.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const g=new Ee(e);return l&&(l.node=g),g}c=e instanceof Map?o[si]:Symbol.iterator in Object(e)?o[Fo]:o[si]}s&&(s(c),delete n.onTagObj);const d=c!=null&&c.createNode?c.createNode(n.schema,e,n):typeof((p=c==null?void 0:c.nodeClass)==null?void 0:p.from)=="function"?c.nodeClass.from(n.schema,e,n):new Ee(e);return t?d.tag=t:c.default||(d.tag=c.tag),l&&(l.node=d),d}function xd(e,t,n){let r=n;for(let i=t.length-1;i>=0;--i){const s=t[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const o=[];o[s]=r,r=o}else r=new Map([[s,r]])}return wl(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const ba=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class pC extends O0{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(r=>ut(r)||dt(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ba(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(lt(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,xd(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(t){const[n,...r]=t;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(lt(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(t,n){const[r,...i]=t,s=this.get(r,!0);return i.length===0?!n&&Ue(s)?s.value:s:lt(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!dt(n))return!1;const r=n.value;return r==null||t&&Ue(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){const[n,...r]=t;if(r.length===0)return this.has(n);const i=this.get(n,!0);return lt(i)?i.hasIn(r):!1}setIn(t,n){const[r,...i]=t;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(lt(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,xd(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const lH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function wr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Pi=(e,t,n)=>e.endsWith(` +`)?wr(n,t):n.includes(` +`)?` +`+wr(n,t):(e.endsWith(" ")?"":" ")+n,mC="flow",Jm="block",_u="quoted";function df(e,t,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;ii-Math.max(2,s)?c.push(0):u=i-r);let h,p,g=!1,b=-1,x=-1,m=-1;n===Jm&&(b=f1(e,b,t.length),b!==-1&&(u=b+l));for(let w;w=e[b+=1];){if(n===_u&&w==="\\"){switch(x=b,e[b+1]){case"x":b+=3;break;case"u":b+=5;break;case"U":b+=9;break;default:b+=1}m=b}if(w===` +`)n===Jm&&(b=f1(e,b,t.length)),u=b+t.length+l,h=void 0;else{if(w===" "&&p&&p!==" "&&p!==` +`&&p!==" "){const v=e[b+1];v&&v!==" "&&v!==` +`&&v!==" "&&(h=b)}if(b>=u)if(h)c.push(h),u=h+l,h=void 0;else if(n===_u){for(;p===" "||p===" ";)p=w,w=e[b+=1],g=!0;const v=b>m+1?b-2:x-1;if(d[v])return e;c.push(v),d[v]=!0,u=v+l,h=void 0}else g=!0}p=w}if(g&&a&&a(),c.length===0)return e;o&&o();let y=e.slice(0,c[0]);for(let w=0;w({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),hf=e=>/^(%|---|\.\.\.)/m.test(e);function cH(e,t,n){if(!t||t<0)return!1;const r=t-n,i=e.length;if(i<=r)return!1;for(let s=0,o=0;sr)return!0;if(o=s+1,i-o<=r)return!1}return!0}function Ba(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(hf(e)?" ":"");let o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);const d=n.substr(l+2,4);switch(d){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||n[l+2]==='"'||n.length +`;let u,h;for(h=n.length;h>0;--h){const _=n[h-1];if(_!==` +`&&_!==" "&&_!==" ")break}let p=n.substring(h);const g=p.indexOf(` +`);g===-1?u="-":n===p||g!==p.length-1?(u="+",s&&s()):u="",p&&(n=n.slice(0,-p.length),p[p.length-1]===` +`&&(p=p.slice(0,-1)),p=p.replace(tg,`$&${c}`));let b=!1,x,m=-1;for(x=0;x{k=!0});const N=df(`${y}${_}${p}`,c,Jm,T);if(!k)return`>${v} +${c}${N}`}return n=n.replace(/\n+/g,`$&${c}`),`|${v} +${c}${y}${n}${p}`}function uH(e,t,n,r){const{type:i,value:s}=e,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=t;if(a&&s.includes(` +`)||d&&/[[\]{},]/.test(s))return qs(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||d||!s.includes(` +`)?qs(s,t):Eu(e,t,n,r);if(!a&&!d&&i!==Ee.PLAIN&&s.includes(` +`))return Eu(e,t,n,r);if(hf(s)){if(l==="")return t.forceBlockIndent=!0,Eu(e,t,n,r);if(a&&l===c)return qs(s,t)}const u=s.replace(/\n+/g,`$& +${l}`);if(o){const h=b=>{var x;return b.default&&b.tag!=="tag:yaml.org,2002:str"&&((x=b.test)==null?void 0:x.test(u))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return qs(s,t)}return a?u:df(u,l,mC,ff(t,!1))}function L0(e,t,n,r){const{implicitKey:i,inFlow:s}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==Ee.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ee.QUOTE_DOUBLE);const l=d=>{switch(d){case Ee.BLOCK_FOLDED:case Ee.BLOCK_LITERAL:return i||s?qs(o.value,t):Eu(o,t,n,r);case Ee.QUOTE_DOUBLE:return Ba(o.value,t);case Ee.QUOTE_SINGLE:return eg(o.value,t);case Ee.PLAIN:return uH(o,t,n,r);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:d,defaultStringType:u}=t.options,h=i&&d||u;if(c=l(h),c===null)throw new Error(`Unsupported default string type ${h}`)}return c}function gC(e,t){const n=Object.assign({blockQuote:!0,commentString:lH,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function dH(e,t){var i;if(t.tag){const s=e.filter(o=>o.tag===t.tag);if(s.length>0)return s.find(o=>o.format===t.format)??s[0]}let n,r;if(Ue(t)){r=t.value;let s=e.filter(o=>{var a;return(a=o.identify)==null?void 0:a.call(o,r)});if(s.length>1){const o=s.filter(a=>a.test);o.length>0&&(s=o)}n=s.find(o=>o.format===t.format)??s.find(o=>!o.format)}else r=t,n=e.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function fH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(Ue(e)||lt(e))&&e.anchor;s&&uC(s)&&(n.add(s),i.push(`&${s}`));const o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(" ")}function xo(e,t,n,r){var l;if(dt(e))return e.toString(t,n,r);if(zo(e)){if(t.doc.directives)return e.toString(t);if((l=t.resolvedAliases)!=null&&l.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i;const s=ut(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=dH(t.doc.schema.tags,s));const o=fH(s,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);const a=typeof i.stringify=="function"?i.stringify(s,t,n,r):Ue(s)?L0(s,t,n,r):s.toString(t,n,r);return o?Ue(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} +${t.indent}${a}`:a}function hH({key:e,value:t},n,r,i){const{allNullValues:s,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n;let h=ut(e)&&e.comment||null;if(u){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(lt(e)||!ut(e)&&typeof e=="object"){const T="With simple keys, collection cannot be used as a key value";throw new Error(T)}}let p=!u&&(!e||h&&t==null&&!n.inFlow||lt(e)||(Ue(e)?e.type===Ee.BLOCK_FOLDED||e.type===Ee.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!s),indent:a+l});let g=!1,b=!1,x=xo(e,n,()=>g=!0,()=>b=!0);if(!p&&!n.inFlow&&x.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(s||t==null)return g&&r&&r(),x===""?"?":p?`? ${x}`:x}else if(s&&!u||t==null&&p)return x=`? ${x}`,h&&!g?x+=Pi(x,n.indent,c(h)):b&&i&&i(),x;g&&(h=null),p?(h&&(x+=Pi(x,n.indent,c(h))),x=`? ${x} +${a}:`):(x=`${x}:`,h&&(x+=Pi(x,n.indent,c(h))));let m,y,w;ut(t)?(m=!!t.spaceBefore,y=t.commentBefore,w=t.comment):(m=!1,y=null,w=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&Ue(t)&&(n.indentAtStart=x.length+1),b=!1,!d&&l.length>=2&&!n.inFlow&&!p&&Ql(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const _=xo(t,n,()=>v=!0,()=>b=!0);let k=" ";if(h||m||y){if(k=m?` +`:"",y){const T=c(y);k+=` +${wr(T,n.indent)}`}_===""&&!n.inFlow?k===` +`&&w&&(k=` + +`):k+=` +${n.indent}`}else if(!p&<(t)){const T=_[0],N=_.indexOf(` +`),I=N!==-1,A=n.inFlow??t.flow??t.items.length===0;if(I||!A){let D=!1;if(I&&(T==="&"||T==="!")){let R=_.indexOf(" ");T==="&"&&R!==-1&&Re===Hc||typeof e=="symbol"&&e.description===Hc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ee(Symbol(Hc)),{addToJSMap:bC}),stringify:()=>Hc},pH=(e,t)=>(Er.identify(t)||Ue(t)&&(!t.type||t.type===Ee.PLAIN)&&Er.identify(t.value))&&(e==null?void 0:e.doc.schema.tags.some(n=>n.tag===Er.tag&&n.default));function bC(e,t,n){const r=wC(e,n);if(Ql(r))for(const i of r.items)Zh(e,t,i);else if(Array.isArray(r))for(const i of r)Zh(e,t,i);else Zh(e,t,r)}function Zh(e,t,n){const r=wC(e,n);if(!Xl(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,e,Map);for(const[s,o]of i)t instanceof Map?t.has(s)||t.set(s,o):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function wC(e,t){return e&&zo(t)?t.resolve(e.doc,e):t}function xC(e,t,{key:n,value:r}){if(ut(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(pH(e,n))bC(e,t,r);else{const i=Nn(n,"",e);if(t instanceof Map)t.set(i,Nn(r,i,e));else if(t instanceof Set)t.add(i);else{const s=mH(n,i,e),o=Nn(r,s,e);s in t?Object.defineProperty(t,s,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[s]=o}}return t}function mH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(ut(e)&&(n!=null&&n.doc)){const r=gC(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=e.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),yC(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(t)}function P0(e,t,n){const r=wl(e,void 0,n),i=wl(t,void 0,n);return new Kt(r,i)}class Kt{constructor(t,n=null){Object.defineProperty(this,Cn,{value:lC}),this.key=t,this.value=n}clone(t){let{key:n,value:r}=this;return ut(n)&&(n=n.clone(t)),ut(r)&&(r=r.clone(t)),new Kt(n,r)}toJSON(t,n){const r=n!=null&&n.mapAsMap?new Map:{};return xC(n,r,this)}toString(t,n,r){return t!=null&&t.doc?hH(this,t,n,r):JSON.stringify(this)}}function vC(e,t,n){return(t.inFlow??e.flow?yH:gH)(e,t,n)}function gH({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:o,onComment:a}){const{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:s,type:null});let u=!1;const h=[];for(let g=0;gx=null,()=>u=!0);x&&(m+=Pi(m,s,c(x))),u&&x&&(u=!1),h.push(r+m)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let g=1;gx=null);c||(c=u.length>d||m.includes(` +`)),g0&&(c||(c=u.reduce((y,w)=>y+w.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),x&&(m+=Pi(m,r,a(x))),u.push(m),d=u.length}const{start:h,end:p}=n;if(u.length===0)return h+p;if(!c){const g=u.reduce((b,x)=>b+x.length+2,2);c=t.options.lineWidth>0&&g>t.options.lineWidth}if(c){let g=h;for(const b of u)g+=b?` +${s}${i}${b}`:` +`;return`${g} +${i}${p}`}else return`${h}${o}${u.join(" ")}${o}${p}`}function vd({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=wr(t(r),e);n.push(s.trimStart())}}function Di(e,t){const n=Ue(t)?t.value:t;for(const r of e)if(dt(r)&&(r.key===t||r.key===n||Ue(r.key)&&r.key.value===n))return r}class _n extends pC{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(si,t),this.items=[]}static from(t,n,r){const{keepUndefined:i,replacer:s}=r,o=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&o.items.push(P0(l,c,r))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,n){var o;let r;dt(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new Kt(t,t==null?void 0:t.value):r=new Kt(t.key,t.value);const i=Di(this.items,r.key),s=(o=this.schema)==null?void 0:o.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);Ue(i.value)&&hC(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const a=this.items.findIndex(l=>s(r,l)<0);a===-1?this.items.push(r):this.items.splice(a,0,r)}else this.items.push(r)}delete(t){const n=Di(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Di(this.items,t),i=r==null?void 0:r.value;return(!n&&Ue(i)?i.value:i)??void 0}has(t){return!!Di(this.items,t)}set(t,n){this.add(new Kt(t,n),!0)}toJSON(t,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)xC(n,i,s);return i}toString(t,n,r){if(!t)return JSON.stringify(this);for(const i of this.items)if(!dt(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),vC(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:n})}}const Vo={collection:"map",default:!0,nodeClass:_n,tag:"tag:yaml.org,2002:map",resolve(e,t){return Xl(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>_n.from(e,t,n)};class Zi extends pC{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(Fo,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=Kc(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=Kc(t);if(typeof r!="number")return;const i=this.items[r];return!n&&Ue(i)?i.value:i}has(t){const n=Kc(t);return typeof n=="number"&&n=0?t:null}const Ho={collection:"seq",default:!0,nodeClass:Zi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Ql(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Zi.from(e,t,n)},pf={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),L0(e,t,n,r)}},mf={identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ee(null),stringify:({source:e},t)=>typeof e=="string"&&mf.test.test(e)?e:t.options.nullStr},D0={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Ee(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&D0.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?n.options.trueStr:n.options.falseStr}};function Gn({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let o=s.indexOf(".");o<0&&(o=s.length,s+=".");let a=t-(s.length-o-1);for(;a-- >0;)s+="0"}return s}const kC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Gn},_C={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Gn(e)}},EC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Ee(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:Gn},gf=e=>typeof e=="bigint"||Number.isInteger(e),j0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function SC(e,t,n){const{value:r}=e;return gf(r)&&r>=0?n+r.toString(t):Gn(e)}const NC={identify:e=>gf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>j0(e,2,8,n),stringify:e=>SC(e,8,"0o")},TC={identify:gf,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>j0(e,0,10,n),stringify:Gn},AC={identify:e=>gf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>j0(e,2,16,n),stringify:e=>SC(e,16,"0x")},bH=[Vo,Ho,pf,mf,D0,NC,TC,AC,kC,_C,EC];function h1(e){return typeof e=="bigint"||Number.isInteger(e)}const qc=({value:e})=>JSON.stringify(e),wH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:qc},{identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:qc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:qc},{identify:h1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>h1(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:qc}],xH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},vH=[Vo,Ho].concat(wH,xH),$0={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&t("Each pair must have its own sequence indicator");const i=r.items[0]||new Kt(new Ee(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} +${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} +${s.comment}`:r.comment}r=i}e.items[n]=dt(r)?r:new Kt(r)}}else t("Expected a sequence for this tag");return e}function IC(e,t,n){const{replacer:r}=n,i=new Zi(e);i.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(s++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){const c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(P0(a,l,n))}return i}const B0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:CC,createNode:IC};class no extends Zi{constructor(){super(),this.add=_n.prototype.add.bind(this),this.delete=_n.prototype.delete.bind(this),this.get=_n.prototype.get.bind(this),this.has=_n.prototype.has.bind(this),this.set=_n.prototype.set.bind(this),this.tag=no.tag}toJSON(t,n){if(!n)return super.toJSON(t);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,o;if(dt(i)?(s=Nn(i.key,"",n),o=Nn(i.value,s,n)):s=Nn(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,o)}return r}static from(t,n,r){const i=IC(t,n,r),s=new this;return s.items=i.items,s}}no.tag="tag:yaml.org,2002:omap";const F0={collection:"seq",identify:e=>e instanceof Map,nodeClass:no,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=CC(e,t),r=[];for(const{key:i}of n.items)Ue(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new no,n)},createNode:(e,t,n)=>no.from(e,t,n)};function MC({value:e,source:t},n){return t&&(e?OC:RC).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const OC={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Ee(!0),stringify:MC},RC={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Ee(!1),stringify:MC},kH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Gn},_H={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():Gn(e)}},EH={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Ee(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const r=e.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:Gn},Zl=e=>typeof e=="bigint"||Number.isInteger(e);function yf(e,t,n,{intAsBigInt:r}){const i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const o=BigInt(e);return i==="-"?BigInt(-1)*o:o}const s=parseInt(e,n);return i==="-"?-1*s:s}function z0(e,t,n){const{value:r}=e;if(Zl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Gn(e)}const SH={identify:Zl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>yf(e,2,2,n),stringify:e=>z0(e,2,"0b")},NH={identify:Zl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>yf(e,1,8,n),stringify:e=>z0(e,8,"0")},TH={identify:Zl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>yf(e,0,10,n),stringify:Gn},AH={identify:Zl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>yf(e,2,16,n),stringify:e=>z0(e,16,"0x")};class ro extends _n{constructor(t){super(t),this.tag=ro.tag}add(t){let n;dt(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Kt(t.key,null):n=new Kt(t,null),Di(this.items,n.key)||this.items.push(n)}get(t,n){const r=Di(this.items,t);return!n&&dt(r)?Ue(r.key)?r.key.value:r.key:r}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=Di(this.items,t);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new Kt(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(t,n,r){const{replacer:i}=r,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),s.items.push(P0(o,null,r));return s}}ro.tag="tag:yaml.org,2002:set";const U0={collection:"map",identify:e=>e instanceof Set,nodeClass:ro,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>ro.from(e,t,n),resolve(e,t){if(Xl(e)){if(e.hasAllNullValues(!0))return Object.assign(new ro,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function V0(e,t){const n=e[0],r=n==="-"||n==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),s=r.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*s:s}function LC(e){let{value:t}=e,n=o=>o;if(typeof t=="bigint")n=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Gn(e);let r="";t<0&&(r="-",t*=n(-1));const i=n(60),s=[t%i];return t<60?s.unshift(0):(t=(t-s[0])/i,s.unshift(t%i),t>=60&&(t=(t-s[0])/i,s.unshift(t))),r+s.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const PC={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>V0(e,n),stringify:LC},DC={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>V0(e,!1),stringify:LC},bf={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(bf.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,o,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,o||0,a||0,l);const d=t[8];if(d&&d!=="Z"){let u=V0(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:e})=>(e==null?void 0:e.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},p1=[Vo,Ho,pf,mf,OC,RC,SH,NH,TH,AH,kH,_H,EH,$0,Er,F0,B0,U0,PC,DC,bf],m1=new Map([["core",bH],["failsafe",[Vo,Ho,pf]],["json",vH],["yaml11",p1],["yaml-1.1",p1]]),g1={binary:$0,bool:D0,float:EC,floatExp:_C,floatNaN:kC,floatTime:DC,int:TC,intHex:AC,intOct:NC,intTime:PC,map:Vo,merge:Er,null:mf,omap:F0,pairs:B0,seq:Ho,set:U0,timestamp:bf},CH={"tag:yaml.org,2002:binary":$0,"tag:yaml.org,2002:merge":Er,"tag:yaml.org,2002:omap":F0,"tag:yaml.org,2002:pairs":B0,"tag:yaml.org,2002:set":U0,"tag:yaml.org,2002:timestamp":bf};function Jh(e,t,n){const r=m1.get(t);if(r&&!e)return n&&!r.includes(Er)?r.concat(Er):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{const s=Array.from(m1.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)i=i.concat(s);else typeof e=="function"&&(i=e(i.slice()));return n&&(i=i.concat(Er)),i.reduce((s,o)=>{const a=typeof o=="string"?g1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(g1).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const IH=(e,t)=>e.keyt.key?1:0;class H0{constructor({compat:t,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Jh(t,"compat"):t?Jh(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?CH:{},this.tags=Jh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,si,{value:Vo}),Object.defineProperty(this,ar,{value:pf}),Object.defineProperty(this,Fo,{value:Ho}),this.sortMapEntries=typeof o=="function"?o:o===!0?IH:null}clone(){const t=Object.create(H0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function MH(e,t){var l;const n=[];let r=t.directives===!0;if(t.directives!==!1&&e.directives){const c=e.directives.toString(e);c?(n.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&n.push("---");const i=gC(e,t),{commentString:s}=i.options;if(e.commentBefore){n.length!==1&&n.unshift("");const c=s(e.commentBefore);n.unshift(wr(c,""))}let o=!1,a=null;if(e.contents){if(ut(e.contents)){if(e.contents.spaceBefore&&r&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(wr(u,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}const c=a?void 0:()=>o=!0;let d=xo(e.contents,i,()=>a=null,c);a&&(d+=Pi(d,"",s(a))),(d[0]==="|"||d[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${d}`:n.push(d)}else n.push(xo(e.contents,i));if((l=e.directives)!=null&&l.docEnd)if(e.comment){const c=s(e.comment);c.includes(` +`)?(n.push("..."),n.push(wr(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(wr(s(c),"")))}return n.join(` +`)+` +`}class Jl{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:Zm});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:o}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ut({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,i,r)}clone(){const t=Object.create(Jl.prototype,{[Cn]:{value:Zm}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=ut(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){xs(this.contents)&&this.contents.add(t)}addIn(t,n){xs(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const r=dC(this);t.anchor=!n||r.has(n)?fC(n||"a",r):n}return new R0(t.anchor)}createNode(t,n,r){let i;if(typeof n=="function")t=n.call({"":t},"",t),i=n;else if(Array.isArray(n)){const x=y=>typeof y=="number"||y instanceof String||y instanceof Number,m=n.filter(x).map(String);m.length>0&&(n=n.concat(m)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:h,sourceObjects:p}=sH(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=wl(t,d,g);return a&<(b)&&(b.flow=!0),h(),b}createPair(t,n,r={}){const i=this.createNode(t,null,r),s=this.createNode(n,null,r);return new Kt(i,s)}delete(t){return xs(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ba(t)?this.contents==null?!1:(this.contents=null,!0):xs(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return lt(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ba(t)?!n&&Ue(this.contents)?this.contents.value:this.contents:lt(this.contents)?this.contents.getIn(t,n):void 0}has(t){return lt(this.contents)?this.contents.has(t):!1}hasIn(t){return ba(t)?this.contents!==void 0:lt(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=xd(this.schema,[t],n):xs(this.contents)&&this.contents.set(t,n)}setIn(t,n){ba(t)?this.contents=n:this.contents==null?this.contents=xd(this.schema,Array.from(t),n):xs(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ut({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ut({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new H0(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:o}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Nn(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:d}of a.anchors.values())s(d,c);return typeof o=="function"?Ks(o,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return MH(this,t)}}function xs(e){if(lt(e))return!0;throw new Error("Expected a YAML collection as document contents")}class jC extends Error{constructor(t,n,r,i){super(),this.name=t,this.code=r,this.message=i,this.pos=n}}class wa extends jC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class OH extends jC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const y1=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&o.length>80){const a=Math.min(s-39,o.length-79);o="…"+o.substring(a),s-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),r>1&&/^ *$/.test(o.substring(0,s))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`… +`),o=a+o}if(/[^ ]/.test(o)){let a=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: + +${o} +${c} +`}};function vo(e,{flow:t,indicator:n,next:r,offset:i,onError:s,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",h="",p=!1,g=!1,b=null,x=null,m=null,y=null,w=null,v=null,_=null;for(const N of e)switch(g&&(N.type!=="space"&&N.type!=="newline"&&N.type!=="comma"&&s(N.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),b&&(c&&N.type!=="comment"&&N.type!=="newline"&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),b=null),N.type){case"space":!t&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&N.source.includes(" ")&&(b=N),d=!0;break;case"comment":{d||s(N,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const I=N.source.substring(1)||" ";u?u+=h+I:u=I,h="",c=!1;break}case"newline":c?u?u+=N.source:(!v||n!=="seq-item-ind")&&(l=!0):h+=N.source,c=!0,p=!0,(x||m)&&(y=N),d=!0;break;case"anchor":x&&s(N,"MULTIPLE_ANCHORS","A node can have at most one anchor"),N.source.endsWith(":")&&s(N.offset+N.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),x=N,_??(_=N.offset),c=!1,d=!1,g=!0;break;case"tag":{m&&s(N,"MULTIPLE_TAGS","A node can have at most one tag"),m=N,_??(_=N.offset),c=!1,d=!1,g=!0;break}case n:(x||m)&&s(N,"BAD_PROP_ORDER",`Anchors and tags must be after the ${N.source} indicator`),v&&s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.source} in ${t??"collection"}`),v=N,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(t){w&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),w=N,c=!1,d=!1;break}default:s(N,"UNEXPECTED_TOKEN",`Unexpected ${N.type} token`),c=!1,d=!1}const k=e[e.length-1],T=k?k.offset+k.source.length:i;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),b&&(c&&b.indent<=o||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(b,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:w,found:v,spaceBefore:l,comment:u,hasNewline:p,anchor:x,tag:m,newlineAfterProp:y,end:T,start:_??T}}function xl(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` +`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(xl(t.key)||xl(t.value))return!0}return!1;default:return!0}}function ng(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&xl(t)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function $C(e,t,n){const{uniqueKeys:r}=e.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,o)=>s===o||Ue(s)&&Ue(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const b1="All mapping items must start at the same column";function RH({composeNode:e,composeEmptyNode:t},n,r,i,s){var d;const o=(s==null?void 0:s.nodeClass)??_n,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const u of r.items){const{start:h,key:p,sep:g,value:b}=u,x=vo(h,{indicator:"explicit-key-ind",next:p??(g==null?void 0:g[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!x.found;if(m){if(p&&(p.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==r.indent&&i(l,"BAD_INDENT",b1)),!x.anchor&&!x.tag&&!g){c=x.end,x.comment&&(a.comment?a.comment+=` +`+x.comment:a.comment=x.comment);continue}(x.newlineAfterProp||xl(p))&&i(p??h[h.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((d=x.found)==null?void 0:d.indent)!==r.indent&&i(l,"BAD_INDENT",b1);n.atKey=!0;const y=x.end,w=p?e(n,p,x,i):t(n,y,h,null,x,i);n.schema.compat&&ng(r.indent,p,i),n.atKey=!1,$C(n,a.items,w)&&i(y,"DUPLICATE_KEY","Map keys must be unique");const v=vo(g??[],{indicator:"map-value-ind",next:b,offset:w.range[2],onError:i,parentIndent:r.indent,startOnNewline:!p||p.type==="block-scalar"});if(l=v.end,v.found){m&&((b==null?void 0:b.type)==="block-map"&&!v.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&x.starte&&(e.type==="block-map"||e.type==="block-seq");function PH({composeNode:e,composeEmptyNode:t},n,r,i,s){var x;const o=r.start.source==="{",a=o?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(o?_n:Zi),c=new l(n.schema);c.flow=!0;const d=n.atRoot;d&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=r.offset+r.start.source.length;for(let m=0;m0){const m=ec(g,b,n.options.strict,i);m.comment&&(c.comment?c.comment+=` +`+m.comment:c.comment=m.comment),c.range=[r.offset,b,m.offset]}else c.range=[r.offset,b,b];return c}function np(e,t,n,r,i,s){const o=n.type==="block-map"?RH(e,t,n,r,s):n.type==="block-seq"?LH(e,t,n,r,s):PH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function DH(e,t,n,r,i){var h;const s=r.tag,o=s?t.directives.tagName(s.source,p=>i(s,"TAG_RESOLVE_FAILED",p)):null;if(n.type==="block-seq"){const{anchor:p,newlineAfterProp:g}=r,b=p&&s?p.offset>s.offset?p:s:p??s;b&&(!g||g.offsetp.tag===o&&p.collection===a);if(!l){const p=t.schema.knownTags[o];if((p==null?void 0:p.collection)===a)t.schema.tags.push(Object.assign({},p,{default:!1})),l=p;else return p?i(s,"BAD_COLLECTION_TYPE",`${p.tag} used for ${a} collection, but expects ${p.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),np(e,t,n,i,o)}const c=np(e,t,n,i,o,l),d=((h=l.resolve)==null?void 0:h.call(l,c,p=>i(s,"TAG_RESOLVE_FAILED",p),t.options))??c,u=ut(d)?d:new Ee(d);return u.range=c.range,u.tag=o,l!=null&&l.format&&(u.format=l.format),u}function jH(e,t,n){const r=t.offset,i=$H(t,e.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?Ee.BLOCK_FOLDED:Ee.BLOCK_LITERAL,o=t.source?BH(t.source):[];let a=o.length;for(let b=o.length-1;b>=0;--b){const x=o[b][1];if(x===""||x==="\r")a=b;else break}if(a===0){const b=i.chomp==="+"&&o.length>0?` +`.repeat(Math.max(1,o.length-1)):"";let x=r+i.length;return t.source&&(x+=t.source.length),{value:b,type:s,comment:i.comment,range:[r,x,x]}}let l=t.indent+i.indent,c=t.offset+i.length,d=0;for(let b=0;bl&&(l=x.length);else{x.length=a;--b)o[b][0].length>l&&(a=b+1);let u="",h="",p=!1;for(let b=0;bl||m[0]===" "?(h===" "?h=` +`:!p&&h===` +`&&(h=` + +`),u+=h+x.slice(l)+m,h=` +`,p=!0):m===""?h===` +`?u+=` +`:h=` +`:(u+=h+m,h=" ",p=!1)}switch(i.chomp){case"-":break;case"+":for(let b=a;bn(r+h,p,g);switch(i){case"scalar":a=Ee.PLAIN,l=zH(s,c);break;case"single-quoted-scalar":a=Ee.QUOTE_SINGLE,l=UH(s,c);break;case"double-quoted-scalar":a=Ee.QUOTE_DOUBLE,l=VH(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const d=r+s.length,u=ec(o,d,t,n);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function zH(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),BC(e)}function UH(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),BC(e.slice(1,-1)).replace(/''/g,"'")}function BC(e){let t,n;try{t=new RegExp(`(.*?)(?s?e.slice(s,r+1):i)}else n+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function HH(e,t){let n="",r=e[t+1];for(;(r===" "||r===" "||r===` +`||r==="\r")&&!(r==="\r"&&e[t+2]!==` +`);)r===` +`&&(n+=` +`),t+=1,r=e[t+1];return n||(n=" "),{fold:n,offset:t}}const KH={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` +`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function qH(e,t,n,r){const i=e.substr(t,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{const a=e.substr(t-2,n+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function FC(e,t,n,r){const{value:i,type:s,comment:o,range:a}=t.type==="block-scalar"?jH(e,t,r):FH(t,e.options.strict,r),l=n?e.directives.tagName(n.source,u=>r(n,"TAG_RESOLVE_FAILED",u)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ar]:l?c=WH(e.schema,i,l,n,r):t.type==="scalar"?c=GH(e,i,t,r):c=e.schema[ar];let d;try{const u=c.resolve(i,h=>r(n??t,"TAG_RESOLVE_FAILED",h),e.options);d=Ue(u)?u:new Ee(u)}catch(u){const h=u instanceof Error?u.message:String(u);r(n??t,"TAG_RESOLVE_FAILED",h),d=new Ee(i)}return d.range=a,d.source=i,s&&(d.type=s),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function WH(e,t,n,r,i){var a;if(n==="!")return e[ar];const s=[];for(const l of e.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((a=l.test)!=null&&a.test(t))return l;const o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ar])}function GH({atKey:e,directives:t,schema:n},r,i,s){const o=n.tags.find(a=>{var l;return(a.default===!0||e&&a.default==="key")&&((l=a.test)==null?void 0:l.test(r))})||n[ar];if(n.compat){const a=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[ar];if(o.tag!==a.tag){const l=t.tagString(o.tag),c=t.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}function YH(e,t,n){if(t){n??(n=t.length);for(let r=n-1;r>=0;--r){let i=t[r];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++r];(i==null?void 0:i.type)==="space";)e+=i.source.length,i=t[++r];break}}return e}const XH={composeNode:zC,composeEmptyNode:K0};function zC(e,t,n,r){const i=e.atKey,{spaceBefore:s,comment:o,anchor:a,tag:l}=n;let c,d=!0;switch(t.type){case"alias":c=QH(e,t,r),(a||l)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=FC(e,t,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=DH(XH,e,t,n,r),a&&(c.anchor=a.source.substring(1))}catch(u){const h=u instanceof Error?u.message:String(u);r(t,"RESOURCE_EXHAUSTION",h)}break;default:{const u=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=K0(e,t.offset,void 0,null,n,r)),a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!Ue(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?c.comment=o:c.commentBefore=o),e.options.keepSourceTokens&&d&&(c.srcToken=t),c}function K0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const d={type:"scalar",offset:YH(t,n,r),indent:-1,source:""},u=FC(e,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),s&&(u.comment=s,u.range[2]=l),u}function QH({options:e},{offset:t,source:n,end:r},i){const s=new R0(n.substring(1));s.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const o=t+n.length,a=ec(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function ZH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new Jl(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=vo(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?zC(c,i,d,o):K0(c,d.end,r,null,d,o);const u=l.contents.range[2],h=ec(s,u,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,u,h.offset],l}function oa(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function w1(e){var i;let t="",n=!1,r=!1;for(let s=0;s{const o=oa(n);s?this.warnings.push(new OH(o,r,i)):this.errors.push(new wa(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=w1(this.prelude);if(r){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} +${r}`:r;else if(i||t.directives.docStart||!s)t.commentBefore=r;else if(lt(s)&&!s.flow&&s.items.length>0){let o=s.items[0];dt(o)&&(o=o.key);const a=o.commentBefore;o.commentBefore=a?`${r} +${a}`:r}else{const o=s.commentBefore;s.commentBefore=o?`${r} +${o}`:r}}if(n){for(let s=0;s{const s=oa(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=ZH(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new wa(oa(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new wa(oa(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=ec(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} +${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new wa(oa(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const r=Object.assign({_directives:this.directives},this.options),i=new Jl(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const UC="\uFEFF",VC="",HC="",rg="";function eK(e){switch(e){case UC:return"byte-order-mark";case VC:return"doc-mode";case HC:return"flow-error-end";case rg:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +`:case`\r +`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Rn(e){switch(e){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}const x1=new Set("0123456789ABCDEFabcdef"),tK=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Wc=new Set(",[]{}"),nK=new Set(` ,[]{} +\r `),rp=e=>!e||nK.has(e);class rK{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,n=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!n;let r=this.next??"stream";for(;r&&(n||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let t=this.pos,n=this.buffer[t];for(;n===" "||n===" ";)n=this.buffer[++t];return!n||n==="#"||n===` +`?!0:n==="\r"?this.buffer[t+1]===` +`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let n=this.buffer[t];if(this.indentNext>0){let r=0;for(;n===" ";)n=this.buffer[++r+t];if(n==="\r"){const i=this.buffer[r+t+1];if(i===` +`||!i&&!this.atEnd)return t+r+1}return n===` +`||r>=this.indentNext||!n&&!this.atEnd?t+r:-1}if(n==="-"||n==="."){const r=this.buffer.substr(t,3);if((r==="---"||r==="...")&&Rn(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&tthis.indentValue&&!Rn(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[t,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&Rn(n)){const r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const t=this.getLine();if(t===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(t[n]){case"#":yield*this.pushCount(t.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(rp),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,n,r=-1;do t=yield*this.pushNewline(),t>0?(n=yield*this.pushSpaces(!1),this.indentValue=r=n):n=0,n+=yield*this.pushSpaces(!0);while(t+n>0);const i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Rn(n)||n==="#")}*parseBlockScalar(){let t=this.pos-1,n=0,r;e:for(let s=this.pos;r=this.buffer[s];++s)switch(r){case" ":n+=1;break;case` +`:t=s,n=0;break;case"\r":{const o=this.buffer[s+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===` +`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(t+1);if(s===-1)break;t=this.buffer.indexOf(` +`,s)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(r=this.buffer[i];r===" ";)r=this.buffer[++i];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===` +`;)r=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let s=t-1,o=this.buffer[s];o==="\r"&&(o=this.buffer[--s]);const a=s;for(;o===" ";)o=this.buffer[--s];if(o===` +`&&s>=this.pos&&s+1+n>a)t=s;else break}while(!0);return yield rg,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let n=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){const s=this.buffer[r+1];if(Rn(s)||t&&Wc.has(s))break;n=r}else if(Rn(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` +`?(r+=1,i=` +`,s=this.buffer[r+1]):n=r),s==="#"||t&&Wc.has(s))break;if(i===` +`){const o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&Wc.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield rg,yield*this.pushToIndex(n+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,n){const r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(n&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(rp),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,r=this.charAt(1);if(Rn(r)||n&&Wc.has(r)){n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,n=this.buffer[t];for(;!Rn(n)&&n!==">";)n=this.buffer[++t];return yield*this.pushToIndex(n===">"?t+1:t,!1)}else{let t=this.pos+1,n=this.buffer[t];for(;n;)if(tK.has(n))n=this.buffer[++t];else if(n==="%"&&x1.has(this.buffer[t+1])&&x1.has(this.buffer[t+2]))n=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===` +`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===` +`?yield*this.pushCount(2):0}*pushSpaces(t){let n=this.pos-1,r;do r=this.buffer[++n];while(r===" "||t&&r===" ");const i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(t){let n=this.pos,r=this.buffer[n];for(;!t(r);)r=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class iK{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let n=0,r=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((n=e[++t])==null?void 0:n.type)==="space";);return e.splice(t,e.length)}function kd(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&(t==null?void 0:t.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const n=t??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const r=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in r?r.indent:0:n.type==="flow-collection"&&r.type==="document"&&(n.indent=0),n.type==="flow-collection"&&k1(n),r.type){case"document":r.value=n;break;case"block-scalar":r.props.push(n);break;case"block-map":{const i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{const i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{const i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&v1(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&n.sep&&!n.value){const a=[];for(let l=0;lt.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=n.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ur(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(KC(n.key)&&!Ur(n.sep,"newline")){const a=vs(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:c}]})}else o.length>0?n.sep=n.sep.concat(o,this.sourceToken):n.sep.push(this.sourceToken);else if(Ur(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const a=vs(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):Ur(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||n.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(a):(Object.assign(n,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!n.explicitKey&&n.sep&&!Ur(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var r;const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const i=t.items[t.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){kd(s,n.start),s.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||Ur(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=Gc(r),s=vs(i);k1(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` +`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` +`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=Gc(t),r=vs(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=Gc(t),r=vs(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function oK(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new iK||null,prettyErrors:t}}function aK(e,t={}){const{lineCounter:n,prettyErrors:r}=oK(t),i=new sK(n==null?void 0:n.addNewLine),s=new JH(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new wa(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(y1(e,n)),o.warnings.forEach(y1(e,n))),o}function lK(e,t,n){let r;const i=aK(e,n);if(!i)return null;if(i.warnings.forEach(s=>yC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function cK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return Yl(e)&&!r?e.toString(n):new Jl(e,r,n).toString(n)}function fs(){return{name:"",description:"",instruction:"",agentType:"llm",maxIterations:3,a2aUrl:"",tools:[],skills:[],memory:{shortTerm:!1,longTerm:!1},knowledgebase:!1,tracing:!1,enableA2ui:!1,subAgents:[],builtinTools:[],customTools:[],mcpTools:[],modelName:"",modelProvider:"",modelApiBase:"",shortTermBackend:"local",longTermBackend:"local",autoSaveSession:!1,knowledgebaseBackend:"local",tracingExporters:[],selectedSkills:[],deployment:{feishuEnabled:!1}}}const qC="https://ark.cn-beijing.volces.com/api/v3/",uK=[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key",comment:"火山方舟 (Ark) API Key"},{key:"MODEL_AGENT_NAME",required:!1,placeholder:"doubao-seed-1-6-250615",comment:"模型名称"},{key:"MODEL_AGENT_PROVIDER",required:!1,placeholder:"openai"},{key:"MODEL_AGENT_API_BASE",required:!1,placeholder:qC}],Fa=[{key:"MODEL_EMBEDDING_NAME",required:!1,placeholder:"doubao-embedding-vision-250615",comment:"向量化模型(记忆/知识库需要)"},{key:"MODEL_EMBEDDING_DIM",required:!1,placeholder:"2048"},{key:"MODEL_EMBEDDING_API_BASE",required:!1,placeholder:qC},{key:"MODEL_EMBEDDING_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"}],ko=[{key:"VOLCENGINE_ACCESS_KEY",required:!0,placeholder:"AKxxxx",comment:"火山引擎 Access Key"},{key:"VOLCENGINE_SECRET_KEY",required:!0,placeholder:"xxxx",comment:"火山引擎 Secret Key"}],WC=[{id:"web_search",label:"联网搜索",desc:"火山引擎 Web Search,获取实时信息。",importLine:"from veadk.tools.builtin_tools.web_search import web_search",toolNames:["web_search"],env:ko},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:ko},{id:"link_reader",label:"网页读取",desc:"抓取并阅读给定链接的正文内容。",importLine:"from veadk.tools.builtin_tools.link_reader import link_reader",toolNames:["link_reader"],env:[{key:"MODEL_AGENT_API_KEY",required:!0,placeholder:"your-ark-api-key"}]},{id:"web_scraper",label:"网页爬取",desc:"结构化爬取网页(需要 Scraper 服务)。",importLine:"from veadk.tools.builtin_tools.web_scraper import web_scraper",toolNames:["web_scraper"],env:[{key:"TOOL_WEB_SCRAPER_ENDPOINT",required:!0},{key:"TOOL_WEB_SCRAPER_API_KEY",required:!0}]},{id:"image_generate",label:"图像生成",desc:"文生图(Doubao Seedream)。",importLine:"from veadk.tools.builtin_tools.image_generate import image_generate",toolNames:["image_generate"],env:[{key:"MODEL_IMAGE_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_IMAGE_NAME",required:!1,placeholder:"doubao-seedream-5-0-260128"}]},{id:"image_edit",label:"图像编辑",desc:"图生图 / 编辑(Doubao SeedEdit)。",importLine:"from veadk.tools.builtin_tools.image_edit import image_edit",toolNames:["image_edit"],env:[{key:"MODEL_EDIT_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_EDIT_NAME",required:!1,placeholder:"doubao-seededit-3-0-i2i-250628"}]},{id:"video_generate",label:"视频生成",desc:"文/图生视频(Doubao Seedance),含任务查询。",importLine:"from veadk.tools.builtin_tools.video_generate import video_generate, video_task_query",toolNames:["video_generate","video_task_query"],env:[{key:"MODEL_VIDEO_API_KEY",required:!1,comment:"留空则回退到 MODEL_AGENT_API_KEY"},{key:"MODEL_VIDEO_NAME",required:!1,placeholder:"doubao-seedance-2-0-260128"}]},{id:"text_to_speech",label:"语音合成 (TTS)",desc:"把文本转成语音(火山语音)。",importLine:"from veadk.tools.builtin_tools.tts import text_to_speech",toolNames:["text_to_speech"],env:[{key:"TOOL_VESPEECH_APP_ID",required:!0},{key:"TOOL_VESPEECH_API_KEY",required:!0},{key:"TOOL_VESPEECH_SPEAKER",required:!1,placeholder:"zh_female_vv_uranus_bigtts"}]},{id:"vesearch",label:"VeSearch 智能搜索",desc:"火山 VeSearch(需要 bot 端点)。",importLine:"from veadk.tools.builtin_tools.vesearch import vesearch",toolNames:["vesearch"],env:[{key:"TOOL_VESEARCH_API_KEY",required:!1},{key:"TOOL_VESEARCH_ENDPOINT",required:!0,comment:"VeSearch bot_id"}]}],GC=[{id:"local",label:"本地内存",desc:"进程内,不持久化。适合开发调试。",env:[]},{id:"sqlite",label:"SQLite 文件",desc:"持久化到本地 .db 文件。",extraArgs:'local_database_path="./short_term_memory.db"',env:[]},{id:"mysql",label:"MySQL",desc:"持久化到 MySQL。",env:[{key:"DATABASE_MYSQL_HOST",required:!0},{key:"DATABASE_MYSQL_USER",required:!0},{key:"DATABASE_MYSQL_PASSWORD",required:!0},{key:"DATABASE_MYSQL_DATABASE",required:!0}]},{id:"postgresql",label:"PostgreSQL",desc:"持久化到 PostgreSQL。",env:[{key:"DATABASE_POSTGRESQL_HOST",required:!0},{key:"DATABASE_POSTGRESQL_PORT",required:!1,placeholder:"5432"},{key:"DATABASE_POSTGRESQL_USER",required:!0},{key:"DATABASE_POSTGRESQL_PASSWORD",required:!0},{key:"DATABASE_POSTGRESQL_DATABASE",required:!0}]}],YC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:Fa,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...Fa],pipExtra:"extensions",needsEmbedding:!0},{id:"redis",label:"Redis",desc:"Redis 向量检索。",env:[{key:"DATABASE_REDIS_HOST",required:!0},{key:"DATABASE_REDIS_PORT",required:!1,placeholder:"6379"},{key:"DATABASE_REDIS_PASSWORD",required:!1},...Fa],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:ko},{id:"mem0",label:"Mem0",desc:"Mem0 托管记忆服务。",env:[{key:"DATABASE_MEM0_API_KEY",required:!0},{key:"DATABASE_MEM0_BASE_URL",required:!1}]}],XC=[{id:"local",label:"本地向量库",desc:"进程内 llama-index 向量库。",env:Fa,pipExtra:"extensions",needsEmbedding:!0},{id:"opensearch",label:"OpenSearch",desc:"OpenSearch 向量检索。",env:[{key:"DATABASE_OPENSEARCH_HOST",required:!0},{key:"DATABASE_OPENSEARCH_PORT",required:!1,placeholder:"9200"},{key:"DATABASE_OPENSEARCH_USERNAME",required:!0},{key:"DATABASE_OPENSEARCH_PASSWORD",required:!0},...Fa],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:ko},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...ko,{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ID",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_ENDPOINT",required:!0},{key:"DATABASE_CONTEXT_SEARCH_ENGINE_APIKEY",required:!0}]}],QC=[{id:"apmplus",label:"APMPlus",desc:"火山 APMPlus 应用性能监控。",enableFlag:"ENABLE_APMPLUS",env:[{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY",required:!1,comment:"留空则用 AK/SK 自动获取"},{key:"OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME",required:!1}]},{id:"cozeloop",label:"CozeLoop",desc:"扣子 CozeLoop 链路观测。",enableFlag:"ENABLE_COZELOOP",env:[{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY",required:!0},{key:"OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME",required:!1,comment:"CozeLoop space_id"}]},{id:"tls",label:"TLS (日志服务)",desc:"火山 TLS 日志服务导出。",enableFlag:"ENABLE_TLS",env:[...ko,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],dK=e=>WC.find(t=>t.id===e),fK=e=>GC.find(t=>t.id===e),hK=e=>YC.find(t=>t.id===e),pK=e=>XC.find(t=>t.id===e),mK=e=>QC.find(t=>t.id===e);function Ui(e,t){let n=(e||"").trim().toLowerCase();return n=n.replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_"),(!n||/^[0-9]/.test(n))&&(n=n?`a_${n}`:t),n}function ZC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function st(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Su(e,t,n){const r=Ui(t,n);let i=r,s=2;for(;e.usedNames.has(i);)i=`${r}_${s++}`;return e.usedNames.add(i),i}function aa(e,t){for(const n of t)e.env.push(n)}function _1(e,t,n){const r=Su(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: + ${ZC(i)} + # TODO: 实现「${t}」的逻辑。 + return {"result": f"${r} 尚未实现: {query}"}`),r}function gK(e,t,n){const r=t.agentType,i=r==="parallel"?"ParallelAgent":r==="loop"?"LoopAgent":"SequentialAgent";e.imports.push(`from google.adk.agents import ${i}`);const s=[];(t.subAgents??[]).forEach((a,l)=>{const c=`${n}_sub_${l+1}`;q0(e,a,c),s.push(c)});const o=[`name=${st(Ui(t.name,n))}`,`description=${st(t.description||t.name||"A VeADK orchestrator agent.")}`];if(r==="loop"){const a=Number.isFinite(t.maxIterations)?Number(t.maxIterations):3;o.push(`max_iterations=${a>0?a:3}`)}return o.push(`sub_agents=[${s.join(", ")}]`),e.preLines.push(`${n} = ${i}( + ${o.join(`, + `)}, +)`),n}function yK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${st(Ui(t.name,n))}`,`url=${st((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( + ${r.join(`, + `)}, +)`),n}function q0(e,t,n){var l,c,d,u,h,p,g,b,x,m;const r=t.agentType??"llm";if(r==="a2a")return yK(e,t,n);if(r!=="llm")return gK(e,t,n);const i=[];for(const y of t.builtinTools??[]){const w=dK(y);w&&(e.imports.includes(w.importLine)||e.imports.push(w.importLine),i.push(...w.toolNames),aa(e,w.env),w.pipExtra&&e.extras.add(w.pipExtra))}for(const y of t.customTools??[])(l=y.name)!=null&&l.trim()&&i.push(_1(e,y.name,y.description));for(const y of t.mcpTools??[])if(y.transport==="http"&&((c=y.url)!=null&&c.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams");const w=Su(e,`${y.name||"mcp"}_mcp`,"mcp_tool"),v=(d=y.authToken)!=null&&d.trim()?`, headers={"Authorization": ${st(`Bearer ${y.authToken.trim()}`)}}`:"";e.preLines.push(`${w} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${st(y.url.trim())}${v}))`),i.push(w)}else if(y.transport==="stdio"&&((u=y.command)!=null&&u.trim())){e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset"),e.imports.push("from google.adk.tools.mcp_tool.mcp_toolset import StdioConnectionParams, StdioServerParameters");const w=Su(e,`${y.name||"mcp"}_mcp`,"mcp_tool"),v=`[${(y.args??[]).filter(_=>_==null?void 0:_.trim()).map(_=>st(_)).join(", ")}]`;e.preLines.push(`${w} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${st(y.command.trim())}, args=${v}), timeout=30))`),i.push(w)}for(const y of t.tools??[])y!=null&&y.trim()&&i.push(_1(e,y,""));const s=(t.selectedSkills??[]).map(y=>y.folder).filter(y=>!!y&&y.trim().length>0);if(s.length>0){e.imports.push("from pathlib import Path as _Path"),e.imports.push("from google.adk.skills import load_skill_from_dir"),e.imports.push("from google.adk.tools.skill_toolset import SkillToolset");const y=Su(e,`skills_${n}`,"skill_toolset"),w=s.map(v=>` load_skill_from_dir(_Path(__file__).parent.parent.parent / "skills" / ${st(v)})`);e.preLines.push(`${y} = SkillToolset(skills=[ +${w.join(`, +`)}, + ])`),i.push(y)}const o=[`name=${st(Ui(t.name,n))}`,`description=${st(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${ZC(t.instruction||"You are a helpful assistant.")}`),i.length&&o.push(`tools=[${i.join(", ")}]`),(h=t.modelName)!=null&&h.trim()&&o.push(`model_name=${st(t.modelName.trim())}`),(p=t.modelProvider)!=null&&p.trim()&&o.push(`model_provider=${st(t.modelProvider.trim())}`),(g=t.modelApiBase)!=null&&g.trim()&&o.push(`model_api_base=${st(t.modelApiBase.trim())}`),(b=t.memory)!=null&&b.shortTerm){const y=fK(t.shortTermBackend||"local");if(y){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const w=[`backend=${st(y.id)}`];y.extraArgs&&w.push(y.extraArgs);const v=`stm_${n}`;e.preLines.push(`${v} = ShortTermMemory(${w.join(", ")})`),o.push(`short_term_memory=${v}`),aa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if((x=t.memory)!=null&&x.longTerm){const y=hK(t.longTermBackend||"local");if(y){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const w=Ui(t.name,n),v=`ltm_${n}`;e.preLines.push(`${v} = LongTermMemory(backend=${st(y.id)}, index=${st(w)}, app_name=${st(w)})`),o.push(`long_term_memory=${v}`),t.autoSaveSession&&o.push("auto_save_session=True"),aa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if(t.knowledgebase){const y=pK(t.knowledgebaseBackend||"local");if(y){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const w=Ui(t.name+"_kb",n+"_kb"),v=`kb_${n}`;e.preLines.push(`${v} = KnowledgeBase(backend=${st(y.id)}, index=${st(w)}, app_name=${st(w)})`),o.push(`knowledgebase=${v}`),aa(e,y.env),y.pipExtra&&e.extras.add(y.pipExtra)}}if(t.tracing&&(((m=t.tracingExporters)==null?void 0:m.length)??0)>0){e.imports.push("from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer");const y=`tracer_${n}`;e.preLines.push(`${y} = OpentelemetryTracer()`),o.push(`tracers=[${y}]`);for(const w of t.tracingExporters??[]){const v=mK(w);v&&(e.env.push({key:v.enableFlag,required:!0,placeholder:"true",comment:`${v.label} 开关`}),aa(e,v.env))}}t.enableA2ui&&(o.push("enable_a2ui=True"),e.extras.add("a2ui"));const a=[];return(t.subAgents??[]).forEach((y,w)=>{const v=`${n}_sub_${w+1}`;q0(e,y,v),a.push(v)}),a.length&&o.push(`sub_agents=[${a.join(", ")}]`),e.preLines.push(`${n} = Agent( + ${o.join(`, + `)}, +)`),n}function bK(e){const t=new Map;for(const n of e){const r=t.get(n.key);r?n.required&&!r.required&&(r.required=!0):t.set(n.key,{...n})}return[...t.values()]}function wK(e){const t=["# 复制为 .env 并填入真实值(或改用 config.yaml)。","# 标记 [必填] 的变量缺失时 Agent 无法启动。",""];for(const n of e)(n.comment||n.required)&&t.push(`# ${n.required?"[必填] ":""}${n.comment??""}`.trimEnd()),t.push(`${n.key}=${n.placeholder??""}`);return t.join(` +`)+` +`}function xK(e,t){const n=[...e];t&&n.push("extensions");const r=[...new Set(n)].sort(),s=[r.length?`veadk-python[${r.join(",")}]${t?">=0.5.34":""}`:"veadk-python","agentkit-sdk-python","google-adk"];return t&&s.push("starlette<1.0.0"),`${s.join(` +`)} +`}function vK(e,t){var r;const n=[`# ${e}`,"",t.description||"由 VeADK Web UI「自定义模式」生成的 Agent 项目。","","## 运行","","```bash","pip install -r requirements.txt","cp .env.example .env # 填入你的密钥","python app.py","```","","`app.py` 使用 AgentKit AgentServerApp 包裹 `root_agent`,监听 `0.0.0.0:8000`。",""];return(r=t.deployment)!=null&&r.feishuEnabled&&n.push("## 飞书机器人","","在 VeADK 前端部署时勾选「飞书」并填写 App ID / App Secret,runtime 会在同一进程内启动 FeishuChannelExtension。",""),n.join(` +`)}function JC(e){var d;const t=Ui(e.name,"my_agent"),n={imports:[],preLines:[],env:[...uK],extras:new Set,usedNames:new Set},r=!!((d=e.deployment)!=null&&d.feishuEnabled);r&&n.env.push({key:"FEISHU_APP_ID",required:!1,placeholder:"cli_xxx",comment:"飞书机器人 App ID(前端部署时填写)"},{key:"FEISHU_APP_SECRET",required:!1,placeholder:"your-feishu-app-secret",comment:"飞书机器人 App Secret(前端部署时填写)"}),q0(n,e,"agent");const i=["from veadk import Agent",...kK(n.imports)].join(` +`),s=["import os",...r?["import asyncio","import inspect","import threading","import traceback","from contextlib import asynccontextmanager","from veadk.extensions import FeishuChannelExtension"]:[],"from pathlib import Path","from agentkit.apps import AgentkitAgentServerApp","from fastapi.staticfiles import StaticFiles","from veadk.memory.short_term_memory import ShortTermMemory",`from agents.${t}.agent import root_agent`].join(` +`),o=n.preLines.join(` + +`)+` + +# ADK 加载器要求:顶层 agent 必须命名为 root_agent +root_agent = agent +`,a=i+` + +`+o,c=[{path:"app.py",content:`${s} + +# Deployment configuration +HOST = os.getenv("HOST", "0.0.0.0") +PORT = int(os.getenv("PORT", "8000")) +${r?`FEISHU_CHANNEL_ENABLED = True + +def _get_feishu_channel_method(channel, names): + raw_channel = getattr(channel, "channel", None) + for target in (raw_channel, channel): + if target is None: + continue + for name in names: + method = getattr(target, name, None) + if method is not None: + return method + return None + +def _call_feishu_channel_method(loop, method): + result = method() + if inspect.isawaitable(result): + return loop.run_until_complete(result) + return result + +def _connect_feishu_channel(loop, channel) -> None: + connect = _get_feishu_channel_method(channel, ("start", "connect")) + if connect is None: + raise AttributeError("Feishu channel has no start/connect method") + return _call_feishu_channel_method(loop, connect) + +def _disconnect_feishu_channel(loop, channel) -> None: + disconnect = _get_feishu_channel_method(channel, ("stop", "disconnect")) + if disconnect is None: + return None + return _call_feishu_channel_method(loop, disconnect) + +def _stop_feishu_channel_from_lifespan(channel) -> None: + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + return _disconnect_feishu_channel(loop, channel) + finally: + asyncio.set_event_loop(None) + loop.close() + +def _build_feishu_channel(runner, app_id, app_secret): + return FeishuChannelExtension( + runner=runner, + app_id=app_id, + app_secret=app_secret, + channel_kwargs={ + "transport": "ws", + }, + streaming=False, + reactions=False, + ) + +def _run_feishu_channel(runner, app_id, app_secret, stop_event, state) -> None: + loop = asyncio.new_event_loop() + state["loop"] = loop + asyncio.set_event_loop(loop) + try: + while not stop_event.is_set(): + channel = None + try: + channel = _build_feishu_channel(runner, app_id, app_secret) + state["channel"] = channel + print("feishu channel connecting in dedicated thread", flush=True) + _connect_feishu_channel(loop, channel) + print("feishu channel disconnected; reconnecting in 5s", flush=True) + except Exception as exc: + if channel is None: + print( + f"feishu channel initialization failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + print(traceback.format_exc(), flush=True) + else: + print( + f"feishu channel connect failed: {type(exc).__name__}: {exc}; reconnecting in 5s", + flush=True, + ) + finally: + if channel is not None: + try: + _disconnect_feishu_channel(loop, channel) + except Exception as exc: + print( + f"feishu channel disconnect failed: {type(exc).__name__}: {exc}", + flush=True, + ) + finally: + if state.get("channel") is channel: + state["channel"] = None + stop_event.wait(5) + finally: + asyncio.set_event_loop(None) + state["loop"] = None + loop.close() + +async def _start_feishu_channel(app, runner) -> None: + if not FEISHU_CHANNEL_ENABLED: + return + + app_id = os.getenv("FEISHU_APP_ID") + app_secret = os.getenv("FEISHU_APP_SECRET") + if not app_id or not app_secret: + print( + "feishu channel disabled: FEISHU_APP_ID or FEISHU_APP_SECRET is missing", + flush=True, + ) + return + + app.state.feishu_channel_state = {"channel": None, "loop": None} + app.state.feishu_channel_stop_event = threading.Event() + app.state.feishu_channel_thread = threading.Thread( + target=_run_feishu_channel, + args=( + runner, + app_id, + app_secret, + app.state.feishu_channel_stop_event, + app.state.feishu_channel_state, + ), + name="feishu-channel", + daemon=True, + ) + app.state.feishu_channel_thread.start() + print("feishu channel background thread started", flush=True) + +async def _stop_feishu_channel(app) -> None: + stop_event = getattr(app.state, "feishu_channel_stop_event", None) + if stop_event is not None: + stop_event.set() + state = getattr(app.state, "feishu_channel_state", None) or {} + channel = state.get("channel") + if channel is not None: + await asyncio.to_thread(_stop_feishu_channel_from_lifespan, channel) + thread = getattr(app.state, "feishu_channel_thread", None) + if thread is not None: + await asyncio.to_thread(thread.join, 2) + if thread.is_alive(): + print( + "feishu channel background thread did not stop within 2s", + flush=True, + ) +`:""} +def build_app(): + """Build AgentKit AgentServerApp for deployment.""" + import veadk +${r?` from veadk import Runner +`:""} WEBUI_DIR = Path(veadk.__file__).resolve().parent / "webui" + + # AgentKit's AgentServerApp exposes the ADK-compatible API surface + # (/list-apps, /run, /run_sse, sessions) expected by AgentKit runtime tests. + short_term_memory = getattr(root_agent, "short_term_memory", None) or ShortTermMemory( + backend="local" + ) +${r?` runner = Runner( + agent=root_agent, + app_name=getattr(root_agent, "name", "") or "agent", + short_term_memory=short_term_memory, + ) +`:""} agent_server_app = AgentkitAgentServerApp( + agent=root_agent, + short_term_memory=short_term_memory, + ) + app = agent_server_app.app + +${r?` original_lifespan = app.router.lifespan_context + + @asynccontextmanager + async def lifespan(fastapi_app): + async with original_lifespan(fastapi_app): + await _start_feishu_channel(fastapi_app, runner) + try: + yield + finally: + await _stop_feishu_channel(fastapi_app) + + app.router.lifespan_context = lifespan +`:""} # Add health check endpoint + @app.get("/ping") + def ping() -> dict[str, str]: + return {"status": "ok"} + + # Agent-structure introspection (data plane), consumed by the VeADK web + # UI's "管理 Agent" view to show this runtime's agent name + sub-agent tree. + from fastapi import HTTPException as _HTTPException + + def _agent_type(a: object) -> str: + try: + from google.adk.agents import LoopAgent, ParallelAgent, SequentialAgent + + if isinstance(a, LoopAgent): + return "loop" + if isinstance(a, SequentialAgent): + return "sequential" + if isinstance(a, ParallelAgent): + return "parallel" + except Exception: + pass + try: + from google.adk.agents.remote_a2a_agent import RemoteA2aAgent + + if isinstance(a, RemoteA2aAgent): + return "a2a" + except Exception: + pass + return "llm" + + def _model_name(m: object) -> str: + if isinstance(m, str): + return m + return str(getattr(m, "model", None) or type(m).__name__) + + def _tool_label(t: object) -> str: + name = getattr(t, "name", None) or getattr(t, "__name__", None) + return str(name or type(t).__name__) + + def _agent_node(a: object, depth: int = 0) -> dict: + children = [] + if depth < 8: + children = [_agent_node(s, depth + 1) for s in getattr(a, "sub_agents", []) or []] + return { + "name": getattr(a, "name", "") or "", + "description": getattr(a, "description", "") or "", + "type": _agent_type(a), + "model": _model_name(getattr(a, "model", "")), + "tools": [_tool_label(t) for t in getattr(a, "tools", []) or []], + "children": children, + } + + @app.get("/web/agent-info/{app_name}") + def agent_info(app_name: str) -> dict: + expected_name = getattr(root_agent, "name", "") or "" + if app_name != expected_name: + raise _HTTPException(status_code=404, detail="unknown agent: " + app_name) + return { + "name": expected_name or app_name, + "description": getattr(root_agent, "description", "") or "", + "type": _agent_type(root_agent), + "model": _model_name(getattr(root_agent, "model", "")), + "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], + "subAgents": [getattr(s, "name", "") for s in getattr(root_agent, "sub_agents", []) or []], + "graph": _agent_node(root_agent), + } + + @app.get("/web/agent-graph") + def agent_graph() -> dict: + # Single introspection endpoint on the main agent: returns this runtime's + # root agent + recursive sub-agent tree, with no /list-apps discovery + # needed. Used by the VeADK "管理 Agent" view. + return { + "name": getattr(root_agent, "name", "") or "", + "description": getattr(root_agent, "description", "") or "", + "type": _agent_type(root_agent), + "model": _model_name(getattr(root_agent, "model", "")), + "tools": [_tool_label(t) for t in getattr(root_agent, "tools", []) or []], + "graph": _agent_node(root_agent), + } + + # Serve the bundled VeADK web UI without taking over "/", which is reserved + # by AgentServerApp for the A2A protocol surface. + if (WEBUI_DIR / "index.html").is_file(): + if (WEBUI_DIR / "assets").is_dir(): + app.mount( + "/assets", + StaticFiles(directory=str(WEBUI_DIR / "assets")), + name="webui-assets", + ) + + from fastapi.responses import FileResponse as _FileResponse + + @app.get("/") + @app.get("/webui") + @app.get("/webui/{path:path}") + def webui(path: str = ""): + return _FileResponse(WEBUI_DIR / "index.html") + + # AgentServerApp mounts A2A at "/", so routes added after construction must + # be moved before that root mount or they will be shadowed. + _priority_paths = { + "/", + "/ping", + "/web/agent-info/{app_name}", + "/web/agent-graph", + "/assets", + "/webui", + "/webui/{path:path}", + } + _priority_routes = [ + r for r in app.router.routes if getattr(r, "path", None) in _priority_paths + ] + if _priority_routes: + app.router.routes[:] = _priority_routes + [ + r for r in app.router.routes if r not in _priority_routes + ] + + return agent_server_app, app + +agent_server_app, app = build_app() + +if __name__ == "__main__": + agent_server_app.run(host=HOST, port=PORT) +`},{path:`agents/${t}/agent.py`,content:a},{path:`agents/${t}/__init__.py`,content:`from .agent import root_agent + +__all__ = ["root_agent"] +`},{path:".env.example",content:wK(bK(n.env))},{path:"requirements.txt",content:xK(n.extras,r)},{path:"README.md",content:vK(t,e)}];return{name:t,files:c}}function kK(e){return[...new Set(e)]}const _K=new Set(["local","sqlite","mysql","postgresql"]),EK=new Set(["local","opensearch","redis","viking","mem0"]),SK=new Set(["local","opensearch","viking","context_search"]),NK=new Set(["apmplus","cozeloop","tls"]),e2=new Set(TK());function TK(){return["web_search","parallel_web_search","link_reader","web_scraper","image_generate","image_edit","video_generate","text_to_speech","vesearch"]}function Pe(e,t=""){return typeof e=="string"?e:t}function vi(e){return e===!0}function Nu(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function t2(e){return Array.isArray(e)?e.map(t=>t&&typeof t=="object"?{name:Pe(t.name),description:Pe(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function ip(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const AK=new Set(["llm","sequential","parallel","loop","a2a"]);function n2(e){return typeof e=="string"&&AK.has(e)?e:"llm"}function r2(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):3}function i2(e){return Array.isArray(e)?e.map(t=>{const n=t&&typeof t=="object"?t:{};return{...fs(),name:Pe(n.name),description:Pe(n.description),instruction:Pe(n.instruction),agentType:n2(n.agentType),maxIterations:r2(n.maxIterations),a2aUrl:Pe(n.a2aUrl),builtinTools:Nu(n.builtinTools).filter(r=>e2.has(r)),customTools:t2(n.customTools),subAgents:i2(n.subAgents)}}):[]}function s2(e){const t=e&&typeof e=="object"?e:{},n=t.memory&&typeof t.memory=="object"?t.memory:{},r=t.deployment&&typeof t.deployment=="object"?t.deployment:{},i=i2(t.subAgents),s=Array.isArray(t.mcpTools)?t.mcpTools.map(o=>{const a=o&&typeof o=="object"?o:{},l=a.transport==="stdio"?"stdio":"http";return{name:Pe(a.name),transport:l,url:Pe(a.url),authToken:Pe(a.authToken),command:Pe(a.command),args:Nu(a.args)}}).filter(o=>o.transport==="http"?!!o.url:!!o.command):[];return{...fs(),name:Pe(t.name)||"my_agent",description:Pe(t.description),instruction:Pe(t.instruction)||"You are a helpful assistant.",agentType:n2(t.agentType),maxIterations:r2(t.maxIterations),a2aUrl:Pe(t.a2aUrl),modelName:Pe(t.modelName),modelProvider:Pe(t.modelProvider),modelApiBase:Pe(t.modelApiBase),builtinTools:Nu(t.builtinTools).filter(o=>e2.has(o)),customTools:t2(t.customTools),mcpTools:s,memory:{shortTerm:vi(n.shortTerm),longTerm:vi(n.longTerm)},shortTermBackend:ip(t.shortTermBackend,_K,"local"),longTermBackend:ip(t.longTermBackend,EK,"local"),autoSaveSession:vi(t.autoSaveSession),knowledgebase:vi(t.knowledgebase),knowledgebaseBackend:ip(t.knowledgebaseBackend,SK,"local"),tracing:vi(t.tracing),tracingExporters:Nu(t.tracingExporters).filter(o=>NK.has(o)),enableA2ui:vi(t.enableA2ui),deployment:{feishuEnabled:vi(r.feishuEnabled)},subAgents:i,selectedSkills:(()=>{if(!Array.isArray(t.selectedSkills))return[];const o=[];for(const a of t.selectedSkills){const l=a&&typeof a=="object"?a:{},c=Pe(l.source),d=c==="local"||c==="skillspace"||c==="skillhub"?c:"skillhub",u=Pe(l.name)||Pe(l.slug)||Pe(l.skillName)||Pe(l.skillId)||"skill",h=Pe(l.folder)||u,p=Pe(l.description);if(d==="skillhub"){const x=Pe(l.slug);if(!x)continue;o.push({source:d,folder:h,name:u,description:p,slug:x,namespace:Pe(l.namespace)||"public"});continue}if(d==="local"){const m=(Array.isArray(l.localFiles)?l.localFiles:[]).map(y=>{const w=y&&typeof y=="object"?y:{},v=Pe(w.path),_=Pe(w.content);return v?{path:v,content:_}:null}).filter(y=>y!==null);if(m.length===0)continue;o.push({source:d,folder:h,name:u,description:p,localFiles:m});continue}const g=Pe(l.skillSpaceId),b=Pe(l.skillId);!g||!b||o.push({source:d,folder:h,name:u,description:p,skillSpaceId:g,skillSpaceName:Pe(l.skillSpaceName),skillId:b,version:Pe(l.version)})}return o})()}}function CK(e){var n,r,i,s,o,a,l,c,d,u,h,p;const t={name:e.name,description:e.description,instruction:e.instruction};return(n=e.modelName)!=null&&n.trim()&&(t.modelName=e.modelName.trim()),(r=e.modelProvider)!=null&&r.trim()&&(t.modelProvider=e.modelProvider.trim()),(i=e.modelApiBase)!=null&&i.trim()&&(t.modelApiBase=e.modelApiBase.trim()),(s=e.builtinTools)!=null&&s.length&&(t.builtinTools=[...e.builtinTools]),(o=e.customTools)!=null&&o.length&&(t.customTools=e.customTools.map(g=>({name:g.name,description:g.description}))),(a=e.mcpTools)!=null&&a.length&&(t.mcpTools=e.mcpTools.map(g=>{var x,m,y,w;const b={name:g.name,transport:g.transport};return(x=g.url)!=null&&x.trim()&&(b.url=g.url.trim()),(m=g.authToken)!=null&&m.trim()&&(b.authToken=g.authToken.trim()),(y=g.command)!=null&&y.trim()&&(b.command=g.command.trim()),(w=g.args)!=null&&w.length&&(b.args=g.args),b})),((l=e.memory)!=null&&l.shortTerm||(c=e.memory)!=null&&c.longTerm)&&(t.memory={shortTerm:!!e.memory.shortTerm,longTerm:!!e.memory.longTerm},e.memory.shortTerm&&(t.shortTermBackend=e.shortTermBackend||"local"),e.memory.longTerm&&(t.longTermBackend=e.longTermBackend||"local",t.autoSaveSession=!!e.autoSaveSession)),e.knowledgebase&&(t.knowledgebase=!0,t.knowledgebaseBackend=e.knowledgebaseBackend||"local"),e.tracing&&((d=e.tracingExporters)!=null&&d.length)&&(t.tracing=!0,t.tracingExporters=[...e.tracingExporters]),e.enableA2ui&&(t.enableA2ui=!0),(u=e.deployment)!=null&&u.feishuEnabled&&(t.deployment={feishuEnabled:!0}),(h=e.selectedSkills)!=null&&h.length&&(t.selectedSkills=e.selectedSkills.map(g=>{const b={source:g.source,name:g.name,folder:g.folder};return g.description&&(b.description=g.description),g.source==="skillhub"?(b.slug=g.slug,b.namespace=g.namespace??"public"):g.source==="local"?b.localFiles=g.localFiles??[]:(b.skillSpaceId=g.skillSpaceId,b.skillSpaceName=g.skillSpaceName,b.skillId=g.skillId,g.version&&(b.version=g.version)),b})),(p=e.subAgents)!=null&&p.length&&(t.subAgents=e.subAgents.map(g=>{var x,m;const b={name:g.name,description:g.description,instruction:g.instruction};return(x=g.builtinTools)!=null&&x.length&&(b.builtinTools=[...g.builtinTools]),(m=g.customTools)!=null&&m.length&&(b.customTools=g.customTools.map(y=>({name:y.name,description:y.description}))),b})),t}function E1(e){return`# VeADK Agent 结构配置 +# 可在「创建 Agent」页通过「导入 YAML」重新载入。 +`+cK(CK(e))}function o2(e){const t=lK(e);return s2(t)}const IK=[{kind:"intelligent",icon:iB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:fB,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:J$,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:hB,title:"工作流",desc:"敬请期待",disabled:!0}];function MK({onSelect:e,onImport:t}){const n=E.useRef(null),[r,i]=E.useState(""),s=IK.map(a=>({key:a.kind,icon:a.icon,title:a.title,desc:a.desc,disabled:a.disabled,onClick:()=>e(a.kind)})),o=async a=>{var c;const l=(c=a.target.files)==null?void 0:c[0];if(a.target.value="",!!l)try{const d=await l.text();t(o2(d))}catch(d){i(`导入失败:${d instanceof Error?d.message:String(d)}`)}};return f.jsx(aC,{title:"从 0 快速创建",sub:"选择一种方式开始",cards:s,footer:f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:8},children:[f.jsxs("button",{className:"stk-import",onClick:()=>{var a;return(a=n.current)==null?void 0:a.click()},children:[f.jsx(uB,{}),"导入 YAML 配置"]}),r&&f.jsx("span",{style:{fontSize:12,color:"hsl(var(--destructive))"},children:r}),f.jsx("input",{ref:n,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:o})]})})}const OK="modulepreload",RK=function(e){return"/"+e},S1={},N1=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(n.map(l=>{if(l=RK(l),l in S1)return;S1[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const u=document.createElement("link");if(u.rel=c?"stylesheet":OK,c||(u.as="script"),u.crossOrigin="",u.href=l,a&&u.setAttribute("nonce",a),document.head.appendChild(u),c)return new Promise((h,p)=>{u.addEventListener("load",h),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return i.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})},LK=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function PK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Qe(e,t){e.push(t&255,t>>>8&255)}function rn(e,t){e.push(t&255,t>>>8&255,t>>>16&255,t>>>24&255)}const T1=2048,sp=20,A1=0;function DK(e){const t=new TextEncoder,n=[],r=[];let i=0;for(const p of e){const g=t.encode(p.path),b=t.encode(p.content),x=PK(b),m=b.length,y=[];rn(y,67324752),Qe(y,sp),Qe(y,T1),Qe(y,A1),Qe(y,0),Qe(y,0),rn(y,x),rn(y,m),rn(y,m),Qe(y,g.length),Qe(y,0);const w=Uint8Array.from(y);n.push(w,g,b),r.push({nameBytes:g,dataBytes:b,crc:x,size:m,offset:i}),i+=w.length+g.length+b.length}const s=i,o=[];let a=0;for(const p of r){const g=[];rn(g,33639248),Qe(g,sp),Qe(g,sp),Qe(g,T1),Qe(g,A1),Qe(g,0),Qe(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Qe(g,p.nameBytes.length),Qe(g,0),Qe(g,0),Qe(g,0),Qe(g,0),rn(g,0),rn(g,p.offset);const b=Uint8Array.from(g);o.push(b,p.nameBytes),a+=b.length+p.nameBytes.length}const l=[];rn(l,101010256),Qe(l,0),Qe(l,0),Qe(l,r.length),Qe(l,r.length),rn(l,a),rn(l,s),Qe(l,0);const c=[...n,...o,Uint8Array.from(l)],d=c.reduce((p,g)=>p+g.length,0),u=new Uint8Array(d);let h=0;for(const p of c)u.set(p,h),h+=p.length;return new Blob([u],{type:"application/zip"})}tn.registerLanguage("python",RA);tn.registerLanguage("typescript",KA);tn.registerLanguage("javascript",TA);tn.registerLanguage("json",AA);tn.registerLanguage("yaml",qA);tn.registerLanguage("markdown",OA);tn.registerLanguage("bash",vA);tn.registerLanguage("ini",kA);tn.registerLanguage("dockerfile",RV);tn.registerLanguage("makefile",MA);const jK={py:"python",pyi:"python",ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",cjs:"javascript",json:"json",jsonc:"json",yaml:"yaml",yml:"yaml",md:"markdown",markdown:"markdown",sh:"bash",bash:"bash",zsh:"bash",toml:"ini",ini:"ini",cfg:"ini",conf:"ini",env:"ini",txt:"plaintext"},C1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function I1(e){return e.replace(/&/g,"&").replace(//g,">")}function $K(e){const n=(e.split("/").pop()??e).toLowerCase();if(C1[n])return C1[n];if(n.startsWith("dockerfile"))return"dockerfile";if(n.startsWith(".env"))return"ini";const r=n.lastIndexOf(".");if(r===-1)return null;const i=n.slice(r+1);return jK[i]??null}function BK(e,t){try{const n=$K(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:I1(e)}catch{return I1(e)}}const op=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function FK(e){const t={name:"",children:new Map};for(const n of e){const r=n.path.split("/").filter(Boolean);let i=t;r.forEach((s,o)=>{let a=i.children.get(s);a||(a={name:s,children:new Map},i.children.set(s,a)),o===r.length-1&&(a.path=n.path),i=a})}return t}function zK(e){return[...e.children.values()].sort((t,n)=>{const r=t.children.size>0&&t.path===void 0,i=n.children.size>0&&n.path===void 0;return r!==i?r?-1:1:t.name.localeCompare(n.name)})}function ig(e="",t=""){return{id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,key:e,value:t}}const M1=new Set(["FEISHU_APP_ID","FEISHU_APP_SECRET"]);function O1(e){return e?[ig("FEISHU_APP_ID",""),ig("FEISHU_APP_SECRET","")]:[]}function W0({project:e,onChange:t,onDeploy:n,onAgentAdded:r,feishuEnabled:i=!1}){var ce,de,le,oe;const s=typeof t=="function",[o,a]=E.useState(((de=(ce=e==null?void 0:e.files)==null?void 0:ce[0])==null?void 0:de.path)??null),[l,c]=E.useState(new Set),[d,u]=E.useState(!1),[h,p]=E.useState(""),[g,b]=E.useState(!1),[x,m]=E.useState(null),[y,w]=E.useState(null),[v,_]=E.useState({}),[k,T]=E.useState(null),[N,I]=E.useState(!1),[A,D]=E.useState(()=>O1(i)),[R,F]=E.useState(!1);E.useEffect(()=>{if(!i){D(G=>G.filter(ee=>!ee.key.startsWith("TOOL_FEISHU_CHANNEL_")&&!M1.has(ee.key)));return}D(G=>{const ee=G.filter(ge=>!ge.key.startsWith("TOOL_FEISHU_CHANNEL_")),B=new Map(ee.map(ge=>[ge.key,ge])),Y=O1(!0),X=[...ee];for(const ge of Y)B.has(ge.key)||X.push(ge);return X})},[i]);const O=E.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:FK(e.files),[e==null?void 0:e.files]);if(!e||!Array.isArray(e.files))return f.jsx("div",{className:"pp-error",children:"项目数据无效"});const P=e.files.find(G=>G.path===o)??null;function M(G){c(ee=>{const B=new Set(ee);return B.has(G)?B.delete(G):B.add(G),B})}function $(G,ee){t&&(t({...e,files:G}),ee!==void 0&&a(ee))}function L(G){P&&$(e.files.map(ee=>ee.path===P.path?{...ee,content:G}:ee))}function j(){const G=h.trim();if(u(!1),p(""),!!G){if(e.files.some(ee=>ee.path===G)){a(G);return}$([...e.files,{path:G,content:""}],G)}}function S(){if(!P)return;const G=window.prompt("重命名文件",P.path),ee=G==null?void 0:G.trim();!ee||ee===P.path||e.files.some(B=>B.path===ee)||$(e.files.map(B=>B.path===P.path?{...B,path:ee}:B),ee)}function H(){var ee;if(!P)return;const G=e.files.filter(B=>B.path!==P.path);$(G,((ee=G[0])==null?void 0:ee.path)??null)}function V(G,ee){D(B=>B.map(Y=>Y.id===G?{...Y,...ee}:Y))}function C(G){D(ee=>ee.filter(B=>B.id!==G))}function U(){D(G=>[...G,ig()])}function W(){return A.map(G=>({key:G.key.trim(),value:G.value})).filter(G=>G.key.length>0)}async function Z(){if(!n||g)return;const G=W();if(i){const ee=new Map(G.map(B=>[B.key,B.value.trim()]));if(!ee.get("FEISHU_APP_ID")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_ID。");return}if(!ee.get("FEISHU_APP_SECRET")){m("启用飞书后,请在右侧环境变量中填写 FEISHU_APP_SECRET。");return}}m(null),w(null),_({}),T(null),b(!0);try{const ee=await n(e,B=>{_(Y=>({...Y,[B.phase]:B})),T(B.phase)},i?{im:{feishu:{enabled:!0}},envs:G}:{envs:G});w(ee),T(null)}catch(ee){m(ee instanceof Error?ee.message:String(ee))}finally{b(!1)}}async function J(){if(!(!y||N)){I(!0),m(null);try{const{addConnection:G,remoteAppId:ee,loadConnections:B}=await N1(async()=>{const{addConnection:X,remoteAppId:ge,loadConnections:ye}=await Promise.resolve().then(()=>Yx);return{addConnection:X,remoteAppId:ge,loadConnections:ye}},void 0),Y=await G(y.agentName,y.url,y.apikey,"");if(Y.apps.length===0)m("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。");else{const X={...Y,appLabels:{[Y.apps[0]]:y.agentName}},ye=B().map(_e=>_e.id===Y.id?X:_e);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(ye));const{registerConnections:fe}=await N1(async()=>{const{registerConnections:_e}=await Promise.resolve().then(()=>Yx);return{registerConnections:_e}},void 0);if(fe(ye),r){const _e=ee(Y.id,Y.apps[0]);r(_e,y.agentName)}else alert(`🎉 Agent "${y.agentName}" 已添加到左上角下拉列表!`)}}catch(G){m(`添加 Agent 失败:${G instanceof Error?G.message:String(G)}`)}finally{I(!1)}}}function q(){const G=DK(e.files),ee=URL.createObjectURL(G),B=document.createElement("a");B.href=ee,B.download=`${e.name||"project"}.zip`,document.body.appendChild(B),B.click(),document.body.removeChild(B),URL.revokeObjectURL(ee)}function te(G,ee,B){return zK(G).map(Y=>{const X=B?`${B}/${Y.name}`:Y.name,ge=Y.path!==void 0,ye={paddingLeft:8+ee*14};if(ge){const _e=Y.path===o;return f.jsxs("button",{type:"button",className:`pp-row pp-file${_e?" pp-active":""}`,style:ye,onClick:()=>a(Y.path),title:Y.path,children:[f.jsx(H$,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]},X)}const fe=l.has(X);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:ye,onClick:()=>M(X),children:[f.jsx(Wn,{className:`pp-ic pp-chevron${fe?"":" pp-open"}`}),f.jsx(q$,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]}),!fe&&te(Y,ee+1,X)]},X)})}return f.jsxs("div",{className:"pp-root",children:[f.jsxs("div",{className:"pp-sidebar",children:[f.jsxs("div",{className:"pp-sidebar-head",children:[f.jsx("span",{className:"pp-project-name",title:e.name,children:e.name||"Project"}),s&&f.jsx("button",{type:"button",className:"pp-icon-btn",title:"新建文件",onClick:()=>{u(!0),p("")},children:f.jsx(U$,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-tree",children:[d&&f.jsx("input",{className:"pp-new-input",autoFocus:!0,placeholder:"path/to/file.py",value:h,onChange:G=>p(G.target.value),onBlur:j,onKeyDown:G=>{G.key==="Enter"&&j(),G.key==="Escape"&&(u(!1),p(""))}}),e.files.length===0&&!d?f.jsx("div",{className:"pp-empty",children:"暂无文件"}):te(O,0,"")]})]}),f.jsxs("div",{className:"pp-main",children:[f.jsxs("div",{className:"pp-main-head",children:[f.jsx("span",{className:"pp-path",title:P==null?void 0:P.path,children:(P==null?void 0:P.path)??"未选择文件"}),f.jsxs("div",{className:"pp-actions",children:[s&&P&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"pp-icon-btn",title:"重命名",onClick:S,children:f.jsx(aB,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:H,children:f.jsx(jo,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:q,children:[f.jsx($$,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:Z,disabled:g,children:[g?f.jsx(ct,{className:"pp-ic spin"}):f.jsx(hl,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(g||y||Object.keys(v).length>0)&&f.jsx("ol",{className:"pp-steps",children:op.map((G,ee)=>{const B=k?op.findIndex(ye=>ye.phase===k):-1,Y=!!x&&(B===-1?ee===0:ee===B);let X;y?X="done":Y?X="failed":B===-1?X=g?"active":"pending":eeG.phase===k))==null?void 0:le.label)??k}阶段):`:"",x]}),y&&f.jsxs("div",{className:"pp-deploy-result",children:[f.jsxs("div",{className:"pp-deploy-result-header",children:[f.jsx("span",{className:"pp-deploy-result-icon",children:"🎉"}),f.jsx("span",{children:"部署成功!"})]}),f.jsxs("div",{className:"pp-deploy-result-body",children:[f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"Agent 名称"}),f.jsx("code",{children:y.agentName})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API 端点"}),f.jsx("code",{className:"pp-deploy-result-url",children:y.url})]}),f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"API Key 名称"}),f.jsx("code",{children:y.apikey})]}),((oe=y.feishuChannel)==null?void 0:oe.enabled)&&f.jsxs("div",{className:"pp-deploy-result-field",children:[f.jsx("label",{children:"飞书 Channel"}),f.jsxs("code",{children:["runtime 内启用 (",y.feishuChannel.transport,")"]})]})]}),f.jsxs("button",{type:"button",className:"pp-deploy-result-btn",onClick:J,disabled:N,children:[N?f.jsx(ct,{className:"pp-ic spin"}):null,N?"连接中…":"添加此 Agent"]})]}),f.jsx("div",{className:"pp-content",children:P==null?f.jsx("div",{className:"pp-placeholder",children:"选择左侧文件以查看内容"}):s?f.jsx("textarea",{className:"pp-textarea",spellCheck:!1,value:P.content,onChange:G=>L(G.target.value)}):f.jsx("pre",{className:"pp-pre hljs",dangerouslySetInnerHTML:{__html:BK(P.content,P.path)}})})]}),n&&f.jsxs("aside",{className:"pp-env-panel","aria-label":"环境变量",children:[f.jsxs("div",{className:"pp-env-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"pp-env-title",children:"环境变量"}),i&&f.jsx("div",{className:"pp-env-sub",children:"飞书 Channel 已开启,请填写 FEISHU_APP_ID 和 FEISHU_APP_SECRET。"})]}),f.jsx("button",{type:"button",className:"pp-icon-btn",title:R?"隐藏值":"显示值",onClick:()=>F(G=>!G),children:R?f.jsx(z$,{className:"pp-ic"}):f.jsx(Qy,{className:"pp-ic"})})]}),f.jsxs("div",{className:"pp-env-table",children:[f.jsxs("div",{className:"pp-env-row pp-env-row-head",children:[f.jsx("span",{children:"Key"}),f.jsx("span",{children:"Value"}),f.jsx("span",{})]}),A.length===0?f.jsx("div",{className:"pp-env-empty",children:"暂无环境变量"}):A.map(G=>{const ee=i&&M1.has(G.key),B=G.key==="FEISHU_APP_ID"?"cli_xxx":G.key==="FEISHU_APP_SECRET"?"输入 App Secret":"VALUE";return f.jsxs("div",{className:"pp-env-row",children:[f.jsx("input",{className:ee?"pp-env-key-fixed":void 0,value:G.key,placeholder:"KEY",readOnly:ee,disabled:g,autoComplete:"off",title:ee?"飞书必填变量":void 0,onChange:Y=>V(G.id,{key:Y.currentTarget.value})}),f.jsx("input",{type:R?"text":"password",value:G.value,placeholder:B,disabled:g,autoComplete:"off",onChange:Y=>V(G.id,{value:Y.currentTarget.value})}),ee?f.jsx("span",{className:"pp-env-remove-placeholder"}):f.jsx("button",{type:"button",className:"pp-icon-btn pp-env-remove",title:"删除变量",disabled:g,onClick:()=>C(G.id),children:f.jsx(Vl,{className:"pp-ic"})})]},G.id)})]}),f.jsxs("button",{type:"button",className:"pp-env-add",onClick:U,disabled:g,children:[f.jsx(Or,{className:"pp-ic"}),"添加变量"]})]})]})}const R1="dogfooding",ap="dogfooding",lp="dogfooding_b";let UK=0;const cp=()=>++UK;function L1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function VK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function P1(e){const t=[],n=VK(e);t.push(n);const r=n.indexOf("{"),i=n.lastIndexOf("}");r>=0&&i>r&&t.push(n.slice(r,i+1));for(const s of t)try{const o=JSON.parse(s);if(o&&typeof o=="object"&&(typeof o.name=="string"||typeof o.instruction=="string"))return JC(s2(o))}catch{}return null}function HK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=E.useState([{id:cp(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=E.useState(""),[l,c]=E.useState(!1),[d,u]=E.useState(null),[h,p]=E.useState(null),[g,b]=E.useState(!1),[x,m]=E.useState(null),[y,w]=E.useState(null),[v,_]=E.useState(!1),[k,T]=E.useState(!1),[N,I]=E.useState({}),A=E.useRef(null),D=E.useRef(null),R=E.useRef(null),F=E.useRef(null),O=E.useRef(null);E.useEffect(()=>{const U=F.current;U&&U.scrollTo({top:U.scrollHeight,behavior:"smooth"})},[i,l]),E.useEffect(()=>{const U=O.current;U&&(U.style.height="auto",U.style.height=Math.min(U.scrollHeight,160)+"px")},[o]);const P=U=>s(W=>[...W,{id:cp(),role:"assistant",text:U}]);async function M(){if(A.current)return A.current;const U=await Pm(R1,e);return A.current=U,U}async function $(U,W){if(W.current)return W.current;const Z=await Pm(U,e);return W.current=Z,Z}async function L(U,W){if(!N[U])try{const Z=await n0(W);I(J=>({...J,[U]:Z.model||W}))}catch{I(Z=>({...Z,[U]:W}))}}async function j(U,W,Z){const J=await $(U,W);let q=Gr();for await(const ce of fd({appName:U,userId:e,sessionId:J,text:Z}))q=pl(q,ce);const te=L1(q).trim();return{project:P1(te),finalText:te}}const S=async(U,W,Z)=>QN(U.name,U.files,{region:"cn-beijing",projectName:"default"},{...Z,onStage:W}),H=async()=>{const U=o.trim();if(!(!U||l)){if(s(W=>[...W,{id:cp(),role:"user",text:U}]),a(""),u(null),c(!0),g){m(null),w(null),_(!0),T(!0),L("a",ap),L("b",lp);const W=j(ap,D,U).then(({project:J})=>(m(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>_(!1)),Z=j(lp,R,U).then(({project:J})=>(w(J),J)).catch(J=>{const q=J instanceof Error?J.message:String(J);return u(q),null}).finally(()=>T(!1));try{const[J,q]=await Promise.all([W,Z]),te=[J?`方案 A:${J.name}`:null,q?`方案 B:${q.name}`:null].filter(Boolean);te.length?P(`已生成两个方案(${te.join(",")}),请在右侧对比后采用其一。`):P("(两个方案都没有返回可用的项目,请再描述一下你的需求。)")}finally{c(!1)}return}try{const W=await M();let Z=Gr();for await(const te of fd({appName:R1,userId:e,sessionId:W,text:U}))Z=pl(Z,te);const J=L1(Z).trim(),q=P1(J);q?(p(q),P(`已生成项目:${q.name}(${q.files.length} 个文件),可在右侧预览和编辑。`)):P(J||"(助手没有返回内容,请再描述一下你的需求。)")}catch(W){const Z=W instanceof Error?W.message:String(W);u(Z),P(`抱歉,调用智能构建助手失败:${Z}`)}finally{c(!1)}}},V=U=>{const W=U==="a"?x:y;if(!W)return;p(W),b(!1),m(null),w(null),_(!1),T(!1);const Z=U==="a"?"A":"B",J=U==="a"?N.a:N.b;P(`已采用方案 ${Z}(${J??(U==="a"?ap:lp)}),可继续编辑。`)},C=U=>{U.key==="Enter"&&!U.shiftKey&&!U.nativeEvent.isComposing&&(U.preventDefault(),H())};return f.jsx("div",{className:"ic-root",children:f.jsxs("div",{className:"ic-body",children:[f.jsxs("div",{className:"ic-chat",children:[f.jsxs("div",{className:"ic-transcript",ref:F,children:[f.jsx(by,{initial:!1,children:i.map(U=>f.jsxs(Dt.div,{className:`ic-turn ic-turn--${U.role}`,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.22,ease:"easeOut"},children:[U.role==="assistant"&&f.jsx("div",{className:"ic-avatar",children:f.jsx(yo,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:U.role==="assistant"?f.jsx(I0,{text:U.text}):U.text})]},U.id))}),l&&f.jsxs(Dt.div,{className:"ic-turn ic-turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},children:[f.jsx("div",{className:"ic-avatar",children:f.jsx(yo,{className:"ic-avatar-icon"})}),f.jsxs("div",{className:"ic-bubble ic-bubble--typing",children:[f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"}),f.jsx("span",{className:"ic-dot"})]})]})]}),d&&f.jsxs("div",{className:"ic-error",children:[f.jsx(P$,{className:"ic-error-icon"}),d]}),f.jsxs("div",{className:"ic-composer",children:[f.jsxs("div",{className:"ic-composer-box",children:[f.jsx("textarea",{ref:O,className:"ic-input",rows:1,placeholder:"描述你想要的 Agent,例如「一个帮我整理周报的写作助手」…",value:o,onChange:U=>a(U.target.value),onKeyDown:C,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void H(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(lB,{className:"ic-send-icon"})})]}),f.jsxs("div",{className:"ic-composer-foot",children:[f.jsxs("label",{className:"ic-ab-toggle",title:"同时用两个模型生成方案进行对比",children:[f.jsx("input",{type:"checkbox",className:"ic-ab-checkbox",checked:g,disabled:l,onChange:U=>b(U.target.checked)}),f.jsx("span",{className:"ic-ab-track",children:f.jsx("span",{className:"ic-ab-thumb"})}),f.jsx("span",{className:"ic-ab-label",children:"A/B 对比"})]}),f.jsx("div",{className:"ic-composer-hint",children:"Enter 发送 · Shift+Enter 换行"})]})]})]}),f.jsx("aside",{className:"ic-preview",children:g?f.jsxs("div",{className:"ic-compare",children:[f.jsx(D1,{side:"a",project:x,loading:v,model:N.a,onAdopt:()=>V("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(D1,{side:"b",project:y,loading:k,model:N.b,onAdopt:()=>V("b")})]}):h?f.jsx(W0,{project:h,onChange:p,onDeploy:S,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx(K$,{className:"ic-preview-empty-glyph"}),f.jsx(nf,{className:"ic-preview-empty-spark"})]}),f.jsx("div",{className:"ic-preview-empty-title",children:"还没有项目"}),f.jsx("div",{className:"ic-preview-empty-sub",children:"描述你的需求,我会帮你生成 VeADK 项目"})]})})]})})}function D1({side:e,project:t,loading:n,model:r,onAdopt:i}){const s=e==="a"?"方案 A":"方案 B";return f.jsxs("div",{className:"ic-pane",children:[f.jsxs("div",{className:"ic-pane-head",children:[f.jsxs("div",{className:"ic-pane-title",children:[f.jsx("span",{className:`ic-pane-tag ic-pane-tag--${e}`,children:s}),r&&f.jsx("span",{className:"ic-pane-model",children:r})]}),f.jsxs("button",{className:"ic-adopt",onClick:i,disabled:!t||n,title:`采用${s}`,children:["采用",e==="a"?"方案 A":"方案 B"]})]}),f.jsx("div",{className:"ic-pane-body",children:n?f.jsxs("div",{className:"ic-pane-loading",children:[f.jsx(ct,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx(W0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}function ki(e,t){return e[t]|e[t+1]<<8}function la(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function KK(e){const t=new DecompressionStream("deflate-raw"),n=new Blob([new Uint8Array(e)]).stream().pipeThrough(t);return new Uint8Array(await new Response(n).arrayBuffer())}async function a2(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(la(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=ki(e,n+10);let i=la(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;a{var a;return{source:"skillhub",id:o.Id??o.Slug??"",slug:o.Slug??"",name:o.Name??o.Slug??"",description:((a=o.Metadata)==null?void 0:a.DisplayDescription)||o.Description||"",namespace:o.Namespace??t,sourceRepo:o.SourceRepo,downloadCount:o.DownloadCount}})}async function WK(e){const t=e.slug||"",n=e.namespace||"public",r=`${l2}/download/${t}?namespace=${encodeURIComponent(n)}`,i=await fetch(r);if(!i.ok)throw new Error(`下载技能失败 (${i.status})`);const s=new Uint8Array(await i.arrayBuffer()),o=await a2(s),a=e.folder||t.split("/").pop()||"skill";return o.filter(l=>!l.name.endsWith("/")).map(l=>({path:`skills/${a}/${l.name}`,content:l.text}))}async function G0(e){const t=await fetch(e,{headers:{accept:"application/json"}});if(t.status===409)throw new Error("服务端未配置 Volcengine AK/SK,无法访问 SkillSpace");if(t.status===401)throw new Error("请先登录以访问 SkillSpace");if(t.status===404)throw new Error("技能不存在或无 SKILL.md 内容");if(!t.ok){let n="";try{n=(await t.json()).detail||""}catch{}throw new Error(`请求失败 (${t.status})${n?": "+n:""}`)}return t.json()}async function GK(){return(await G0("/web/skill-spaces")).items||[]}async function YK(e){return(await G0(`/web/skill-spaces/${encodeURIComponent(e)}/skills`)).items||[]}async function XK(e,t,n){const r=n?`?version=${encodeURIComponent(n)}`:"";return G0(`/web/skill-spaces/${encodeURIComponent(e)}/skills/${encodeURIComponent(t)}${r}`)}function QK(e,t){return{source:"skillspace",id:`ss:${e.id}/${t.skillId}/${t.version}`,name:t.skillName,description:t.skillDescription,folder:t.skillName,skillSpaceId:e.id,skillSpaceName:e.name,skillId:t.skillId,version:t.version}}async function ZK(e,t,n,r){const i=await XK(e,t,n);return[{path:`skills/${r}/SKILL.md`,content:i.skillMd}]}function JK({selected:e,onChange:t}){const[n,r]=E.useState(""),[i,s]=E.useState([]),[o,a]=E.useState(!1),[l,c]=E.useState(null),[d,u]=E.useState(!1),h=b=>e.some(x=>x.source==="skillhub"&&x.slug===b),p=b=>{b.slug&&(h(b.slug)?t(e.filter(x=>!(x.source==="skillhub"&&x.slug===b.slug))):t([...e,{source:"skillhub",slug:b.slug,name:b.name,folder:b.slug.split("/").pop()||b.name,namespace:b.namespace||"public",description:b.description}]))},g=async b=>{a(!0),c(null),u(!0);try{const x=await qK(b);s(x)}catch(x){c(x instanceof Error?x.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return E.useEffect(()=>{const b=n.trim();if(!b){s([]),u(!1),c(null);return}const x=setTimeout(()=>g(b),300);return()=>clearTimeout(x)},[n]),f.jsxs("div",{className:"cw-skillhub",children:[f.jsxs("div",{className:"cw-skill-searchrow",children:[f.jsxs("div",{className:"cw-skill-searchbox",children:[f.jsx(Lm,{className:"cw-i cw-skill-searchicon","aria-hidden":!0}),f.jsx("input",{className:"cw-input cw-skill-input",value:n,placeholder:"搜索 Skill Hub,例如 数据分析、PDF…",onChange:b=>r(b.target.value),onKeyDown:b=>{b.key==="Enter"&&(b.preventDefault(),n.trim()&&g(n))}})]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>n.trim()&&g(n),disabled:!n.trim()||o,children:[o?f.jsx(ct,{className:"cw-i cw-spin"}):f.jsx(Lm,{className:"cw-i"}),"搜索"]})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx(tf,{className:"cw-i"}),f.jsx("span",{children:l})]}),o&&i.length===0?f.jsx("p",{className:"cw-empty-line",children:"正在搜索…"}):i.length>0?f.jsx("div",{className:"cw-skill-results",children:i.map(b=>{const x=h(b.slug||"");return f.jsxs("button",{type:"button",className:`cw-skill-result ${x?"is-on":""}`,onClick:()=>p(b),"aria-pressed":x,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:x?f.jsx(zl,{className:"cw-i cw-i-sm"}):f.jsx(Or,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:b.name}),b.description&&f.jsx("span",{className:"cw-skill-result-desc",children:b.description}),b.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:b.sourceRepo})]})]},b.id||b.slug)})}):d&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!d&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}const sg=/(^|\/)skill\.md$/i;class oi extends Error{}function e7(e,t){const n=(e??"").replace(/\r\n?/g,` +`).split(` +`);if(!n.length||n[0].trim()!=="---")throw new oi(`${t} 的 SKILL.md 必须以 YAML frontmatter (--- ... ---) 开头`);let r=-1;for(let a=1;a=2&&(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))}function n7(e,t){if(!e)throw new oi(`${t} 的 SKILL.md 缺少必填的 name frontmatter`);if(e.length>64)throw new oi(`${t} 的 name 长度超过 64 个字符`);if(!/^[a-z0-9-]+$/.test(e))throw new oi(`${t} 的 name 必须匹配 [a-z0-9-]+(小写字母、数字、短横线)`)}function r7(e,t){if(!e)throw new oi(`${t} 的 SKILL.md 缺少必填的 description frontmatter`);if(e.length>1024)throw new oi(`${t} 的 description 长度超过 1024 个字符`);if(/<[^>]+>/.test(e))throw new oi(`${t} 的 description 不能包含 XML 标签`)}function c2(e){const t=e.map(r=>({path:r.path.replace(/\\/g,"/").replace(/^\.\//,""),text:r.text})).filter(r=>r.path.length>0&&!r.path.endsWith("/")),n=new Set(t.map(r=>r.path.split("/")[0]));if(n.size===1&&t.every(r=>r.path.includes("/"))){const r=[...n][0]+"/";return t.map(i=>({path:i.path.slice(r.length),text:i.text}))}return t}function i7(e){const t=new Map,n=new Set;for(const r of e)if(sg.test("/"+r.path)){const i=r.path.split("/");n.add(i.slice(0,-1).join("/"))}for(const r of e){const i=r.path.split("/");let s="";for(let c=i.length-1;c>=0;c--){const d=i.slice(0,c).join("/");if(n.has(d)){s=d;break}}const o=sg.test("/"+r.path);if(!s&&!o&&!n.has("")||!n.has(s)&&!o)continue;const a=s?r.path.slice(s.length+1):r.path,l=t.get(s)||[];l.push({path:a,text:r.text}),t.set(s,l)}return t}function s7(e,t,n){const r=`${n}${e?"/"+e:""}`,i=t.find(l=>sg.test("/"+l.path));if(!i)return{hit:null,error:`${r} 缺少 SKILL.md`};let s;try{s=e7(i.text,r)}catch(l){return{hit:null,error:l instanceof Error?l.message:String(l)}}const o=s.name,a=[];for(const l of t){if(l.path.split("/").some(u=>u===".."))return{hit:null,error:`${r} 包含非法路径(..):${l.path}`};const d=`skills/${o}/${l.path}`;if(!d.startsWith(`skills/${o}/`))return{hit:null,error:`${r} 包含非法路径:${l.path}`};a.push({path:d,content:l.text})}return{hit:{source:"local",id:`local:${o}:${t.length}`,name:s.name,description:s.description,folder:o,localFiles:a},error:null}}async function o7(e){const t=new Uint8Array(await e.arrayBuffer()),r=(await a2(t)).map(i=>({path:i.name,text:i.text}));return u2(c2(r),e.name)}async function a7(e){const t=[];for(let n=0;ne.some(y=>y.source==="local"&&y.folder===m),u=m=>{m.localFiles&&(d(m.folder||m.name)?t(e.filter(y=>!(y.source==="local"&&y.folder===(m.folder||m.name)))):t([...e,{source:"local",folder:m.folder||m.name,name:m.name,description:m.description,localFiles:m.localFiles}]))},h=E.useRef([]),p=E.useRef(e);E.useEffect(()=>{h.current=o},[o]),E.useEffect(()=>{p.current=e},[e]);const g=m=>{const y=new Set([...h.current.map(k=>k.folder||k.name),...p.current.filter(k=>k.source==="local").map(k=>k.folder)]),w=[],v=[];for(const k of m.hits){const T=k.folder||k.name;if(y.has(T)){w.push(k.name);continue}y.add(T),v.push(k)}a(k=>[...k,...v]);const _=[...m.errors];if(w.length>0&&_.push(`已跳过重复技能:${w.join("、")}`),s(_),v.length===1&&m.errors.length===0&&w.length===0){const k=v[0];k.localFiles&&t([...p.current,{source:"local",folder:k.folder||k.name,name:k.name,description:k.description,localFiles:k.localFiles}])}},b=async m=>{const y=m.target.files;if(!(!y||y.length===0)){c(!0);try{g(await a7(y))}finally{c(!1),n.current&&(n.current.value="")}}},x=async m=>{var w;const y=(w=m.target.files)==null?void 0:w[0];if(y){c(!0);try{g(await o7(y))}finally{c(!1),r.current&&(r.current.value="")}}};return f.jsxs("div",{className:"cw-local",children:[f.jsxs("div",{className:"cw-local-actions",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var m;return(m=n.current)==null?void 0:m.click()},disabled:l,children:[f.jsx(dd,{className:"cw-i"}),"上传文件夹"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var m;return(m=r.current)==null?void 0:m.click()},disabled:l,children:[f.jsx(dd,{className:"cw-i"}),"上传 .zip"]}),f.jsx("input",{ref:n,type:"file",webkitdirectory:"",directory:"",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:r,type:"file",accept:".zip,application/zip",hidden:!0,onChange:x})]}),f.jsx("p",{className:"cw-local-hint",children:"每个技能需包含 SKILL.md(含 name / description frontmatter)。支持选择包含多个技能文件夹的目录。"}),l&&f.jsx("p",{className:"cw-empty-line",children:"正在读取文件…"}),i.length>0&&f.jsxs("div",{className:"cw-banner",children:[f.jsx(tf,{className:"cw-i"}),f.jsx("span",{children:i.join(";")})]}),o.length>0&&f.jsx("div",{className:"cw-skill-results",children:o.map(m=>{var w;const y=d(m.folder||m.name);return f.jsxs("button",{type:"button",className:`cw-skill-result ${y?"is-on":""}`,onClick:()=>u(m),"aria-pressed":y,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:y?f.jsx(zl,{className:"cw-i cw-i-sm"}):f.jsx(Or,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:m.name}),m.description&&f.jsx("span",{className:"cw-skill-result-desc",children:m.description}),f.jsxs("span",{className:"cw-skill-result-repo",children:["本地 · ",((w=m.localFiles)==null?void 0:w.length)??0," 个文件"]})]})]},m.id)})})]})}function c7({selected:e,onChange:t}){const[n,r]=E.useState([]),[i,s]=E.useState([]),[o,a]=E.useState(""),[l,c]=E.useState(!0),[d,u]=E.useState(!1),[h,p]=E.useState(null);E.useEffect(()=>{let m=!1;return(async()=>{c(!0),p(null);try{const y=await GK();m||(r(y),y.length>0&&a(y[0].id))}catch(y){m||p(y instanceof Error?y.message:"加载失败")}finally{m||c(!1)}})(),()=>{m=!0}},[]),E.useEffect(()=>{if(!o){s([]);return}let m=!1;return(async()=>{u(!0),p(null);try{const y=await YK(o);m||s(y)}catch(y){m||p(y instanceof Error?y.message:"加载失败")}finally{m||u(!1)}})(),()=>{m=!0}},[o]);const g=n.find(m=>m.id===o),b=(m,y)=>e.some(w=>w.source==="skillspace"&&w.skillId===m&&(w.version||"")===y),x=m=>{if(g)if(b(m.skillId,m.version))t(e.filter(y=>!(y.source==="skillspace"&&y.skillId===m.skillId&&(y.version||"")===m.version)));else{const y=QK(g,m);t([...e,{source:"skillspace",folder:y.folder||m.skillName,name:y.name,description:y.description,skillSpaceId:y.skillSpaceId,skillSpaceName:y.skillSpaceName,skillId:y.skillId,version:y.version}])}};return f.jsx("div",{className:"cw-skillspace",children:l?f.jsxs("p",{className:"cw-empty-line",children:[f.jsx(ct,{className:"cw-i cw-spin"})," 正在加载 SkillSpace 列表…"]}):h?f.jsxs("div",{className:"cw-banner",children:[f.jsx(tf,{className:"cw-i"}),f.jsx("span",{children:h})]}):n.length===0?f.jsx("p",{className:"cw-empty-line",children:"此账号下没有 SkillSpace。"}):f.jsxs(f.Fragment,{children:[f.jsx("select",{className:"cw-input cw-skillspace-select",value:o,onChange:m=>a(m.target.value),"aria-label":"选择 SkillSpace",children:n.map(m=>f.jsxs("option",{value:m.id,children:[m.name||m.id,m.description?` — ${m.description}`:""]},m.id))}),d?f.jsxs("p",{className:"cw-empty-line",children:[f.jsx(ct,{className:"cw-i cw-spin"})," 正在加载技能列表…"]}):i.length===0?f.jsx("p",{className:"cw-empty-line",children:"此 SkillSpace 暂无技能。"}):f.jsx("div",{className:"cw-skill-results",children:i.map(m=>{const y=b(m.skillId,m.version);return f.jsxs("button",{type:"button",className:`cw-skill-result ${y?"is-on":""}`,onClick:()=>x(m),"aria-pressed":y,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:y?f.jsx(zl,{className:"cw-i cw-i-sm"}):f.jsx(Or,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsxs("span",{className:"cw-skill-result-name",children:[m.skillName,m.version&&f.jsxs("span",{className:"cw-skill-result-version",children:[" ","v",m.version]})]}),m.skillDescription&&f.jsx("span",{className:"cw-skill-result-desc",children:m.skillDescription}),f.jsxs("span",{className:"cw-skill-result-repo",children:[f.jsx(Xy,{className:"cw-i cw-i-sm"})," ",(g==null?void 0:g.name)||o]})]})]},`${m.skillId}/${m.version}`)})})]})})}function j1(e,t,n="text/plain"){const r=URL.createObjectURL(new Blob([t],{type:`${n};charset=utf-8`})),i=document.createElement("a");i.href=r,i.download=e,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}const $1=[{id:"type",label:"类型",hint:"选择 Agent 类型",icon:cB,required:!0},{id:"basic",label:"基本信息",hint:"名称、描述与系统提示词",icon:tf,required:!0},{id:"model",label:"模型配置",hint:"模型与服务(可选)",icon:fl},{id:"tools",label:"工具",hint:"可调用的能力",icon:e0},{id:"skills",label:"技能",hint:"声明式技能",icon:nf},{id:"memory",label:"记忆",hint:"短期 / 长期",icon:KN},{id:"knowledge",label:"知识库",hint:"外部知识检索",icon:wu},{id:"tracing",label:"观测",hint:"Tracing 与 A2UI",icon:Qy},{id:"deploy",label:"部署配置",hint:"飞书等运行入口",icon:hl},{id:"subagents",label:"子 Agent",hint:"嵌套协作",icon:Yy},{id:"review",label:"完成",hint:"预览并创建",icon:hl}];function u7({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),f.jsx("path",{d:"M12 6.5c.4 2.4 1 3 3.4 3.4-2.4.4-3 1-3.4 3.4-.4-2.4-1-3-3.4-3.4 2.4-.4 3-1 3.4-3.4Z"})]})}const og=[{id:"llm",label:"LLM 智能体",desc:"大模型驱动,自主完成任务",icon:u7},{id:"sequential",label:"顺序编排",desc:"子 Agent 按顺序依次执行",icon:HN},{id:"parallel",label:"并行编排",desc:"子 Agent 并行执行后汇总",icon:WN},{id:"loop",label:"循环编排",desc:"子 Agent 循环执行到满足条件",icon:Jy},{id:"a2a",label:"A2A 远程 Agent",desc:"挂载 URL 指向的远程 Agent",icon:Ul}],d2=e=>e==="sequential"||e==="parallel"||e==="loop",Y0=e=>e==="a2a";function B1({items:e,selected:t,onToggle:n}){return f.jsx("div",{className:"cw-checklist",children:e.map(r=>{const i=t.includes(r.id);return f.jsxs("button",{type:"button",className:`cw-check ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,children:[f.jsx("span",{className:"cw-check-box","aria-hidden":!0,children:i&&f.jsx(zl,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-check-text",children:[f.jsx("span",{className:"cw-check-title",children:r.label}),f.jsx("span",{className:"cw-check-desc",children:r.desc})]})]},r.id)})})}function up({options:e,value:t,onChange:n}){return f.jsx("div",{className:"cw-segmented",children:e.map(r=>{var s;const i=(t??((s=e[0])==null?void 0:s.id))===r.id;return f.jsxs("button",{type:"button",className:`cw-seg ${i?"is-on":""}`,onClick:()=>n(r.id),"aria-pressed":i,title:r.desc,children:[f.jsx("span",{className:"cw-seg-title",children:r.label}),f.jsx("span",{className:"cw-seg-desc",children:r.desc})]},r.id)})})}function d7({tools:e,onChange:t}){const n=(s,o)=>t(e.map((a,l)=>l===s?{...a,...o}:a)),r=s=>t(e.filter((o,a)=>a!==s)),i=()=>t([...e,{name:"",transport:"http",url:""}]);return f.jsxs("div",{className:"cw-mcp",children:[e.length>0&&f.jsx("div",{className:"cw-mcp-list",children:f.jsx(by,{initial:!1,children:e.map((s,o)=>f.jsxs(Dt.div,{className:"cw-mcp-row",layout:!0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.16},children:[f.jsxs("div",{className:"cw-mcp-rowhead",children:[f.jsxs("div",{className:"cw-mcp-transport",children:[f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="http"?"is-on":""}`,onClick:()=>n(o,{transport:"http"}),"aria-pressed":s.transport==="http",children:f.jsx("span",{className:"cw-seg-title",children:"HTTP"})}),f.jsx("button",{type:"button",className:`cw-seg cw-seg-sm ${s.transport==="stdio"?"is-on":""}`,onClick:()=>n(o,{transport:"stdio"}),"aria-pressed":s.transport==="stdio",children:f.jsx("span",{className:"cw-seg-title",children:"stdio"})})]}),f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",onClick:()=>r(o),"aria-label":"移除 MCP 工具",children:f.jsx(jo,{className:"cw-i cw-i-sm"})})]}),f.jsx("input",{className:"cw-input",value:s.name,placeholder:"名称(用于命名,可留空)",onChange:a=>n(o,{name:a.target.value})}),s.transport==="http"?f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.url??"",placeholder:"MCP 服务地址(StreamableHTTP)",onChange:a=>n(o,{url:a.target.value})}),f.jsx("input",{className:"cw-input",value:s.authToken??"",placeholder:"Bearer Token(可选)",onChange:a=>n(o,{authToken:a.target.value})})]}):f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"cw-input",value:s.command??"",placeholder:"启动命令,例如 npx",onChange:a=>n(o,{command:a.target.value})}),f.jsx("input",{className:"cw-input",value:(s.args??[]).join(" "),placeholder:"参数(用空格分隔),例如 -y @playwright/mcp@latest",onChange:a=>n(o,{args:a.target.value.split(/\s+/).filter(Boolean)})})]})]},o))})}),f.jsxs("button",{type:"button",className:"cw-add-sub",onClick:i,children:[f.jsx(Or,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function f7({s:e,onRemove:t}){let n=nf,r="Skill Hub";return e.source==="local"?(n=dd,r="本地"):e.source==="skillspace"&&(n=Xy,r="SkillSpace"),f.jsxs(Dt.span,{className:"cw-pill",layout:!0,initial:{opacity:0,scale:.85},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.85},transition:{duration:.16},children:[f.jsx(n,{className:"cw-i cw-i-sm"}),e.name,f.jsx("span",{className:"cw-pill-source",children:r}),f.jsx("button",{type:"button",className:"cw-pill-x",onClick:t,"aria-label":`移除 ${e.name}`,children:f.jsx(Vl,{className:"cw-i cw-i-sm"})})]},`${e.source}:${e.folder}:${e.skillId||e.slug||""}:${e.version||""}`)}const h7=[{id:"skillhub",label:"Skill Hub",icon:Ul},{id:"local",label:"本地文件",icon:dd},{id:"skillspace",label:"SkillSpace",icon:Xy}];function p7({selected:e,onChange:t}){const[n,r]=E.useState("skillhub"),i=s=>t(e.filter(o=>dp(o)!==s));return f.jsxs("div",{className:"cw-skillspane",children:[e.length>0&&f.jsxs("div",{className:"cw-skill-selected",children:[f.jsx("span",{className:"cw-skill-selected-label",children:"已选技能"}),f.jsx("div",{className:"cw-pills",children:f.jsx(by,{initial:!1,children:e.map(s=>f.jsx(f7,{s,onRemove:()=>i(dp(s))},dp(s)))})})]}),f.jsx("div",{className:"cw-skill-sourcetabs",role:"tablist",children:h7.map(({id:s,label:o,icon:a})=>f.jsxs("button",{type:"button",role:"tab","aria-selected":n===s,className:`cw-skill-pickertab ${n===s?"is-on":""}`,onClick:()=>r(s),children:[f.jsx(a,{className:"cw-i cw-i-sm"}),o]},s))}),f.jsxs("div",{className:"cw-skill-tabbody",children:[n==="skillhub"&&f.jsx(JK,{selected:e,onChange:t}),n==="local"&&f.jsx(l7,{selected:e,onChange:t}),n==="skillspace"&&f.jsx(c7,{selected:e,onChange:t})]})]})}function dp(e){return e.source==="skillhub"?`hub:${e.namespace}/${e.slug}`:e.source==="local"?`local:${e.folder}`:`ss:${e.skillSpaceId}/${e.skillId}/${e.version||""}`}function _i({checked:e,onChange:t,title:n,desc:r,icon:i}){return f.jsxs("button",{type:"button",className:`cw-toggle ${e?"is-on":""}`,onClick:()=>t(!e),"aria-pressed":e,children:[f.jsx("span",{className:"cw-toggle-icon",children:f.jsx(i,{className:"cw-i"})}),f.jsxs("span",{className:"cw-toggle-text",children:[f.jsx("span",{className:"cw-toggle-title",children:n}),f.jsx("span",{className:"cw-toggle-desc",children:r})]}),f.jsx("span",{className:"cw-switch","aria-hidden":!0,children:f.jsx(Dt.span,{className:"cw-switch-knob",layout:!0,transition:{type:"spring",stiffness:520,damping:34}})})]})}const F1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function m7(e,t){var r;let n=e;for(const i of t)if(n=(r=n.subAgents)==null?void 0:r[i],!n)return!1;return!0}function Tu(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function tc(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=tc(s[r],i,n),{...e,subAgents:s}}function g7(e,t){return tc(e,t,n=>({...n,subAgents:[...n.subAgents,fs()]}))}function y7(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return tc(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function b7(e,t,n,r){return tc(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const w7=e=>e==="sequential"||e==="loop",f2=e=>!Y0(e.agentType),x7=3,v7=e=>og.find(t=>t.id===(e??"llm"))??og[0];function h2(e){return e.name.trim().length===0?"缺少名称":Y0(e.agentType)?(e.a2aUrl??"").trim().length===0?"缺少 Agent URL":null:d2(e.agentType)?e.subAgents.length===0?"缺少子 Agent":null:e.instruction.trim().length===0?"缺少系统提示词":null}function p2(e,t=[]){const n=[],r=h2(e);return r&&n.push({path:t,name:e.name.trim()||"未命名",problem:r}),f2(e)&&e.subAgents.forEach((i,s)=>n.push(...p2(i,[...t,s]))),n}function m2({root:e,path:t,selectedPath:n,onSelect:r,onChange:i}){const s=Tu(e,t),o=v7(s.agentType),a=o.icon,l=t.length===0,c=F1(t,n),d=f2(s),u=d&&t.length{const w=g7(e,t),v=Tu(w,t).subAgents.length-1;i(w,[...t,v])},p=()=>i(y7(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&w7(Tu(e,g).agentType),[x,m]=E.useState(!1),y=w=>{w.preventDefault(),w.stopPropagation(),m(!1);const v=w.dataTransfer.getData("application/x-agent-path");if(!v)return;let _;try{_=JSON.parse(v)}catch{return}if(!F1(_.slice(0,-1),g))return;const k=_[_.length-1],T=t[t.length-1];k!==T&&i(b7(e,g,k,T),[...g,T])};return f.jsxs("div",{className:"cw-tree-branch",children:[f.jsxs("div",{className:`cw-tree-node cw-tree-type-${s.agentType??"llm"} ${c?"is-selected":""} ${b?"is-draggable":""} ${x?"is-dragover":""} ${h2(s)?"is-invalid":""}`,role:"button",tabIndex:0,draggable:b,onDragStart:b?w=>{w.dataTransfer.setData("application/x-agent-path",JSON.stringify(t)),w.dataTransfer.effectAllowed="move",w.stopPropagation()}:void 0,onDragOver:b?w=>{w.preventDefault(),m(!0)}:void 0,onDragLeave:b?()=>m(!1):void 0,onDrop:b?y:void 0,onClick:()=>r(t),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),r(t))},children:[f.jsx(a,{className:"cw-tree-icon"}),f.jsxs("span",{className:"cw-tree-main",children:[f.jsx("span",{className:"cw-tree-name",children:s.name.trim()||"未命名"}),f.jsx("span",{className:"cw-tree-type",children:o.label})]}),f.jsxs("span",{className:"cw-tree-actions",children:[u&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:w=>{w.stopPropagation(),h()},children:f.jsx(Or,{className:"cw-i cw-i-sm"})}),!l&&f.jsx("button",{type:"button",className:"cw-icon-btn cw-icon-danger",title:"删除",onClick:w=>{w.stopPropagation(),p()},children:f.jsx(jo,{className:"cw-i cw-i-sm"})})]})]}),d&&s.subAgents.length>0&&f.jsx("div",{className:"cw-tree-children",children:s.subAgents.map((w,v)=>f.jsx(m2,{root:e,path:[...t,v],selectedPath:n,onSelect:r,onChange:i},v))})]})}function k7({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){var G,ee;const[s,o]=E.useState(()=>r??fs()),[a,l]=E.useState(!1),[c,d]=E.useState(null),[u,h]=E.useState(!1),[p,g]=E.useState("type"),b=E.useRef(null),[x,m]=E.useState(""),y=async B=>{var X;const Y=(X=B.target.files)==null?void 0:X[0];if(B.target.value="",!!Y){m("");try{const ge=await Y.text();o(o2(ge)),v([]),l(!1)}catch(ge){m(`导入失败:${ge instanceof Error?ge.message:String(ge)}`)}}},[w,v]=E.useState([]),_=E.useRef(null),k=E.useRef({}),T=E.useRef(null);T.current||(T.current=({meta:B,children:Y})=>f.jsxs("section",{ref:X=>{k.current[B.id]=X},id:`cw-sec-${B.id}`,"data-step-id":B.id,className:"cw-section",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:[B.label,B.required&&f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),Y]}));const N=m7(s,w)?w:[],I=Tu(s,N),A=B=>o(Y=>tc(Y,N,X=>({...X,...B}))),D=(B,Y)=>{o(B),Y&&v(Y)},R=I.builtinTools??[],F=I.mcpTools??[],O=I.tracingExporters??[],P=I.selectedSkills??[],M=B=>A({builtinTools:R.includes(B)?R.filter(Y=>Y!==B):[...R,B]}),$=B=>{const Y=O.includes(B)?O.filter(X=>X!==B):[...O,B];A({tracingExporters:Y,tracing:Y.length>0?!0:I.tracing})},L=B=>o(Y=>({...Y,deployment:{...Y.deployment??{feishuEnabled:!1},...B}})),j=d2(I.agentType),S=Y0(I.agentType),H=I.name.trim().length===0,V=I.instruction.trim().length===0,C=(I.a2aUrl??"").trim().length===0,U=E.useMemo(()=>p2(s),[s]),W=U.length===0,Z=E.useMemo(()=>{var B,Y,X,ge;return{type:!0,basic:!H&&(j||S||!V),model:!!((B=I.modelName)!=null&&B.trim()||(Y=I.modelProvider)!=null&&Y.trim()||(X=I.modelApiBase)!=null&&X.trim()),tools:R.length>0||F.length>0,skills:P.length>0,memory:I.memory.shortTerm||I.memory.longTerm,knowledge:I.knowledgebase,tracing:I.tracing||I.enableA2ui,deploy:!0,subagents:(((ge=I.subAgents)==null?void 0:ge.length)??0)>0,review:W}},[I,H,V,j,S,W,R,F,P]),J=j||S?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing",...N.length===0?["deploy"]:[]],q=$1.filter(B=>J.includes(B.id)),te=q.findIndex(B=>B.id===p),ce=B=>{var Y;(Y=k.current[B])==null||Y.scrollIntoView({behavior:"smooth",block:"start"})};E.useEffect(()=>{if(c)return;const B=_.current;if(!B)return;const Y=new IntersectionObserver(X=>{var fe,_e;const ye=(_e=(fe=X.filter(Ne=>Ne.isIntersecting).sort((Ne,it)=>Ne.boundingClientRect.top-it.boundingClientRect.top)[0])==null?void 0:fe.target)==null?void 0:_e.dataset.stepId;ye&&g(ye)},{root:B,rootMargin:"0px 0px -65% 0px",threshold:0});for(const X of Object.values(k.current))X&&Y.observe(X);return()=>Y.disconnect()},[c]);const de=async()=>{if(!W){l(!0),U[0]&&v(U[0].path);return}const B=JC(s),Y=[],X=new Set,ge=ye=>{for(const fe of ye.selectedSkills??[]){const _e=fe.source==="skillhub"?`hub:${fe.namespace}/${fe.slug}`:fe.source==="local"?`local:${fe.folder}`:`ss:${fe.skillSpaceId}/${fe.skillId}/${fe.version||""}`;X.has(_e)||(X.add(_e),Y.push(fe))}(ye.subAgents??[]).forEach(ge)};if(ge(s),Y.length>0){h(!0);try{const ye=await Promise.all(Y.map(_e=>(_e.source==="local"?Promise.resolve(_e.localFiles??[]):_e.source==="skillspace"?ZK(_e.skillSpaceId,_e.skillId,_e.version,_e.folder):WK(_e)).catch(it=>(console.warn(`下载技能失败:${_e.name}`,it),[])))),fe=new Set(B.files.map(_e=>_e.path));for(const _e of ye)for(const Ne of _e)fe.has(Ne.path)||(B.files.push(Ne),fe.add(Ne.path))}finally{h(!1)}}d(B)};if(c){const B=async(Y,X,ge)=>QN(Y.name,Y.files,{region:"cn-beijing",projectName:"default"},{...ge,author:i,onStage:X});return f.jsxs("div",{className:"cw-root cw-root-preview",children:[f.jsxs("div",{className:"cw-preview-bar",children:[f.jsxs("button",{type:"button",className:"cw-btn cw-btn-ghost",onClick:()=>d(null),children:[f.jsx(zN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(hl,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>j1(`${s.name||"agent"}.yaml`,E1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Ux,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx(W0,{project:c,onChange:d,onDeploy:B,onAgentAdded:n,feishuEnabled:!!((G=s.deployment)!=null&&G.feishuEnabled)})})]})}const le=T.current,oe=B=>$1.find(Y=>Y.id===B);return f.jsxs("div",{className:"cw-root",children:[f.jsxs("div",{className:"cw-editor",children:[f.jsxs("aside",{className:"cw-tree","aria-label":"Agent 结构",children:[f.jsx("div",{className:"cw-tree-head",children:"Agent 结构"}),f.jsx(m2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:D})]}),f.jsxs("div",{className:"cw-detail",children:[f.jsx("div",{className:"cw-typebar",children:f.jsxs("div",{className:"cw-typebar-inner",children:[f.jsx("header",{className:"cw-sec-head",children:f.jsxs("h2",{className:"cw-sec-title",children:["类型",f.jsx("span",{className:"cw-sec-required",children:"必填"})]})}),f.jsx("div",{className:"cw-typeradio cw-typeradio--row",children:og.map(B=>{const Y=(I.agentType??"llm")===B.id,X=B.icon;return f.jsxs("label",{className:`cw-typeradio-item ${Y?"is-on":""}`,children:[f.jsx("input",{type:"radio",name:"agentType",className:"cw-typeradio-input",checked:Y,onChange:()=>A({agentType:B.id})}),f.jsx("span",{className:"cw-typeradio-dot","aria-hidden":!0}),f.jsx("span",{className:"cw-typeradio-main",children:f.jsxs("span",{className:"cw-typeradio-head",children:[f.jsx(X,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:B.label})]})})]},B.id)})}),U.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",U.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:U.map(B=>f.jsxs("button",{type:"button",className:"cw-missing-item",onClick:()=>{l(!0),v(B.path)},children:[B.name," · ",B.problem]},B.path.join(".")+B.problem))})]})]})}),f.jsx("div",{className:"cw-detail-scroll",ref:_,children:f.jsx("div",{className:"cw-detail-inner",children:f.jsxs("div",{className:"cw-lower",children:[f.jsxs("div",{className:"cw-form-col",children:[f.jsx(le,{meta:oe("basic"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent 名称",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&H?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:B=>A({name:B.target.value})}),a&&H&&f.jsx("span",{className:"cw-error-text",children:"名称为必填项"})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"描述"}),f.jsx("textarea",{className:"cw-textarea cw-textarea-sm",value:I.description,placeholder:"简要描述这个 Agent 的用途,便于团队识别…",onChange:B=>A({description:B.target.value})}),f.jsx("span",{className:"cw-help",children:"描述会显示在 Agent 列表与选择器中。"})]}),j?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"cw-section-desc",children:"编排型 Agent 只负责调度子 Agent,不需要模型或系统提示词。请在左侧 「Agent 结构」中为它添加、排序子 Agent。"}),I.agentType==="loop"&&f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"最大轮次"}),f.jsx("input",{className:"cw-input",type:"number",min:1,value:I.maxIterations??3,onChange:B=>A({maxIterations:Math.max(1,Number(B.target.value)||1)})}),f.jsx("span",{className:"cw-help",children:"循环编排反复执行子 Agent,直到满足条件或达到该轮次上限。"})]})]}):S?f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["Agent URL",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("input",{className:`cw-input ${a&&C?"is-error":""}`,value:I.a2aUrl??"",placeholder:"https://example.com/my-agent",onChange:B=>A({a2aUrl:B.target.value})}),a&&C?f.jsx("span",{className:"cw-error-text",children:"Agent URL 为必填项"}):f.jsx("span",{className:"cw-help",children:"远程 Agent 的访问地址(A2A 协议);VeADK 会拉取其 Agent Card 并按需处理鉴权。"})]}):f.jsxs("div",{className:"cw-field",children:[f.jsxs("label",{className:"cw-label",children:["系统提示词",f.jsx("span",{className:"cw-req",children:"*"})]}),f.jsx("textarea",{className:`cw-textarea cw-textarea-lg ${a&&V?"is-error":""}`,value:I.instruction,placeholder:`你是一个…… + +你的目标是…… + +约束: +- ……`,onChange:B=>A({instruction:B.target.value})}),a&&V?f.jsx("span",{className:"cw-error-text",children:"系统提示词为必填项"}):f.jsx("span",{className:"cw-help",children:"定义 Agent 的角色、目标与行为边界,这是最关键的一步。"})]})]})}),!j&&!S&&f.jsxs(f.Fragment,{children:[f.jsx(le,{meta:oe("model"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"模型名称"}),f.jsx("input",{className:"cw-input",value:I.modelName??"",placeholder:"doubao-seed-1-6-250615",onChange:B=>A({modelName:B.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"服务商 Provider"}),f.jsx("input",{className:"cw-input",value:I.modelProvider??"",placeholder:"openai",onChange:B=>A({modelProvider:B.target.value})})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"API Base"}),f.jsx("input",{className:"cw-input",value:I.modelApiBase??"",placeholder:"https://ark.cn-beijing.volces.com/api/v3/",onChange:B=>A({modelApiBase:B.target.value})}),f.jsx("span",{className:"cw-help",children:"留空则使用 VeADK 默认模型配置;API Key 请在生成项目的 .env.example 中填写(不会写入代码)。"})]})]})}),f.jsx(le,{meta:oe("tools"),children:f.jsxs("div",{className:"cw-form",children:[f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"内置工具"}),f.jsx("span",{className:"cw-help",children:"勾选 VeADK 提供的内置能力,生成时会自动补全 import 与所需环境变量。"}),f.jsx(B1,{items:WC,selected:R,onToggle:M})]}),f.jsxs("div",{className:"cw-field",children:[f.jsx("label",{className:"cw-label",children:"MCP 工具"}),f.jsx("span",{className:"cw-help",children:"连接外部 MCP 服务,生成时会为每个条目创建对应的 MCPToolset。"}),f.jsx(d7,{tools:F,onChange:B=>A({mcpTools:B})})]})]})}),f.jsx(le,{meta:oe("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub、本地文件或 AgentKit SkillSpace 添加技能,生成项目时会写入 skills/ 目录。"}),f.jsx(p7,{selected:P,onChange:B=>A({selectedSkills:B})})]})}),f.jsx(le,{meta:oe("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(_i,{checked:I.memory.shortTerm,onChange:B=>A({memory:{...I.memory,shortTerm:B}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:KN}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(up,{options:GC,value:I.shortTermBackend,onChange:B=>A({shortTermBackend:B})})]}),f.jsx(_i,{checked:I.memory.longTerm,onChange:B=>A({memory:{...I.memory,longTerm:B}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:wu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(up,{options:YC,value:I.longTermBackend,onChange:B=>A({longTermBackend:B})}),f.jsx(_i,{checked:!!I.autoSaveSession,onChange:B=>A({autoSaveSession:B}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:wu})]})]})}),f.jsx(le,{meta:oe("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(_i,{checked:I.knowledgebase,onChange:B=>A({knowledgebase:B}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:wu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(up,{options:XC,value:I.knowledgebaseBackend,onChange:B=>A({knowledgebaseBackend:B})})]})]})}),f.jsx(le,{meta:oe("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(_i,{checked:I.tracing,onChange:B=>A({tracing:B}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:Qy}),I.tracing&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"Tracing 导出器"}),f.jsx("span",{className:"cw-help",children:"选择一个或多个观测平台,生成时会写入对应的 ENABLE_* 开关与环境变量。"}),f.jsx(B1,{items:QC,selected:O,onToggle:$})]}),f.jsx(_i,{checked:I.enableA2ui,onChange:B=>A({enableA2ui:B}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:Z$})]})}),N.length===0&&f.jsx(le,{meta:oe("deploy"),children:f.jsx("div",{className:"cw-form cw-toggle-stack",children:f.jsx(_i,{checked:!!((ee=s.deployment)!=null&&ee.feishuEnabled),onChange:B=>L({feishuEnabled:B}),title:"连接飞书",desc:"部署后可通过飞书消息触发当前 Agent。",icon:Ul})})})]})]}),f.jsx("nav",{className:"cw-rail","aria-label":"步骤导航",children:f.jsxs("ol",{className:"cw-steps",children:[f.jsx("div",{className:"cw-rail-track","aria-hidden":!0,children:f.jsx(Dt.div,{className:"cw-rail-fill",animate:{height:`${Math.max(te,0)/Math.max(q.length-1,1)*100}%`},transition:{type:"spring",stiffness:260,damping:32}})}),q.map(B=>{const Y=B.id===p,X=Z[B.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${Y?"is-active":""} ${X?"is-done":""}`,onClick:()=>ce(B.id),"aria-current":Y?"step":void 0,children:[f.jsx("span",{className:"cw-step-marker","aria-hidden":!0,children:f.jsx("span",{className:"cw-dot"})}),f.jsxs("span",{className:"cw-step-text",children:[f.jsxs("span",{className:"cw-step-labelrow",children:[f.jsx("span",{className:"cw-step-label",children:B.label}),B.required&&f.jsx("span",{className:"cw-step-required",children:"必填"})]}),f.jsx("span",{className:"cw-step-hint",children:B.hint})]})]})},B.id)})]})})]})})})]})]}),f.jsxs("footer",{className:"cw-footer-bar",children:[f.jsx("div",{className:"cw-footer-status",children:W?f.jsx("span",{className:"cw-footer-ok",children:"✓ 配置完整,可生成项目"}):f.jsxs("button",{type:"button",className:"cw-footer-problem",onClick:()=>{l(!0),U[0]&&v(U[0].path)},children:["待补全(",U.length,"):",U[0].name," · ",U[0].problem]})}),f.jsxs("div",{className:"cw-footer-actions",children:[x&&f.jsx("span",{className:"cw-footer-importerr",children:x}),f.jsx("input",{ref:b,type:"file",accept:".yaml,.yml,text/yaml",style:{display:"none"},onChange:y}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var B;return(B=b.current)==null?void 0:B.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(V$,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>j1(`${s.name||"agent"}.yaml`,E1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Ux,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:de,disabled:!W||u,children:u?f.jsxs(f.Fragment,{children:[f.jsx(ct,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(hl,{className:"cw-i"}),"生成项目"]})})]})]})]})}function hr(e){return{...fs(),...e}}const _7=[{id:"support",icon:Y$,draft:hr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:R$,draft:hr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:Q$,draft:hr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:D$,draft:hr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:sB,draft:hr({name:"研究员",description:"联网检索一手资料,结合知识库与长期记忆,输出有据可查的研究结论。",instruction:"你是一名严谨的研究员。面对研究问题时,先拆解关键子问题,再通过联网检索收集多个一手、可信的来源,交叉验证后再下结论。结论需注明出处与不确定性,区分事实与推断,避免以偏概全。",model:"doubao-1.5-pro-32k",tools:["web_search"],knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"research-team",icon:dB,draft:hr({name:"多智能体研究团队",description:"由检索员、分析员、撰写员协作的研究编排,分工完成端到端调研报告。",instruction:"你是一支研究团队的总协调者。负责拆解用户的研究任务,将检索、分析、撰写分别委派给对应的子 Agent,汇总各子 Agent 的产出,把控整体质量,最终输出结构清晰、有据可查的研究报告。",model:"doubao-1.5-pro-32k",tracing:!0,memory:{shortTerm:!0,longTerm:!0},subAgents:[hr({name:"检索员",description:"联网搜集与课题相关的一手资料与数据。",instruction:"你是研究团队中的检索员。根据课题联网检索多个可信来源,整理出关键事实、数据与原文出处,交付给分析员,不做主观结论。",tools:["web_search"]}),hr({name:"分析员",description:"对检索到的材料做交叉验证与归纳分析。",instruction:"你是研究团队中的分析员。对检索员提供的材料做交叉验证、归纳与对比,提炼洞见、识别矛盾与不确定性,形成结构化的分析要点。",tools:["code_runner"]}),hr({name:"撰写员",description:"将分析结论组织为结构清晰、引用规范的报告。",instruction:"你是研究团队中的撰写员。把分析员的要点组织成结构清晰、语言通顺、引用规范的研究报告,确保每个结论都能追溯到来源。"})]})}];function E7(e){const t=[];return e.tools.length&&t.push({icon:e0,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:O$,label:"记忆"}),e.knowledgebase&&t.push({icon:M$,label:"知识库"}),e.tracing&&t.push({icon:A$,label:"观测"}),e.subAgents.length&&t.push({icon:oB,label:`子Agent ${e.subAgents.length}`}),t}function S7({onBack:e,onCreate:t}){const[n,r]=E.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(T7,{template:n,onBack:()=>r(null),onCreate:t}):f.jsx(N7,{onPick:r})})}function N7({onPick:e}){return f.jsxs("div",{className:"tpl-scroll",children:[f.jsxs("div",{className:"tpl-head",children:[f.jsx("h1",{className:"tpl-title",children:"从模板新建"}),f.jsx("p",{className:"tpl-sub",children:"选择一个预制 agent 模板,按需微调后即可创建。"})]}),f.jsx("div",{className:"tpl-grid",children:_7.map((t,n)=>f.jsxs(Dt.button,{type:"button",className:"tpl-card",onClick:()=>e(t),initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:n*.03,duration:.24,ease:[.22,1,.36,1]},children:[f.jsx("span",{className:"tpl-card-icon",children:f.jsx(t.icon,{className:"icon"})}),f.jsx("span",{className:"tpl-card-name",children:t.draft.name}),f.jsx("span",{className:"tpl-card-desc",children:t.draft.description})]},t.id))})]})}function T7({template:e,onBack:t,onCreate:n}){const[r,i]=E.useState(e.draft.name),s=e.icon,o=E7(e.draft);function a(){const l=r.trim()||e.draft.name;n({...e.draft,name:l})}return f.jsxs("div",{className:"tpl-scroll tpl-scroll--detail",children:[f.jsxs("button",{className:"tpl-back",onClick:t,children:[f.jsx(zN,{className:"icon"})," 返回模板列表"]}),f.jsxs(Dt.div,{className:"tpl-detail",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.28,ease:[.22,1,.36,1]},children:[f.jsxs("div",{className:"tpl-detail-head",children:[f.jsx("span",{className:"tpl-detail-icon",children:f.jsx(s,{className:"icon"})}),f.jsxs("div",{className:"tpl-detail-headtext",children:[f.jsx("div",{className:"tpl-detail-name",children:e.draft.name}),f.jsx("div",{className:"tpl-detail-desc",children:e.draft.description})]})]}),o.length>0&&f.jsx("div",{className:"tpl-tags tpl-tags--detail",children:o.map(l=>f.jsxs("span",{className:"tpl-tag",children:[f.jsx(l.icon,{className:"tpl-tag-icon"})," ",l.label]},l.label))}),f.jsxs("label",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"名称"}),f.jsx("input",{className:"tpl-input",value:r,onChange:l=>i(l.target.value),placeholder:e.draft.name})]}),f.jsxs("div",{className:"tpl-field",children:[f.jsx("span",{className:"tpl-field-label",children:"系统提示词"}),f.jsx("p",{className:"tpl-instruction",children:e.draft.instruction})]}),f.jsxs("div",{className:"tpl-meta-grid",children:[e.draft.model&&f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"模型"}),f.jsx("span",{className:"tpl-meta-val tpl-mono",children:e.draft.model})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"工具"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tools.length?e.draft.tools.join("、"):"无"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"记忆"}),f.jsx("span",{className:"tpl-meta-val",children:A7(e.draft)})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"知识库"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.knowledgebase?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"观测追踪"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.tracing?"已开启":"关闭"})]}),f.jsxs("div",{className:"tpl-meta",children:[f.jsx("span",{className:"tpl-meta-key",children:"A2UI"}),f.jsx("span",{className:"tpl-meta-val",children:e.draft.enableA2ui?"已开启":"关闭"})]})]}),e.draft.subAgents.length>0&&f.jsxs("div",{className:"tpl-field",children:[f.jsxs("span",{className:"tpl-field-label",children:["子 Agent(",e.draft.subAgents.length,")"]}),f.jsx("div",{className:"tpl-subagents",children:e.draft.subAgents.map((l,c)=>f.jsxs("div",{className:"tpl-subagent",children:[f.jsxs("div",{className:"tpl-subagent-top",children:[f.jsx("span",{className:"tpl-subagent-name",children:l.name}),l.tools.length>0&&f.jsx("span",{className:"tpl-subagent-tools",children:l.tools.join("、")})]}),f.jsx("div",{className:"tpl-subagent-desc",children:l.description})]},c))})]}),f.jsxs("button",{className:"tpl-create",onClick:a,children:["使用此模板创建 ",f.jsx(Wn,{className:"icon"})]})]})]})}function A7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function gt(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function wf(){for(var e=0,t=arguments.length,n={},r;e=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Au.prototype=wf.prototype={constructor:Au,on:function(e,t){var n=this._,r=I7(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),U1.hasOwnProperty(t)?{space:U1[t],local:e}:e}function O7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ag&&t.documentElement.namespaceURI===ag?t.createElement(e):t.createElementNS(n,e)}}function R7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function g2(e){var t=xf(e);return(t.local?R7:O7)(t)}function L7(){}function X0(e){return e==null?L7:function(){return this.querySelector(e)}}function P7(e){typeof e!="function"&&(e=X0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=w&&(w=y+1);!(_=x[w])&&++w=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function oq(e){e||(e=aq);function t(u,h){return u&&h?e(u.__data__,h.__data__):!u-!h}for(var n=this._groups,r=n.length,i=new Array(r),s=0;st?1:e>=t?0:NaN}function lq(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function cq(){return Array.from(this)}function uq(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?vq:typeof t=="function"?_q:kq)(e,t,n??"")):_o(this.node(),e)}function _o(e,t){return e.style.getPropertyValue(t)||v2(e).getComputedStyle(e,null).getPropertyValue(t)}function Sq(e){return function(){delete this[e]}}function Nq(e,t){return function(){this[e]=t}}function Tq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Aq(e,t){return arguments.length>1?this.each((t==null?Sq:typeof t=="function"?Tq:Nq)(e,t)):this.node()[e]}function k2(e){return e.trim().split(/^|\s+/)}function Q0(e){return e.classList||new _2(e)}function _2(e){this._node=e,this._names=k2(e.getAttribute("class")||"")}_2.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function E2(e,t){for(var n=Q0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function nW(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function lg(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}lg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function fW(e){return!e.ctrlKey&&!e.button}function hW(){return this.parentNode}function pW(e,t){return t??{x:e.x,y:e.y}}function mW(){return navigator.maxTouchPoints||"ontouchstart"in this}function I2(){var e=fW,t=hW,n=pW,r=mW,i={},s=wf("start","drag","end"),o=0,a,l,c,d,u=0;function h(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",x).on("touchmove.drag",m,dW).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,_){if(!(d||!e.call(this,v,_))){var k=w(this,t.call(this,v,_),v,_,"mouse");k&&(an(v.view).on("mousemove.drag",g,vl).on("mouseup.drag",b,vl),A2(v.view),fp(v),c=!1,a=v.clientX,l=v.clientY,k("start",v))}}function g(v){if(io(v),!c){var _=v.clientX-a,k=v.clientY-l;c=_*_+k*k>u}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),C2(v.view,c),io(v),i.mouse("end",v)}function x(v,_){if(e.call(this,v,_)){var k=v.changedTouches,T=t.call(this,v,_),N=k.length,I,A;for(I=0;I>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Xc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Xc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=yW.exec(e))?new Qt(t[1],t[2],t[3],1):(t=bW.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=wW.exec(e))?Xc(t[1],t[2],t[3],t[4]):(t=xW.exec(e))?Xc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=vW.exec(e))?Y1(t[1],t[2]/100,t[3]/100,1):(t=kW.exec(e))?Y1(t[1],t[2]/100,t[3]/100,t[4]):V1.hasOwnProperty(e)?q1(V1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function q1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Xc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function SW(e){return e instanceof rc||(e=Ji(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function cg(e,t,n,r){return arguments.length===1?SW(e):new Qt(e,t,n,r??1)}function Qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Z0(Qt,cg,M2(rc,{brighter(e){return e=e==null?Ed:Math.pow(Ed,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?kl:Math.pow(kl,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qt(Vi(this.r),Vi(this.g),Vi(this.b),Sd(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:W1,formatHex:W1,formatHex8:NW,formatRgb:G1,toString:G1}));function W1(){return`#${ji(this.r)}${ji(this.g)}${ji(this.b)}`}function NW(){return`#${ji(this.r)}${ji(this.g)}${ji(this.b)}${ji((isNaN(this.opacity)?1:this.opacity)*255)}`}function G1(){const e=Sd(this.opacity);return`${e===1?"rgb(":"rgba("}${Vi(this.r)}, ${Vi(this.g)}, ${Vi(this.b)}${e===1?")":`, ${e})`}`}function Sd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Vi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ji(e){return e=Vi(e),(e<16?"0":"")+e.toString(16)}function Y1(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Bn(e,t,n,r)}function O2(e){if(e instanceof Bn)return new Bn(e.h,e.s,e.l,e.opacity);if(e instanceof rc||(e=Ji(e)),!e)return new Bn;if(e instanceof Bn)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(t===s?o=(n-r)/a+(n0&&l<1?0:o,new Bn(o,a,l,e.opacity)}function TW(e,t,n,r){return arguments.length===1?O2(e):new Bn(e,t,n,r??1)}function Bn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Z0(Bn,TW,M2(rc,{brighter(e){return e=e==null?Ed:Math.pow(Ed,e),new Bn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?kl:Math.pow(kl,e),new Bn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Qt(hp(e>=240?e-240:e+120,i,r),hp(e,i,r),hp(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Bn(X1(this.h),Qc(this.s),Qc(this.l),Sd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Sd(this.opacity);return`${e===1?"hsl(":"hsla("}${X1(this.h)}, ${Qc(this.s)*100}%, ${Qc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function X1(e){return e=(e||0)%360,e<0?e+360:e}function Qc(e){return Math.max(0,Math.min(1,e||0))}function hp(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const J0=e=>()=>e;function AW(e,t){return function(n){return e+n*t}}function CW(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function IW(e){return(e=+e)==1?R2:function(t,n){return n-t?CW(t,n,e):J0(isNaN(t)?n:t)}}function R2(e,t){var n=t-e;return n?AW(e,n):J0(isNaN(e)?t:e)}const Nd=function e(t){var n=IW(t);function r(i,s){var o=n((i=cg(i)).r,(s=cg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=R2(i.opacity,s.opacity);return function(d){return i.r=o(d),i.g=a(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r}(1);function MW(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;in&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:er(r,i)})),n=pp.lastIndex;return n180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(i(u)+"rotate(",null,r)-2,x:er(c,d)})):d&&u.push(i(u)+"rotate("+d+r)}function a(c,d,u,h){c!==d?h.push({i:u.push(i(u)+"skewX(",null,r)-2,x:er(c,d)}):d&&u.push(i(u)+"skewX("+d+r)}function l(c,d,u,h,p,g){if(c!==u||d!==h){var b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,u)},{i:b-2,x:er(d,h)})}else(u!==1||h!==1)&&p.push(i(p)+"scale("+u+","+h+")")}return function(c,d){var u=[],h=[];return c=e(c),d=e(d),s(c.translateX,c.translateY,d.translateX,d.translateY,u,h),o(c.rotate,d.rotate,u,h),a(c.skewX,d.skewX,u,h),l(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(p){for(var g=-1,b=h.length,x;++g=0&&e._call.call(void 0,t),e=e._next;--Eo}function J1(){es=(Ad=El.now())+vf,Eo=xa=0;try{qW()}finally{Eo=0,GW(),es=0}}function WW(){var e=El.now(),t=e-Ad;t>j2&&(vf-=t,Ad=e)}function GW(){for(var e,t=Td,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Td=n);va=e,fg(r)}function fg(e){if(!Eo){xa&&(xa=clearTimeout(xa));var t=e-es;t>24?(e<1/0&&(xa=setTimeout(J1,e-El.now()-vf)),ca&&(ca=clearInterval(ca))):(ca||(Ad=El.now(),ca=setInterval(WW,j2)),Eo=1,$2(J1))}}function ek(e,t,n){var r=new Cd;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var YW=wf("start","end","cancel","interrupt"),XW=[],F2=0,tk=1,hg=2,Iu=3,nk=4,pg=5,Mu=6;function kf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;QW(e,n,{name:t,index:r,group:i,on:YW,tween:XW,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:F2})}function tb(e,t){var n=Yn(e,t);if(n.state>F2)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=Yn(e,t);if(n.state>Iu)throw new Error("too late; already running");return n}function Yn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function QW(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=B2(s,0,n.time);function s(c){n.state=tk,n.timer.restart(o,n.delay,n.time),n.delay<=c&&o(c-n.delay)}function o(c){var d,u,h,p;if(n.state!==tk)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Iu)return ek(o);p.state===nk?(p.state=Mu,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+dhg&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function TG(e,t,n){var r,i,s=NG(t)?tb:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function AG(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(TG(n,e,t))}function CG(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function IG(){return this.on("end.remove",CG(this._id))}function MG(e){var t=this._name,n=this._id;typeof e!="function"&&(e=X0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function nY(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function xr(e,t,n){this.k=e,this.x=t,this.y=n}xr.prototype={constructor:xr,scale:function(e){return e===1?this:new xr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new xr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var _f=new xr(1,0,0);H2.prototype=xr.prototype;function H2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return _f;return e.__zoom}function mp(e){e.stopImmediatePropagation()}function ua(e){e.preventDefault(),e.stopImmediatePropagation()}function rY(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function iY(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function rk(){return this.__zoom||_f}function sY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function oY(){return navigator.maxTouchPoints||"ontouchstart"in this}function aY(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function K2(){var e=rY,t=iY,n=aY,r=sY,i=oY,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Cu,c=wf("start","zoom","end"),d,u,h,p=500,g=150,b=0,x=10;function m(O){O.property("__zoom",rk).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",A).filter(i).on("touchstart.zoom",D).on("touchmove.zoom",R).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(O,P,M,$){var L=O.selection?O.selection():O;L.property("__zoom",rk),O!==L?_(O,P,M,$):L.interrupt().each(function(){k(this,arguments).event($).start().zoom(null,typeof P=="function"?P.apply(this,arguments):P).end()})},m.scaleBy=function(O,P,M,$){m.scaleTo(O,function(){var L=this.__zoom.k,j=typeof P=="function"?P.apply(this,arguments):P;return L*j},M,$)},m.scaleTo=function(O,P,M,$){m.transform(O,function(){var L=t.apply(this,arguments),j=this.__zoom,S=M==null?v(L):typeof M=="function"?M.apply(this,arguments):M,H=j.invert(S),V=typeof P=="function"?P.apply(this,arguments):P;return n(w(y(j,V),S,H),L,o)},M,$)},m.translateBy=function(O,P,M,$){m.transform(O,function(){return n(this.__zoom.translate(typeof P=="function"?P.apply(this,arguments):P,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,$)},m.translateTo=function(O,P,M,$,L){m.transform(O,function(){var j=t.apply(this,arguments),S=this.__zoom,H=$==null?v(j):typeof $=="function"?$.apply(this,arguments):$;return n(_f.translate(H[0],H[1]).scale(S.k).translate(typeof P=="function"?-P.apply(this,arguments):-P,typeof M=="function"?-M.apply(this,arguments):-M),j,o)},$,L)};function y(O,P){return P=Math.max(s[0],Math.min(s[1],P)),P===O.k?O:new xr(P,O.x,O.y)}function w(O,P,M){var $=P[0]-M[0]*O.k,L=P[1]-M[1]*O.k;return $===O.x&&L===O.y?O:new xr(O.k,$,L)}function v(O){return[(+O[0][0]+ +O[1][0])/2,(+O[0][1]+ +O[1][1])/2]}function _(O,P,M,$){O.on("start.zoom",function(){k(this,arguments).event($).start()}).on("interrupt.zoom end.zoom",function(){k(this,arguments).event($).end()}).tween("zoom",function(){var L=this,j=arguments,S=k(L,j).event($),H=t.apply(L,j),V=M==null?v(H):typeof M=="function"?M.apply(L,j):M,C=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),U=L.__zoom,W=typeof P=="function"?P.apply(L,j):P,Z=l(U.invert(V).concat(C/U.k),W.invert(V).concat(C/W.k));return function(J){if(J===1)J=W;else{var q=Z(J),te=C/q[2];J=new xr(te,V[0]-q[0]*te,V[1]-q[1]*te)}S.zoom(null,J)}})}function k(O,P,M){return!M&&O.__zooming||new T(O,P)}function T(O,P){this.that=O,this.args=P,this.active=0,this.sourceEvent=null,this.extent=t.apply(O,P),this.taps=0}T.prototype={event:function(O){return O&&(this.sourceEvent=O),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(O,P){return this.mouse&&O!=="mouse"&&(this.mouse[1]=P.invert(this.mouse[0])),this.touch0&&O!=="touch"&&(this.touch0[1]=P.invert(this.touch0[0])),this.touch1&&O!=="touch"&&(this.touch1[1]=P.invert(this.touch1[0])),this.that.__zoom=P,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(O){var P=an(this.that).datum();c.call(O,this.that,new nY(O,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),P)}};function N(O,...P){if(!e.apply(this,arguments))return;var M=k(this,P).event(O),$=this.__zoom,L=Math.max(s[0],Math.min(s[1],$.k*Math.pow(2,r.apply(this,arguments)))),j=jn(O);if(M.wheel)(M.mouse[0][0]!==j[0]||M.mouse[0][1]!==j[1])&&(M.mouse[1]=$.invert(M.mouse[0]=j)),clearTimeout(M.wheel);else{if($.k===L)return;M.mouse=[j,$.invert(j)],Ou(this),M.start()}ua(O),M.wheel=setTimeout(S,g),M.zoom("mouse",n(w(y($,L),M.mouse[0],M.mouse[1]),M.extent,o));function S(){M.wheel=null,M.end()}}function I(O,...P){if(h||!e.apply(this,arguments))return;var M=O.currentTarget,$=k(this,P,!0).event(O),L=an(O.view).on("mousemove.zoom",V,!0).on("mouseup.zoom",C,!0),j=jn(O,M),S=O.clientX,H=O.clientY;A2(O.view),mp(O),$.mouse=[j,this.__zoom.invert(j)],Ou(this),$.start();function V(U){if(ua(U),!$.moved){var W=U.clientX-S,Z=U.clientY-H;$.moved=W*W+Z*Z>b}$.event(U).zoom("mouse",n(w($.that.__zoom,$.mouse[0]=jn(U,M),$.mouse[1]),$.extent,o))}function C(U){L.on("mousemove.zoom mouseup.zoom",null),C2(U.view,$.moved),ua(U),$.event(U).end()}}function A(O,...P){if(e.apply(this,arguments)){var M=this.__zoom,$=jn(O.changedTouches?O.changedTouches[0]:O,this),L=M.invert($),j=M.k*(O.shiftKey?.5:2),S=n(w(y(M,j),$,L),t.apply(this,P),o);ua(O),a>0?an(this).transition().duration(a).call(_,S,$,O):an(this).call(m.transform,S,$,O)}}function D(O,...P){if(e.apply(this,arguments)){var M=O.touches,$=M.length,L=k(this,P,O.changedTouches.length===$).event(O),j,S,H,V;for(mp(O),S=0;S<$;++S)H=M[S],V=jn(H,this),V=[V,this.__zoom.invert(V),H.identifier],L.touch0?!L.touch1&&L.touch0[2]!==V[2]&&(L.touch1=V,L.taps=0):(L.touch0=V,j=!0,L.taps=1+!!d);d&&(d=clearTimeout(d)),j&&(L.taps<2&&(u=V[0],d=setTimeout(function(){d=null},p)),Ou(this),L.start())}}function R(O,...P){if(this.__zooming){var M=k(this,P).event(O),$=O.changedTouches,L=$.length,j,S,H,V;for(ua(O),j=0;j`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Sl=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],q2=["Enter"," ","Escape"],W2={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var So;(function(e){e.Strict="strict",e.Loose="loose"})(So||(So={}));var Hi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Hi||(Hi={}));var Nl;(function(e){e.Partial="partial",e.Full="full"})(Nl||(Nl={}));const G2={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Kr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Kr||(Kr={}));var Tl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Tl||(Tl={}));var me;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(me||(me={}));const ik={[me.Left]:me.Right,[me.Right]:me.Left,[me.Top]:me.Bottom,[me.Bottom]:me.Top};function Y2(e){return e===null?null:e?"valid":"invalid"}const X2=e=>"id"in e&&"source"in e&&"target"in e,lY=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),rb=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),ic=(e,t=[0,0])=>{const{width:n,height:r}=Lr(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},cY=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):rb(i)?i:t.nodeLookup.get(i.id));const a=o?Id(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Ef(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Sf(n)},sc=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=Ef(n,Id(i)),r=!0)}),r?Sf(n):{x:0,y:0,width:0,height:0}},ib=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...Ko(t,[n,r,i]),width:t.width/i,height:t.height/i},l=[];for(const c of e.values()){const{measured:d,selectable:u=!0,hidden:h=!1}=c;if(o&&!u||h)continue;const p=d.width??c.width??c.initialWidth??null,g=d.height??c.height??c.initialHeight??null,b=Al(a,To(c)),x=(p??0)*(g??0),m=s&&b>0;(!c.internals.handleBounds||m||b>=x||c.dragging)&&l.push(c)}return l},uY=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function dY(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function fY({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=dY(e,o),l=sc(a),c=ob(l,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(c,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function Q2({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let u=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",qn.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(u=[[l,c],[l+p,c+g]])}else a&&ns(o.extent)&&(u=[[o.extent[0][0]+l,o.extent[0][1]+c],[o.extent[1][0]+l,o.extent[1][1]+c]]);const h=ns(u)?ts(t,u,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",qn.error015())),{position:{x:h.x-l+(o.measured.width??0)*d[0],y:h.y-c+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function hY({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=s.has(h.id),g=!p&&h.parentId&&o.find(b=>b.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=uY(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!i)return{edges:d,nodes:o};const u=await i({nodes:o,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:o}:{edges:[],nodes:[]}:u}const No=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ts=(e={x:0,y:0},t,n)=>({x:No(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:No(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Z2(e,t,n){const{width:r,height:i}=Lr(n),{x:s,y:o}=n.internals.positionAbsolute;return ts(e,[[s,o],[s+r,o+i]],t)}const sk=(e,t,n)=>en?-No(Math.abs(e-n),1,t)/t:0,sb=(e,t,n=15,r=40)=>{const i=sk(e.x,r,t.width-r)*n,s=sk(e.y,r,t.height-r)*n;return[i,s]},Ef=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),mg=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Sf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),To=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=rb(e)?e.internals.positionAbsolute:ic(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Id=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=rb(e)?e.internals.positionAbsolute:ic(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},J2=(e,t)=>Sf(Ef(mg(e),mg(t))),Al=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},ok=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),eI=(e,t)=>(n,r)=>{},oc=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Ko=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?oc(a,o):a},Ao=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function ks(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function pY(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=ks(e,n),i=ks(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=ks(e.top??e.y??0,n),i=ks(e.bottom??e.y??0,n),s=ks(e.left??e.x??0,t),o=ks(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function mY(e,t,n,r,i,s){const{x:o,y:a}=Ao(e,[t,n,r]),{x:l,y:c}=Ao({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=i-l,u=s-c;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(u)}}const ob=(e,t,n,r,i,s)=>{const o=pY(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),d=No(c,r,i),u=e.x+e.width/2,h=e.y+e.height/2,p=t/2-u*d,g=n/2-h*d,b=mY(e,p,g,d,t,n),x={left:Math.min(b.left-o.left,0),top:Math.min(b.top-o.top,0),right:Math.min(b.right-o.right,0),bottom:Math.min(b.bottom-o.bottom,0)};return{x:p-x.left+x.right,y:g-x.top+x.bottom,zoom:d}},Cl=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ns(e){return e!=null&&e!=="parent"}function Lr(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function tI(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function nI(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function ak(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function gY(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function yY(e){return{...W2,...e||{}}}function Ua(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=Ko({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?oc(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const ab=e=>({width:e.offsetWidth,height:e.offsetHeight}),rI=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},bY=["INPUT","SELECT","TEXTAREA"];function iI(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:bY.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const sI=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=sI(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},lk=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...ab(o)}})};function oI({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const l=e*.125+i*.375+o*.375+n*.125,c=t*.125+s*.375+a*.375+r*.125,d=Math.abs(l-e),u=Math.abs(c-t);return[l,c,d,u]}function eu(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function ck({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case me.Left:return[t-eu(t-r,s),n];case me.Right:return[t+eu(r-t,s),n];case me.Top:return[t,n-eu(n-i,s)];case me.Bottom:return[t,n+eu(i-n,s)]}}function aI({sourceX:e,sourceY:t,sourcePosition:n=me.Bottom,targetX:r,targetY:i,targetPosition:s=me.Top,curvature:o=.25}){const[a,l]=ck({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,d]=ck({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[u,h,p,g]=oI({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${a},${l} ${c},${d} ${r},${i}`,u,h,p,g]}function lI({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const vY=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,kY=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),_Y=(e,t,n={})=>{var s;if(!e.source||!e.target)return(s=n.onError)==null||s.call(n,"006",qn.error006()),t;const r=n.getEdgeId||vY;let i;return X2(e)?i={...e}:i={...e,id:r(e)},kY(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function cI({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=lI({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const uk={[me.Left]:{x:-1,y:0},[me.Right]:{x:1,y:0},[me.Top]:{x:0,y:-1},[me.Bottom]:{x:0,y:1}},EY=({source:e,sourcePosition:t=me.Bottom,target:n})=>t===me.Left||t===me.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function SY({source:e,sourcePosition:t=me.Bottom,target:n,targetPosition:r=me.Top,center:i,offset:s,stepPosition:o}){const a=uk[t],l=uk[r],c={x:e.x+a.x*s,y:e.y+a.y*s},d={x:n.x+l.x*s,y:n.y+l.y*s},u=EY({source:c,sourcePosition:t,target:d}),h=u.x!==0?"x":"y",p=u[h];let g=[],b,x;const m={x:0,y:0},y={x:0,y:0},[,,w,v]=lI({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*l[h]===-1){h==="x"?(b=i.x??c.x+(d.x-c.x)*o,x=i.y??(c.y+d.y)/2):(b=i.x??(c.x+d.x)/2,x=i.y??c.y+(d.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,y:d.y}],I=[{x:c.x,y:x},{x:d.x,y:x}];a[h]===p?g=h==="x"?N:I:g=h==="x"?I:N}else{const N=[{x:c.x,y:d.y}],I=[{x:d.x,y:c.y}];if(h==="x"?g=a.x===p?I:N:g=a.y===p?N:I,t===r){const O=Math.abs(e[h]-n[h]);if(O<=s){const P=Math.min(s-1,s-O);a[h]===p?m[h]=(c[h]>e[h]?-1:1)*P:y[h]=(d[h]>n[h]?-1:1)*P}}if(t!==r){const O=h==="x"?"y":"x",P=a[h]===l[O],M=c[O]>d[O],$=c[O]=F?(b=(A.x+D.x)/2,x=g[0].y):(b=g[0].x,x=(A.y+D.y)/2)}const _={x:c.x+m.x,y:c.y+m.y},k={x:d.x+y.x,y:d.y+y.y};return[[e,..._.x!==g[0].x||_.y!==g[0].y?[_]:[],...g,...k.x!==g[g.length-1].x||k.y!==g[g.length-1].y?[k]:[],n],b,x,w,v]}function NY(e,t,n,r){const i=Math.min(dk(e,t)/2,dk(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const c=e.xn.id===t):e[0])||null}function yg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function AY(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(l=>{if(l&&typeof l=="object"){const c=yg(l,t);s.has(c)||(o.push({id:c,color:l.color||n,...l}),s.add(c))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const uI=1e3,CY=10,lb={nodeOrigin:[0,0],nodeExtent:Sl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},IY={...lb,checkEquality:!0};function cb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function MY(e,t,n){const r=cb(lb,n);for(const i of e.values())if(i.parentId)db(i,e,t,r);else{const s=ic(i,r.nodeOrigin),o=ns(i.extent)?i.extent:r.nodeExtent,a=ts(s,o,Lr(i));i.internals.positionAbsolute=a}}function OY(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function ub(e){return e==="manual"}function bg(e,t,n,r={}){var d,u;const i=cb(IY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!ub(i.zIndexMode)?uI:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(i.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const g=ic(h,i.nodeOrigin),b=ns(h.extent)?h.extent:i.nodeExtent,x=ts(g,b,Lr(h));p={...i.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(u=h.measured)==null?void 0:u.height},internals:{positionAbsolute:x,handleBounds:OY(h,p),z:dI(h,a,i.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(l=!1),h.parentId&&db(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function RY(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function db(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=cb(lb,r),c=e.parentId,d=t.get(c);if(!d){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}RY(e,n),i&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++i.i,d.internals.z=d.internals.z+i.i*CY),i&&d.internals.rootParentIndex!==void 0&&(i.i=d.internals.rootParentIndex);const u=s&&!ub(l)?uI:0,{x:h,y:p,z:g}=LY(e,d,o,a,u,l),{positionAbsolute:b}=e.internals,x=h!==b.x||p!==b.y;(x||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:h,y:p}:b,z:g}})}function dI(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return ub(n)?r:r+(e.selected?t:0)}function LY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=Lr(e),c=ic(e,n),d=ns(e.extent)?ts(c,e.extent,l):c;let u=ts({x:o+d.x,y:a+d.y},r,l);e.extent==="parent"&&(u=Z2(u,l,t));const h=dI(e,i,s),p=t.internals.z??0;return{x:u.x,y:u.y,z:p>=h?p+1:h}}function fb(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const c=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??To(l),d=J2(c,a.rect);s.set(a.parentId,{expandedRect:d,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var w;const d=l.internals.positionAbsolute,u=Lr(l),h=l.origin??r,p=a.x0||g>0||m||y)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+y}}),(w=n.get(c))==null||w.forEach(v=>{e.some(_=>_.id===v.id)||i.push({id:v.id,type:"position",position:{x:v.position.x+p,y:v.position.y+g}})})),(u.width0){const p=fb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function DY({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function mk(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const l=r.get(o)||new Map;if(r.set(o,l.set(n,t)),s){o=`${i}-${e}-${s}`;const c=r.get(o)||new Map;r.set(o,c.set(n,t))}}function fI(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},c=`${i}-${o}--${s}-${a}`,d=`${s}-${a}--${i}-${o}`;mk("source",l,d,e,i,o),mk("target",l,c,e,s,a),t.set(r.id,r)}}function hI(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:hI(n,t):!1}function gk(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function jY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!hI(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function gp({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const i=[];for(const[c,d]of t){const u=(o=n.get(c))==null?void 0:o.internals.userNode;u&&i.push({...u,position:d.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((l=t.get(e))==null?void 0:l.position)||s.position,dragging:r}:i[0],i]}function $Y({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=oc(s,t);return{x:o.x-s.x,y:o.y-s.y}}function BY({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,l=!1,c={x:0,y:0},d=null,u=!1,h=null,p=!1,g=!1,b=null;function x({noDragClassName:y,handleSelector:w,domNode:v,isSelectable:_,nodeId:k,nodeClickDistance:T=0}){h=an(v);function N({x:R,y:F}){const{nodeLookup:O,nodeExtent:P,snapGrid:M,snapToGrid:$,nodeOrigin:L,onNodeDrag:j,onSelectionDrag:S,onError:H,updateNodePositions:V}=t();s={x:R,y:F};let C=!1;const U=a.size>1,W=U&&P?mg(sc(a)):null,Z=U&&$?$Y({dragItems:a,snapGrid:M,x:R,y:F}):null;for(const[J,q]of a){if(!O.has(J))continue;let te={x:R-q.distance.x,y:F-q.distance.y};$&&(te=Z?{x:Math.round(te.x+Z.x),y:Math.round(te.y+Z.y)}:oc(te,M));let ce=null;if(U&&P&&!q.extent&&W){const{positionAbsolute:oe}=q.internals,G=oe.x-W.x+P[0][0],ee=oe.x+q.measured.width-W.x2+P[1][0],B=oe.y-W.y+P[0][1],Y=oe.y+q.measured.height-W.y2+P[1][1];ce=[[G,B],[ee,Y]]}const{position:de,positionAbsolute:le}=Q2({nodeId:J,nextPosition:te,nodeLookup:O,nodeExtent:ce||P,nodeOrigin:L,onError:H});C=C||q.position.x!==de.x||q.position.y!==de.y,q.position=de,q.internals.positionAbsolute=le}if(g=g||C,!!C&&(V(a,!0),b&&(r||j||!k&&S))){const[J,q]=gp({nodeId:k,dragItems:a,nodeLookup:O});r==null||r(b,a,J,q),j==null||j(b,J,q),k||S==null||S(b,q)}}async function I(){if(!d)return;const{transform:R,panBy:F,autoPanSpeed:O,autoPanOnNodeDrag:P}=t();if(!P){l=!1,cancelAnimationFrame(o);return}const[M,$]=sb(c,d,O);(M!==0||$!==0)&&(s.x=(s.x??0)-M/R[2],s.y=(s.y??0)-$/R[2],await F({x:M,y:$})&&N(s)),o=requestAnimationFrame(I)}function A(R){var U;const{nodeLookup:F,multiSelectionActive:O,nodesDraggable:P,transform:M,snapGrid:$,snapToGrid:L,selectNodesOnDrag:j,onNodeDragStart:S,onSelectionDragStart:H,unselectNodesAndEdges:V}=t();u=!0,(!j||!_)&&!O&&k&&((U=F.get(k))!=null&&U.selected||V()),_&&j&&k&&(e==null||e(k));const C=Ua(R.sourceEvent,{transform:M,snapGrid:$,snapToGrid:L,containerBounds:d});if(s=C,a=jY(F,P,C,k),a.size>0&&(n||S||!k&&H)){const[W,Z]=gp({nodeId:k,dragItems:a,nodeLookup:F});n==null||n(R.sourceEvent,a,W,Z),S==null||S(R.sourceEvent,W,Z),k||H==null||H(R.sourceEvent,Z)}}const D=I2().clickDistance(T).on("start",R=>{const{domNode:F,nodeDragThreshold:O,transform:P,snapGrid:M,snapToGrid:$}=t();d=(F==null?void 0:F.getBoundingClientRect())||null,p=!1,g=!1,b=R.sourceEvent,O===0&&A(R),s=Ua(R.sourceEvent,{transform:P,snapGrid:M,snapToGrid:$,containerBounds:d}),c=zn(R.sourceEvent,d)}).on("drag",R=>{const{autoPanOnNodeDrag:F,transform:O,snapGrid:P,snapToGrid:M,nodeDragThreshold:$,nodeLookup:L}=t(),j=Ua(R.sourceEvent,{transform:O,snapGrid:P,snapToGrid:M,containerBounds:d});if(b=R.sourceEvent,(R.sourceEvent.type==="touchmove"&&R.sourceEvent.touches.length>1||k&&!L.has(k))&&(p=!0),!p){if(!l&&F&&u&&(l=!0,I()),!u){const S=zn(R.sourceEvent,d),H=S.x-c.x,V=S.y-c.y;Math.sqrt(H*H+V*V)>$&&A(R)}(s.x!==j.xSnapped||s.y!==j.ySnapped)&&a&&u&&(c=zn(R.sourceEvent,d),N(j))}}).on("end",R=>{if(!u||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,u=!1,cancelAnimationFrame(o),a.size>0){const{nodeLookup:F,updateNodePositions:O,onNodeDragStop:P,onSelectionDragStop:M}=t();if(g&&(O(a,!1),g=!1),i||P||!k&&M){const[$,L]=gp({nodeId:k,dragItems:a,nodeLookup:F,dragging:!1});i==null||i(R.sourceEvent,a,$,L),P==null||P(R.sourceEvent,$,L),k||M==null||M(R.sourceEvent,L)}}}).filter(R=>{const F=R.target;return!R.button&&(!y||!gk(F,`.${y}`,v))&&(!w||gk(F,w,v))});h.call(D)}function m(){h==null||h.on(".drag",null)}return{update:x,destroy:m}}function FY(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())Al(i,To(s))>0&&r.push(s);return r}const zY=250;function UY(e,t,n,r){var a,l;let i=[],s=1/0;const o=FY(e,n,t+zY);for(const c of o){const d=[...((a=c.internals.handleBounds)==null?void 0:a.source)??[],...((l=c.internals.handleBounds)==null?void 0:l.target)??[]];for(const u of d){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:h,y:p}=rs(c,u,u.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g1){const c=r.type==="source"?"target":"source";return i.find(d=>d.type===c)??i[0]}return i[0]}function pI(e,t,n,r,i,s=!1){var c,d,u;const o=r.get(e);if(!o)return null;const a=i==="strict"?(c=o.internals.handleBounds)==null?void 0:c[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((u=o.internals.handleBounds)==null?void 0:u.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&s?{...l,...rs(o,l,l.position,!0)}:l}function mI(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function VY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const gI=()=>!0;function HY(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:d,flowId:u,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:b,onConnectEnd:x,isValidConnection:m=gI,onReconnectEnd:y,updateConnection:w,getTransform:v,getFromHandle:_,autoPanSpeed:k,dragThreshold:T=1,handleDomNode:N}){const I=rI(e.target);let A=0,D;const{x:R,y:F}=zn(e),O=mI(s,N),P=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!P||!O)return;const $=pI(i,O,r,l,t);if(!$)return;let L=zn(e,P),j=!1,S=null,H=!1,V=null;function C(){if(!d||!P)return;const[de,le]=sb(L,P,k);h({x:de,y:le}),A=requestAnimationFrame(C)}const U={...$,nodeId:i,type:O,position:$.position},W=l.get(i);let J={inProgress:!0,isValid:null,from:rs(W,U,me.Left,!0),fromHandle:U,fromPosition:U.position,fromNode:W,to:L,toHandle:null,toPosition:ik[U.position],toNode:null,pointer:L};function q(){M=!0,w(J),g==null||g(e,{nodeId:i,handleId:r,handleType:O})}T===0&&q();function te(de){if(!M){const{x:Y,y:X}=zn(de),ge=Y-R,ye=X-F;if(!(ge*ge+ye*ye>T*T))return;q()}if(!_()||!U){ce(de);return}const le=v();L=zn(de,P),D=UY(Ko(L,le,!1,[1,1]),n,l,U),j||(C(),j=!0);const oe=yI(de,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:u,nodeLookup:l});V=oe.handleDomNode,S=oe.connection,H=VY(!!D,oe.isValid);const G=l.get(i),ee=G?rs(G,U,me.Left,!0):J.from,B={...J,from:ee,isValid:H,to:oe.toHandle&&H?Ao({x:oe.toHandle.x,y:oe.toHandle.y},le):L,toHandle:oe.toHandle,toPosition:H&&oe.toHandle?oe.toHandle.position:ik[U.position],toNode:oe.toHandle?l.get(oe.toHandle.nodeId):null,pointer:L};w(B),J=B}function ce(de){if(!("touches"in de&&de.touches.length>0)){if(M){(D||V)&&S&&H&&(b==null||b(S));const{inProgress:le,...oe}=J,G={...oe,toPosition:J.toHandle?J.toPosition:null};x==null||x(de,G),s&&(y==null||y(de,G))}p(),cancelAnimationFrame(A),j=!1,H=!1,S=null,V=null,I.removeEventListener("mousemove",te),I.removeEventListener("mouseup",ce),I.removeEventListener("touchmove",te),I.removeEventListener("touchend",ce)}}I.addEventListener("mousemove",te),I.addEventListener("mouseup",ce),I.addEventListener("touchmove",te),I.addEventListener("touchend",ce)}function yI(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=gI,nodeLookup:d}){const u=s==="target",h=t?o.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:g}=zn(e),b=o.elementFromPoint(p,g),x=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:h,m={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const y=mI(void 0,x),w=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),_=x.classList.contains("connectable"),k=x.classList.contains("connectableend");if(!w||!y)return m;const T={source:u?w:r,sourceHandle:u?v:i,target:u?r:w,targetHandle:u?i:v};m.connection=T;const I=_&&k&&(n===So.Strict?u&&y==="source"||!u&&y==="target":w!==r||v!==i);m.isValid=I&&c(T),m.toHandle=pI(w,y,v,d,n,!0)}return m}const wg={onPointerDown:HY,isValid:yI};function KY({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=an(e);function s({translateExtent:a,width:l,height:c,zoomStep:d=1,pannable:u=!0,zoomable:h=!0,inversePan:p=!1}){const g=w=>{if(w.sourceEvent.type!=="wheel"||!t)return;const v=n(),_=w.sourceEvent.ctrlKey&&Cl()?10:1,k=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,T=v[2]*Math.pow(2,k*_);t.scaleTo(T)};let b=[0,0];const x=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(b=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY])},m=w=>{const v=n();if(w.sourceEvent.type!=="mousemove"&&w.sourceEvent.type!=="touchmove"||!t)return;const _=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY],k=[_[0]-b[0],_[1]-b[1]];b=_;const T=r()*Math.max(v[2],Math.log(v[2]))*(p?-1:1),N={x:v[0]-k[0]*T,y:v[1]-k[1]*T},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},y=K2().on("start",x).on("zoom",u?m:null).on("zoom.wheel",h?g:null);i.call(y,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const Nf=e=>({x:e.x,y:e.y,zoom:e.k}),yp=({x:e,y:t,zoom:n})=>_f.translate(e,t).scale(n),Ws=(e,t)=>e.target.closest(`.${t}`),bI=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),qY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,bp=(e,t=0,n=qY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},wI=e=>{const t=e.ctrlKey&&Cl()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function WY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return d=>{if(Ws(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const u=n.property("__zoom").k||1;if(d.ctrlKey&&o){const x=jn(d),m=wI(d),y=u*Math.pow(2,m);r.scaleTo(n,y,x,d);return}const h=d.deltaMode===1?20:1;let p=i===Hi.Vertical?0:d.deltaX*h,g=i===Hi.Horizontal?0:d.deltaY*h;!Cl()&&d.shiftKey&&i!==Hi.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/u)*s,-(g/u)*s,{internal:!0});const b=Nf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,b),e.panScrollTimeout=setTimeout(()=>{c==null||c(d,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,b))}}function GY({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=Ws(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function YY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=Nf(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function XY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&bI(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,Nf(s.transform)))}}function QY({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&bI(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=Nf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function ZY({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:d}){return u=>{var x;const h=e||t,p=n&&u.ctrlKey,g=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(Ws(u,`${c}-flow__node`)||Ws(u,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||d&&!g||Ws(u,a)&&g||Ws(u,l)&&(!g||i&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&u.type==="touchstart"&&((x=u.touches)==null?void 0:x.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!p&&g||!r&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(r)&&!r.includes(u.button)&&u.type==="mousedown")return!1;const b=Array.isArray(r)&&r.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&b}}function JY({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),u=K2().scaleExtent([t,n]).translateExtent(r),h=an(e).call(u);y({x:i.x,y:i.y,zoom:No(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),g=h.on("dblclick.zoom");u.wheelDelta(wI);async function b(D,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?za:Cu).transform(bp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),D)}):!1}function x({noWheelClassName:D,noPanClassName:R,onPaneContextMenu:F,userSelectionActive:O,panOnScroll:P,panOnDrag:M,panOnScrollMode:$,panOnScrollSpeed:L,preventScrolling:j,zoomOnPinch:S,zoomOnScroll:H,zoomOnDoubleClick:V,zoomActivationKeyPressed:C,lib:U,onTransformChange:W,connectionInProgress:Z,paneClickDistance:J,selectionOnDrag:q}){O&&!c.isZoomingOrPanning&&m();const te=P&&!C&&!O;u.clickDistance(q?1/0:!Fn(J)||J<0?0:J);const ce=te?WY({zoomPanValues:c,noWheelClassName:D,d3Selection:h,d3Zoom:u,panOnScrollMode:$,panOnScrollSpeed:L,zoomOnPinch:S,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):GY({noWheelClassName:D,preventScrolling:j,d3ZoomHandler:p});h.on("wheel.zoom",ce,{passive:!1});const de=YY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});u.on("start",de);const le=XY({zoomPanValues:c,panOnDrag:M,onPaneContextMenu:!!F,onPanZoom:s,onTransformChange:W});u.on("zoom",le);const oe=QY({zoomPanValues:c,panOnDrag:M,panOnScroll:P,onPaneContextMenu:F,onPanZoomEnd:a,onDraggingChange:l});u.on("end",oe);const G=ZY({zoomActivationKeyPressed:C,panOnDrag:M,zoomOnScroll:H,panOnScroll:P,zoomOnDoubleClick:V,zoomOnPinch:S,userSelectionActive:O,noPanClassName:R,noWheelClassName:D,lib:U,connectionInProgress:Z});u.filter(G),V?h.on("dblclick.zoom",g):h.on("dblclick.zoom",null)}function m(){u.on("zoom",null)}async function y(D,R,F){const O=yp(D),P=u==null?void 0:u.constrain()(O,R,F);return P&&await b(P),P}async function w(D,R){const F=yp(D);return await b(F,R),F}function v(D){if(h){const R=yp(D),F=h.property("__zoom");(F.k!==D.zoom||F.x!==D.x||F.y!==D.y)&&(u==null||u.transform(h,R,null,{sync:!0}))}}function _(){const D=h?H2(h.node()):{x:0,y:0,k:1};return{x:D.x,y:D.y,zoom:D.k}}async function k(D,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?za:Cu).scaleTo(bp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),D)}):!1}async function T(D,R){return h?new Promise(F=>{u==null||u.interpolate((R==null?void 0:R.interpolate)==="linear"?za:Cu).scaleBy(bp(h,R==null?void 0:R.duration,R==null?void 0:R.ease,()=>F(!0)),D)}):!1}function N(D){u==null||u.scaleExtent(D)}function I(D){u==null||u.translateExtent(D)}function A(D){const R=!Fn(D)||D<0?0:D;u==null||u.clickDistance(R)}return{update:x,destroy:m,setViewport:w,setViewportConstrained:y,getViewport:_,scaleTo:k,scaleBy:T,setScaleExtent:N,setTranslateExtent:I,syncViewport:v,setClickDistance:A}}var Co;(function(e){e.Line="line",e.Handle="handle"})(Co||(Co={}));function eX({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(l[0]=l[0]*-1),a&&s&&(l[1]=l[1]*-1),l}function yk(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function jr(e,t){return Math.max(0,t-e)}function $r(e,t){return Math.max(0,e-t)}function tu(e,t,n){return Math.max(0,t-e,e-n)}function bk(e,t){return e?!t:t}function tX(e,t,n,r,i,s,o,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:d,isVertical:u}=t,h=d&&u,{xSnapped:p,ySnapped:g}=n,{minWidth:b,maxWidth:x,minHeight:m,maxHeight:y}=r,{x:w,y:v,width:_,height:k,aspectRatio:T}=e;let N=Math.floor(d?p-e.pointerX:0),I=Math.floor(u?g-e.pointerY:0);const A=_+(l?-N:N),D=k+(c?-I:I),R=-s[0]*_,F=-s[1]*k;let O=tu(A,b,x),P=tu(D,m,y);if(o){let L=0,j=0;l&&N<0?L=jr(w+N+R,o[0][0]):!l&&N>0&&(L=$r(w+A+R,o[1][0])),c&&I<0?j=jr(v+I+F,o[0][1]):!c&&I>0&&(j=$r(v+D+F,o[1][1])),O=Math.max(O,L),P=Math.max(P,j)}if(a){let L=0,j=0;l&&N>0?L=$r(w+N,a[0][0]):!l&&N<0&&(L=jr(w+A,a[1][0])),c&&I>0?j=$r(v+I,a[0][1]):!c&&I<0&&(j=jr(v+D,a[1][1])),O=Math.max(O,L),P=Math.max(P,j)}if(i){if(d){const L=tu(A/T,m,y)*T;if(O=Math.max(O,L),o){let j=0;!l&&!c||l&&!c&&h?j=$r(v+F+A/T,o[1][1])*T:j=jr(v+F+(l?N:-N)/T,o[0][1])*T,O=Math.max(O,j)}if(a){let j=0;!l&&!c||l&&!c&&h?j=jr(v+A/T,a[1][1])*T:j=$r(v+(l?N:-N)/T,a[0][1])*T,O=Math.max(O,j)}}if(u){const L=tu(D*T,b,x)/T;if(P=Math.max(P,L),o){let j=0;!l&&!c||c&&!l&&h?j=$r(w+D*T+R,o[1][0])/T:j=jr(w+(c?I:-I)*T+R,o[0][0])/T,P=Math.max(P,j)}if(a){let j=0;!l&&!c||c&&!l&&h?j=jr(w+D*T,a[1][0])/T:j=$r(w+(c?I:-I)*T,a[0][0])/T,P=Math.max(P,j)}}}I=I+(I<0?P:-P),N=N+(N<0?O:-O),i&&(h?A>D*T?I=(bk(l,c)?-N:N)/T:N=(bk(l,c)?-I:I)*T:d?(I=N/T,c=l):(N=I*T,l=c));const M=l?w+N:w,$=c?v+I:v;return{width:_+(l?-N:N),height:k+(c?-I:I),x:s[0]*N*(l?-1:1)+M,y:s[1]*I*(c?-1:1)+$}}const xI={width:0,height:0,x:0,y:0},nX={...xI,pointerX:0,pointerY:0,aspectRatio:1};function rX(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,l=n[1]*o;return[[r-a,i-l],[r+s-a,i+o-l]]}function iX({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:yk("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:d,keepAspectRatio:u,resizeDirection:h,onResizeStart:p,onResize:g,onResizeEnd:b,shouldResize:x}){let m={...xI},y={...nX};o={boundaries:d,resizeDirection:h,keepAspectRatio:u,controlDirection:yk(c)};let w,v=null,_=[],k,T,N,I=!1;const A=I2().on("start",D=>{const{nodeLookup:R,transform:F,snapGrid:O,snapToGrid:P,nodeOrigin:M,paneDomNode:$}=n();if(w=R.get(t),!w)return;v=($==null?void 0:$.getBoundingClientRect())??null;const{xSnapped:L,ySnapped:j}=Ua(D.sourceEvent,{transform:F,snapGrid:O,snapToGrid:P,containerBounds:v});m={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},y={...m,pointerX:L,pointerY:j,aspectRatio:m.width/m.height},k=void 0,T=ns(w.extent)?w.extent:void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(k=R.get(w.parentId)),k&&w.extent==="parent"&&(T=[[0,0],[k.measured.width,k.measured.height]]),_=[],N=void 0;for(const[S,H]of R)if(H.parentId===t&&(_.push({id:S,position:{...H.position},extent:H.extent}),H.extent==="parent"||H.expandParent)){const V=rX(H,w,H.origin??M);N?N=[[Math.min(V[0][0],N[0][0]),Math.min(V[0][1],N[0][1])],[Math.max(V[1][0],N[1][0]),Math.max(V[1][1],N[1][1])]]:N=V}p==null||p(D,{...m})}).on("drag",D=>{const{transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:P}=n(),M=Ua(D.sourceEvent,{transform:R,snapGrid:F,snapToGrid:O,containerBounds:v}),$=[];if(!w)return;const{x:L,y:j,width:S,height:H}=m,V={},C=w.origin??P,{width:U,height:W,x:Z,y:J}=tX(y,o.controlDirection,M,o.boundaries,o.keepAspectRatio,C,T,N),q=U!==S,te=W!==H,ce=Z!==L&&q,de=J!==j&&te;if(!ce&&!de&&!q&&!te)return;if((ce||de||C[0]===1||C[1]===1)&&(V.x=ce?Z:m.x,V.y=de?J:m.y,m.x=V.x,m.y=V.y,_.length>0)){const ee=Z-L,B=J-j;for(const Y of _)Y.position={x:Y.position.x-ee+C[0]*(U-S),y:Y.position.y-B+C[1]*(W-H)},$.push(Y)}if((q||te)&&(V.width=q&&(!o.resizeDirection||o.resizeDirection==="horizontal")?U:m.width,V.height=te&&(!o.resizeDirection||o.resizeDirection==="vertical")?W:m.height,m.width=V.width,m.height=V.height),k&&w.expandParent){const ee=C[0]*(V.width??0);V.x&&V.x{I&&(b==null||b(D,{...m}),i==null||i({...m}),I=!1)});s.call(A)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var vI={exports:{}},kI={},_I={exports:{}},EI={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Io=E;function sX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var oX=typeof Object.is=="function"?Object.is:sX,aX=Io.useState,lX=Io.useEffect,cX=Io.useLayoutEffect,uX=Io.useDebugValue;function dX(e,t){var n=t(),r=aX({inst:{value:n,getSnapshot:t}}),i=r[0].inst,s=r[1];return cX(function(){i.value=n,i.getSnapshot=t,wp(i)&&s({inst:i})},[e,n,t]),lX(function(){return wp(i)&&s({inst:i}),e(function(){wp(i)&&s({inst:i})})},[e]),uX(n),n}function wp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!oX(e,n)}catch{return!0}}function fX(e,t){return t()}var hX=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?fX:dX;EI.useSyncExternalStore=Io.useSyncExternalStore!==void 0?Io.useSyncExternalStore:hX;_I.exports=EI;var pX=_I.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Tf=E,mX=pX;function gX(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var yX=typeof Object.is=="function"?Object.is:gX,bX=mX.useSyncExternalStore,wX=Tf.useRef,xX=Tf.useEffect,vX=Tf.useMemo,kX=Tf.useDebugValue;kI.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=wX(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=vX(function(){function l(p){if(!c){if(c=!0,d=p,p=r(p),i!==void 0&&o.hasValue){var g=o.value;if(i(g,p))return u=g}return u=p}if(g=u,yX(d,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(d=p,g):(d=p,u=b)}var c=!1,d,u,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,i]);var a=bX(e,s[0],s[1]);return xX(function(){o.hasValue=!0,o.value=a},[a]),kX(a),a};vI.exports=kI;var _X=vI.exports;const EX=Ml(_X),SX={},wk=e=>{let t;const n=new Set,r=(d,u)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=u??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},i=()=>t,l={setState:r,getState:i,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(SX?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,i,l);return l},NX=e=>e?wk(e):wk,{useDebugValue:TX}=a_,{useSyncExternalStoreWithSelector:AX}=EX,CX=e=>e;function SI(e,t=CX,n){const r=AX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return TX(r),r}const xk=(e,t)=>{const n=NX(e),r=(i,s=t)=>SI(n,i,s);return Object.assign(r,n),r},IX=(e,t)=>e?xk(e,t):xk;function Ye(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Af=E.createContext(null),MX=Af.Provider,NI=qn.error001("react");function Oe(e,t){const n=E.useContext(Af);if(n===null)throw new Error(NI);return SI(n,e,t)}function Xe(){const e=E.useContext(Af);if(e===null)throw new Error(NI);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const vk={display:"none"},OX={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},TI="react-flow__node-desc",AI="react-flow__edge-desc",RX="react-flow__aria-live",LX=e=>e.ariaLiveMessage,PX=e=>e.ariaLabelConfig;function DX({rfId:e}){const t=Oe(LX);return f.jsx("div",{id:`${RX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:OX,children:t})}function jX({rfId:e,disableKeyboardA11y:t}){const n=Oe(PX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${TI}-${e}`,style:vk,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${AI}-${e}`,style:vk,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(DX,{rfId:e})]})}const Cf=E.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return f.jsx("div",{className:gt(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});Cf.displayName="Panel";function $X({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:f.jsx(Cf,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:f.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const BX=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},nu=e=>e.id;function FX(e,t){return Ye(e.selectedNodes.map(nu),t.selectedNodes.map(nu))&&Ye(e.selectedEdges.map(nu),t.selectedEdges.map(nu))}function zX({onSelectionChange:e}){const t=Xe(),{selectedNodes:n,selectedEdges:r}=Oe(BX,FX);return E.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const UX=e=>!!e.onSelectionChangeHandlers;function VX({onSelectionChange:e}){const t=Oe(UX);return e||t?f.jsx(zX,{onSelectionChange:e}):null}const CI=[0,0],HX={x:0,y:0,zoom:1},KX=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],kk=[...KX,"rfId"],qX=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),_k={translateExtent:Sl,nodeOrigin:CI,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function WX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Oe(qX,Ye),c=Xe();E.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=_k,a()}),[]);const d=E.useRef(_k);return E.useEffect(()=>{for(const u of kk){const h=e[u],p=d.current[u];h!==p&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?r(h):u==="maxZoom"?i(h):u==="translateExtent"?s(h):u==="nodeExtent"?o(h):u==="ariaLabelConfig"?c.setState({ariaLabelConfig:yY(h)}):u==="fitView"?c.setState({fitViewQueued:h}):u==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[u]:h})))}d.current=e},kk.map(u=>e[u])),null}function Ek(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function GX(e){var r;const[t,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const i=Ek(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=Ek())!=null&&r.matches?"dark":"light"}const Sk=typeof document<"u"?document:null;function Il(e=null,t={target:Sk,actInsideInputWithModifier:!0}){const[n,r]=E.useState(!1),i=E.useRef(!1),s=E.useRef(new Set([])),[o,a]=E.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),d=c.reduce((u,h)=>u.concat(...h),[]);return[c,d]}return[[],[]]},[e]);return E.useEffect(()=>{const l=(t==null?void 0:t.target)??Sk,c=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var x,m;if(i.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!i.current||i.current&&!c)&&iI(p))return!1;const b=Tk(p.code,a);if(s.current.add(p[b]),Nk(o,s.current,!1)){const y=((m=(x=p.composedPath)==null?void 0:x.call(p))==null?void 0:m[0])||p.target,w=(y==null?void 0:y.nodeName)==="BUTTON"||(y==null?void 0:y.nodeName)==="A";t.preventDefault!==!1&&(i.current||!w)&&p.preventDefault(),r(!0)}},u=p=>{const g=Tk(p.code,a);Nk(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(p[g]),p.key==="Meta"&&s.current.clear(),i.current=!1},h=()=>{s.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",u),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",u),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,r]),n}function Nk(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function Tk(e,t){return t.includes(e)?"code":"key"}const YX=()=>{const e=Xe();return E.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),l=ob(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:l}=o.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},d=n.snapGrid??i,u=n.snapToGrid??s;return Ko(c,r,u,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=Ao(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function II(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const l of o)XX(l,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function XX(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function MI(e,t){return II(e,t)}function OI(e,t){return II(e,t)}function Ci(e,t){return{id:e,type:"select",selected:t}}function Gs(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Ci(s.id,o)))}return r}function Ak({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),l=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function Ck(e){return{id:e.id,type:"remove"}}const QX=eI();function RI(e,t,n={}){return _Y(e,t,{...n,onError:n.onError??QX})}const Ik=e=>lY(e),ZX=e=>X2(e);function LI(e){return E.forwardRef(e)}const JX=typeof window<"u"?E.useLayoutEffect:E.useEffect;function Mk(e){const[t,n]=E.useState(BigInt(0)),[r]=E.useState(()=>eQ(()=>n(i=>i+BigInt(1))));return JX(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function eQ(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const PI=E.createContext(null);function tQ({children:e}){const t=Xe(),n=E.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:d,onNodesChange:u,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let b=l;for(const m of a)b=typeof m=="function"?m(b):m;let x=Ak({items:b,lookup:h});for(const m of g.values())x=m(x);d&&c(b),x.length>0?u==null||u(x):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:y,setNodes:w}=t.getState();m&&w(y)})},[]),r=Mk(n),i=E.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:d,onEdgesChange:u,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?c(p):u&&u(Ak({items:p,lookup:h}))},[]),s=Mk(i),o=E.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(PI.Provider,{value:o,children:e})}function nQ(){const e=E.useContext(PI);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const rQ=e=>!!e.panZoom;function hb(){const e=YX(),t=Xe(),n=nQ(),r=Oe(rQ),i=E.useMemo(()=>{const s=u=>t.getState().nodeLookup.get(u),o=u=>{n.nodeQueue.push(u)},a=u=>{n.edgeQueue.push(u)},l=u=>{var m,y;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=Ik(u)?u:h.get(u.id),b=g.parentId?nI(g.position,g.measured,g.parentId,h,p):g.position,x={...g,position:b,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((y=g.measured)==null?void 0:y.height)??g.height};return To(x)},c=(u,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===u){const x=typeof h=="function"?h(b):h;return p.replace&&Ik(x)?x:{...b,...x}}return b}))},d=(u,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===u){const x=typeof h=="function"?h(b):h;return p.replace&&ZX(x)?x:{...b,...x}}return b}))};return{getNodes:()=>t.getState().nodes.map(u=>({...u})),getNode:u=>{var h;return(h=s(u))==null?void 0:h.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:u=[]}=t.getState();return u.map(h=>({...h}))},getEdge:u=>t.getState().edgeLookup.get(u),setNodes:o,setEdges:a,addNodes:u=>{const h=Array.isArray(u)?u:[u];n.nodeQueue.push(p=>[...p,...h])},addEdges:u=>{const h=Array.isArray(u)?u:[u];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:u=[],edges:h=[],transform:p}=t.getState(),[g,b,x]=p;return{nodes:u.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:x}}},deleteElements:async({nodes:u=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:y,onDelete:w,onBeforeDelete:v}=t.getState(),{nodes:_,edges:k}=await hY({nodesToRemove:u,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),T=k.length>0,N=_.length>0;if(T){const I=k.map(Ck);x==null||x(k),y(I)}if(N){const I=_.map(Ck);b==null||b(_),m(I)}return(N||T)&&(w==null||w({nodes:_,edges:k})),{deletedNodes:_,deletedEdges:k}},getIntersectingNodes:(u,h=!0,p)=>{const g=ok(u),b=g?u:l(u),x=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const y=t.getState().nodeLookup.get(m.id);if(y&&!g&&(m.id===u.id||!y.internals.positionAbsolute))return!1;const w=To(x?m:y),v=Al(w,b);return h&&v>0||v>=w.width*w.height||v>=b.width*b.height}):[]},isNodeIntersecting:(u,h,p=!0)=>{const b=ok(u)?u:l(u);if(!b)return!1;const x=Al(b,h);return p&&x>0||x>=h.width*h.height||x>=b.width*b.height},updateNode:c,updateNodeData:(u,h,p={replace:!1})=>{c(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:d,updateEdgeData:(u,h,p={replace:!1})=>{d(u,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:u=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return cY(u,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:u,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${u}${h?`-${h}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:u,handleId:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}${u?h?`-${u}-${h}`:`-${u}`:""}`))==null?void 0:g.values())??[])},fitView:async u=>{const h=t.getState().fitViewResolver??gY();return t.setState({fitViewQueued:!0,fitViewOptions:u,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return E.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const Ok=e=>e.selected,iQ=typeof window<"u"?window:void 0;function sQ({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Xe(),{deleteElements:r}=hb(),i=Il(e,{actInsideInputWithModifier:!1}),s=Il(t,{target:iQ});E.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(Ok),edges:o.filter(Ok)}),n.setState({nodesSelectionActive:!1})}},[i]),E.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function oQ(e){const t=Xe();E.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=ab(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",qn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const If={position:"absolute",width:"100%",height:"100%",top:0,left:0},aQ=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function lQ({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Hi.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:x,onViewportChange:m,isControlledViewport:y,paneClickDistance:w,selectionOnDrag:v}){const _=Xe(),k=E.useRef(null),{userSelectionActive:T,lib:N,connectionInProgress:I}=Oe(aQ,Ye),A=Il(h),D=E.useRef();oQ(k);const R=E.useCallback(F=>{m==null||m({x:F[0],y:F[1],zoom:F[2]}),y||_.setState({transform:F})},[m,y]);return E.useEffect(()=>{if(k.current){D.current=JY({domNode:k.current,minZoom:d,maxZoom:u,translateExtent:c,viewport:l,onDraggingChange:M=>_.setState($=>$.paneDragging===M?$:{paneDragging:M}),onPanZoomStart:(M,$)=>{const{onViewportChangeStart:L,onMoveStart:j}=_.getState();j==null||j(M,$),L==null||L($)},onPanZoom:(M,$)=>{const{onViewportChange:L,onMove:j}=_.getState();j==null||j(M,$),L==null||L($)},onPanZoomEnd:(M,$)=>{const{onViewportChangeEnd:L,onMoveEnd:j}=_.getState();j==null||j(M,$),L==null||L($)}});const{x:F,y:O,zoom:P}=D.current.getViewport();return _.setState({panZoom:D.current,transform:[F,O,P],domNode:k.current.closest(".react-flow")}),()=>{var M;(M=D.current)==null||M.destroy()}}},[]),E.useEffect(()=>{var F;(F=D.current)==null||F.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:A,preventScrolling:p,noPanClassName:x,userSelectionActive:T,noWheelClassName:b,lib:N,onTransformChange:R,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:w})},[e,t,n,r,i,s,o,a,A,p,x,T,b,N,R,I,v,w]),f.jsx("div",{className:"react-flow__renderer",ref:k,style:If,children:g})}const cQ=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function uQ(){const{userSelectionActive:e,userSelectionRect:t}=Oe(cQ,Ye);return e&&t?f.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const xp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},dQ=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function fQ({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Nl.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:g,children:b}){const x=E.useRef(0),m=Xe(),{userSelectionActive:y,elementsSelectable:w,dragging:v,connectionInProgress:_,panBy:k,autoPanSpeed:T}=Oe(dQ,Ye),N=w&&(e||y),I=E.useRef(null),A=E.useRef(),D=E.useRef(new Set),R=E.useRef(new Set),F=E.useRef(!1),O=E.useRef({x:0,y:0}),P=E.useRef(!1),M=q=>{if(F.current||_){F.current=!1;return}c==null||c(q),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},$=q=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){q.preventDefault();return}d==null||d(q)},L=u?q=>u(q):void 0,j=q=>{F.current&&(q.stopPropagation(),F.current=!1)},S=q=>{var Y,X;const{domNode:te,transform:ce}=m.getState();if(A.current=te==null?void 0:te.getBoundingClientRect(),!A.current)return;const de=q.target===I.current;if(!de&&!!q.target.closest(".nokey")||!e||!(o&&de||t)||q.button!==0||!q.isPrimary)return;(X=(Y=q.target)==null?void 0:Y.setPointerCapture)==null||X.call(Y,q.pointerId),F.current=!1;const{x:G,y:ee}=zn(q.nativeEvent,A.current),B=Ko({x:G,y:ee},ce);m.setState({userSelectionRect:{width:0,height:0,startX:B.x,startY:B.y,x:G,y:ee}}),de||(q.stopPropagation(),q.preventDefault())};function H(q,te){const{userSelectionRect:ce}=m.getState();if(!ce)return;const{transform:de,nodeLookup:le,edgeLookup:oe,connectionLookup:G,triggerNodeChanges:ee,triggerEdgeChanges:B,defaultEdgeOptions:Y}=m.getState(),X={x:ce.startX,y:ce.startY},{x:ge,y:ye}=Ao(X,de),fe={startX:X.x,startY:X.y,x:qDe.id)),R.current=new Set;const it=(Y==null?void 0:Y.selectable)??!0;for(const De of D.current){const z=G.get(De);if(z)for(const{edgeId:K}of z.values()){const ne=oe.get(K);ne&&(ne.selectable??it)&&R.current.add(K)}}if(!ak(_e,D.current)){const De=Gs(le,D.current,!0);ee(De)}if(!ak(Ne,R.current)){const De=Gs(oe,R.current);B(De)}m.setState({userSelectionRect:fe,userSelectionActive:!0,nodesSelectionActive:!1})}function V(){if(!i||!A.current)return;const[q,te]=sb(O.current,A.current,T);k({x:q,y:te}).then(ce=>{if(!F.current||!ce){x.current=requestAnimationFrame(V);return}const{x:de,y:le}=O.current;H(de,le),x.current=requestAnimationFrame(V)})}const C=()=>{cancelAnimationFrame(x.current),x.current=0,P.current=!1};E.useEffect(()=>()=>C(),[]);const U=q=>{const{userSelectionRect:te,transform:ce,resetSelectedElements:de}=m.getState();if(!A.current||!te)return;const{x:le,y:oe}=zn(q.nativeEvent,A.current);O.current={x:le,y:oe};const G=Ao({x:te.startX,y:te.startY},ce);if(!F.current){const ee=t?0:s;if(Math.hypot(le-G.x,oe-G.y)<=ee)return;de(),a==null||a(q)}F.current=!0,P.current||(V(),P.current=!0),H(le,oe)},W=q=>{var te,ce;q.button===0&&((ce=(te=q.target)==null?void 0:te.releasePointerCapture)==null||ce.call(te,q.pointerId),!y&&q.target===I.current&&m.getState().userSelectionRect&&(M==null||M(q)),m.setState({userSelectionActive:!1,userSelectionRect:null}),F.current&&(l==null||l(q),m.setState({nodesSelectionActive:D.current.size>0})),C())},Z=q=>{var te,ce;(ce=(te=q.target)==null?void 0:te.releasePointerCapture)==null||ce.call(te,q.pointerId),C()},J=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:gt(["react-flow__pane",{draggable:J,dragging:v,selection:e}]),onClick:N?void 0:xp(M,I),onContextMenu:xp($,I),onWheel:xp(L,I),onPointerEnter:N?void 0:h,onPointerMove:N?U:p,onPointerUp:N?W:void 0,onPointerCancel:N?Z:void 0,onPointerDownCapture:N?S:void 0,onClickCapture:N?j:void 0,onPointerLeave:g,ref:I,style:If,children:[b,f.jsx(uQ,{})]})}function xg({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",qn.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&o)&&(s({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):i([e])}function DI({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Xe(),[l,c]=E.useState(!1),d=E.useRef();return E.useEffect(()=>{d.current=BY({getStoreItems:()=>a.getState(),onNodeMouseDown:u=>{xg({id:u,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),E.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var u;(u=d.current)==null||u.destroy()}},[n,r,t,s,e,i,o]),l}const hQ=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function jI(){const e=Xe();return E.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,h=hQ(o),p=i?s[0]:5,g=i?s[1]:5,b=n.direction.x*p*n.factor,x=n.direction.y*g*n.factor;for(const[,m]of c){if(!h(m))continue;let y={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+x};i&&(y=oc(y,s));const{position:w,positionAbsolute:v}=Q2({nodeId:m.id,nextPosition:y,nodeLookup:c,nodeExtent:r,nodeOrigin:d,onError:a});m.position=w,m.internals.positionAbsolute=v,u.set(m.id,m)}l(u)},[])}const pb=E.createContext(null),pQ=pb.Provider;pb.Consumer;const $I=()=>E.useContext(pb),mQ=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),gQ=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===So.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:d&&c}};function yQ({type:e="source",position:t=me.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:l,className:c,onMouseDown:d,onTouchStart:u,...h},p){var P,M;const g=o||null,b=e==="target",x=Xe(),m=$I(),{connectOnClick:y,noPanClassName:w,rfId:v}=Oe(mQ,Ye),{connectingFrom:_,connectingTo:k,clickConnecting:T,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:A,valid:D}=Oe(gQ(m,g,e),Ye);m||(M=(P=x.getState()).onError)==null||M.call(P,"010",qn.error010());const R=$=>{const{defaultEdgeOptions:L,onConnect:j,hasDefaultEdges:S}=x.getState(),H={...L,...$};if(S){const{edges:V,setEdges:C,onError:U}=x.getState();C(RI(H,V,{onError:U}))}j==null||j(H),a==null||a(H)},F=$=>{if(!m)return;const L=sI($.nativeEvent);if(i&&(L&&$.button===0||!L)){const j=x.getState();wg.onPointerDown($.nativeEvent,{handleDomNode:$.currentTarget,autoPanOnConnect:j.autoPanOnConnect,connectionMode:j.connectionMode,connectionRadius:j.connectionRadius,domNode:j.domNode,nodeLookup:j.nodeLookup,lib:j.lib,isTarget:b,handleId:g,nodeId:m,flowId:j.rfId,panBy:j.panBy,cancelConnection:j.cancelConnection,onConnectStart:j.onConnectStart,onConnectEnd:(...S)=>{var H,V;return(V=(H=x.getState()).onConnectEnd)==null?void 0:V.call(H,...S)},updateConnection:j.updateConnection,onConnect:R,isValidConnection:n||((...S)=>{var H,V;return((V=(H=x.getState()).isValidConnection)==null?void 0:V.call(H,...S))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:j.autoPanSpeed,dragThreshold:j.connectionDragThreshold})}L?d==null||d($):u==null||u($)},O=$=>{const{onClickConnectStart:L,onClickConnectEnd:j,connectionClickStartHandle:S,connectionMode:H,isValidConnection:V,lib:C,rfId:U,nodeLookup:W,connection:Z}=x.getState();if(!m||!S&&!i)return;if(!S){L==null||L($.nativeEvent,{nodeId:m,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const J=rI($.target),q=n||V,{connection:te,isValid:ce}=wg.isValid($.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:H,fromNodeId:S.nodeId,fromHandleId:S.id||null,fromType:S.type,isValidConnection:q,flowId:U,doc:J,lib:C,nodeLookup:W});ce&&te&&R(te);const de=structuredClone(Z);delete de.inProgress,de.toPosition=de.toHandle?de.toHandle.position:null,j==null||j($,de),x.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:gt(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",w,c,{source:!b,target:b,connectable:r,connectablestart:i,connectableend:s,clickconnecting:T,connectingfrom:_,connectingto:k,valid:D,connectionindicator:r&&(!I||N)&&(I||A?s:i)}]),onMouseDown:F,onTouchStart:F,onClick:y?O:void 0,ref:p,...h,children:l})}const Mo=E.memo(LI(yQ));function bQ({data:e,isConnectable:t,sourcePosition:n=me.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function wQ({data:e,isConnectable:t,targetPosition:n=me.Top,sourcePosition:r=me.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function xQ(){return null}function vQ({data:e,isConnectable:t,targetPosition:n=me.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Md={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Rk={input:bQ,default:wQ,output:vQ,group:xQ};function kQ(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const _Q=e=>{const{width:t,height:n,x:r,y:i}=sc(e.nodeLookup,{filter:s=>!!s.selected});return{width:Fn(t)?t:null,height:Fn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function EQ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Xe(),{width:i,height:s,transformString:o,userSelectionActive:a}=Oe(_Q,Ye),l=jI(),c=E.useRef(null);E.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const d=!a&&i!==null&&s!==null;if(DI({nodeRef:c,disabled:!d}),!d)return null;const u=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Md,p.key)&&(p.preventDefault(),l({direction:Md[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:gt(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:f.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:i,height:s}})})}const Lk=typeof window<"u"?window:void 0,SQ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function BI({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:d,selectionMode:u,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:b,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:w,panOnScroll:v,panOnScrollSpeed:_,panOnScrollMode:k,zoomOnDoubleClick:T,panOnDrag:N,autoPanOnSelection:I,defaultViewport:A,translateExtent:D,minZoom:R,maxZoom:F,preventScrolling:O,onSelectionContextMenu:P,noWheelClassName:M,noPanClassName:$,disableKeyboardA11y:L,onViewportChange:j,isControlledViewport:S}){const{nodesSelectionActive:H,userSelectionActive:V}=Oe(SQ,Ye),C=Il(c,{target:Lk}),U=Il(b,{target:Lk}),W=U||N,Z=U||v,J=d&&W!==!0,q=C||V||J;return sQ({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(lQ,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:w,panOnScroll:Z,panOnScrollSpeed:_,panOnScrollMode:k,zoomOnDoubleClick:T,panOnDrag:!C&&W,defaultViewport:A,translateExtent:D,minZoom:R,maxZoom:F,zoomActivationKeyCode:x,preventScrolling:O,noWheelClassName:M,noPanClassName:$,onViewportChange:j,isControlledViewport:S,paneClickDistance:a,selectionOnDrag:J,children:f.jsxs(fQ,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:W,autoPanOnSelection:I,isSelecting:!!q,selectionMode:u,selectionKeyPressed:C,paneClickDistance:a,selectionOnDrag:J,children:[e,H&&f.jsx(EQ,{onSelectionContextMenu:P,noPanClassName:$,disableKeyboardA11y:L})]})})}BI.displayName="FlowRenderer";const NQ=E.memo(BI),TQ=e=>t=>e?ib(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function AQ(e){return Oe(E.useCallback(TQ(e),[e]),Ye)}const CQ=e=>e.updateNodeInternals;function IQ(){const e=Oe(CQ),[t]=E.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return E.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function MQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Xe(),s=E.useRef(null),o=E.useRef(null),a=E.useRef(e.sourcePosition),l=E.useRef(e.targetPosition),c=E.useRef(t),d=n&&!!e.internals.handleBounds;return E.useEffect(()=>{s.current&&!e.hidden&&(!d||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[d,e.hidden]),E.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),E.useEffect(()=>{if(s.current){const u=c.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(u||h||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function OQ({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:d,resizeObserver:u,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:b,nodeTypes:x,nodeClickDistance:m,onError:y}){const{node:w,internals:v,isParent:_}=Oe(q=>{const te=q.nodeLookup.get(e),ce=q.parentLookup.has(e);return{node:te,internals:te.internals,isParent:ce}},Ye);let k=w.type||"default",T=(x==null?void 0:x[k])||Rk[k];T===void 0&&(y==null||y("003",qn.error003(k)),k="default",T=(x==null?void 0:x.default)||Rk.default);const N=!!(w.draggable||a&&typeof w.draggable>"u"),I=!!(w.selectable||l&&typeof w.selectable>"u"),A=!!(w.connectable||c&&typeof w.connectable>"u"),D=!!(w.focusable||d&&typeof w.focusable>"u"),R=Xe(),F=tI(w),O=MQ({node:w,nodeType:k,hasDimensions:F,resizeObserver:u}),P=DI({nodeRef:O,disabled:w.hidden||!N,noDragClassName:h,handleSelector:w.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),M=jI();if(w.hidden)return null;const $=Lr(w),L=kQ(w),j=I||N||t||n||r||i,S=n?q=>n(q,{...v.userNode}):void 0,H=r?q=>r(q,{...v.userNode}):void 0,V=i?q=>i(q,{...v.userNode}):void 0,C=s?q=>s(q,{...v.userNode}):void 0,U=o?q=>o(q,{...v.userNode}):void 0,W=q=>{const{selectNodesOnDrag:te,nodeDragThreshold:ce}=R.getState();I&&(!te||!N||ce>0)&&xg({id:e,store:R,nodeRef:O}),t&&t(q,{...v.userNode})},Z=q=>{if(!(iI(q.nativeEvent)||g)){if(q2.includes(q.key)&&I){const te=q.key==="Escape";xg({id:e,store:R,unselect:te,nodeRef:O})}else if(N&&w.selected&&Object.prototype.hasOwnProperty.call(Md,q.key)){q.preventDefault();const{ariaLabelConfig:te}=R.getState();R.setState({ariaLiveMessage:te["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:Md[q.key],factor:q.shiftKey?4:1})}}},J=()=>{var G;if(g||!((G=O.current)!=null&&G.matches(":focus-visible")))return;const{transform:q,width:te,height:ce,autoPanOnNodeFocus:de,setCenter:le}=R.getState();if(!de)return;ib(new Map([[e,w]]),{x:0,y:0,width:te,height:ce},q,!0).length>0||le(w.position.x+$.width/2,w.position.y+$.height/2,{zoom:q[2]})};return f.jsx("div",{className:gt(["react-flow__node",`react-flow__node-${k}`,{[p]:N},w.className,{selected:w.selected,selectable:I,parent:_,draggable:N,dragging:P}]),ref:O,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:j?"all":"none",visibility:F?"visible":"hidden",...w.style,...L},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:S,onMouseMove:H,onMouseLeave:V,onContextMenu:C,onClick:W,onDoubleClick:U,onKeyDown:D?Z:void 0,tabIndex:D?0:void 0,onFocus:D?J:void 0,role:w.ariaRole??(D?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${TI}-${b}`,"aria-label":w.ariaLabel,...w.domAttributes,children:f.jsx(pQ,{value:e,children:f.jsx(T,{id:e,data:w.data,type:k,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:w.selected??!1,selectable:I,draggable:N,deletable:w.deletable??!0,isConnectable:A,sourcePosition:w.sourcePosition,targetPosition:w.targetPosition,dragging:P,dragHandle:w.dragHandle,zIndex:v.z,parentId:w.parentId,...$})})})}var RQ=E.memo(OQ);const LQ=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function FI(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=Oe(LQ,Ye),o=AQ(e.onlyRenderVisibleElements),a=IQ();return f.jsx("div",{className:"react-flow__nodes",style:If,children:o.map(l=>f.jsx(RQ,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},l))})}FI.displayName="NodeRenderer";const PQ=E.memo(FI);function DQ(e){return Oe(E.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&xY({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),Ye)}const jQ=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return f.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},$Q=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return f.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Pk={[Tl.Arrow]:jQ,[Tl.ArrowClosed]:$Q};function BQ(e){const t=Xe();return E.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(Pk,e)?Pk[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const FQ=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=BQ(t);return l?f.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:f.jsx(l,{color:n,strokeWidth:o})}):null},zI=({defaultColor:e,rfId:t})=>{const n=Oe(s=>s.edges),r=Oe(s=>s.defaultEdgeOptions),i=E.useMemo(()=>AY(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?f.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:f.jsx("defs",{children:i.map(s=>f.jsx(FQ,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};zI.displayName="MarkerDefinitions";var zQ=E.memo(zI);function UI({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...d}){const[u,h]=E.useState({x:1,y:0,width:0,height:0}),p=gt(["react-flow__edge-textwrapper",c]),g=E.useRef(null);return E.useEffect(()=>{if(g.current){const b=g.current.getBBox();h({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?f.jsxs("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:p,visibility:u.width?"visible":"hidden",...d,children:[i&&f.jsx("rect",{width:u.width+2*o[0],x:-o[0],y:-o[1],height:u.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),f.jsx("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}UI.displayName="EdgeText";const UQ=E.memo(UI);function Mf({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...d}){return f.jsxs(f.Fragment,{children:[f.jsx("path",{...d,d:e,fill:"none",className:gt(["react-flow__edge-path",d.className])}),c?f.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Fn(t)&&Fn(n)?f.jsx(UQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Dk({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===me.Left||e===me.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function VI({sourceX:e,sourceY:t,sourcePosition:n=me.Bottom,targetX:r,targetY:i,targetPosition:s=me.Top}){const[o,a]=Dk({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=Dk({pos:s,x1:r,y1:i,x2:e,y2:t}),[d,u,h,p]=oI({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${o},${a} ${l},${c} ${r},${i}`,d,u,h,p]}function HI(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,interactionWidth:m})=>{const[y,w,v]=VI({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),_=e.isInternal?void 0:t;return f.jsx(Mf,{id:_,path:y,labelX:w,labelY:v,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,interactionWidth:m})})}const VQ=HI({isInternal:!1}),KI=HI({isInternal:!0});VQ.displayName="SimpleBezierEdge";KI.displayName="SimpleBezierEdgeInternal";function qI(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,sourcePosition:p=me.Bottom,targetPosition:g=me.Top,markerEnd:b,markerStart:x,pathOptions:m,interactionWidth:y})=>{const[w,v,_]=gg({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:s,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),k=e.isInternal?void 0:t;return f.jsx(Mf,{id:k,path:w,labelX:v,labelY:_,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:b,markerStart:x,interactionWidth:y})})}const WI=qI({isInternal:!1}),GI=qI({isInternal:!0});WI.displayName="SmoothStepEdge";GI.displayName="SmoothStepEdgeInternal";function YI(e){return E.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx(WI,{...n,id:r,pathOptions:E.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const HQ=YI({isInternal:!1}),XI=YI({isInternal:!0});HQ.displayName="StepEdge";XI.displayName="StepEdgeInternal";function QI(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})=>{const[x,m,y]=cI({sourceX:n,sourceY:r,targetX:i,targetY:s}),w=e.isInternal?void 0:t;return f.jsx(Mf,{id:w,path:x,labelX:m,labelY:y,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:u,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const KQ=QI({isInternal:!1}),ZI=QI({isInternal:!0});KQ.displayName="StraightEdge";ZI.displayName="StraightEdgeInternal";function JI(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=me.Bottom,targetPosition:a=me.Top,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,pathOptions:m,interactionWidth:y})=>{const[w,v,_]=aI({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:m==null?void 0:m.curvature}),k=e.isInternal?void 0:t;return f.jsx(Mf,{id:k,path:w,labelX:v,labelY:_,label:l,labelStyle:c,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,interactionWidth:y})})}const qQ=JI({isInternal:!1}),eM=JI({isInternal:!0});qQ.displayName="BezierEdge";eM.displayName="BezierEdgeInternal";const jk={default:eM,straight:ZI,step:XI,smoothstep:GI,simplebezier:KI},$k={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},WQ=(e,t,n)=>n===me.Left?e-t:n===me.Right?e+t:e,GQ=(e,t,n)=>n===me.Top?e-t:n===me.Bottom?e+t:e,Bk="react-flow__edgeupdater";function Fk({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return f.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:gt([Bk,`${Bk}-${a}`]),cx:WQ(t,r,e),cy:GQ(n,r,e),r,stroke:"transparent",fill:"transparent"})}function YQ({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:d,onReconnectEnd:u,setReconnecting:h,setUpdateHover:p}){const g=Xe(),b=(v,_)=>{if(v.button!==0)return;const{autoPanOnConnect:k,domNode:T,connectionMode:N,connectionRadius:I,lib:A,onConnectStart:D,cancelConnection:R,nodeLookup:F,rfId:O,panBy:P,updateConnection:M}=g.getState(),$=_.type==="target",L=(H,V)=>{h(!1),u==null||u(H,n,_.type,V)},j=H=>c==null?void 0:c(n,H),S=(H,V)=>{h(!0),d==null||d(v,n,_.type),D==null||D(H,V)};wg.onPointerDown(v.nativeEvent,{autoPanOnConnect:k,connectionMode:N,connectionRadius:I,domNode:T,handleId:_.id,nodeId:_.nodeId,nodeLookup:F,isTarget:$,edgeUpdaterType:_.type,lib:A,flowId:O,cancelConnection:R,panBy:P,isValidConnection:(...H)=>{var V,C;return((C=(V=g.getState()).isValidConnection)==null?void 0:C.call(V,...H))??!0},onConnect:j,onConnectStart:S,onConnectEnd:(...H)=>{var V,C;return(C=(V=g.getState()).onConnectEnd)==null?void 0:C.call(V,...H)},onReconnectEnd:L,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},x=v=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),y=()=>p(!0),w=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(Fk,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:x,onMouseEnter:y,onMouseOut:w,type:"source"}),(e===!0||e==="target")&&f.jsx(Fk,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:y,onMouseOut:w,type:"target"})]})}function XQ({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:b,noPanClassName:x,onError:m,disableKeyboardA11y:y}){let w=Oe(le=>le.edgeLookup.get(e));const v=Oe(le=>le.defaultEdgeOptions);w=v?{...v,...w}:w;let _=w.type||"default",k=(b==null?void 0:b[_])||jk[_];k===void 0&&(m==null||m("011",qn.error011(_)),_="default",k=(b==null?void 0:b.default)||jk.default);const T=!!(w.focusable||t&&typeof w.focusable>"u"),N=typeof u<"u"&&(w.reconnectable||n&&typeof w.reconnectable>"u"),I=!!(w.selectable||r&&typeof w.selectable>"u"),A=E.useRef(null),[D,R]=E.useState(!1),[F,O]=E.useState(!1),P=Xe(),{zIndex:M,sourceX:$,sourceY:L,targetX:j,targetY:S,sourcePosition:H,targetPosition:V}=Oe(E.useCallback(le=>{const oe=le.nodeLookup.get(w.source),G=le.nodeLookup.get(w.target);if(!oe||!G)return{zIndex:w.zIndex,...$k};const ee=TY({id:e,sourceNode:oe,targetNode:G,sourceHandle:w.sourceHandle||null,targetHandle:w.targetHandle||null,connectionMode:le.connectionMode,onError:m});return{zIndex:wY({selected:w.selected,zIndex:w.zIndex,sourceNode:oe,targetNode:G,elevateOnSelect:le.elevateEdgesOnSelect,zIndexMode:le.zIndexMode}),...ee||$k}},[w.source,w.target,w.sourceHandle,w.targetHandle,w.selected,w.zIndex]),Ye),C=E.useMemo(()=>w.markerStart?`url('#${yg(w.markerStart,g)}')`:void 0,[w.markerStart,g]),U=E.useMemo(()=>w.markerEnd?`url('#${yg(w.markerEnd,g)}')`:void 0,[w.markerEnd,g]);if(w.hidden||$===null||L===null||j===null||S===null)return null;const W=le=>{var B;const{addSelectedEdges:oe,unselectNodesAndEdges:G,multiSelectionActive:ee}=P.getState();I&&(P.setState({nodesSelectionActive:!1}),w.selected&&ee?(G({nodes:[],edges:[w]}),(B=A.current)==null||B.blur()):oe([e])),i&&i(le,w)},Z=s?le=>{s(le,{...w})}:void 0,J=o?le=>{o(le,{...w})}:void 0,q=a?le=>{a(le,{...w})}:void 0,te=l?le=>{l(le,{...w})}:void 0,ce=c?le=>{c(le,{...w})}:void 0,de=le=>{var oe;if(!y&&q2.includes(le.key)&&I){const{unselectNodesAndEdges:G,addSelectedEdges:ee}=P.getState();le.key==="Escape"?((oe=A.current)==null||oe.blur(),G({edges:[w]})):ee([e])}};return f.jsx("svg",{style:{zIndex:M},children:f.jsxs("g",{className:gt(["react-flow__edge",`react-flow__edge-${_}`,w.className,x,{selected:w.selected,animated:w.animated,inactive:!I&&!i,updating:D,selectable:I}]),onClick:W,onDoubleClick:Z,onContextMenu:J,onMouseEnter:q,onMouseMove:te,onMouseLeave:ce,onKeyDown:T?de:void 0,tabIndex:T?0:void 0,role:w.ariaRole??(T?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":w.ariaLabel===null?void 0:w.ariaLabel||`Edge from ${w.source} to ${w.target}`,"aria-describedby":T?`${AI}-${g}`:void 0,ref:A,...w.domAttributes,children:[!F&&f.jsx(k,{id:e,source:w.source,target:w.target,type:w.type,selected:w.selected,animated:w.animated,selectable:I,deletable:w.deletable??!0,label:w.label,labelStyle:w.labelStyle,labelShowBg:w.labelShowBg,labelBgStyle:w.labelBgStyle,labelBgPadding:w.labelBgPadding,labelBgBorderRadius:w.labelBgBorderRadius,sourceX:$,sourceY:L,targetX:j,targetY:S,sourcePosition:H,targetPosition:V,data:w.data,style:w.style,sourceHandleId:w.sourceHandle,targetHandleId:w.targetHandle,markerStart:C,markerEnd:U,pathOptions:"pathOptions"in w?w.pathOptions:void 0,interactionWidth:w.interactionWidth}),N&&f.jsx(YQ,{edge:w,isReconnectable:N,reconnectRadius:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:p,sourceX:$,sourceY:L,targetX:j,targetY:S,sourcePosition:H,targetPosition:V,setUpdateHover:R,setReconnecting:O})]})})}var QQ=E.memo(XQ);const ZQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function tM({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:d,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:b}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:y,onError:w}=Oe(ZQ,Ye),v=DQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(zQ,{defaultColor:e,rfId:n}),v.map(_=>f.jsx(QQ,{id:_,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:y,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:d,reconnectRadius:u,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:w,edgeTypes:r,disableKeyboardA11y:b},_))]})}tM.displayName="EdgeRenderer";const JQ=E.memo(tM),eZ=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function tZ({children:e}){const t=Oe(eZ);return f.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function nZ(e){const t=hb(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const rZ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function iZ(e){const t=Oe(rZ),n=Xe();return E.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function sZ(e){return e.connection.inProgress?{...e.connection,to:Ko(e.connection.to,e.transform)}:{...e.connection}}function oZ(e){return sZ}function aZ(e){const t=oZ();return Oe(t,Ye)}const lZ=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function cZ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Oe(lZ,Ye);return!(s&&i&&l)?null:f.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:f.jsx("g",{className:gt(["react-flow__connection",Y2(a)]),children:f.jsx(nM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const nM=({style:e,type:t=Kr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:l,to:c,toNode:d,toHandle:u,toPosition:h,pointer:p}=aZ();if(!i)return;if(n)return f.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:h,connectionStatus:Y2(r),toNode:d,toHandle:u,pointer:p});let g="";const b={sourceX:s.x,sourceY:s.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:h};switch(t){case Kr.Bezier:[g]=aI(b);break;case Kr.SimpleBezier:[g]=VI(b);break;case Kr.Step:[g]=gg({...b,borderRadius:0});break;case Kr.SmoothStep:[g]=gg(b);break;default:[g]=cI(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};nM.displayName="ConnectionLine";const uZ={};function zk(e=uZ){E.useRef(e),Xe(),E.useEffect(()=>{},[e])}function dZ(){Xe(),E.useRef(!1),E.useEffect(()=>{},[])}function rM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:y,selectionOnDrag:w,selectionMode:v,multiSelectionKeyCode:_,panActivationKeyCode:k,zoomActivationKeyCode:T,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:A,defaultViewport:D,translateExtent:R,minZoom:F,maxZoom:O,preventScrolling:P,defaultMarkerColor:M,zoomOnScroll:$,zoomOnPinch:L,panOnScroll:j,panOnScrollSpeed:S,panOnScrollMode:H,zoomOnDoubleClick:V,panOnDrag:C,autoPanOnSelection:U,onPaneClick:W,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneScroll:te,onPaneContextMenu:ce,paneClickDistance:de,nodeClickDistance:le,onEdgeContextMenu:oe,onEdgeMouseEnter:G,onEdgeMouseMove:ee,onEdgeMouseLeave:B,reconnectRadius:Y,onReconnect:X,onReconnectStart:ge,onReconnectEnd:ye,noDragClassName:fe,noWheelClassName:_e,noPanClassName:Ne,disableKeyboardA11y:it,nodeExtent:De,rfId:z,viewport:K,onViewportChange:ne}){return zk(e),zk(t),dZ(),nZ(n),iZ(K),f.jsx(NQ,{onPaneClick:W,onPaneMouseEnter:Z,onPaneMouseMove:J,onPaneMouseLeave:q,onPaneContextMenu:ce,onPaneScroll:te,paneClickDistance:de,deleteKeyCode:N,selectionKeyCode:y,selectionOnDrag:w,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:_,panActivationKeyCode:k,zoomActivationKeyCode:T,elementsSelectable:A,zoomOnScroll:$,zoomOnPinch:L,zoomOnDoubleClick:V,panOnScroll:j,panOnScrollSpeed:S,panOnScrollMode:H,panOnDrag:C,autoPanOnSelection:U,defaultViewport:D,translateExtent:R,minZoom:F,maxZoom:O,onSelectionContextMenu:u,preventScrolling:P,noDragClassName:fe,noWheelClassName:_e,noPanClassName:Ne,disableKeyboardA11y:it,onViewportChange:ne,isControlledViewport:!!K,children:f.jsxs(tZ,{children:[f.jsx(JQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:X,onReconnectStart:ge,onReconnectEnd:ye,onlyRenderVisibleElements:I,onEdgeContextMenu:oe,onEdgeMouseEnter:G,onEdgeMouseMove:ee,onEdgeMouseLeave:B,reconnectRadius:Y,defaultMarkerColor:M,noPanClassName:Ne,disableKeyboardA11y:it,rfId:z}),f.jsx(cZ,{style:b,type:g,component:x,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(PQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:d,nodeClickDistance:le,onlyRenderVisibleElements:I,noPanClassName:Ne,noDragClassName:fe,disableKeyboardA11y:it,nodeExtent:De,rfId:z}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}rM.displayName="GraphView";const fZ=E.memo(rM),hZ=eI(),Uk=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:d,nodeExtent:u,zIndexMode:h="basic"}={})=>{const p=new Map,g=new Map,b=new Map,x=new Map,m=r??t??[],y=n??e??[],w=d??[0,0],v=u??Sl;fI(b,x,m);const{nodesInitialized:_}=bg(y,p,g,{nodeOrigin:w,nodeExtent:v,zIndexMode:h});let k=[0,0,1];if(o&&i&&s){const T=sc(p,{filter:D=>!!((D.width||D.initialWidth)&&(D.height||D.initialHeight))}),{x:N,y:I,zoom:A}=ob(T,i,s,l,c,(a==null?void 0:a.padding)??.1);k=[N,I,A]}return{rfId:"1",width:i??0,height:s??0,transform:k,nodes:y,nodesInitialized:_,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:x,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:Sl,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:So.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:w,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...G2},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:hZ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:W2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},pZ=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h})=>IX((p,g)=>{async function b(){const{nodeLookup:x,panZoom:m,fitViewOptions:y,fitViewResolver:w,width:v,height:_,minZoom:k,maxZoom:T}=g();m&&(await fY({nodes:x,width:v,height:_,panZoom:m,minZoom:k,maxZoom:T},y),w==null||w.resolve(!0),p({fitViewResolver:null}))}return{...Uk({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:d,nodeExtent:u,defaultNodes:n,defaultEdges:r,zIndexMode:h}),setNodes:x=>{const{nodeLookup:m,parentLookup:y,nodeOrigin:w,elevateNodesOnSelect:v,fitViewQueued:_,zIndexMode:k,nodesSelectionActive:T}=g(),{nodesInitialized:N,hasSelectedNodes:I}=bg(x,m,y,{nodeOrigin:w,nodeExtent:u,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:k}),A=T&&I;_&&N?(b(),p({nodes:x,nodesInitialized:N,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:A})):p({nodes:x,nodesInitialized:N,nodesSelectionActive:A})},setEdges:x=>{const{connectionLookup:m,edgeLookup:y}=g();fI(m,y,x),p({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:y}=g();y(x),p({hasDefaultNodes:!0})}if(m){const{setEdges:y}=g();y(m),p({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:y,parentLookup:w,domNode:v,nodeOrigin:_,nodeExtent:k,debug:T,fitViewQueued:N,zIndexMode:I}=g(),{changes:A,updatedInternals:D}=PY(x,y,w,v,_,k,I);D&&(MY(y,w,{nodeOrigin:_,nodeExtent:k,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(A==null?void 0:A.length)>0&&(T&&console.log("React Flow: trigger node changes",A),m==null||m(A)))},updateNodePositions:(x,m=!1)=>{const y=[];let w=[];const{nodeLookup:v,triggerNodeChanges:_,connection:k,updateConnection:T,onNodesChangeMiddlewareMap:N}=g();for(const[I,A]of x){const D=v.get(I),R=!!(D!=null&&D.expandParent&&(D!=null&&D.parentId)&&(A!=null&&A.position)),F={id:I,type:"position",position:R?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:m};if(D&&k.inProgress&&k.fromNode.id===D.id){const O=rs(D,k.fromHandle,me.Left,!0);T({...k,from:O})}R&&D.parentId&&y.push({id:I,parentId:D.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),w.push(F)}if(y.length>0){const{parentLookup:I,nodeOrigin:A}=g(),D=fb(y,v,I,A);w.push(...D)}for(const I of N.values())w=I(w);_(w)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:y,nodes:w,hasDefaultNodes:v,debug:_}=g();if(x!=null&&x.length){if(v){const k=MI(x,w);y(k)}_&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:y,edges:w,hasDefaultEdges:v,debug:_}=g();if(x!=null&&x.length){if(v){const k=OI(x,w);y(k)}_&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:w,triggerNodeChanges:v,triggerEdgeChanges:_}=g();if(m){const k=x.map(T=>Ci(T,!0));v(k);return}v(Gs(w,new Set([...x]),!0)),_(Gs(y))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:w,triggerNodeChanges:v,triggerEdgeChanges:_}=g();if(m){const k=x.map(T=>Ci(T,!0));_(k);return}_(Gs(y,new Set([...x]))),v(Gs(w,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:y,nodes:w,nodeLookup:v,triggerNodeChanges:_,triggerEdgeChanges:k}=g(),T=x||w,N=m||y,I=[];for(const D of T){if(!D.selected)continue;const R=v.get(D.id);R&&(R.selected=!1),I.push(Ci(D.id,!1))}const A=[];for(const D of N)D.selected&&A.push(Ci(D.id,!1));_(I),k(A)},setMinZoom:x=>{const{panZoom:m,maxZoom:y}=g();m==null||m.setScaleExtent([x,y]),p({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:y}=g();m==null||m.setScaleExtent([y,x]),p({maxZoom:x})},setTranslateExtent:x=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(x),p({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:m,triggerNodeChanges:y,triggerEdgeChanges:w,elementsSelectable:v}=g();if(!v)return;const _=m.reduce((T,N)=>N.selected?[...T,Ci(N.id,!1)]:T,[]),k=x.reduce((T,N)=>N.selected?[...T,Ci(N.id,!1)]:T,[]);y(_),w(k)},setNodeExtent:x=>{const{nodes:m,nodeLookup:y,parentLookup:w,nodeOrigin:v,elevateNodesOnSelect:_,nodeExtent:k,zIndexMode:T}=g();x[0][0]===k[0][0]&&x[0][1]===k[0][1]&&x[1][0]===k[1][0]&&x[1][1]===k[1][1]||(bg(m,y,w,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:_,checkEquality:!1,zIndexMode:T}),p({nodeExtent:x}))},panBy:x=>{const{transform:m,width:y,height:w,panZoom:v,translateExtent:_}=g();return DY({delta:x,panZoom:v,transform:m,translateExtent:_,width:y,height:w})},setCenter:async(x,m,y)=>{const{width:w,height:v,maxZoom:_,panZoom:k}=g();if(!k)return!1;const T=typeof(y==null?void 0:y.zoom)<"u"?y.zoom:_;return await k.setViewport({x:w/2-x*T,y:v/2-m*T,zoom:T},{duration:y==null?void 0:y.duration,ease:y==null?void 0:y.ease,interpolate:y==null?void 0:y.interpolate}),!0},cancelConnection:()=>{p({connection:{...G2}})},updateConnection:x=>{p({connection:x})},reset:()=>p({...Uk()})}},Object.is);function iM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:p}){const[g]=E.useState(()=>pZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:c,minZoom:o,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:u,zIndexMode:h}));return f.jsx(MX,{value:g,children:f.jsx(tQ,{children:p})})}function mZ({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p}){return E.useContext(Af)?f.jsx(f.Fragment,{children:e}):f.jsx(iM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:d,nodeOrigin:u,nodeExtent:h,zIndexMode:p,children:e})}const gZ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function yZ({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:d,onMoveStart:u,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:y,onNodeMouseMove:w,onNodeMouseLeave:v,onNodeContextMenu:_,onNodeDoubleClick:k,onNodeDragStart:T,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:A,onEdgesDelete:D,onDelete:R,onSelectionChange:F,onSelectionDragStart:O,onSelectionDrag:P,onSelectionDragStop:M,onSelectionContextMenu:$,onSelectionStart:L,onSelectionEnd:j,onBeforeDelete:S,connectionMode:H,connectionLineType:V=Kr.Bezier,connectionLineStyle:C,connectionLineComponent:U,connectionLineContainerStyle:W,deleteKeyCode:Z="Backspace",selectionKeyCode:J="Shift",selectionOnDrag:q=!1,selectionMode:te=Nl.Full,panActivationKeyCode:ce="Space",multiSelectionKeyCode:de=Cl()?"Meta":"Control",zoomActivationKeyCode:le=Cl()?"Meta":"Control",snapToGrid:oe,snapGrid:G,onlyRenderVisibleElements:ee=!1,selectNodesOnDrag:B,nodesDraggable:Y,autoPanOnNodeFocus:X,nodesConnectable:ge,nodesFocusable:ye,nodeOrigin:fe=CI,edgesFocusable:_e,edgesReconnectable:Ne,elementsSelectable:it=!0,defaultViewport:De=HX,minZoom:z=.5,maxZoom:K=2,translateExtent:ne=Sl,preventScrolling:ae=!0,nodeExtent:xe,defaultMarkerColor:Le="#b1b1b7",zoomOnScroll:Bt=!0,zoomOnPinch:kt=!0,panOnScroll:In=!1,panOnScrollSpeed:ur=.5,panOnScrollMode:ft=Hi.Free,zoomOnDoubleClick:Mn=!0,panOnDrag:At=!0,onPaneClick:ac,onPaneMouseEnter:Of,onPaneMouseMove:Rf,onPaneMouseLeave:Lf,onPaneScroll:Pf,onPaneContextMenu:Df,paneClickDistance:hs=1,nodeClickDistance:ps=0,children:jf,onReconnect:ms,onReconnectStart:$f,onReconnectEnd:lc,onEdgeContextMenu:Bf,onEdgeDoubleClick:Ff,onEdgeMouseEnter:cc,onEdgeMouseMove:gs,onEdgeMouseLeave:yi,reconnectRadius:zf=10,onNodesChange:uc,onEdgesChange:Q,noDragClassName:re="nodrag",noWheelClassName:he="nowheel",noPanClassName:Ie="nopan",fitView:We,fitViewOptions:be,connectOnClick:_t,attributionPosition:wt,proOptions:ke,defaultEdgeOptions:Ve,elevateNodesOnSelect:Ce=!0,elevateEdgesOnSelect:ht=!1,disableKeyboardA11y:dr=!1,autoPanOnConnect:qo,autoPanOnNodeDrag:fr,autoPanOnSelection:yn=!0,autoPanSpeed:bi,connectionRadius:dc,isValidConnection:dM,onError:fM,style:hM,id:mb,nodeDragThreshold:pM,connectionDragThreshold:mM,viewport:gM,onViewportChange:yM,width:bM,height:wM,colorMode:xM="light",debug:vM,onScroll:fc,ariaLabelConfig:kM,zIndexMode:gb="basic",..._M},EM){const Uf=mb||"1",SM=GX(xM),NM=E.useCallback(yb=>{yb.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),fc==null||fc(yb)},[fc]);return f.jsx("div",{"data-testid":"rf__wrapper",..._M,onScroll:NM,style:{...hM,...gZ},ref:EM,className:gt(["react-flow",i,SM]),id:mb,role:"application",children:f.jsxs(mZ,{nodes:e,edges:t,width:bM,height:wM,fitView:We,fitViewOptions:be,minZoom:z,maxZoom:K,nodeOrigin:fe,nodeExtent:xe,zIndexMode:gb,children:[f.jsx(WX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:Y,autoPanOnNodeFocus:X,nodesConnectable:ge,nodesFocusable:ye,edgesFocusable:_e,edgesReconnectable:Ne,elementsSelectable:it,elevateNodesOnSelect:Ce,elevateEdgesOnSelect:ht,minZoom:z,maxZoom:K,nodeExtent:xe,onNodesChange:uc,onEdgesChange:Q,snapToGrid:oe,snapGrid:G,connectionMode:H,translateExtent:ne,connectOnClick:_t,defaultEdgeOptions:Ve,fitView:We,fitViewOptions:be,onNodesDelete:A,onEdgesDelete:D,onDelete:R,onNodeDragStart:T,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:P,onSelectionDragStart:O,onSelectionDragStop:M,onMove:d,onMoveStart:u,onMoveEnd:h,noPanClassName:Ie,nodeOrigin:fe,rfId:Uf,autoPanOnConnect:qo,autoPanOnNodeDrag:fr,autoPanSpeed:bi,onError:fM,connectionRadius:dc,isValidConnection:dM,selectNodesOnDrag:B,nodeDragThreshold:pM,connectionDragThreshold:mM,onBeforeDelete:S,debug:vM,ariaLabelConfig:kM,zIndexMode:gb}),f.jsx(fZ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:y,onNodeMouseMove:w,onNodeMouseLeave:v,onNodeContextMenu:_,onNodeDoubleClick:k,nodeTypes:s,edgeTypes:o,connectionLineType:V,connectionLineStyle:C,connectionLineComponent:U,connectionLineContainerStyle:W,selectionKeyCode:J,selectionOnDrag:q,selectionMode:te,deleteKeyCode:Z,multiSelectionKeyCode:de,panActivationKeyCode:ce,zoomActivationKeyCode:le,onlyRenderVisibleElements:ee,defaultViewport:De,translateExtent:ne,minZoom:z,maxZoom:K,preventScrolling:ae,zoomOnScroll:Bt,zoomOnPinch:kt,zoomOnDoubleClick:Mn,panOnScroll:In,panOnScrollSpeed:ur,panOnScrollMode:ft,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:ac,onPaneMouseEnter:Of,onPaneMouseMove:Rf,onPaneMouseLeave:Lf,onPaneScroll:Pf,onPaneContextMenu:Df,paneClickDistance:hs,nodeClickDistance:ps,onSelectionContextMenu:$,onSelectionStart:L,onSelectionEnd:j,onReconnect:ms,onReconnectStart:$f,onReconnectEnd:lc,onEdgeContextMenu:Bf,onEdgeDoubleClick:Ff,onEdgeMouseEnter:cc,onEdgeMouseMove:gs,onEdgeMouseLeave:yi,reconnectRadius:zf,defaultMarkerColor:Le,noDragClassName:re,noWheelClassName:he,noPanClassName:Ie,rfId:Uf,disableKeyboardA11y:dr,nodeExtent:xe,viewport:gM,onViewportChange:yM}),f.jsx(VX,{onSelectionChange:F}),jf,f.jsx($X,{proOptions:ke,position:wt}),f.jsx(jX,{rfId:Uf,disableKeyboardA11y:dr})]})})}var bZ=LI(yZ);function wZ(e){const[t,n]=E.useState(e),r=E.useCallback(i=>n(s=>MI(i,s)),[]);return[t,n,r]}function xZ(e){const[t,n]=E.useState(e),r=E.useCallback(i=>n(s=>OI(i,s)),[]);return[t,n,r]}function vZ({dimensions:e,lineWidth:t,variant:n,className:r}){return f.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:gt(["react-flow__background-pattern",n,r])})}function kZ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:gt(["react-flow__background-pattern","dots",t])})}var ai;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(ai||(ai={}));const _Z={[ai.Dots]:1,[ai.Lines]:1,[ai.Cross]:6},EZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function sM({id:e,variant:t=ai.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:l,className:c,patternClassName:d}){const u=E.useRef(null),{transform:h,patternId:p}=Oe(EZ,Ye),g=r||_Z[t],b=t===ai.Dots,x=t===ai.Cross,m=Array.isArray(n)?n:[n,n],y=[m[0]*h[2]||1,m[1]*h[2]||1],w=g*h[2],v=Array.isArray(s)?s:[s,s],_=x?[w,w]:y,k=[v[0]*h[2]||1+_[0]/2,v[1]*h[2]||1+_[1]/2],T=`${p}${e||""}`;return f.jsxs("svg",{className:gt(["react-flow__background",c]),style:{...l,...If,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:u,"data-testid":"rf__background",children:[f.jsx("pattern",{id:T,x:h[0]%y[0],y:h[1]%y[1],width:y[0],height:y[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${k[0]},-${k[1]})`,children:b?f.jsx(kZ,{radius:w/2,className:d}):f.jsx(vZ,{dimensions:_,lineWidth:i,variant:t,className:d})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${T})`})]})}sM.displayName="Background";const SZ=E.memo(sM);function NZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:f.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function TZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:f.jsx("path",{d:"M0 0h32v4.2H0z"})})}function AZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:f.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function CZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function IZ(){return f.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:f.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function ru({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:gt(["react-flow__controls-button",t]),...n,children:e})}const MZ=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function oM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:c,children:d,position:u="bottom-left",orientation:h="vertical","aria-label":p}){const g=Xe(),{isInteractive:b,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:y}=Oe(MZ,Ye),{zoomIn:w,zoomOut:v,fitView:_}=hb(),k=()=>{w(),s==null||s()},T=()=>{v(),o==null||o()},N=()=>{_(i),a==null||a()},I=()=>{g.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),l==null||l(!b)},A=h==="horizontal"?"horizontal":"vertical";return f.jsxs(Cf,{className:gt(["react-flow__controls",A,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":p??y["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(ru,{onClick:k,className:"react-flow__controls-zoomin",title:y["controls.zoomIn.ariaLabel"],"aria-label":y["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(NZ,{})}),f.jsx(ru,{onClick:T,className:"react-flow__controls-zoomout",title:y["controls.zoomOut.ariaLabel"],"aria-label":y["controls.zoomOut.ariaLabel"],disabled:x,children:f.jsx(TZ,{})})]}),n&&f.jsx(ru,{className:"react-flow__controls-fitview",onClick:N,title:y["controls.fitView.ariaLabel"],"aria-label":y["controls.fitView.ariaLabel"],children:f.jsx(AZ,{})}),r&&f.jsx(ru,{className:"react-flow__controls-interactive",onClick:I,title:y["controls.interactive.ariaLabel"],"aria-label":y["controls.interactive.ariaLabel"],children:b?f.jsx(IZ,{}):f.jsx(CZ,{})}),d]})}oM.displayName="Controls";const OZ=E.memo(oM);function RZ({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:l,className:c,borderRadius:d,shapeRendering:u,selected:h,onClick:p}){const{background:g,backgroundColor:b}=s||{},x=o||g||b;return f.jsx("rect",{className:gt(["react-flow__minimap-node",{selected:h},c]),x:t,y:n,rx:d,ry:d,width:r,height:i,style:{fill:x,stroke:a,strokeWidth:l},shapeRendering:u,onClick:p?m=>p(m,e):void 0})}const LZ=E.memo(RZ),PZ=e=>e.nodes.map(t=>t.id),vp=e=>e instanceof Function?e:()=>e;function DZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=LZ,onClick:o}){const a=Oe(PZ,Ye),l=vp(t),c=vp(e),d=vp(n),u=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx($Z,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:u},h))})}function jZ({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:c,x:d,y:u,width:h,height:p}=Oe(g=>{const b=g.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const x=b.internals.userNode,{x:m,y}=b.internals.positionAbsolute,{width:w,height:v}=Lr(x);return{node:x,x:m,y,width:w,height:v}},Ye);return!c||c.hidden||!tI(c)?null:f.jsx(a,{x:d,y:u,width:h,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:i,strokeColor:n(c),strokeWidth:s,shapeRendering:o,onClick:l,id:c.id})}const $Z=E.memo(jZ);var BZ=E.memo(DZ);const FZ=200,zZ=150,UZ=e=>!e.hidden,VZ=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?J2(sc(e.nodeLookup,{filter:UZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},HZ="react-flow__minimap-desc";function aM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:d,maskStrokeWidth:u,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:b=!1,zoomable:x=!1,ariaLabel:m,inversePan:y,zoomStep:w=1,offsetScale:v=5}){const _=Xe(),k=E.useRef(null),{boundingRect:T,viewBB:N,rfId:I,panZoom:A,translateExtent:D,flowWidth:R,flowHeight:F,ariaLabelConfig:O}=Oe(VZ,Ye),P=(e==null?void 0:e.width)??FZ,M=(e==null?void 0:e.height)??zZ,$=T.width/P,L=T.height/M,j=Math.max($,L),S=j*P,H=j*M,V=v*j,C=T.x-(S-T.width)/2-V,U=T.y-(H-T.height)/2-V,W=S+V*2,Z=H+V*2,J=`${HZ}-${I}`,q=E.useRef(0),te=E.useRef();q.current=j,E.useEffect(()=>{if(k.current&&A)return te.current=KY({domNode:k.current,panZoom:A,getTransform:()=>_.getState().transform,getViewScale:()=>q.current}),()=>{var oe;(oe=te.current)==null||oe.destroy()}},[A]),E.useEffect(()=>{var oe;(oe=te.current)==null||oe.update({translateExtent:D,width:R,height:F,inversePan:y,pannable:b,zoomStep:w,zoomable:x})},[b,x,y,w,D,R,F]);const ce=p?oe=>{var B;const[G,ee]=((B=te.current)==null?void 0:B.pointer(oe))||[0,0];p(oe,{x:G,y:ee})}:void 0,de=g?E.useCallback((oe,G)=>{const ee=_.getState().nodeLookup.get(G).internals.userNode;g(oe,ee)},[]):void 0,le=m??O["minimap.ariaLabel"];return f.jsx(Cf,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof u=="number"?u*j:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:gt(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:P,height:M,viewBox:`${C} ${U} ${W} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":J,ref:k,onClick:ce,children:[le&&f.jsx("title",{id:J,children:le}),f.jsx(BZ,{onClick:de,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${C-V},${U-V}h${W+V*2}v${Z+V*2}h${-W-V*2}z + M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}aM.displayName="MiniMap";const KZ=E.memo(aM),qZ=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,WZ={[Co.Line]:"right",[Co.Handle]:"bottom-right"};function GZ({nodeId:e,position:t,variant:n=Co.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:p=!0,shouldResize:g,onResizeStart:b,onResize:x,onResizeEnd:m}){const y=$I(),w=typeof e=="string"?e:y,v=Xe(),_=E.useRef(null),k=n===Co.Handle,T=Oe(E.useCallback(qZ(k&&p),[k,p]),Ye),N=E.useRef(null),I=t??WZ[n];E.useEffect(()=>{if(!(!_.current||!w))return N.current||(N.current=iX({domNode:_.current,nodeId:w,getStoreItems:()=>{const{nodeLookup:D,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:P,domNode:M}=v.getState();return{nodeLookup:D,transform:R,snapGrid:F,snapToGrid:O,nodeOrigin:P,paneDomNode:M}},onChange:(D,R)=>{const{triggerNodeChanges:F,nodeLookup:O,parentLookup:P,nodeOrigin:M}=v.getState(),$=[],L={x:D.x,y:D.y},j=O.get(w);if(j&&j.expandParent&&j.parentId){const S=j.origin??M,H=D.width??j.measured.width??0,V=D.height??j.measured.height??0,C={id:j.id,parentId:j.parentId,rect:{width:H,height:V,...nI({x:D.x??j.position.x,y:D.y??j.position.y},{width:H,height:V},j.parentId,O,S)}},U=fb([C],O,P,M);$.push(...U),L.x=D.x?Math.max(S[0]*H,D.x):void 0,L.y=D.y?Math.max(S[1]*V,D.y):void 0}if(L.x!==void 0&&L.y!==void 0){const S={id:w,type:"position",position:{...L}};$.push(S)}if(D.width!==void 0&&D.height!==void 0){const H={id:w,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};$.push(H)}for(const S of R){const H={...S,type:"position"};$.push(H)}F($)},onEnd:({width:D,height:R})=>{const F={id:w,type:"dimensions",resizing:!1,dimensions:{width:D,height:R}};v.getState().triggerNodeChanges([F])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:d},keepAspectRatio:u,resizeDirection:h,onResizeStart:b,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var D;(D=N.current)==null||D.destroy()}},[I,a,l,c,d,u,b,x,m,g]);const A=I.split("-");return f.jsx("div",{className:gt(["react-flow__resize-control","nodrag",...A,n,r]),ref:_,style:{...i,scale:T,...o&&{[k?"backgroundColor":"borderColor"]:o}},children:s})}E.memo(GZ);const YZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:eB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:C$},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Jy}];let vg=0;function kp(){return vg+=1,`node_${vg}`}function _p(e,t,n){const r=fs();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function XZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Mo,{type:"target",position:me.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(yo,{className:"icon"})}),f.jsxs("div",{className:"wfb-node-body",children:[f.jsx("div",{className:"wfb-node-name",children:n.name||"未命名节点"}),f.jsx("div",{className:"wfb-node-desc",children:n.instruction?n.instruction.slice(0,48):"点击编辑指令…"})]}),f.jsx(Mo,{type:"source",position:me.Right,className:"wfb-handle"})]})}const QZ={agentNode:XZ},Vk={type:"smoothstep",markerEnd:{type:Tl.ArrowClosed,width:16,height:16}};function ZZ({onBack:e,onCreate:t}){const n=E.useRef(null),[r,i]=E.useState(""),[s,o]=E.useState(""),[a,l]=E.useState("sequential"),c=E.useMemo(()=>{vg=0;const R=kp();return _p(R,{x:80,y:120},{name:"agent_1"})},[]),[d,u,h]=wZ([c]),[p,g,b]=xZ([]),[x,m]=E.useState(c.id),y=d.find(R=>R.id===x)??null,w=E.useCallback(R=>g(F=>RI({...R,...Vk},F)),[g]),v=E.useCallback(()=>{const R=kp(),F=d.length*28,O=_p(R,{x:80+F,y:120+F});u(P=>P.concat(O)),m(R)},[d.length,u]),_=R=>{R.dataTransfer.setData("application/wfb-node","agentNode"),R.dataTransfer.effectAllowed="move"},k=E.useCallback(R=>{R.preventDefault(),R.dataTransfer.dropEffect="move"},[]),T=E.useCallback(R=>{if(R.preventDefault(),R.dataTransfer.getData("application/wfb-node")!=="agentNode"||!n.current)return;const O=n.current.screenToFlowPosition({x:R.clientX,y:R.clientY}),P=kp(),M=_p(P,O);u($=>$.concat(M)),m(P)},[u]),N=E.useCallback(R=>{x&&u(F=>F.map(O=>O.id===x?{...O,data:{...O.data,agent:{...O.data.agent,...R}}}:O))},[x,u]),I=E.useCallback(()=>{x&&(u(R=>R.filter(F=>F.id!==x)),g(R=>R.filter(F=>F.source!==x&&F.target!==x)),m(null))},[x,u,g]),A=E.useCallback(()=>{const R=d.map(O=>O.data.agent),F={...fs(),name:r.trim()||"workflow_agent",description:s.trim(),instruction:s.trim(),subAgents:R,workflow:{type:a,nodes:d.map(O=>({id:O.id,agent:O.data.agent})),edges:p.map(O=>({from:O.source,to:O.target}))}};t(F)},[d,p,r,s,a,t]),D=d.length>0;return f.jsx("div",{className:"wfb",children:f.jsxs("div",{className:"wfb-grid",children:[f.jsxs("aside",{className:"wfb-palette",children:[f.jsx("div",{className:"wfb-section-label",children:"工作流信息"}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:r,onChange:R=>i(R.target.value),placeholder:"my_workflow"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:s,onChange:R=>o(R.target.value),placeholder:"这个工作流做什么…",rows:2})]}),f.jsx("div",{className:"wfb-section-label",children:"执行方式"}),f.jsx("div",{className:"wfb-types",children:YZ.map(({type:R,label:F,desc:O,Icon:P})=>f.jsxs("button",{type:"button",className:`wfb-type ${a===R?"wfb-type--active":""}`,onClick:()=>l(R),children:[f.jsx(P,{className:"icon"}),f.jsxs("span",{className:"wfb-type-text",children:[f.jsx("span",{className:"wfb-type-name",children:F}),f.jsx("span",{className:"wfb-type-desc",children:O})]})]},R))}),f.jsx("div",{className:"wfb-section-label",children:"节点"}),f.jsxs("div",{className:"wfb-palette-item",draggable:!0,onDragStart:_,title:"拖拽到画布,或点击下方按钮添加",children:[f.jsx(G$,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(yo,{className:"icon"})}),f.jsx("span",{className:"wfb-palette-item-text",children:"Agent 节点"})]}),f.jsxs("button",{className:"wfb-add",type:"button",onClick:v,children:[f.jsx(Or,{className:"icon"}),"添加节点"]}),f.jsx("div",{className:"wfb-hint",children:"拖拽节点的圆点连线以表达执行顺序。"})]}),f.jsxs("div",{className:"wfb-canvas",children:[f.jsxs("button",{className:"wfb-create",onClick:A,disabled:!D,type:"button",children:[f.jsx(nf,{className:"icon"}),"创建工作流"]}),f.jsxs(bZ,{nodes:d,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:w,onInit:R=>n.current=R,nodeTypes:QZ,defaultEdgeOptions:Vk,onDrop:T,onDragOver:k,onNodeClick:(R,F)=>m(F.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(SZ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(OZ,{showInteractive:!1}),f.jsx(KZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:y?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"wfb-inspector-head",children:[f.jsx("div",{className:"wfb-section-label",children:"节点配置"}),f.jsx("button",{className:"wfb-icon-btn",type:"button",onClick:I,title:"删除节点",children:f.jsx(jo,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.name,onChange:R=>N({name:R.target.value}),placeholder:"agent_name"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"描述"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.description,onChange:R=>N({description:R.target.value}),placeholder:"这个 agent 做什么…"})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"指令 (instruction)"}),f.jsx("textarea",{className:"wfb-input wfb-textarea",value:y.data.agent.instruction,onChange:R=>N({instruction:R.target.value}),placeholder:"你是一个…",rows:6})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"工具 (逗号分隔)"}),f.jsx("input",{className:"wfb-input",value:y.data.agent.tools.join(", "),onChange:R=>N({tools:R.target.value.split(",").map(F=>F.trim()).filter(Boolean)}),placeholder:"web_search, calculator"})]}),f.jsxs("div",{className:"wfb-inspector-meta",children:[f.jsx("span",{className:"wfb-meta-key",children:"节点 ID"}),f.jsx("code",{className:"wfb-meta-val",children:y.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(yo,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",d.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function JZ(e){return f.jsx(iM,{children:f.jsx(ZZ,{...e})})}const Hk=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function Ep(e){let t=0;for(let n=0;n>>0;return Hk[t%Hk.length]}function eJ(e){const t=new Map;e.forEach(c=>t.set(c.span_id,c));const n=new Map,r=[];for(const c of e)c.parent_span_id!=null&&t.has(c.parent_span_id)?(n.get(c.parent_span_id)??n.set(c.parent_span_id,[]).get(c.parent_span_id)).push(c):r.push(c);const i=(c,d)=>c.start_time-d.start_time,s=(c,d)=>({span:c,depth:d,children:(n.get(c.span_id)??[]).sort(i).map(u=>s(u,d+1))}),o=r.sort(i).map(c=>s(c,0)),a=e.length?Math.min(...e.map(c=>c.start_time)):0,l=e.length?Math.max(...e.map(c=>c.end_time)):1;return{rootNodes:o,min:a,total:l-a||1}}function tJ(e,t){const n=[],r=i=>{n.push(i),t.has(i.span.span_id)||i.children.forEach(r)};return e.forEach(r),n}function Kk(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const nJ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function qk(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:nJ(t),value:r,long:r.length>80||r.includes(` +`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function rJ({sessionId:e,onClose:t}){const[n,r]=E.useState(null),[i,s]=E.useState(""),[o,a]=E.useState(new Set),[l,c]=E.useState(null);E.useEffect(()=>{r(null),s(""),wB(e).then(m=>{r(m),c(m.length?m.reduce((y,w)=>y.start_time<=w.start_time?y:w).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:d,min:u,total:h}=E.useMemo(()=>eJ(n??[]),[n]),p=E.useMemo(()=>tJ(d,o),[d,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,x=m=>a(y=>{const w=new Set(y);return w.has(m)?w.delete(m):w.add(m),w});return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"drawer-scrim",onClick:t}),f.jsxs("aside",{className:"drawer drawer--trace",children:[f.jsxs("header",{className:"drawer-head",children:[f.jsxs("div",{children:[f.jsx("div",{className:"drawer-title",children:"调用链路观测"}),f.jsx("div",{className:"drawer-sub",children:n?`${n.length} 个调用 · ${b.toFixed(1)} ms`:"加载中"})]}),f.jsx("button",{className:"drawer-close",onClick:t,"aria-label":"关闭",children:f.jsx(Vl,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(ct,{className:"icon spin"})," 加载调用链路…"]}),i&&f.jsx("div",{className:"error",children:i}),n&&n.length===0&&f.jsx("div",{className:"drawer-empty",children:"该会话暂无调用链路(可能尚未产生调用)。"}),p.length>0&&f.jsxs("div",{className:"trace-split",children:[f.jsx("div",{className:"trace-tree scroll",children:p.map(m=>{const y=m.span,w=(y.start_time-u)/h*100,v=Math.max((y.end_time-y.start_time)/h*100,.6),_=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===y.span_id?"active":""}`,onClick:()=>c(y.span_id),children:[f.jsxs("span",{className:"trace-label",style:{paddingLeft:m.depth*14},children:[f.jsx("span",{className:`trace-caret ${_?"":"hidden"} ${o.has(y.span_id)?"":"open"}`,onClick:k=>{k.stopPropagation(),_&&x(y.span_id)},children:f.jsx(Wn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:Ep(y.name)}}),f.jsx("span",{className:"trace-name",title:y.name,children:y.name})]}),f.jsx("span",{className:"trace-dur",children:Kk(y.end_time-y.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${w}%`,width:`${v}%`,background:Ep(y.name)}})})]},y.span_id)})}),f.jsx("div",{className:"trace-detail scroll",children:g?f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"td-title",children:g.name}),f.jsxs("div",{className:"td-dur",children:[f.jsx("span",{className:"td-dot",style:{background:Ep(g.name)}}),Kk(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:qk(g).filter(m=>!m.long).map(m=>f.jsxs("div",{className:"td-prop",children:[f.jsx("span",{className:"td-key",children:m.key}),f.jsx("span",{className:"td-val",children:m.value})]},m.key))}),qk(g).filter(m=>m.long).map(m=>f.jsxs("div",{className:"td-block",children:[f.jsx("div",{className:"td-section",children:m.key}),f.jsx("pre",{className:"td-pre",children:m.value})]},m.key))]}):f.jsx("div",{className:"drawer-empty",children:"选择左侧的一个调用查看详情"})})]})]})]})}function iJ(e){return e.toLowerCase()==="github"?f.jsx(W$,{className:"icon"}):f.jsx(tB,{className:"icon"})}function sJ({onUsername:e}){const[t,n]=E.useState(null),[r,i]=E.useState("");E.useEffect(()=>{DB().then(n)},[]);const s=OB.test(r),o=()=>{s&&e(r)};return f.jsxs("div",{className:"login",children:[f.jsx("header",{className:"login-top",children:f.jsx("span",{className:"login-brand",children:"VeADK Web"})}),f.jsx("main",{className:"login-main",children:f.jsxs("div",{className:"login-card",children:[f.jsxs("h1",{className:"login-title",children:["VeADK 提供",f.jsx("br",{}),"企业级 Agent 解决方案"]}),t===null?null:t.length>0?f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"登录以继续使用 VeADK Web"}),f.jsx("div",{className:"login-providers",children:t.map(a=>f.jsxs("button",{className:"login-btn",onClick:()=>jB(a.loginUrl),children:[iJ(a.id),f.jsxs("span",{children:["使用 ",a.label," 登录"]})]},a.id))})]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"login-sub",children:"输入一个用户名即可开始"}),f.jsxs("form",{className:"login-name",onSubmit:a=>{a.preventDefault(),o()},children:[f.jsx("input",{className:"login-name-input",value:r,onChange:a=>i(a.target.value),placeholder:"用户名(字母 + 数字,最多 16 位)",maxLength:16,autoFocus:!0}),f.jsx("button",{type:"submit",className:"login-name-go",disabled:!s,"aria-label":"进入",children:f.jsx(UN,{className:"icon"})})]}),f.jsx("p",{className:"login-hint","aria-live":"polite",children:r&&!s?"只能包含大小写字母和数字,最多 16 位。":""})]}),f.jsx("p",{className:"login-legal",children:"继续即表示你已阅读并同意服务条款与隐私政策"})]})}),f.jsx("footer",{className:"login-footer",children:"© 2026 VeADK. All rights reserved."})]})}function oJ({node:e,ctx:t}){const n=e.variant??"default";return f.jsx("button",{type:"button",className:`a2ui-button a2ui-button--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,onClick:()=>t.dispatchAction(e.action,e),children:t.render(e.child)})}ls("Button",oJ);function aJ({node:e,ctx:t}){return f.jsx("div",{className:"a2ui-card","data-a2ui-id":e.id,"data-a2ui-component":e.component,children:t.render(e.child)})}ls("Card",aJ);const lJ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},cJ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function lM(e){return lJ[e]??"flex-start"}function cM(e){return cJ[e]??"stretch"}function uJ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-column","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"column",justifyContent:lM(e.justify),alignItems:cM(e.align)},children:n.map(r=>t.render(r))})}ls("Column",uJ);function dJ({node:e}){const t=e.axis==="vertical";return f.jsx("div",{className:`a2ui-divider ${t?"a2ui-divider--v":"a2ui-divider--h"}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component})}ls("Divider",dJ);const fJ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function hJ({node:e}){const t=e.name??"";return f.jsx("span",{className:"a2ui-icon",title:t,"aria-label":t,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:fJ[t]??"•"})}ls("Icon",hJ);function pJ({node:e,ctx:t}){const n=e.children??[];return f.jsx("div",{className:"a2ui-row","data-a2ui-id":e.id,"data-a2ui-component":e.component,style:{display:"flex",flexDirection:"row",justifyContent:lM(e.justify),alignItems:cM(e.align??"center")},children:n.map(r=>t.render(r))})}ls("Row",pJ);const mJ=new Set(["h1","h2","h3","h4","h5"]);function gJ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=mJ.has(n)?n:"p";return f.jsx(i,{className:`a2ui-text a2ui-text--${n}`,"data-a2ui-id":e.id,"data-a2ui-component":e.component,children:r})}ls("Text",gJ);const yJ="创建 Agent",bJ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ns={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},wJ=new Set,xJ=[];function Wk(){const e=typeof localStorage<"u"?localStorage.getItem(Ns.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function vJ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"5",y:"7.5",width:"14",height:"10.5",rx:"3.2"}),f.jsx("circle",{cx:"9.6",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("circle",{cx:"14.4",cy:"12.6",r:"1.25",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M12 7.5V4.4"}),f.jsx("circle",{cx:"12",cy:"3.4",r:"1.15",fill:"currentColor",stroke:"none"}),f.jsx("path",{d:"M5 13.2H2.8M19 13.2h2.2"})]})}function kJ({className:e}){return f.jsxs("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[f.jsx("ellipse",{cx:"12",cy:"12",rx:"6.6",ry:"8.2"}),f.jsx("path",{d:"M12 8.2l1.05 2.75 2.75 1.05-2.75 1.05L12 15.8l-1.05-2.75L8.2 12l2.75-1.05z",fill:"currentColor",stroke:"none"})]})}function _J(){return f.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:[f.jsx("rect",{x:"3",y:"4",width:"14",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none"}),f.jsx("rect",{x:"6",y:"10.4",width:"13",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.7"}),f.jsx("rect",{x:"9",y:"16.8",width:"9",height:"3.2",rx:"1.2",fill:"currentColor",stroke:"none",opacity:"0.45"})]})}function uM(e){return e?new Date(e*1e3).toLocaleString("zh-CN",{timeZone:"Asia/Shanghai",hour12:!1,month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}function EJ(e){if(!e)return"";const t=[];return e.ts&&t.push(uM(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function SJ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const NJ="send_a2ui_json_to_client";function TJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===NJ&&t.done):t.kind==="a2ui"?uT(t.messages).some(n=>n.components[n.rootId]):t.kind==="auth")}function AJ(e){return e.blocks.some(t=>t.kind==="auth"&&!t.done)}function CJ(e){return new Promise((t,n)=>{const r=window.open(e,"veadk_oauth","width=520,height=720");if(!r){n(new Error("弹窗被拦截,请允许弹窗后重试。"));return}let i=!1;const s=()=>{clearInterval(l),window.removeEventListener("message",a)},o=c=>{if(!i){i=!0,s();try{r.close()}catch{}t(c)}},a=c=>{if(c.origin!==window.location.origin)return;const d=c.data;d&&d.veadkOAuth&&typeof d.url=="string"&&o(d.url)};window.addEventListener("message",a);const l=setInterval(()=>{if(!i){if(r.closed){s();const c=window.prompt("授权完成后,请粘贴回调页面(浏览器地址栏)的完整 URL:");c&&c.trim()?(i=!0,t(c.trim())):n(new Error("授权已取消。"));return}try{const c=r.location.href;c&&c!=="about:blank"&&new URL(c).origin===window.location.origin&&/[?&](code|state|error)=/.test(c)&&o(c)}catch{}}},500)})}function IJ(e,t){const n=JSON.parse(JSON.stringify(e??{})),r=n.exchangedAuthCredential??n.exchanged_auth_credential??{},i=r.oauth2??{};return i.authResponseUri=t,i.auth_response_uri=t,r.oauth2=i,n.exchangedAuthCredential=r,n}function Gk({text:e}){const[t,n]=E.useState(!1);return f.jsx("button",{className:"icon-btn",title:t?"已复制":"复制",disabled:!e,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)}catch{}},children:t?f.jsx(zl,{className:"icon"}):f.jsx(j$,{className:"icon"})})}const Yk=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],Xk=()=>Yk[Math.floor(Math.random()*Yk.length)],MJ=20*1024*1024;function OJ(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const i=String(r.result),s=i.indexOf(",");t(s>=0?i.slice(s+1):i)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function RJ(){const[e,t]=E.useState([]),[n,r]=E.useState(""),[i,s]=E.useState([]),[o,a]=E.useState(""),[l,c]=E.useState({}),d=l[o]??[],u=(Q,re)=>c(he=>({...he,[Q]:typeof re=="function"?re(he[Q]??[]):re})),[h,p]=E.useState(""),[g,b]=E.useState([]),[x,m]=E.useState(()=>new Set),y=E.useRef(new Map),w=(Q,re)=>m(he=>{const Ie=new Set(he);return re?Ie.add(Q):Ie.delete(Q),Ie}),v=E.useRef(""),[_,k]=E.useState(""),[T,N]=E.useState(!1),[I,A]=E.useState(Xk),[D,R]=E.useState(null),[F,O]=E.useState(""),[P,M]=E.useState(),[$,L]=E.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[j,S]=E.useState("local"),[H,V]=E.useState(!1),[C,U]=E.useState(!1),[W,Z]=E.useState({}),[J,q]=E.useState({}),[te,ce]=E.useState({}),de=x.has(o),le=W[o]??"",oe=J[o]??wJ,G=te[o]??xJ,ee=(Q,re)=>{var be,_t,wt,ke,Ve;const he=re.author&&re.author!=="user"?re.author:void 0;he&&(Z(Ce=>({...Ce,[Q]:he})),q(Ce=>({...Ce,[Q]:new Set(Ce[Q]??[]).add(he)})),ce(Ce=>{var ht;return(ht=Ce[Q])!=null&&ht.length?Ce:{...Ce,[Q]:[he]}}));const Ie=((be=re.actions)==null?void 0:be.transferToAgent)??((_t=re.actions)==null?void 0:_t.transfer_to_agent);Ie&&ce(Ce=>{const ht=Ce[Q]??[];return ht[ht.length-1]===Ie?Ce:{...Ce,[Q]:[...ht,Ie]}}),(((wt=re.actions)==null?void 0:wt.endOfAgent)??((ke=re.actions)==null?void 0:ke.end_of_agent)??((Ve=re.actions)==null?void 0:Ve.escalate))&&ce(Ce=>{const ht=Ce[Q]??[];return ht.length<=1?Ce:{...Ce,[Q]:ht.slice(0,-1)}})},[B,Y]=E.useState(Wk),[X,ge]=E.useState(!0),[ye,fe]=E.useState(!1),[_e,Ne]=E.useState(!1),[it,De]=E.useState(!1),[z,K]=E.useState(null),[ne,ae]=E.useState(!1),[xe,Le]=E.useState(!1),Bt=E.useRef(null),[kt,In]=E.useState(()=>{const Q=Yr();return Hl(Q),Q}),[ur,ft]=E.useState(!1),Mn=E.useRef(!1);function At(Q){console.log("create agent draft:",Q),Y(null),ps()}function ac(Q,re){console.log("Agent added, navigating to:",Q,re),In(Yr()),Y(null),r(Q)}const{ref:Of,onScroll:Rf}=dT(d);E.useEffect(()=>{BB().then(Q=>{O(Q.userId),M(Q.info),V(!!Q.local),R(Q.status)})},[]),E.useEffect(()=>{kB().then(Q=>{L(Q.features),S(Q.agentsSource),Q.defaultView==="addAgent"&&(Y(null),fe(!1),ae(!1),Le(!1),Ne(!1),De(!0))})},[]),E.useEffect(()=>{fetch("/web/runtime-config").then(Q=>Q.ok?Q.json():null).then(Q=>{Q&&ge(!!Q.credentials)}).catch(()=>{})},[]);function Lf(Q){LB(Q),O(Q),M({name:Q}),V(!0),R("authenticated")}function Pf(){H?(PB(),O(""),M(void 0),R("unauthenticated")):$B()}E.useEffect(()=>{D!=="unauthenticated"&&yB().then(Q=>{if(t(Q),j==="cloud"){r("");return}const re=localStorage.getItem(Ns.app),he=kt.flatMap(be=>be.apps.map(_t=>Xi(be.id,_t))),Ie=re&&(Q.includes(re)||he.includes(re)),We=["web_search_agent","web_demo"].find(be=>Q.includes(be))??Q.find(be=>!/^\d/.test(be))??Q[0];r(Ie?re:We||"")}).catch(Q=>k(String(Q)))},[D,j]),E.useEffect(()=>{n&&localStorage.setItem(Ns.app,n)},[n]),E.useEffect(()=>{localStorage.setItem(Ns.view,B??"chat")},[B]),E.useEffect(()=>{localStorage.setItem(Ns.session,o),v.current=o},[o]),E.useEffect(()=>()=>y.current.forEach(Q=>Q.abort()),[]),E.useEffect(()=>{!n||!F||(async()=>{const Q=await hs(n);if(!Mn.current){Mn.current=!0;const re=localStorage.getItem(Ns.session)||"";if(Wk()===null&&re&&Q.some(he=>he.id===re)){ms(re);return}}ps()})()},[n,F]),E.useEffect(()=>{const Q=Bt.current;Q&&Q.app===n&&(Bt.current=null,ms(Q.sid))},[n]);function Df(Q,re){ae(!1),Q===n?ms(re):(Bt.current={app:Q,sid:re},r(Q))}async function hs(Q){try{const re=await XN(Q,F),he=await Promise.all(re.map(Ie=>{var We;return(We=Ie.events)!=null&&We.length?Promise.resolve(Ie):Dm(Q,F,Ie.id)}));return s(he),he}catch(re){return k(String(re)),[]}}function ps(){k(""),A(Xk()),v.current="",a("")}async function jf(Q){var re;try{(re=y.current.get(Q))==null||re.abort(),await bB(n,F,Q),c(he=>{const{[Q]:Ie,...We}=he;return We}),Q===o&&ps(),await hs(n)}catch(he){k(String(he))}}async function ms(Q){if(Q!==o&&(v.current=Q,k(""),a(Q),l[Q]===void 0)){U(!0);try{const re=await Dm(n,F,Q);u(Q,IB(re.events??[]))}catch(re){k(String(re))}finally{U(!1)}}}async function $f(Q){const re=[];for(const he of Array.from(Q)){if(he.size>MJ){k(`文件过大(>20MB):${he.name}`);continue}const Ie=await OJ(he);re.push({mimeType:he.type||"application/octet-stream",data:Ie,name:he.name})}re.length&&b(he=>[...he,...re])}async function lc(Q,re=[]){if(!Q.trim()&&re.length===0||de||!n||!F)return;k("");let he=o;if(!he)try{he=await Pm(n,F),a(he);const be=Date.now()/1e3,_t={id:he,lastUpdateTime:be,events:[{author:"user",timestamp:be,content:{role:"user",parts:[{text:Q}]}}]};s(wt=>[_t,...wt.filter(ke=>ke.id!==he)])}catch(be){k(String(be));return}const Ie=new AbortController;y.current.set(he,Ie),w(he,!0),v.current=he;const We=[];re.length&&We.push({kind:"attachment",files:re.map(be=>({mimeType:be.mimeType,data:be.data,name:be.name}))}),Q.trim()&&We.push({kind:"text",text:Q}),u(he,be=>[...be,{role:"user",blocks:We,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),Z(be=>({...be,[he]:""})),q(be=>({...be,[he]:new Set})),ce(be=>({...be,[he]:[]}));try{let be=Gr(),_t=0,wt=Date.now()/1e3;for await(const ke of fd({appName:n,userId:F,sessionId:he,text:Q,attachments:re,signal:Ie.signal})){if(Ie.signal.aborted)break;const Ve=ke.error??ke.errorMessage??ke.error_message;if(typeof Ve=="string"&&Ve){v.current===he&&k(Ve);break}ee(he,ke),be=pl(be,ke);const Ce=ke.usageMetadata??ke.usage_metadata;Ce!=null&&Ce.totalTokenCount&&(_t=Ce.totalTokenCount),ke.timestamp&&(wt=ke.timestamp);const ht=be.blocks,dr={tokens:_t||void 0,ts:wt};u(he,qo=>{const fr=qo.slice(),yn=fr[fr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(fr[fr.length-1]={...yn,blocks:ht,meta:dr}),fr})}hs(n)}catch(be){(be==null?void 0:be.name)!=="AbortError"&&!Ie.signal.aborted&&v.current===he&&k(String(be))}finally{y.current.get(he)===Ie&&y.current.delete(he),w(he,!1),Z(be=>({...be,[he]:""})),ce(be=>({...be,[he]:[]}))}}function Bf(Q,re){var We,be;const he=((We=Q==null?void 0:Q.event)==null?void 0:We.name)??re.id,Ie=((be=Q==null?void 0:Q.event)==null?void 0:be.context)??{};lc(`[ui-action] ${he}: ${JSON.stringify(Ie)}`)}async function Ff(Q){if(!Q.authUri)throw new Error("事件中没有授权地址。");if(!n||!F||!o)throw new Error("会话尚未就绪。");const re=o,he=await CJ(Q.authUri),Ie=IJ(Q.authConfig,he),We=ke=>ke.map(Ve=>Ve.kind==="auth"&&!Ve.done?{...Ve,done:!0}:Ve);u(re,ke=>{const Ve=ke.slice(),Ce=Ve[Ve.length-1];return(Ce==null?void 0:Ce.role)==="assistant"&&(Ve[Ve.length-1]={...Ce,blocks:We(Ce.blocks)}),Ve});const be=d[d.length-1],_t=We(be&&be.role==="assistant"?be.blocks:[]),wt=new AbortController;y.current.set(re,wt),w(re,!0);try{let ke=Gr(),Ve=0,Ce=Date.now()/1e3;for await(const ht of fd({appName:n,userId:F,sessionId:o,text:"",functionResponses:[{id:Q.callId,name:"adk_request_credential",response:Ie}],signal:wt.signal})){if(wt.signal.aborted)break;ee(re,ht),ke=pl(ke,ht);const dr=ht.usageMetadata??ht.usage_metadata;dr!=null&&dr.totalTokenCount&&(Ve=dr.totalTokenCount),ht.timestamp&&(Ce=ht.timestamp);const qo=[..._t,...ke.blocks];u(re,fr=>{var dc;const yn=fr.slice(),bi=yn[yn.length-1];return(bi==null?void 0:bi.role)==="assistant"&&(yn[yn.length-1]={...bi,blocks:qo,meta:{tokens:Ve||((dc=bi.meta)==null?void 0:dc.tokens),ts:Ce}}),yn})}hs(n)}catch(ke){(ke==null?void 0:ke.name)!=="AbortError"&&!wt.signal.aborted&&v.current===re&&k(String(ke))}finally{y.current.get(re)===wt&&y.current.delete(re),w(re,!1),Z(ke=>({...ke,[re]:""})),ce(ke=>({...ke,[re]:[]}))}}if(D===null)return f.jsx("div",{className:"boot"});if(D==="unauthenticated")return f.jsx(sJ,{onUsername:Lf});const cc=iT(e,kt),gs=Q=>{var re;return((re=cc.find(he=>he.id===Q))==null?void 0:re.label)??Q},yi=kt.find(Q=>Q.runtimeId&&Q.apps.some(re=>Xi(Q.id,re)===n)),zf=yi&&yi.runtimeId?{runtimeId:yi.runtimeId,name:yi.name,region:yi.region??"cn-beijing"}:void 0,uc=Q=>{In(Yr()),v.current="",a(""),r(Q)};return f.jsxs("div",{className:"layout",children:[f.jsx(uF,{agentsSource:j,localApps:e,currentAgentId:n,currentAgentLabel:n?gs(n):"",currentRuntime:zf,author:String((P==null?void 0:P.email)??F??""),onSelectAgent:uc,features:$,sessions:i,currentSessionId:o,streamingSids:x,onNewChat:()=>{Y(null),fe(!1),Ne(!1),De(!1),ae(!1),Le(!1),ps()},onSearch:()=>{Y(null),fe(!1),Ne(!1),De(!1),Le(!1),ae(!0),k("")},onQuickCreate:()=>{v.current="",a(""),fe(!1),Ne(!1),ae(!1),Le(!1),Y(null),K(null),De(!0),k("")},onSkillCenter:()=>{Y(null),Ne(!1),De(!1),ae(!1),Le(!1),fe(!0),k("")},onAddAgent:()=>{v.current="",Y(null),fe(!1),ae(!1),Le(!1),a(""),De(!1),Ne(!0),k("")},onManageAgents:()=>{v.current="",a(""),Y(null),fe(!1),Ne(!1),De(!1),ae(!1),Le(!0),k("")},onPickSession:Q=>{Y(null),fe(!1),Ne(!1),De(!1),ae(!1),Le(!1),k(""),ms(Q)},onDeleteSession:jf,userInfo:P,onLogout:Pf}),(()=>{const Q=f.jsx(Q8,{value:h,onChange:p,onSubmit:()=>{const re=h,he=g;p(""),b([]),lc(re,he)},disabled:!n||!F,busy:de,attachments:g,onAddFiles:$f,onRemoveAttachment:re=>b(he=>he.filter((Ie,We)=>We!==re))});return f.jsxs("main",{className:"main",children:[f.jsx(dF,{apps:cc.map(re=>re.id),appName:n,onAppChange:uc,agentLabel:gs,title:it?"添加 Agent":_e?"添加 AgentKit 智能体":ye?"技能中心":ne?"搜索":xe?"管理 Agent":B?void 0:n?gs(n):"选择 Agent",crumbs:ne||_e||ye||it||!B?void 0:B==="menu"?[{label:yJ,onClick:()=>{Y(null),K(null),De(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>ft(!0)},{label:bJ[B]}]}),_&&f.jsx("div",{className:"error",children:_}),C&&f.jsxs("div",{className:"session-loading",children:[f.jsx(ct,{className:"icon spin"})," 加载会话…"]}),xe?f.jsx(mF,{author:String((P==null?void 0:P.email)??F??"")}):it?f.jsx(aC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...$.addAgentkit?[{key:"agentkit",icon:vJ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{De(!1),Ne(!0)}}]:[],{key:"scratch",icon:kJ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{De(!1),K(null),Y("menu")}}]}):ne?f.jsx(eF,{userId:F,appId:n,agentLabel:gs,onOpenSession:Df}):_e?f.jsx(pF,{onAdded:re=>{In(Yr()),Ne(!1),r(re)},onCancel:()=>Ne(!1)}):ye?f.jsx(HB,{}):B!==null&&!X?f.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,height:"100%",padding:24,textAlign:"center",color:"var(--text-secondary, #6b7280)"},children:[f.jsx("div",{style:{fontSize:18,fontWeight:600},children:"需要配置火山引擎 AK/SK"}),f.jsxs("div",{style:{maxWidth:420,lineHeight:1.6},children:["智能体工作台需要 Volcengine 凭据才能使用。请在运行环境中设置"," ",f.jsx("code",{children:"VOLCENGINE_ACCESS_KEY"})," 与"," ",f.jsx("code",{children:"VOLCENGINE_SECRET_KEY"})," 后重试。"]})]}):B==="menu"?f.jsx(MK,{onSelect:re=>{K(null),Y(re)},onImport:re=>{K(re),Y("custom")}}):B==="intelligent"?f.jsx(HK,{userId:F,onBack:()=>Y("menu"),onCreate:At,onAgentAdded:ac}):B==="custom"?f.jsx(k7,{initialDraft:z??void 0,onBack:()=>Y("menu"),onCreate:At,onAgentAdded:ac,author:String((P==null?void 0:P.email)??F??"")}):B==="template"?f.jsx(S7,{onBack:()=>Y("menu"),onCreate:At}):B==="workflow"?f.jsx(JZ,{onBack:()=>Y("menu"),onCreate:At}):d.length===0?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"welcome",children:[f.jsx("h1",{className:"welcome-title",children:I}),Q]}),f.jsx(Zx,{appName:n,activeAgent:le,seenAgents:oe,execPath:G})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Of,onScroll:Rf,children:d.map((re,he)=>{var be;const Ie=he===d.length-1;if(re.role==="user"){const _t=re.blocks.map(ke=>ke.kind==="text"?ke.text:"").join(""),wt=re.blocks.flatMap(ke=>ke.kind==="attachment"?ke.files:[]);return f.jsxs(Dt.div,{className:"turn turn--user",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:[wt.length>0&&f.jsx("div",{className:"msg-attachments",children:wt.map((ke,Ve)=>{var Ce;return(Ce=ke.mimeType)!=null&&Ce.startsWith("image/")&&ke.data?f.jsx("img",{className:"attachment-thumb",src:`data:${ke.mimeType};base64,${ke.data}`,alt:ke.name??"image"},Ve):f.jsxs("div",{className:"attachment-file",children:[f.jsx(Zy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:ke.name??"文件"})]},Ve)})}),_t&&f.jsx("div",{className:"bubble",children:f.jsx(I0,{text:_t})}),f.jsxs("div",{className:"turn-actions turn-actions--right",children:[((be=re.meta)==null?void 0:be.ts)&&f.jsx("span",{className:"meta-text",children:uM(re.meta.ts)}),f.jsx(Gk,{text:_t})]})]},he)}const We=re.blocks.length===0;return f.jsx(Dt.div,{className:"turn turn--assistant",initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.2,ease:"easeOut"},children:We?Ie&&de?f.jsx(W8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(X8,{blocks:re.blocks,onAction:Bf,onAuth:Ff}),!(Ie&&de)&&!TJ(re)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Ie&&de)&&!AJ(re)&&f.jsxs("div",{className:"turn-meta",children:[f.jsxs("div",{className:"turn-actions",children:[f.jsx("button",{className:"icon-btn",title:"Tracing 火焰图",onClick:()=>N(!0),children:f.jsx(_J,{})}),f.jsx(Gk,{text:SJ(re)})]}),re.meta&&f.jsx("span",{className:"meta-text",children:EJ(re.meta)})]})]})},he)})}),f.jsx(Zx,{appName:n,activeAgent:le,seenAgents:oe,execPath:G}),Q]})]})})(),T&&o&&f.jsx(rJ,{sessionId:o,onClose:()=>N(!1)}),ur&&f.jsx("div",{className:"confirm-scrim",onClick:()=>ft(!1),children:f.jsxs("div",{className:"confirm-box",onClick:Q=>Q.stopPropagation(),children:[f.jsx("div",{className:"confirm-title",children:"返回创建首页?"}),f.jsx("div",{className:"confirm-text",children:"返回后当前填写的内容将会丢失,确定要返回吗?"}),f.jsxs("div",{className:"confirm-actions",children:[f.jsx("button",{className:"confirm-btn",onClick:()=>ft(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{K(null),Y("menu"),ft(!1)},children:"确定返回"})]})]})})]})}(()=>{if(!(window.opener&&window.opener!==window&&/[?&](code|state|error)=/.test(window.location.search)))return!1;try{window.opener.postMessage({veadkOAuth:!0,url:window.location.href},window.location.origin)}catch{}return window.close(),!0})()||Sp.createRoot(document.getElementById("root")).render(f.jsx(a_.StrictMode,{children:f.jsx(cL,{reducedMotion:"user",children:f.jsx(RJ,{})})})); diff --git a/veadk/webui/assets/index-WghPsgMg.css b/veadk/webui/assets/index-WghPsgMg.css deleted file mode 100644 index db430d3c..00000000 --- a/veadk/webui/assets/index-WghPsgMg.css +++ /dev/null @@ -1,10 +0,0 @@ -.manage{max-width:760px;margin:0 auto;padding:28px 24px 48px;width:100%;overflow-y:auto}.manage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.manage-title{margin:0 0 4px;font-size:20px;font-weight:650;color:hsl(var(--foreground))}.manage-sub{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.manage-refresh{display:inline-flex;align-items:center;gap:6px;flex:none;padding:7px 12px;font-size:13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));cursor:pointer}.manage-refresh:hover:not(:disabled){background:hsl(var(--foreground) / .05)}.manage-refresh:disabled{opacity:.6;cursor:default}.manage-error{padding:10px 12px;margin-bottom:16px;font-size:13px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border:1px solid hsl(var(--destructive) / .3);border-radius:var(--radius)}.manage-empty{display:flex;align-items:center;gap:8px;padding:40px 0;justify-content:center;font-size:14px;color:hsl(var(--muted-foreground))}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.manage-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card))}.manage-item-row{display:flex;align-items:center;gap:8px}.manage-item-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;text-align:left}.manage-item-toggle .icon{flex:none;color:hsl(var(--muted-foreground))}.manage-item-main{display:flex;align-items:center;gap:10px;min-width:0}.manage-item-name{font-size:15px;font-weight:600;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-badge{flex:none;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid transparent}.manage-badge.is-ok{color:#15803d;background:#15803d1a;border-color:#15803d40}.manage-badge.is-warn{color:#b45309;background:#b453091a;border-color:#b4530940}.manage-badge.is-bad{color:hsl(var(--destructive));background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .35)}.manage-badge.is-muted{color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--border))}.manage-item-meta{display:flex;align-items:center;gap:6px;padding-left:24px;font-size:12px;color:hsl(var(--muted-foreground));min-width:0}.manage-item-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-item-dot{opacity:.5}.manage-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer}.manage-del:hover:not(:disabled){color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .06)}.manage-del:disabled{opacity:.6;cursor:default}.manage-detail{margin-top:8px;padding:12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background))}.manage-detail-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.manage-detail-card{margin-bottom:12px}.manage-kv{margin:0;display:grid;gap:4px}.manage-kv-row{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:13px}.manage-kv-row dt{color:hsl(var(--muted-foreground))}.manage-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.manage-envs{margin-top:10px}.manage-envs-head,.manage-tree-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.manage-tree-head{margin-top:4px}.manage-env{display:flex;gap:8px;font-size:12px;padding:2px 0}.manage-env-k{color:hsl(var(--muted-foreground));flex:none}.manage-env-v{color:hsl(var(--foreground));word-break:break-all}.manage-tree-note{font-size:12px;color:hsl(var(--muted-foreground));padding:4px 0}.manage-tree{padding:3px 0}.manage-tree-node{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-tree-name{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.manage-tree-type{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}.manage-tree-model{font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manage-tree-tools{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 0 2px}.manage-tree-tool{font-size:10px;padding:1px 6px;border-radius:4px;color:hsl(var(--muted-foreground));background:hsl(var(--foreground) / .05);border:1px solid hsl(var(--border))}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub - Description: Light theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-light - Current colors taken from GitHub's CSS -*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.stk{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.stk-head{text-align:center;margin-bottom:26px}.stk-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em}.stk-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.stk-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:520px}.stk-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,box-shadow .15s,background .12s}.stk-card:hover{border-color:hsl(var(--ring) / .35);background:hsl(var(--foreground) / .02);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.stk-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.stk-card-icon svg{width:21px;height:21px}.stk-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.stk-card-title{font-size:15px;font-weight:600}.stk-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.stk-card-arrow{flex-shrink:0;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.stk-card:hover .stk-card-arrow{opacity:1;transform:translate(0)}.stk-card-disabled{opacity:.5;cursor:not-allowed}.stk-card-disabled:hover{border-color:hsl(var(--border));background:hsl(var(--card));box-shadow:none}.stk-card-disabled .stk-card-arrow{display:none}.stk-footer{margin-top:18px;width:100%;max-width:520px;display:flex;justify-content:center}.stk-import{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px dashed hsl(var(--border));border-radius:9px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.stk-import:hover{color:hsl(var(--foreground));border-color:hsl(var(--ring) / .4);background:hsl(var(--foreground) / .03)}.stk-import svg{width:15px;height:15px}.pp-root{display:flex;height:100%;min-height:0;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden}.pp-sidebar{width:240px;flex:0 0 240px;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-sidebar-head{display:flex;align-items:center;gap:8px;padding:10px 8px 10px 12px;border-bottom:1px solid hsl(var(--border))}.pp-project-name{flex:1;font-size:13px;font-weight:600;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-tree{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.pp-empty,.pp-placeholder{padding:16px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.pp-row{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground));text-align:left;cursor:pointer}.pp-row:hover{background:hsl(var(--foreground) / .05)}.pp-file.pp-active{background:hsl(var(--foreground) / .08)}.pp-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-folder .pp-label{color:hsl(var(--muted-foreground))}.pp-ic{width:15px;height:15px;flex:0 0 auto}.pp-chevron{color:hsl(var(--muted-foreground));transition:transform .12s ease}.pp-chevron.pp-open{transform:rotate(90deg)}.pp-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.pp-main-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-path{flex:1;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-actions{display:flex;align-items:center;gap:6px}.pp-actions-left{flex:1;display:flex;align-items:center;gap:6px}.pp-add-prompt{flex:1;padding:6px 10px;font-size:13px;border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));outline:none;font-family:inherit}.pp-add-prompt:focus{border-color:hsl(var(--primary))}.pp-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border:none;background:hsl(var(--background));color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-btn:hover{background:hsl(var(--foreground) / .08)}.pp-btn:disabled{opacity:.5;cursor:default}.pp-btn-add{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-btn-add:hover{background:hsl(var(--primary) / .9)}.pp-btn-remove{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.pp-btn-remove:hover{background:hsl(var(--destructive) / .9)}.pp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-icon-btn:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.pp-secondary,.pp-deploy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:13px;font-weight:500;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-secondary{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground))}.pp-secondary:hover{background:hsl(var(--foreground) / .05)}.pp-deploy{color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer}.pp-deploy:hover{background:hsl(var(--primary) / .9)}.pp-deploy:disabled{opacity:.6;cursor:default}.pp-error{padding:8px 12px;font-size:12px;color:hsl(var(--destructive));background:hsl(var(--destructive) / .08);border-bottom:1px solid hsl(var(--border))}.pp-env-panel{flex:0 0 400px;width:400px;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--secondary) / .28)}.pp-env-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.pp-env-title{font-size:15px;font-weight:700;color:hsl(var(--foreground))}.pp-env-sub{margin-top:5px;max-width:292px;font-size:12px;line-height:1.45;color:hsl(var(--muted-foreground))}.pp-env-table{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:0;padding:10px 16px 12px}.pp-env-row{display:grid;grid-template-columns:minmax(142px,1.08fr) minmax(120px,1fr) 30px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid hsl(var(--border) / .72)}.pp-env-row-head{position:sticky;top:0;z-index:1;padding:0 0 6px;border:none;background:hsl(var(--secondary) / .28);color:hsl(var(--muted-foreground));font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.pp-env-row input{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:12px}.pp-env-row input:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px}.pp-env-key-fixed{border-color:hsl(var(--border))!important;background:hsl(var(--card))!important;color:hsl(var(--foreground))!important;cursor:default}.pp-env-row input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 2px hsl(var(--ring) / .1)}.pp-env-row input:disabled,.pp-env-row button:disabled,.pp-env-add:disabled{opacity:.55;cursor:default}.pp-env-empty{padding:26px 12px;color:hsl(var(--muted-foreground));font-size:12px;text-align:center;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card))}.pp-env-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 16px 14px;height:38px;border:1px dashed hsl(var(--border));border-radius:6px;background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer}.pp-env-add:hover:not(:disabled){background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .22)}.pp-env-remove{width:30px;height:30px}.pp-env-remove-placeholder{display:block;width:30px;height:30px}.pp-steps{display:flex;align-items:flex-start;gap:6px;margin:0;padding:12px 16px;list-style:none;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.pp-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.pp-step:not(:last-child):after{content:"";flex:1;height:1px;background:hsl(var(--border))}.pp-step-dot{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));background:hsl(var(--card))}.pp-step-body{display:flex;flex-direction:column;min-width:0}.pp-step-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));white-space:nowrap}.pp-step-msg{font-size:11px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.pp-step.is-active .pp-step-dot{border-color:hsl(var(--primary));color:hsl(var(--primary))}.pp-step.is-active .pp-step-label{color:hsl(var(--foreground))}.pp-step.is-done .pp-step-dot{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.pp-step.is-failed .pp-step-dot{border-color:hsl(var(--destructive));background:hsl(var(--destructive));color:#fff}.pp-step.is-failed .pp-step-label{color:hsl(var(--destructive))}.pp-deploy-result{padding:12px 16px;background:hsl(var(--primary) / .05);border-bottom:1px solid hsl(var(--border))}.pp-deploy-result-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:600;color:hsl(var(--foreground))}.pp-deploy-result-icon{font-size:16px}.pp-deploy-result-body{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.pp-deploy-result-field{display:flex;flex-direction:column;gap:4px}.pp-deploy-result-field label{font-size:11px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.02em}.pp-deploy-result-field code{padding:6px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);color:hsl(var(--foreground));word-break:break-all}.pp-deploy-result-url{font-size:11px}.pp-deploy-result-field small{font-size:10px;color:hsl(var(--muted-foreground));margin-top:2px}.pp-deploy-result-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;color:hsl(var(--primary-foreground));background:hsl(var(--primary));border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background .15s ease;align-self:flex-end;margin-left:auto}.pp-deploy-result-btn:hover{background:hsl(var(--primary) / .9)}.pp-deploy-result-btn:disabled{opacity:.6;cursor:default}.pp-content{flex:1;min-height:0;display:flex}.pp-pre,.pp-hl,.pp-input{margin:0;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55;white-space:pre;-moz-tab-size:2;tab-size:2;box-sizing:border-box;border:none}.pp-pre code,.pp-hl code,.pp-input{font:inherit;-moz-tab-size:inherit;tab-size:inherit}.pp-pre{flex:1;width:100%;height:100%;overflow:auto}.pp-pre code{background:none;padding:0}.pp-editor-wrap{position:relative;flex:1;min-width:0;min-height:0;width:100%;height:100%}.pp-hl{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;pointer-events:none}.pp-hl code{background:none;padding:0}.pp-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;resize:none;outline:none;background:transparent;color:transparent;caret-color:hsl(var(--foreground))}.ic-root{display:flex;flex-direction:column;height:100%;min-height:0}.ic-body{flex:1;min-height:0;display:flex}.ic-chat{flex:0 0 380px;width:380px;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid hsl(var(--border))}.ic-transcript{flex:1;min-height:0;overflow-y:auto;padding:24px 20px 12px}.ic-turn{display:flex;gap:10px;max-width:760px;margin:0 auto 16px}.ic-turn:last-child{margin-bottom:0}.ic-turn--assistant{justify-content:flex-start}.ic-turn--user{justify-content:flex-end}.ic-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:hsl(var(--secondary));color:#7c48f4}.ic-avatar-icon{width:17px;height:17px}.ic-bubble{max-width:78%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ic-turn--user .ic-bubble{white-space:pre-wrap}.ic-turn--assistant .ic-bubble{background:hsl(var(--secondary));color:hsl(var(--foreground));border-top-left-radius:5px}.ic-turn--user .ic-bubble{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-top-right-radius:5px}.ic-bubble .md>:first-child{margin-top:0}.ic-bubble .md>:last-child{margin-bottom:0}.ic-bubble--typing{display:inline-flex;align-items:center;gap:4px;padding:14px 16px}.ic-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--muted-foreground));animation:ic-bounce 1.2s ease-in-out infinite}.ic-dot:nth-child(2){animation-delay:.16s}.ic-dot:nth-child(3){animation-delay:.32s}@keyframes ic-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ic-error{flex-shrink:0;display:flex;align-items:center;gap:8px;max-width:760px;width:100%;margin:0 auto;padding:9px 14px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px;line-height:1.45}.ic-error-icon{width:15px;height:15px;flex-shrink:0}.ic-composer{flex-shrink:0;max-width:760px;width:100%;margin:0 auto;padding:8px 20px 18px}.ic-composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 12px;border:1px solid hsl(var(--border));border-radius:24px;background:hsl(var(--background));transition:border-color .15s,box-shadow .15s}.ic-composer-box:focus-within{border-color:hsl(var(--ring) / .4);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.ic-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 2px;max-height:160px;overflow-y:auto}.ic-input::placeholder{color:hsl(var(--muted-foreground))}.ic-input:disabled{opacity:.6}.ic-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.ic-send-icon{width:17px;height:17px}.ic-send:hover:not(:disabled){opacity:.85}.ic-send:active:not(:disabled){transform:scale(.94)}.ic-send:disabled{opacity:.3;cursor:default}.ic-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}.ic-composer-hint{flex:1;text-align:center;font-size:11px;color:hsl(var(--muted-foreground))}.ic-ab-toggle{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ic-ab-checkbox{position:absolute;opacity:0;width:0;height:0}.ic-ab-track{position:relative;display:inline-block;width:30px;height:17px;border-radius:999px;background:hsl(var(--muted-foreground) / .35);transition:background .15s}.ic-ab-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ic-ab-checkbox:checked+.ic-ab-track{background:hsl(var(--primary))}.ic-ab-checkbox:checked+.ic-ab-track .ic-ab-thumb{transform:translate(13px)}.ic-ab-checkbox:disabled+.ic-ab-track{opacity:.5}.ic-ab-checkbox:focus-visible+.ic-ab-track{box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.ic-ab-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.ic-compare{flex:1;min-height:0;display:flex}.ic-compare-divider{flex:0 0 1px;background:hsl(var(--border))}.ic-pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.ic-pane-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background))}.ic-pane-title{display:flex;align-items:center;gap:8px;min-width:0}.ic-pane-tag{flex-shrink:0;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:#fff}.ic-pane-tag--a{background:#7c48f4}.ic-pane-tag--b{background:#0da2e7}.ic-pane-model{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ic-adopt{flex-shrink:0;padding:6px 12px;border:none;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ic-adopt:hover:not(:disabled){opacity:.85}.ic-adopt:active:not(:disabled){transform:scale(.96)}.ic-adopt:disabled{opacity:.4;cursor:default}.ic-pane-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ic-pane-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;color:hsl(var(--muted-foreground))}.ic-pane-spinner{width:22px;height:22px;color:#7c48f4;animation:ic-spin .9s linear infinite}@keyframes ic-spin{to{transform:rotate(360deg)}}.ic-pane-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.ic-preview{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:0;background:hsl(var(--muted) / .35)}.ic-preview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.ic-preview-empty-icon{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:#7c48f414;color:#7c48f4;margin-bottom:4px}.ic-preview-empty-glyph{width:30px;height:30px}.ic-preview-empty-spark{position:absolute;top:9px;right:9px;width:14px;height:14px}.ic-preview-empty-title{font-size:15px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.ic-preview-empty-sub{font-size:13px;line-height:1.55;color:hsl(var(--muted-foreground));max-width:240px}@media (max-width: 920px){.ic-body{flex-direction:column}.ic-preview{width:100%;border-left:none;border-top:1px solid hsl(var(--border));min-height:320px}}.cw-root{flex:1;min-height:0;display:flex;flex-direction:column;height:100%;color:hsl(var(--foreground))}.cw-editor{flex:1;min-height:0;display:flex;align-items:stretch}.cw-tree{flex-shrink:0;width:320px;overflow-y:auto;padding:16px 14px;border-right:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-tree-head{font-size:12px;font-weight:650;letter-spacing:.02em;color:hsl(var(--muted-foreground));padding:0 6px;margin-bottom:10px}.cw-tree-branch{display:flex;flex-direction:column}.cw-tree-node{position:relative;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.cw-tree-node:hover{background:hsl(var(--accent))}.cw-tree-node.is-selected{background:hsl(var(--primary) / .04);border-color:hsl(var(--primary) / .16)}.cw-tree-node.is-invalid{background:hsl(var(--destructive) / .07);border-color:hsl(var(--destructive) / .5)}.cw-tree-node.is-invalid.is-selected{background:hsl(var(--destructive) / .1);border-color:hsl(var(--destructive) / .6)}.cw-tree-node.is-draggable{cursor:grab}.cw-tree-node.is-draggable:active{cursor:grabbing}.cw-tree-node.is-dragover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .45)}.cw-tree-icon{width:15px;height:15px;flex-shrink:0;opacity:.8}.cw-tree-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.cw-tree-type{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground))}.cw-tree-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.cw-tree-node:hover .cw-tree-actions,.cw-tree-node.is-selected .cw-tree-actions{opacity:1;pointer-events:auto}.cw-tree-children{display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-left:8px;padding-left:8px;border-left:1px solid hsl(var(--border))}.cw-detail{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.cw-typebar{flex-shrink:0;background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border));padding:20px 44px 14px 16px}.cw-typebar-inner{max-width:1080px;margin:0 auto}.cw-detail-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable both-edges;padding:24px 44px 48px 16px}.cw-detail-inner{max-width:1080px;margin:0 auto}.cw-lower{display:flex;gap:36px;align-items:flex-start}.cw-detail .cw-form-col{flex:1;min-width:0;margin:0}.cw-footer-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-footer-status{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-footer-ok{color:hsl(var(--muted-foreground));font-weight:550}.cw-footer-problem{border:none;background:none;padding:0;cursor:pointer;font-size:13px;color:hsl(var(--destructive));text-align:left}.cw-footer-problem:hover{text-decoration:underline}.cw-footer-actions{display:flex;gap:10px;flex-shrink:0}.cw-header{flex-shrink:0;display:flex;align-items:flex-start;gap:16px;padding:18px 24px 16px;border-bottom:1px solid hsl(var(--border))}.cw-header-title{flex:1;min-width:0}.cw-header-mode{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.cw-title{margin:5px 0 2px;font-size:21px;font-weight:650;letter-spacing:-.02em}.cw-subtitle{margin:0;font-size:13px;color:hsl(var(--muted-foreground))}.cw-progress-pill{flex-shrink:0;margin-top:2px;padding:5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.cw-body{flex:1;min-height:0;overflow-y:auto}.cw-center{display:flex;align-items:flex-start;justify-content:center;gap:32px;max-width:960px;margin:0 auto;padding:32px 24px 80px}.cw-form-col{flex:1 1 auto;min-width:0;max-width:640px;display:flex;flex-direction:column;gap:44px}.cw-section{scroll-margin-top:24px}.cw-sec-head{margin-bottom:18px}.cw-sec-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.cw-sec-required{padding:1px 7px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10.5px;font-weight:600;letter-spacing:.02em}.cw-sec-hint{margin:0;font-size:13px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-missing{display:flex;align-items:baseline;gap:10px;margin-top:12px;padding:8px 12px;border-radius:8px;background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .25)}.cw-missing-lead{flex-shrink:0;font-size:12.5px;font-weight:600;color:hsl(var(--destructive))}.cw-missing-list{display:flex;flex-wrap:wrap;gap:6px}.cw-missing-item{border:none;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font:inherit;font-size:12px;padding:2px 8px;border-radius:6px;cursor:pointer}.cw-missing-item:hover{background:hsl(var(--destructive) / .18)}.cw-footer-importerr{font-size:12px;color:hsl(var(--destructive));max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-finish-actions{display:flex;justify-content:flex-end}.cw-btn-finish{padding:11px 22px;font-size:14px}.cw-rail{position:sticky;top:0;align-self:flex-start;flex-shrink:0;width:208px;padding:4px 0}.cw-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.cw-rail-track{position:absolute;left:18px;top:23px;bottom:23px;width:2px;border-radius:2px;background:hsl(var(--border));z-index:0}.cw-rail-fill{position:absolute;left:0;top:0;width:100%;border-radius:2px;background:hsl(var(--foreground) / .55)}.cw-step{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:7px 8px;border:none;border-radius:9px;background:none;text-align:left;cursor:pointer;font:inherit;transition:background .12s}.cw-step:hover{background:hsl(var(--foreground) / .05)}.cw-step.is-active{background:hsl(var(--foreground) / .06)}.cw-step-marker{position:relative;z-index:2;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cw-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--foreground) / .25);transition:background .15s,width .15s,height .15s}.cw-step.is-done:not(.is-active) .cw-dot{background:hsl(var(--foreground) / .7)}.cw-step.is-active .cw-dot{width:11px;height:11px;background:hsl(var(--foreground))}.cw-step-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cw-step-labelrow{display:flex;align-items:center;gap:6px;min-width:0}.cw-step-required{flex-shrink:0;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .08);color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;letter-spacing:.02em}.cw-step.is-active .cw-step-required{background:hsl(var(--foreground) / .12);color:hsl(var(--foreground))}.cw-step-label{font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));transition:color .12s}.cw-step.is-active .cw-step-label{color:hsl(var(--foreground));font-weight:600}.cw-step.is-done:not(.is-active) .cw-step-label{color:hsl(var(--foreground) / .75)}.cw-step-hint{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-form{display:flex;flex-direction:column;gap:20px}.cw-section-desc{margin:0;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.cw-field{display:flex;flex-direction:column;gap:7px}.cw-label{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-req{margin-left:2px;color:hsl(var(--destructive))}.cw-help{font-size:12px;color:hsl(var(--muted-foreground));line-height:1.5}.cw-error-text{font-size:12px;color:hsl(var(--destructive))}.cw-input{width:100%;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.cw-input::placeholder{color:hsl(var(--muted-foreground))}.cw-input:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-input.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea{width:100%;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;line-height:1.6;resize:vertical;transition:border-color .12s,box-shadow .12s}.cw-textarea::placeholder{color:hsl(var(--muted-foreground))}.cw-textarea:focus{outline:none;border-color:hsl(var(--ring) / .45);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.cw-textarea.is-error{border-color:hsl(var(--destructive) / .6)}.cw-textarea-sm{min-height:80px}.cw-textarea-lg{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.cw-tag-editor{display:flex;flex-direction:column;gap:12px}.cw-tag-inputrow{display:flex;gap:8px}.cw-tag-inputrow .cw-input{flex:1}.cw-presets{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.cw-presets-label{font-size:11.5px;color:hsl(var(--muted-foreground));margin-right:2px}.cw-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:12.5px;white-space:nowrap}.cw-chip-ghost{border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font:inherit;font-size:12.5px;transition:background .12s,color .12s,border-color .12s}.cw-chip-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-chip-sub{background:hsl(var(--primary) / .08);color:hsl(var(--foreground))}.cw-pills{display:flex;flex-wrap:wrap;gap:8px}.cw-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font-size:13px}.cw-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-pill-x:hover{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.cw-empty-line{margin:0;font-size:12.5px;color:hsl(var(--muted-foreground))}.cw-checklist{display:flex;flex-direction:column;gap:8px}.cw-check{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-check:hover{background:hsl(var(--foreground) / .05)}.cw-check.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-check-box{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));color:hsl(var(--background));transition:background .12s,border-color .12s,color .12s}.cw-check.is-on .cw-check-box{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-check-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-check-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-check-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-segmented{display:flex;flex-wrap:wrap;gap:8px}.cw-seg{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-seg:hover{background:hsl(var(--foreground) / .05)}.cw-seg.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-seg-title{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.cw-seg-desc{font-size:11.5px;line-height:1.45;color:hsl(var(--muted-foreground))}.cw-ctool{display:flex;flex-direction:column;gap:12px}.cw-ctool-inputs{display:flex;flex-wrap:wrap;gap:8px}.cw-ctool-inputs .cw-input{flex:1 1 180px}.cw-ctool-list{display:flex;flex-direction:column;gap:8px}.cw-ctool-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card))}.cw-ctool-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground))}.cw-ctool-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cw-ctool-name{font-size:13.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--foreground));word-break:break-word}.cw-ctool-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-mcp,.cw-mcp-list{display:flex;flex-direction:column;gap:12px}.cw-mcp-row{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.cw-mcp-rowhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cw-mcp-transport{display:inline-flex;gap:6px}.cw-seg-sm{flex:0 0 auto;min-width:72px;flex-direction:row;align-items:center;justify-content:center;text-align:center;padding:6px 16px;border-radius:9px}.cw-seg-sm .cw-seg-title{font-size:12.5px}.cw-mcp .cw-add-sub{margin-top:0}.cw-subfield{margin:-2px 0 2px;padding:14px 16px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .02)}.cw-toggle-stack{gap:14px}.cw-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.cw-toggle:hover{border-color:hsl(var(--ring) / .25)}.cw-toggle.is-on{border-color:hsl(var(--primary) / .4);box-shadow:0 1px 2px hsl(var(--foreground) / .04)}.cw-toggle-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:hsl(var(--secondary));color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.cw-toggle.is-on .cw-toggle-icon{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cw-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-toggle-title{font-size:14px;font-weight:600}.cw-toggle-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-switch{flex-shrink:0;display:flex;align-items:center;width:42px;height:24px;padding:2px;border-radius:999px;background:hsl(var(--border));transition:background .18s}.cw-toggle.is-on .cw-switch{background:hsl(var(--primary));justify-content:flex-end}.cw-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:hsl(var(--background));box-shadow:0 1px 2px hsl(var(--foreground) / .2)}.cw-sub-list{display:flex;flex-direction:column;gap:14px}.cw-sub{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .03)}.cw-sub-head{display:flex;align-items:center;justify-content:space-between}.cw-sub-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:hsl(var(--primary) / .08);color:hsl(var(--foreground));font-size:12.5px;font-weight:600}.cw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.cw-icon-btn:not(:disabled):hover{background:hsl(var(--foreground) / .06);color:hsl(var(--foreground))}.cw-icon-btn:disabled{opacity:.35;cursor:not-allowed}.cw-icon-danger:not(:disabled):hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.cw-sub-head-actions{display:inline-flex;align-items:center;gap:2px}.cw-sub-list-wrap{display:flex;flex-direction:column}.cw-typeradio{display:flex;flex-direction:column;gap:8px}.cw-typeradio--row{flex-direction:row;flex-wrap:wrap;gap:8px}.cw-typeradio--row .cw-typeradio-item{flex:1 1 0;min-width:0;align-items:center;padding:10px 12px}.cw-typeradio-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--background));cursor:pointer;transition:background .12s,border-color .12s}.cw-typeradio-item:hover{border-color:hsl(var(--foreground) / .2);background:hsl(var(--foreground) / .03)}.cw-typeradio-item.is-on{border-color:hsl(var(--primary));background:hsl(var(--primary) / .05)}.cw-typeradio-input{position:absolute;opacity:0;width:0;height:0}.cw-typeradio-dot{flex-shrink:0;width:16px;height:16px;margin-top:1px;border-radius:50%;border:2px solid hsl(var(--border));transition:border-color .12s}.cw-typeradio-item.is-on .cw-typeradio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 3.5px,transparent 4.5px)}.cw-typeradio-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.cw-typeradio-head{display:flex;align-items:center;gap:7px}.cw-typeradio-icon{flex-shrink:0;width:16px;height:16px;color:hsl(var(--muted-foreground))}.cw-typeradio-item.is-on .cw-typeradio-icon{color:hsl(var(--foreground))}.cw-typeradio-title{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-typeradio-desc{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-add-sub{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:12px;width:100%;border:1px dashed hsl(var(--border));border-radius:12px;background:transparent;color:hsl(var(--muted-foreground));font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cw-add-sub:hover{background:hsl(var(--accent));color:hsl(var(--foreground));border-color:hsl(var(--ring) / .3)}.cw-banner{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius);background:hsl(var(--destructive) / .08);color:hsl(var(--destructive));font-size:13px;line-height:1.5}.cw-review{display:flex;flex-direction:column;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;background:hsl(var(--card))}.cw-review-row{display:flex;gap:18px;padding:13px 16px;border-bottom:1px solid hsl(var(--border))}.cw-review-row:last-child{border-bottom:none}.cw-review-key{flex-shrink:0;width:110px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.cw-review-val{flex:1;min-width:0;font-size:13.5px}.cw-review-strong{font-weight:600}.cw-review-muted{color:hsl(var(--muted-foreground))}.cw-review-pre{margin:0;padding:10px 12px;background:hsl(var(--muted));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.cw-review-chips,.cw-review-subs{display:flex;flex-wrap:wrap;gap:6px}.cw-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.cw-tag-on{background:#22c35d24;color:#1c7d3f}.cw-tag-off{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.cw-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:13.5px;font-weight:550;cursor:pointer;transition:background .13s,opacity .13s,border-color .13s,transform .1s}.cw-btn:active{transform:scale(.98)}.cw-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.cw-btn-primary:hover:not(:disabled){opacity:.88}.cw-btn-primary:disabled{opacity:.4;cursor:default}.cw-btn-ghost{background:hsl(var(--background));border-color:hsl(var(--border));color:hsl(var(--foreground))}.cw-btn-ghost:hover{background:hsl(var(--accent))}.cw-btn-soft{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));flex-shrink:0}.cw-btn-soft:hover:not(:disabled){background:hsl(var(--accent))}.cw-btn-soft:disabled{opacity:.45;cursor:default}.cw-i{width:16px;height:16px;flex-shrink:0}.cw-i-sm{width:14px;height:14px}.cw-root-preview{height:100%}.cw-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel))}.cw-preview-title{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.cw-preview-body{flex:1;min-height:0;display:flex}.cw-preview-body>*{flex:1;min-height:0}.cw-skillhub{display:flex;flex-direction:column;gap:14px}.cw-skill-searchrow{display:flex;gap:8px}.cw-skill-searchbox{position:relative;flex:1;min-width:0;display:flex;align-items:center}.cw-skill-searchicon{position:absolute;left:11px;color:hsl(var(--muted-foreground));pointer-events:none}.cw-skill-input{padding-left:36px}.cw-skill-selected{display:flex;flex-direction:column;gap:8px}.cw-skill-selected-label{font-size:11.5px;font-weight:600;color:hsl(var(--muted-foreground))}.cw-skill-results{display:flex;flex-direction:column;gap:8px}.cw-skill-result{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));text-align:left;cursor:pointer;font:inherit;transition:background .12s,border-color .12s}.cw-skill-result:hover{background:hsl(var(--foreground) / .05)}.cw-skill-result.is-on{background:hsl(var(--foreground) / .08);border-color:hsl(var(--foreground) / .18)}.cw-skill-result-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:1px;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--background));color:hsl(var(--muted-foreground));transition:background .12s,border-color .12s,color .12s}.cw-skill-result.is-on .cw-skill-result-icon{background:hsl(var(--foreground));border-color:hsl(var(--foreground));color:hsl(var(--background))}.cw-skill-result-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.cw-skill-result-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground));word-break:break-word}.cw-skill-result-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.cw-skill-result-repo{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:hsl(var(--muted-foreground));word-break:break-all}.cw-spin{animation:cw-spin .8s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.cw-rail{display:none}.cw-center{gap:0;padding:24px 16px 64px}.cw-form-col{max-width:100%}}.tpl-root{flex:1;min-height:0;display:flex;flex-direction:column}.tpl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 18px;padding:6px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.tpl-back:hover{background:hsl(var(--foreground) / .05);color:hsl(var(--foreground))}.tpl-back .icon{width:15px;height:15px}.tpl-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 40px}.tpl-scroll--detail{padding-left:14px;padding-right:14px}.tpl-head{max-width:720px;margin:8px auto 28px;text-align:center}.tpl-title{margin:0;font-size:24px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;max-width:1100px;margin:0 auto}.tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;height:100%;padding:16px 16px 18px;text-align:left;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;font:inherit;transition:background .14s,border-color .14s}.tpl-card:hover{background:hsl(var(--foreground) / .05)}.tpl-card:active{background:hsl(var(--foreground) / .08)}.tpl-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;color:hsl(var(--muted-foreground))}.tpl-card-icon .icon{width:20px;height:20px}.tpl-card-name{font-size:14px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground))}.tpl-card-desc{font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.tpl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tpl-tags--detail{margin-top:0}.tpl-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--muted-foreground));font-size:11.5px;white-space:nowrap}.tpl-tag-icon{width:12px;height:12px;flex-shrink:0}.tpl-detail{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.tpl-detail-head{display:flex;align-items:flex-start;gap:14px}.tpl-detail-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid hsl(var(--border));border-radius:12px;background:none;color:hsl(var(--muted-foreground))}.tpl-detail-icon .icon{width:22px;height:22px}.tpl-detail-headtext{min-width:0}.tpl-detail-name{font-size:20px;font-weight:650;letter-spacing:-.02em;color:hsl(var(--foreground))}.tpl-detail-desc{margin-top:4px;font-size:13.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.tpl-field{display:flex;flex-direction:column;gap:8px}.tpl-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.tpl-input{width:100%;padding:10px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:14px;transition:border-color .15s}.tpl-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.tpl-instruction{margin:0;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--foreground) / .03);color:hsl(var(--foreground));font-size:13px;line-height:1.7;white-space:pre-wrap}.tpl-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.tpl-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.tpl-meta-key{flex-shrink:0;color:hsl(var(--muted-foreground))}.tpl-meta-val{text-align:right;word-break:break-word;color:hsl(var(--foreground))}.tpl-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.tpl-subagents{display:flex;flex-direction:column;gap:10px}.tpl-subagent{padding:12px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.tpl-subagent-top{display:flex;align-items:center;gap:8px}.tpl-subagent-name{font-size:13.5px;font-weight:600;color:hsl(var(--foreground))}.tpl-subagent-tools{margin-left:auto;font-size:11px;color:hsl(var(--muted-foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tpl-subagent-desc{margin-top:5px;font-size:12.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.tpl-create{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:flex-start;margin-top:4px;padding:11px 20px;border:none;border-radius:12px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.tpl-create:hover{opacity:.88}.tpl-create:active{transform:scale(.98)}.tpl-create .icon{width:17px;height:17px}@media (max-width: 560px){.tpl-meta-grid{grid-template-columns:1fr}.tpl-scroll{padding:20px 16px 32px}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.wfb{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.wfb-create{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid transparent;border-radius:8px;background:hsl(var(--foreground));color:hsl(var(--background));font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .4);transition:opacity .15s,transform .1s}.wfb-create:hover:not(:disabled){opacity:.88}.wfb-create:active:not(:disabled){transform:scale(.97)}.wfb-create:disabled{opacity:.4;cursor:default}.wfb-grid{flex:1;min-height:0;display:grid;grid-template-columns:248px minmax(0,1fr) 288px}.wfb-section-label{margin:4px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground))}.wfb-field{display:flex;flex-direction:column;gap:5px}.wfb-field-label{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-input{width:100%;border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 10px;font:inherit;font-size:13px;background:hsl(var(--background));color:hsl(var(--foreground));transition:border-color .12s,box-shadow .12s}.wfb-input::placeholder{color:hsl(var(--muted-foreground) / .7)}.wfb-input:focus{outline:none;border-color:hsl(var(--ring) / .5);box-shadow:0 0 0 3px hsl(var(--ring) / .08)}.wfb-textarea{resize:vertical;min-height:52px;line-height:1.5}.wfb-palette{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-types{display:flex;flex-direction:column;gap:6px}.wfb-type{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.wfb-type:hover{border-color:hsl(var(--ring) / .3)}.wfb-type .icon{color:hsl(var(--muted-foreground))}.wfb-type--active{border-color:hsl(var(--ring) / .55);background:hsl(var(--accent))}.wfb-type--active .icon{color:#7c48f4}.wfb-type-text{display:flex;flex-direction:column;gap:1px;min-width:0}.wfb-type-name{font-size:13px;font-weight:550}.wfb-type-desc{font-size:11px;color:hsl(var(--muted-foreground))}.wfb-palette-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px dashed hsl(var(--border));border-radius:var(--radius);background:hsl(var(--background));cursor:grab;transition:border-color .12s,background .12s}.wfb-palette-item:hover{border-color:hsl(var(--ring) / .4);background:hsl(var(--accent))}.wfb-palette-item:active{cursor:grabbing}.wfb-grip{color:hsl(var(--muted-foreground) / .7)}.wfb-palette-item-text{font-size:13px;font-weight:500}.wfb-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.wfb-add:hover{background:hsl(var(--accent))}.wfb-hint{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.wfb-canvas{position:relative;min-width:0;height:100%;background:hsl(var(--canvas))}.wfb-canvas .react-flow{background:transparent}.wfb-node{display:flex;align-items:center;gap:10px;width:188px;padding:10px 12px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .2);transition:border-color .12s,box-shadow .12s}.wfb-node--selected{border-color:hsl(var(--ring) / .6);box-shadow:0 0 0 3px hsl(var(--ring) / .12)}.wfb-node-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:9px;background:hsl(var(--secondary));color:#7c48f4}.wfb-node-icon--sm{width:24px;height:24px;border-radius:7px}.wfb-node-body{min-width:0;display:flex;flex-direction:column;gap:2px}.wfb-node-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-node-desc{font-size:11px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wfb-handle{width:9px!important;height:9px!important;background:hsl(var(--background))!important;border:2px solid hsl(258 89% 62%)!important}.wfb-handle:hover{background:#7c48f4!important}.wfb-canvas .react-flow__controls{border-radius:10px;overflow:hidden;box-shadow:0 4px 16px -8px hsl(var(--foreground) / .25);border:1px solid hsl(var(--border))}.wfb-canvas .react-flow__controls-button{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));color:hsl(var(--foreground))}.wfb-canvas .react-flow__controls-button:hover{background:hsl(var(--accent))}.wfb-canvas .react-flow__controls-button svg{fill:hsl(var(--foreground))}.wfb-canvas .react-flow__edge-path{stroke:hsl(var(--muted-foreground) / .55);stroke-width:1.5}.wfb-canvas .react-flow__edge.selected .react-flow__edge-path,.wfb-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:#7c48f4}.wfb-canvas .react-flow__arrowhead *{fill:hsl(var(--muted-foreground) / .55)}.wfb-minimap{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden}.wfb-inspector{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.wfb-inspector-head{display:flex;align-items:center;justify-content:space-between}.wfb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.wfb-icon-btn:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive))}.wfb-inspector-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid hsl(var(--border))}.wfb-meta-key{font-size:12px;color:hsl(var(--muted-foreground))}.wfb-meta-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;padding:2px 7px;border-radius:6px;background:hsl(var(--muted));color:hsl(var(--foreground))}.wfb-inspector-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.wfb-empty-icon{width:32px;height:32px;opacity:.4;margin-bottom:4px}.wfb-inspector-empty p{margin:0}.wfb-empty-sub{font-size:12px;color:hsl(var(--muted-foreground) / .8)}@media (max-width: 900px){.wfb-grid{grid-template-columns:220px minmax(0,1fr)}.wfb-inspector{display:none}}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--destructive: 0 72% 51%;--border: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--canvas: 240 5% 97.3%;--panel: 0 0% 100%;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:hsl(var(--canvas));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased}.icon{width:16px;height:16px;flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .18) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:hsl(var(--foreground) / .18);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:hsl(var(--foreground) / .32);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}.layout{display:flex;height:100vh}.sidebar{width:264px;flex-shrink:0;display:flex;flex-direction:column;background:transparent;position:relative}.sidebar-top{display:flex;flex-direction:column;gap:2px;padding:14px 10px 8px}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;letter-spacing:-.01em;padding:4px 10px 12px}.brand-logo{width:20px;height:20px;flex-shrink:0}.new-chat{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer;transition:background .12s}.new-chat .icon{width:18px;height:18px}.new-chat:hover{background:hsl(var(--foreground) / .05)}.agent-row{display:flex;align-items:center;gap:9px;margin:2px 0 6px;padding:9px 10px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.agent-row:hover{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .2)}.agent-row--empty{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.agent-row--empty .agent-row-lead{color:hsl(var(--destructive))}.agent-row--empty:hover{background:hsl(var(--destructive) / .06);border-color:hsl(var(--destructive) / .7)}.agent-row-lead{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agent-row-name{flex:1;min-width:0;text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-row-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));transition:transform .15s;flex-shrink:0}.agent-row-chev.open{transform:rotate(90deg)}.agentsel{position:absolute;left:100%;top:8px;z-index:32;height:auto;max-height:calc(100vh - 16px);display:flex;flex-direction:row;align-items:stretch;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px hsl(var(--foreground) / .16);margin-left:6px;overflow:hidden;animation:agentsel-in .16s ease-out}.agentsel-main{width:320px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.agentsel-detail{width:300px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;border-left:1px solid hsl(var(--border));background:hsl(var(--canvas) / .4)}.agentsel-detail-body{flex:1;min-height:0;overflow-y:auto;padding:12px 14px}.agentsel-detail-id{font-size:11.5px;color:hsl(var(--muted-foreground));word-break:break-all;margin-bottom:12px}.agentsel-kv{margin:0;display:flex;flex-direction:column;gap:8px}.agentsel-kv-row{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12.5px}.agentsel-kv-row dt{color:hsl(var(--muted-foreground))}.agentsel-kv-row dd{margin:0;color:hsl(var(--foreground));word-break:break-word}.agentsel-envs{margin-top:14px}.agentsel-envs-head{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:6px}.agentsel-env{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.agentsel-env-k{font-size:11px;color:hsl(var(--muted-foreground))}.agentsel-env-v{font-size:11.5px;color:hsl(var(--foreground));word-break:break-all}.agentsel-head-actions{display:flex;align-items:center;gap:2px}.agentsel-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 10px 4px}.agentsel-pager button{display:flex;border:none;background:none;padding:2px;cursor:pointer;color:hsl(var(--muted-foreground))}.agentsel-pager button:hover:not(:disabled){color:hsl(var(--foreground))}.agentsel-pager button:disabled{opacity:.3;cursor:default}.agentsel-pager button .icon{width:18px;height:18px}.agentsel-pager-label{font-size:13px;color:hsl(var(--muted-foreground));min-width:40px;text-align:center}@keyframes agentsel-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.agentsel-head{display:flex;align-items:center;justify-content:space-between;height:52px;flex-shrink:0;box-sizing:border-box;padding:0 14px;border-bottom:1px solid hsl(var(--border))}.agentsel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.agentsel-title .icon{width:17px;height:17px}.agentsel-refresh{display:flex;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));padding:4px;border-radius:6px}.agentsel-refresh:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.agentsel-refresh .icon{width:16px;height:16px}.agentsel-body{flex:1;min-height:0;overflow-y:auto;padding:10px}.agentsel-tools{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.agentsel-search{display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:8px;padding:7px 10px}.agentsel-search .icon{width:15px;height:15px;color:hsl(var(--muted-foreground))}.agentsel-search input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:13px;color:hsl(var(--foreground))}.agentsel-mine{display:flex;align-items:center;gap:7px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.agentsel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.agentsel-listwrap{position:relative;min-height:220px}.agentsel-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px}.agentsel-loading .icon{width:16px;height:16px}.agentsel-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-item:hover{background:hsl(var(--foreground) / .05)}.agentsel-item.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-item .icon{width:16px;height:16px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-rt{display:flex;flex-direction:column}.agentsel-rt-row{width:100%;display:flex;align-items:center;gap:7px;padding:9px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.agentsel-rt-row:hover{background:hsl(var(--foreground) / .05)}.agentsel-rt-row .icon{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-rt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agentsel-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:#007bff1f;color:#0b68cb}.agentsel-status{flex-shrink:0;font-size:11px;padding:1px 7px;border-radius:999px}.agentsel-status.is-ok{background:#21c45d24;color:#238b49}.agentsel-status.is-warn{background:#f59f0a29;color:#b86614}.agentsel-status.is-bad{background:#dc282824;color:#ca2b2b}.agentsel-status.is-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.agentsel-apps{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 20px}.agentsel-app{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;border-radius:7px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;text-align:left}.agentsel-app:hover{background:hsl(var(--foreground) / .05)}.agentsel-app.active{background:hsl(var(--foreground) / .08);font-weight:600}.agentsel-app .icon{width:14px;height:14px;color:hsl(var(--muted-foreground));flex-shrink:0}.agentsel-apps-note{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.agentsel-apps-note .icon{width:14px;height:14px}.agentsel-apps-note--muted{font-style:italic}.agentsel-empty{padding:24px 10px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.agentsel-error{margin:4px 0 10px;padding:8px 10px;border-radius:8px;font-size:12.5px;background:#dc282814;color:#bd2828}.agentsel-more{width:100%;margin-top:8px;padding:9px;border:1px dashed hsl(var(--border));border-radius:8px;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:13px;cursor:pointer}.agentsel-more:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.sidebar-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-head{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 6px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.history-refresh{background:none;border:none;cursor:pointer;padding:2px;color:hsl(var(--muted-foreground));display:flex}.history-refresh:hover{color:hsl(var(--foreground))}.history-list{flex:1;overflow-y:auto;padding:4px 10px 12px;display:flex;flex-direction:column;gap:2px}.history-empty{padding:16px 8px;font-size:13px;color:hsl(var(--muted-foreground));text-align:center}.history-item{position:relative;display:flex;align-items:center;border-radius:8px;transition:background .12s}.history-item:hover{background:hsl(var(--foreground) / .05)}.history-item.active{background:hsl(var(--foreground) / .08)}.history-item-btn{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;padding:9px 10px;border:none;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;cursor:pointer}.history-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-streaming{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:history-pulse 1.4s ease-in-out infinite}@keyframes history-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 4px #22c55e00}}.history-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-right:4px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.history-item:hover .history-more{opacity:1}.history-more:hover{background:hsl(var(--border));color:hsl(var(--foreground))}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.history-menu{position:absolute;top:100%;right:4px;z-index:31;min-width:120px;margin-top:2px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;cursor:pointer;color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-item--danger{color:hsl(var(--destructive))}.menu-item .icon{width:15px;height:15px}.main{flex:1;min-width:0;display:flex;flex-direction:column;margin:10px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:12px;overflow:hidden}.error{margin:10px auto 0;max-width:768px;width:calc(100% - 32px);padding:10px 12px;border-radius:var(--radius);background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:13px}.transcript{flex:1;overflow-y:auto;padding:28px 16px 8px}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px 6vh;gap:22px}.welcome-title{margin:0;font-size:26px;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}.welcome .composer{padding:0}.turn{max-width:768px;margin:0 auto 22px;display:flex;flex-direction:column;gap:8px}.turn:last-child{margin-bottom:0}.turn--user{align-items:flex-end}.turn--assistant{align-items:flex-start}.bubble{line-height:1.65;font-size:14px}.turn--user .bubble{max-width:85%;padding:10px 16px;border-radius:18px;background:hsl(var(--secondary))}.turn--assistant .bubble{max-width:100%}.md{font-size:14px;line-height:1.65}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1.1em 0 .5em;font-weight:650;line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.4em}.md h2{font-size:1.25em}.md h3{font-size:1.1em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin:.15em 0}.md a{color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px}.md a:hover{opacity:.8}.md blockquote{margin:0 0 .7em;padding:.1em .9em;border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.md hr{border:none;border-top:1px solid hsl(var(--border));margin:1em 0}.md strong{font-weight:650}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;background:hsl(var(--muted));padding:.12em .35em;border-radius:5px}.md pre{margin:0 0 .7em;padding:12px 14px;background:hsl(var(--muted));border-radius:8px;overflow-x:auto;line-height:1.55}.md pre code{background:none;padding:0;border-radius:0;font-size:12.5px}.md table{width:100%;margin:0 0 .7em;border-collapse:collapse;font-size:.95em}.md th,.md td{border:1px solid hsl(var(--border));padding:6px 10px;text-align:left}.md th{background:hsl(var(--muted));font-weight:600}.md img{max-width:100%;border-radius:8px}.turn--user .md code,.turn--user .md pre{background:hsl(var(--background) / .55)}.block-thinking,.block-tool{width:100%}.think-head,.tool-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:none;background:none;color:hsl(var(--muted-foreground));font:inherit;font-size:14px;cursor:pointer}.spark{color:hsl(var(--muted-foreground))}.spark.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}.chev{width:14px;height:14px;transition:transform .25s ease;opacity:.7}.chev.open{transform:rotate(90deg)}.think-label.shimmer{background:linear-gradient(90deg,hsl(var(--muted-foreground)) 35%,hsl(var(--foreground)),hsl(var(--muted-foreground)) 65%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 2.2s linear infinite}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.think-label--done{color:hsl(var(--muted-foreground))}.tool-head{color:hsl(var(--muted-foreground));transition:color .12s}.tool-head:hover{color:hsl(var(--foreground))}.tool-name{font-weight:400;color:inherit}.tool-dot{width:6px;height:6px;flex-shrink:0;border-radius:999px;background:hsl(var(--muted-foreground))}.tool-dot--running{animation:pulse 1.4s ease-in-out infinite}.tool-dot--done{background:#10b981}.tool-detail{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;padding-left:14px}.tool-section-label{margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}.tool-result{max-height:240px;overflow:auto}.think-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.think-collapse.open{grid-template-rows:1fr}.think-collapse-inner{overflow:hidden}.think-body{margin:8px 0 4px;padding:10px 14px;border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-args{margin:0;padding:8px 10px;background:hsl(var(--muted));border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}.turn-meta{display:flex;align-items:center;gap:10px;margin-top:2px;font-size:12px;color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}.turn-empty{margin-top:2px;font-size:13px;font-style:italic;color:hsl(var(--muted-foreground))}.auth-card{width:100%;max-width:640px;margin:2px 0;padding:18px 20px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card))}.auth-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.auth-card-icon{width:18px;height:18px;color:#f59f0a}.auth-card-icon--done{color:#1eae53}.auth-card-collapsed{display:inline-flex;align-items:center;gap:7px;margin:2px 0;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.auth-card-code{padding:1px 6px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--foreground));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.auth-card-title{font-size:14px;font-weight:600}.auth-card-desc{margin:0 0 14px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.auth-card-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:none;border-radius:9px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.auth-card-btn:hover:not(:disabled){opacity:.88}.auth-card-btn:disabled{opacity:.55;cursor:default}.auth-card-btn .cw-i{width:15px;height:15px}.auth-card-done{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1eae53}.auth-card-done .cw-i{width:16px;height:16px}.auth-card-err{margin-top:8px;font-size:12px;color:hsl(var(--destructive))}.turn-actions{display:inline-flex;align-items:center;gap:2px}.turn-actions--right{align-self:flex-end;margin-top:2px;opacity:0;transition:opacity .15s}.turn--assistant:hover .turn-meta,.turn--user:hover .turn-actions--right{opacity:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:none;color:hsl(var(--muted-foreground))}.icon-btn .icon{width:15px;height:15px}.meta-text{white-space:nowrap;font-size:12px;color:hsl(var(--muted-foreground))}.turn-actions--right{gap:6px}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:hsl(var(--foreground) / .2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .2s ease;z-index:40}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:hsl(var(--background));border-left:1px solid hsl(var(--border));box-shadow:-12px 0 40px hsl(var(--foreground) / .14);display:flex;flex-direction:column;z-index:41;animation:slidein .24s cubic-bezier(.22,1,.36,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--canvas))}.drawer-title{font-weight:650;font-size:15px;letter-spacing:-.01em}.drawer-sub{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px;font-variant-numeric:tabular-nums}.drawer-close{display:flex;padding:6px;border:none;background:none;cursor:pointer;color:hsl(var(--muted-foreground));border-radius:6px}.drawer-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-loading,.drawer-empty{display:flex;align-items:center;gap:8px;color:hsl(var(--muted-foreground));font-size:14px;padding:20px 0}.drawer--trace{width:min(1080px,96vw)}.trace-split{flex:1;min-height:0;display:flex}.trace-tree{flex:1.25;min-width:0;overflow:auto;padding:8px 6px;border-right:1px solid hsl(var(--border))}.trace-row{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border:none;background:none;border-radius:6px;cursor:pointer;font:inherit;text-align:left;transition:background .1s}.trace-row:hover{background:hsl(var(--foreground) / .04)}.trace-row.active{background:hsl(var(--primary) / .07);box-shadow:inset 2px 0 hsl(var(--primary) / .55)}.trace-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.trace-caret{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:hsl(var(--muted-foreground))}.trace-caret.hidden{visibility:hidden}.trace-caret .chev{width:13px;height:13px;transition:transform .18s}.trace-caret.open .chev{transform:rotate(90deg)}.trace-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trace-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trace-dur{flex-shrink:0;width:66px;text-align:right;font-size:11px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.trace-track{position:relative;flex:0 0 34%;height:16px;border-radius:5px;background:hsl(var(--foreground) / .05)}.trace-bar{position:absolute;top:4px;height:8px;min-width:3px;border-radius:4px;opacity:.9}.trace-detail{flex:1;min-width:0;overflow:auto;padding:18px 20px}.td-title{font-size:15px;font-weight:600;letter-spacing:-.01em;word-break:break-all}.td-dur{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}.td-dot{width:8px;height:8px;border-radius:50%}.td-section{margin:22px 0 9px;font-size:12px;font-weight:650;letter-spacing:.01em;color:hsl(var(--foreground))}.td-props{display:flex;flex-direction:column}.td-prop{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid hsl(var(--border));font-size:13px}.td-key{flex-shrink:0;color:hsl(var(--muted-foreground));min-width:140px}.td-val{flex:1;min-width:0;text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}.td-pre{margin:0;padding:11px 13px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.composer{max-width:768px;width:100%;margin:0 auto;padding:6px 16px 18px}.composer-box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 8px;border:1px solid hsl(var(--border));border-radius:26px;background:hsl(var(--background))}.comp-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px;line-height:1.5;padding:8px 4px;max-height:200px;overflow-y:auto}.comp-input::placeholder{color:hsl(var(--muted-foreground))}.comp-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:none;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.comp-icon:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.comp-send{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.comp-send:hover:not(:disabled){opacity:.85}.comp-send:active:not(:disabled){transform:scale(.94)}.comp-send:disabled{opacity:.3;cursor:default}.composer-menu-wrap{position:relative;flex-shrink:0}.composer-menu{position:absolute;bottom:100%;left:0;z-index:31;min-width:168px;margin-bottom:6px;padding:4px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 6px 20px hsl(var(--foreground) / .12)}.attachment-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 8px}.attachment-thumb-wrap{position:relative}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid hsl(var(--border));display:block}.attachment-file{position:relative;display:flex;align-items:center;gap:6px;max-width:200px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px}.attachment-file .icon{width:16px;height:16px;flex-shrink:0}.attachment-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer}.attachment-remove:hover{color:hsl(var(--foreground))}.attachment-remove .icon{width:11px;height:11px}.msg-attachments{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:6px}.msg-attachments .attachment-thumb{width:120px;height:120px}.a2ui-surface{max-width:360px;width:100%;font-size:14px}.a2ui-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:8px;padding:18px;box-shadow:0 1px 2px hsl(var(--foreground) / .04),0 8px 24px -16px hsl(var(--foreground) / .18)}.a2ui-column,.a2ui-row{gap:10px}.a2ui-text{margin:0;line-height:1.5;color:hsl(var(--foreground))}.a2ui-text--h1{font-size:19px;font-weight:650;letter-spacing:0}.a2ui-text--h2{font-size:16px;font-weight:650;letter-spacing:0}.a2ui-text--h3{font-size:14px;font-weight:600}.a2ui-text--h4{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:0}.a2ui-text--caption{font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-text--body{font-size:14px}.a2ui-icon{display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:hsl(var(--muted-foreground))}.a2ui-divider--h{height:1px;background:hsl(var(--border));margin:4px 0;width:100%}.a2ui-divider--v{width:1px;background:hsl(var(--border));align-self:stretch}.a2ui-button{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;transition:background .15s,opacity .15s}.a2ui-button:hover{background:hsl(var(--accent))}.a2ui-button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.a2ui-button--primary:hover{background:hsl(var(--primary));opacity:.88}.a2ui-button--borderless{background:transparent;color:hsl(var(--foreground))}.a2ui-button--borderless:hover{background:hsl(var(--accent))}.a2ui-surface[data-a2ui-surface^=flight-]{max-width:520px}.a2ui-surface[data-a2ui-surface^=flight-] .a2ui-card{padding:0;overflow:hidden;background:linear-gradient(180deg,#f6fbfe,hsl(var(--card)) 42%),hsl(var(--card));border-color:#d7e0ea;box-shadow:0 1px 2px hsl(var(--foreground) / .05),0 18px 48px -28px #283d5359}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{gap:16px;padding:18px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-top]{gap:12px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand]{min-width:0}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-brand-icon]{width:28px;height:28px;border-radius:999px;background:#006fe61a;color:#004fa3}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-title]{font-size:13px;color:#41454e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip]{flex-shrink:0;gap:6px;padding:5px 9px;border-radius:999px;background:#e3f8ed;border:1px solid hsl(151 48% 82%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-chip] .a2ui-icon,.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-status-text]{color:#126e41}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero]{position:relative;gap:16px;padding:18px;border-radius:8px;background:hsl(var(--background) / .88);border:1px solid hsl(210 32% 90%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination]{flex:1 1 0;min-width:0;gap:2px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px;line-height:1;font-weight:760;color:#191d24}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-label],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-label]{font-size:11px;font-weight:700;color:#717784}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-city],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-city]{font-size:13px;color:#545964}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{flex:0 0 auto;gap:3px;padding:0 4px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-icon]{width:34px;height:34px;border-radius:999px;background:#006fe61f;color:#0054ad}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-duration],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-aircraft]{font-size:11px;white-space:nowrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-time],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{flex:1 1 0;min-width:0;gap:2px;padding:11px 12px;border-radius:8px;background:#f3f4f6;border:1px solid hsl(220 13% 91%)}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-value]{font-size:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-departure-airport],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-arrival-airport]{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate-value],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding-value]{font-size:20px;line-height:1.15}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-footer]{gap:10px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-divider]{margin:0;background:#d9e0e8}@media (max-width: 520px){.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-content]{padding:14px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-hero],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-times],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-details]{flex-wrap:wrap}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-route-mark]{order:3;width:100%}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-terminal],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-gate],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-boarding]{min-width:120px}.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-origin-code],.a2ui-surface[data-a2ui-surface^=flight-] [data-a2ui-id=flight-destination-code]{font-size:34px}}.a2ui-fallback{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px;font-size:12px;color:hsl(var(--muted-foreground))}.a2ui-fallback pre{overflow-x:auto;margin:6px 0 0}.boot{height:100vh;background:hsl(var(--background))}.navbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.navbar-title{padding:5px 8px;font-size:16px;font-weight:650;letter-spacing:-.01em;color:hsl(var(--foreground))}.agent-dd{position:relative}.agent-dd-trigger{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:8px;background:none;color:hsl(var(--foreground));font:inherit;font-size:16px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.agent-dd-trigger:hover{background:hsl(var(--foreground) / .05)}.agent-dd-current{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-chev{width:16px;height:16px;opacity:.6;transition:transform .2s ease}.agent-dd-chev.open{transform:rotate(180deg)}.agent-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:31;min-width:240px;max-width:360px;max-height:70vh;padding:6px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:ddpop .14s ease}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.agent-dd-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.agent-dd-row{position:relative}.agent-dd-item{width:100%}.agent-dd-item:hover{background:hsl(var(--foreground) / .05)}.agent-dd-item.active{background:hsl(var(--foreground) / .04)}.agent-dd-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-dd-item-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#21c45d;box-shadow:0 0 0 3px #21c45d2e}.agent-dd-flyout{position:absolute;left:248px;z-index:32;width:280px;padding:12px 14px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.agent-dd-flyout:before{content:"";position:absolute;top:0;bottom:0;left:-12px;width:14px}.agent-dd-fly-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--muted-foreground))}.agent-dd-fly-name{font-size:14px;font-weight:650;letter-spacing:-.01em}.agent-dd-fly-desc{margin-top:3px;font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.agent-dd-fly-field{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:hsl(var(--foreground))}.agent-dd-fly-field .icon{width:14px;height:14px;flex-shrink:0;color:hsl(var(--muted-foreground))}.agent-dd-fly-field--tools{align-items:flex-start}.agent-dd-fly-field--tools .icon{margin-top:3px}.agent-dd-fly-label{color:hsl(var(--muted-foreground))}.agent-dd-fly-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.agent-dd-fly-chips{display:flex;flex-wrap:wrap;gap:5px}.agent-dd-chip{padding:2px 8px;border-radius:999px;background:hsl(var(--foreground) / .06);font-size:11.5px;white-space:nowrap}.account{position:relative}.account-avatar{width:32px;height:32px;flex-shrink:0;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.account-avatar:hover{opacity:.88}.account-avatar--lg{width:40px;height:40px;font-size:16px;cursor:default}.account-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:31;min-width:220px;padding:12px;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 8px 28px hsl(var(--foreground) / .14);animation:ddpop .12s ease}.account-head{display:flex;align-items:center;gap:10px}.account-id{min-width:0}.account-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-sub{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-logout{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 10px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.account-logout:hover{background:hsl(var(--foreground) / .05)}.account-logout .icon{width:16px;height:16px;color:hsl(var(--muted-foreground))}.sidebar-user{position:relative;flex-shrink:0;margin-top:auto;padding:8px 10px 12px}.sidebar-user-btn{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border:none;border-radius:10px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.sidebar-user-btn:hover{background:hsl(var(--foreground) / .05)}.sidebar-user-name{min-width:0;flex:1;text-align:left;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-pop{position:absolute;bottom:calc(100% - 4px);top:auto;left:10px;right:10px}.skill-frame{flex:1;width:100%;border:none;background:hsl(var(--panel))}.addagent{flex:1;min-height:0;overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.addagent-card{width:100%;max-width:480px}.addagent-title{margin:0 0 6px;font-size:20px;font-weight:650;letter-spacing:-.01em}.addagent-sub{margin:0 0 22px;font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground))}.addagent-field{display:block;margin-bottom:14px}.addagent-label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:500;color:hsl(var(--muted-foreground))}.addagent-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;background:hsl(var(--background));color:hsl(var(--foreground))}.addagent-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.addagent-error{margin:4px 0 14px;padding:9px 12px;border-radius:10px;background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));font-size:12.5px;line-height:1.5}.addagent-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.addagent-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s}.addagent-btn--ghost{background:none;border-color:hsl(var(--border));color:hsl(var(--foreground))}.addagent-btn--ghost:hover{background:hsl(var(--foreground) / .05)}.addagent-btn--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.addagent-btn--primary:hover:not(:disabled){opacity:.88}.addagent-btn:disabled{opacity:.4;cursor:default}.addagent-btn .icon{width:15px;height:15px}.search{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;padding:28px 16px 16px}.search-box{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--background))}.search-box .icon{color:hsl(var(--muted-foreground))}.search-input{flex:1;border:none;outline:none;background:transparent;color:hsl(var(--foreground));font:inherit;font-size:15px}.search-input::placeholder{color:hsl(var(--muted-foreground))}.search-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s,transform .1s}.search-go:hover:not(:disabled){opacity:.85}.search-go:active:not(:disabled){transform:scale(.94)}.search-go:disabled{opacity:.3;cursor:default}.search-go .icon{width:17px;height:17px}.search-sources{display:flex;gap:6px;margin:14px 0 4px}.search-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:none;color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}.search-tab:hover:not(:disabled){background:hsl(var(--foreground) / .04)}.search-tab.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.search-tab.active:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.search-tab:disabled{cursor:default;opacity:.7}.search-soon{font-size:10px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground) / .06);color:hsl(var(--muted-foreground))}.search-results{flex:1;min-height:0;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}.search-empty{padding:40px 8px;text-align:center;font-size:13px;color:hsl(var(--muted-foreground))}.search-result{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:none;color:hsl(var(--foreground));font:inherit;cursor:pointer;transition:background .12s}.search-result:hover{background:hsl(var(--foreground) / .05)}a.search-result{text-decoration:none;color:inherit}.search-result-ext{width:12px;height:12px;margin-left:4px;vertical-align:-1px;opacity:.6}.search-result-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:hsl(var(--muted-foreground))}.search-result-body{min-width:0;flex:1}.search-result-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}.search-result-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{flex-shrink:0;font-size:11.5px;color:hsl(var(--muted-foreground))}.search-result-snippet{margin-top:3px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login{position:fixed;top:10px;right:10px;bottom:10px;left:10px;border:1px solid hsl(var(--border));border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--panel));color:hsl(var(--foreground))}.login-top{padding:18px 24px}.login-brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px}.login-card{width:100%;max-width:420px}.login-title{margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}.login-sub{margin:0 0 28px;color:hsl(var(--muted-foreground));font-size:15px}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 18px;border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.login-btn:hover{background:hsl(var(--accent));border-color:hsl(var(--ring) / .3)}.login-btn:active{transform:scale(.99)}.login-btn .icon{width:18px;height:18px}.login-legal{margin:18px 0 0;font-size:12px;color:hsl(var(--muted-foreground))}.login-footer{padding:18px 24px;text-align:center;font-size:12px;color:hsl(var(--muted-foreground))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.login-providers{display:flex;flex-direction:column;gap:10px}.login-name{display:flex;align-items:center;gap:8px}.login-name-input{flex:1;border:1px solid hsl(var(--border));border-radius:14px;padding:13px 16px;font:inherit;font-size:15px;background:hsl(var(--background));color:hsl(var(--foreground))}.login-name-input:focus{outline:none;border-color:hsl(var(--ring) / .4)}.login-name-go{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;transition:opacity .15s}.login-name-go .icon{width:18px;height:18px}.login-name-go:disabled{opacity:.35;cursor:default}.login-hint{margin:8px 0 0;min-height:16px;line-height:16px;font-size:12px;color:hsl(var(--destructive))}.session-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .6);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.main{position:relative}.topo{position:absolute;top:68px;right:18px;width:220px;max-height:calc(100% - 150px);overflow-y:auto;padding:12px;background:hsl(var(--canvas));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 4px 16px #0000000a;z-index:2}.topo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.topo-head-title{font-size:12px;font-weight:650;letter-spacing:.02em}.topo-head-sub{font-size:11px;color:hsl(var(--muted-foreground))}.topo-tree{display:flex;flex-direction:column;gap:4px}.topo-children{display:flex;flex-direction:column;gap:4px;margin-top:4px;margin-left:10px;padding-left:8px;border-left:1px solid hsl(var(--border))}.topo-node{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));font-size:12px;transition:border-color .15s ease,background .15s ease,opacity .15s ease}.topo-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.topo-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.topo-badge{flex-shrink:0;font-size:10px;padding:1px 5px;border-radius:5px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.topo-node.is-active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08);animation:topo-pulse 1.4s ease-in-out infinite}.topo-node.is-active .topo-icon{opacity:1}.topo-node.is-onpath{border-color:hsl(var(--primary) / .4);background:hsl(var(--primary) / .04)}.topo-node.is-done{opacity:.55}.topo-remote{margin:3px 0 2px 22px;font-size:10.5px;color:hsl(var(--primary));animation:topo-blink 1.2s ease-in-out infinite}@keyframes topo-blink{0%,to{opacity:1}50%{opacity:.45}}.topo-path{display:flex;flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:9px;padding:6px 8px;border-radius:7px;background:hsl(var(--primary) / .05);font-size:11px;line-height:1.4}.topo-path-seg{display:inline-flex;align-items:center;min-width:0}.topo-path-sep{width:12px;height:12px;flex-shrink:0;color:hsl(var(--muted-foreground))}.topo-path-name{color:hsl(var(--muted-foreground))}.topo-path-name.is-current{color:hsl(var(--primary));font-weight:600}@keyframes topo-pulse{0%,to{box-shadow:0 0 hsl(var(--primary) / .28)}50%{box-shadow:0 0 0 4px hsl(var(--primary) / 0)}}@media (max-width: 1200px){.topo{display:none}}.quick-create{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px 6vh}.qc-head{text-align:center;margin-bottom:28px}.qc-title{margin:0;font-size:26px;font-weight:650;letter-spacing:-.02em}.qc-sub{margin:8px 0 0;font-size:14px;color:hsl(var(--muted-foreground))}.qc-cards{display:grid;grid-template-columns:repeat(4,220px);justify-content:center;gap:16px}@media (max-width: 1240px){.qc-cards{grid-template-columns:repeat(2,220px)}}@media (max-width: 560px){.qc-cards{grid-template-columns:minmax(0,320px)}}.qc-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;text-align:left;border:1px solid hsl(var(--border));border-radius:16px;background:hsl(var(--card));cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s}.qc-card:hover{border-color:hsl(var(--ring) / .35);box-shadow:0 8px 24px -16px hsl(var(--foreground) / .25)}.qc-card-arrow{position:absolute;top:18px;right:18px;width:18px;height:18px;color:hsl(var(--muted-foreground));opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s}.qc-card:hover .qc-card-arrow{opacity:1;transform:translate(0)}.qc-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:6px;border-radius:12px;background:hsl(var(--secondary));color:hsl(var(--foreground))}.qc-icon svg{width:20px;height:20px}.qc-card-title{font-size:15px;font-weight:600}.qc-card-desc{font-size:12px;line-height:1.5;color:hsl(var(--muted-foreground))}.navbar-title{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:0 4px}.create-stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:hsl(var(--muted-foreground))}.create-back{align-self:flex-start;margin:12px;border:none;background:none;font:inherit;font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer}.create-back:hover{color:hsl(var(--foreground))}.navbar-crumbs{display:flex;align-items:center;gap:4px;min-width:0}.crumb{font-size:15px;font-weight:600;letter-spacing:-.01em;padding:2px 4px;border-radius:6px;white-space:nowrap}.crumb-link{border:none;background:none;font:inherit;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s,color .12s}.crumb-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05)}.crumb-current{color:hsl(var(--foreground))}.crumb-sep{width:15px;height:15px;color:hsl(var(--muted-foreground));flex-shrink:0}.confirm-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-box{width:340px;max-width:calc(100vw - 32px);padding:20px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 16px 48px -16px hsl(var(--foreground) / .3)}.confirm-title{font-size:15px;font-weight:600;margin-bottom:6px}.confirm-text{font-size:13px;line-height:1.6;color:hsl(var(--muted-foreground));margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{padding:7px 14px;border:1px solid hsl(var(--border));border-radius:8px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13px;cursor:pointer;transition:background .12s}.confirm-btn:hover{background:hsl(var(--foreground) / .05)}.confirm-btn--danger{border-color:transparent;background:hsl(var(--destructive));color:#fff}.confirm-btn--danger:hover{background:hsl(var(--destructive) / .9)} diff --git a/veadk/webui/index.html b/veadk/webui/index.html index 766f7c6a..cd781e97 100644 --- a/veadk/webui/index.html +++ b/veadk/webui/index.html @@ -4,8 +4,8 @@ VeADK Web - - + +
From 088204ca4b282cda73a4716dbf7f29c04c855d2b Mon Sep 17 00:00:00 2001 From: zhengchuyi Date: Fri, 17 Jul 2026 15:04:42 +0800 Subject: [PATCH 4/5] style: apply ruff formatting --- tests/test_feishu_channel_extension.py | 5 ++++- veadk/cli/cli_frontend.py | 9 +++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_feishu_channel_extension.py b/tests/test_feishu_channel_extension.py index 3444d884..7329b13f 100644 --- a/tests/test_feishu_channel_extension.py +++ b/tests/test_feishu_channel_extension.py @@ -337,7 +337,10 @@ def build_and_connect(): ) return extension.channel.connect() - assert await asyncio.to_thread(_call_in_fresh_event_loop, build_and_connect) == "connected" + assert ( + await asyncio.to_thread(_call_in_fresh_event_loop, build_and_connect) + == "connected" + ) channel = FakeLoopBoundChannel.created[0] assert channel.kwargs == { diff --git a/veadk/cli/cli_frontend.py b/veadk/cli/cli_frontend.py index f077a96f..92498d32 100644 --- a/veadk/cli/cli_frontend.py +++ b/veadk/cli/cli_frontend.py @@ -837,9 +837,7 @@ async def _deploy_to_agentkit(request: Request): project_name = config.get("projectName", "default") im_config = data.get("im") if isinstance(data.get("im"), dict) else {} feishu_config = ( - im_config.get("feishu") - if isinstance(im_config.get("feishu"), dict) - else {} + im_config.get("feishu") if isinstance(im_config.get("feishu"), dict) else {} ) feishu_enabled = bool(feishu_config.get("enabled")) requested_envs = data.get("envs") if isinstance(data.get("envs"), list) else [] @@ -957,9 +955,8 @@ def _result_error_text(result) -> str: def _is_tos_request_expired(error_text: str) -> bool: lower = (error_text or "").lower() - return ( - "request has expired" in lower - and ("accessdenied" in lower or "access denied" in lower) + return "request has expired" in lower and ( + "accessdenied" in lower or "access denied" in lower ) def _friendly_error(error_text: str) -> str: From 8578a56fbfae56e84fd3b2b767cf929ff269c992 Mon Sep 17 00:00:00 2001 From: zhengchuyi Date: Fri, 17 Jul 2026 15:37:16 +0800 Subject: [PATCH 5/5] style: format feishu channel merge --- veadk/extensions/feishu_channel.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/veadk/extensions/feishu_channel.py b/veadk/extensions/feishu_channel.py index eb8cc02a..dd459799 100644 --- a/veadk/extensions/feishu_channel.py +++ b/veadk/extensions/feishu_channel.py @@ -57,6 +57,8 @@ def _call_in_fresh_event_loop(method: Callable[[], Any]) -> Any: finally: asyncio.set_event_loop(None) loop.close() + + def _stringify_card_elements(elements: Any) -> str: if elements is None: return ""