diff --git a/frontend/src/create/CustomCreate.css b/frontend/src/create/CustomCreate.css index 595124b4..04af966b 100644 --- a/frontend/src/create/CustomCreate.css +++ b/frontend/src/create/CustomCreate.css @@ -1482,6 +1482,85 @@ } } +/* ---------- multi-source skill tabs ---------- */ +.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 0.15s, color 0.15s, border-color 0.15s; +} +.cw-skill-pickertab:hover { + border-color: hsl(var(--foreground) / 0.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) / 0.12); + margin-left: 4px; + line-height: 1.4; +} +.cw-pill .cw-i { + opacity: 0.85; +} + +/* local picker */ +.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; +} + +/* skillspace picker */ +.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; +} + /* ---------- responsive ---------- */ @media (max-width: 860px) { /* Drop the rail; the form is the single source of navigation by scrolling. */ diff --git a/frontend/src/create/CustomCreate.tsx b/frontend/src/create/CustomCreate.tsx index fa2e24aa..cd89eada 100644 --- a/frontend/src/create/CustomCreate.tsx +++ b/frontend/src/create/CustomCreate.tsx @@ -3,15 +3,17 @@ import { AnimatePresence, motion } from "motion/react"; import { ArrowLeft, Bot, - Globe, Boxes, Check, + Cloud, Cpu, Database, Eye, FileDown, FileUp, + FolderUp, GitBranch, + Globe, Info, LayoutGrid, Layers, @@ -19,7 +21,6 @@ import { Plus, Repeat, Rocket, - Search, Shapes, Sparkles, Split, @@ -44,8 +45,13 @@ import { } from "./veadkCatalog"; import { generateProject } from "./codegen"; import { draftToYaml, yamlToDraft } from "./configYaml"; -import { searchSkills, downloadSkillFiles, type SkillHit } from "./skills"; import type { AgentProject } from "./project"; +import type { SkillSource } from "./skills/types"; +import { downloadSkillHubSkill } from "./skills/skillhub"; +import { downloadSkillSpaceSkill } from "./skills/skillspace"; +import { SkillHubPicker } from "./SkillHubPicker"; +import { LocalPicker } from "./LocalPicker"; +import { SkillSpacePicker } from "./SkillSpacePicker"; import { ProjectPreview } from "../ui/ProjectPreview"; import { deployAgentkitProject } from "../adk/client"; import type { DeployStage } from "../adk/client"; @@ -382,190 +388,125 @@ function McpToolEditor({ } /* ---------------------------------------------------------------- * - * Skill Hub search + select. Searches the skill hub (skills.ts) and - * lets the user toggle results into draft.selectedSkills (de-duped by - * slug). Selected skills show as removable rows above the results. + * Multi-source skill picker: tab bar switching between Skill Hub + * (public marketplace), local folder/.zip upload, and account-scoped + * AgentKit SkillSpaces. Selected skills from all sources share one + * pill list rendered above the tabs. * ---------------------------------------------------------------- */ -function SkillHubPicker({ +function SkillPill({ + s, + onRemove, +}: { + s: SelectedSkill; + onRemove: () => void; +}) { + let Icon = Sparkles; + let label = "Skill Hub"; + if (s.source === "local") { + Icon = FolderUp; + label = "本地"; + } else if (s.source === "skillspace") { + Icon = Cloud; + label = "SkillSpace"; + } + return ( + + + {s.name} + {label} + + + ); +} + +const SKILL_SOURCES: { + id: SkillSource; + label: string; + icon: typeof Globe; +}[] = [ + { id: "skillhub", label: "Skill Hub", icon: Globe }, + { id: "local", label: "本地文件", icon: FolderUp }, + { id: "skillspace", label: "SkillSpace", icon: Cloud }, +]; + +function SkillsSourceTabs({ selected, onChange, }: { selected: SelectedSkill[]; onChange: (next: SelectedSkill[]) => void; }) { - const [query, setQuery] = useState(""); - const [results, setResults] = useState([]); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(null); - const [searched, setSearched] = useState(false); - - const isSelected = (slug: string) => selected.some((s) => s.slug === slug); - - const toggle = (hit: SkillHit) => { - if (isSelected(hit.slug)) { - onChange(selected.filter((s) => s.slug !== hit.slug)); - } else { - onChange([ - ...selected, - { slug: hit.slug, name: hit.name, namespace: hit.namespace }, - ]); - } - }; - - const removeSelected = (slug: string) => - onChange(selected.filter((s) => s.slug !== slug)); - - const runSearch = async (q: string) => { - setLoading(true); - setError(null); - setSearched(true); - try { - const hits = await searchSkills(q); - setResults(hits); - } catch (e) { - setError(e instanceof Error ? e.message : "搜索失败,请稍后重试。"); - setResults([]); - } finally { - setLoading(false); - } - }; - - // Debounce typing ~300ms; also searches on Enter / button via runSearch. - useEffect(() => { - const q = query.trim(); - if (!q) { - setResults([]); - setSearched(false); - setError(null); - return; - } - const t = setTimeout(() => runSearch(q), 300); - return () => clearTimeout(t); - }, [query]); + const [active, setActive] = useState("skillhub"); + const remove = (key: string) => + onChange(selected.filter((s) => skillKey(s) !== key)); return ( -
-
-
- - setQuery(e.target.value)} - onKeyDown={(e) => { - if (e.key === "Enter") { - e.preventDefault(); - if (query.trim()) runSearch(query); - } - }} - /> -
- -
- +
{selected.length > 0 && (
已选技能
{selected.map((s) => ( - - - {s.name} - - + remove(skillKey(s))} /> ))}
)} - {error && ( -
- - {error} -
- )} +
+ {SKILL_SOURCES.map(({ id, label, icon: Icon }) => ( + + ))} +
- {loading && results.length === 0 ? ( -

正在搜索…

- ) : results.length > 0 ? ( -
- {results.map((hit) => { - const on = isSelected(hit.slug); - return ( - - ); - })} -
- ) : searched && !error ? ( -

没有找到匹配的技能,换个关键词试试。

- ) : ( - !searched && ( -

- 输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。 -

- ) - )} +
+ {active === "skillhub" && ( + + )} + {active === "local" && ( + + )} + {active === "skillspace" && ( + + )} +
); } +function skillKey(s: SelectedSkill): string { + if (s.source === "skillhub") return `hub:${s.namespace}/${s.slug}`; + if (s.source === "local") return `local:${s.folder}`; + return `ss:${s.skillSpaceId}/${s.skillId}/${s.version || ""}`; +} + /* ---------------------------------------------------------------- * * Toggle switch row. * ---------------------------------------------------------------- */ @@ -1065,13 +1006,18 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut const proj = generateProject(draft); - // Collect Skill Hub selections across EVERY agent in the tree (dedup by - // namespace/slug) — skills can now be chosen on any LLM node, not just root. + // Collect skill selections across EVERY agent in the tree (dedup by a + // source-aware key) — skills can be chosen on any LLM node, not just root. const allSkills: SelectedSkill[] = []; const seenSkill = new Set(); const collectSkills = (n: AgentDraft) => { for (const s of n.selectedSkills ?? []) { - const key = `${s.namespace}/${s.slug}`; + const key = + s.source === "skillhub" + ? `hub:${s.namespace}/${s.slug}` + : s.source === "local" + ? `local:${s.folder}` + : `ss:${s.skillSpaceId}/${s.skillId}/${s.version || ""}`; if (!seenSkill.has(key)) { seenSkill.add(key); allSkills.push(s); @@ -1081,18 +1027,30 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut }; collectSkills(draft); - // Download their files in parallel. Per-skill failures are skipped so one - // bad skill can't abort the build. + // Materialize files per source in parallel. Per-skill failures are skipped + // (logged) so one bad skill can't abort the build. Local skills already + // carry their files; hub + skillspace skills are fetched here. if (allSkills.length > 0) { setBuilding(true); try { const results = await Promise.all( - allSkills.map((s) => - downloadSkillFiles(s.slug, s.namespace).catch((err) => { + allSkills.map((s) => { + const p = + s.source === "local" + ? Promise.resolve(s.localFiles ?? []) + : s.source === "skillspace" + ? downloadSkillSpaceSkill( + s.skillSpaceId!, + s.skillId!, + s.version, + s.folder, + ) + : downloadSkillHubSkill(s); + return p.catch((err: unknown) => { console.warn(`下载技能失败:${s.name}`, err); return []; - }), - ), + }); + }), ); const existing = new Set(proj.files.map((f) => f.path)); for (const files of results) { @@ -1436,10 +1394,9 @@ export function CustomCreate({ onBack, onCreate, onAgentAdded, initialDraft, aut

- 从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 - skills/ 目录。 + 从 Skill Hub、本地文件或 AgentKit SkillSpace 添加技能,生成项目时会写入 skills/ 目录。

- patch({ selectedSkills: next })} /> diff --git a/frontend/src/create/LocalPicker.tsx b/frontend/src/create/LocalPicker.tsx new file mode 100644 index 00000000..2962d23b --- /dev/null +++ b/frontend/src/create/LocalPicker.tsx @@ -0,0 +1,224 @@ +// Local skill picker: user uploads a folder (via ) or a +// .zip file from their computer. Each skill directory must contain a SKILL.md +// with name/description frontmatter. Files are materialized client-side and +// embedded directly in SelectedSkill.localFiles so they survive YAML +// round-trip and project generation without any network round-trip. + +import { useEffect, useRef, useState } from "react"; +import { Check, FolderUp, Info, Plus } from "lucide-react"; +import { readFolderSkills, readZipSkills, type LocalReadResult } from "./skills/local"; +import type { SelectedSkill, SkillHit } from "./skills/types"; + +export function LocalPicker({ + selected, + onChange, +}: { + selected: SelectedSkill[]; + onChange: (next: SelectedSkill[]) => void; +}) { + const folderRef = useRef(null); + const zipRef = useRef(null); + const [errors, setErrors] = useState([]); + const [foundHits, setFoundHits] = useState([]); + const [busy, setBusy] = useState(false); + + // Match by folder name (frontmatter `name`), the de-dup key for local uploads. + const isSelectedByFolder = (folder: string) => + selected.some((s) => s.source === "local" && s.folder === folder); + + const toggleHit = (hit: SkillHit) => { + if (!hit.localFiles) return; + if (isSelectedByFolder(hit.folder || hit.name)) { + onChange( + selected.filter( + (s) => !(s.source === "local" && s.folder === (hit.folder || hit.name)), + ), + ); + } else { + onChange([ + ...selected, + { + source: "local", + folder: hit.folder || hit.name, + name: hit.name, + description: hit.description, + localFiles: hit.localFiles, + }, + ]); + } + }; + + // Use refs so the async change handlers always see the latest state when + // they run (useState closures would otherwise capture stale state across + // multiple uploads in a row). + const foundHitsRef = useRef([]); + const selectedRef = useRef(selected); + useEffect(() => { + foundHitsRef.current = foundHits; + }, [foundHits]); + useEffect(() => { + selectedRef.current = selected; + }, [selected]); + + const showResult = (res: LocalReadResult) => { + // Merge new hits into the displayed list (append, don't replace) so + // repeated uploads accumulate. De-dupe by folder name (frontmatter + // `name`) across both the displayed list and already-selected skills. + const existing = new Set([ + ...foundHitsRef.current.map((h) => h.folder || h.name), + ...selectedRef.current + .filter((s) => s.source === "local") + .map((s) => s.folder), + ]); + const duplicateNames: string[] = []; + const fresh: SkillHit[] = []; + for (const hit of res.hits) { + const key = hit.folder || hit.name; + if (existing.has(key)) { + duplicateNames.push(hit.name); + continue; + } + existing.add(key); + fresh.push(hit); + } + setFoundHits((prev) => [...prev, ...fresh]); + + // Surface duplicates as a banner line (combined with any parse errors). + const allErrors = [...res.errors]; + if (duplicateNames.length > 0) { + allErrors.push(`已跳过重复技能:${duplicateNames.join("、")}`); + } + setErrors(allErrors); + + // Auto-add single-hit uploads for convenience (but not duplicates). + if (fresh.length === 1 && res.errors.length === 0 && duplicateNames.length === 0) { + const hit = fresh[0]; + if (hit.localFiles) { + onChange([ + ...selectedRef.current, + { + source: "local", + folder: hit.folder || hit.name, + name: hit.name, + description: hit.description, + localFiles: hit.localFiles, + }, + ]); + } + } + }; + + const onFolderChange = async (e: React.ChangeEvent) => { + const files = e.target.files; + if (!files || files.length === 0) return; + setBusy(true); + try { + showResult(await readFolderSkills(files)); + } finally { + setBusy(false); + // reset so selecting the same folder again fires change + if (folderRef.current) folderRef.current.value = ""; + } + }; + + const onZipChange = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; + setBusy(true); + try { + showResult(await readZipSkills(file)); + } finally { + setBusy(false); + if (zipRef.current) zipRef.current.value = ""; + } + }; + + return ( +
+
+ + + + +
+ +

+ 每个技能需包含 SKILL.md(含 name / description frontmatter)。支持选择包含多个技能文件夹的目录。 +

+ + {busy &&

正在读取文件…

} + + {errors.length > 0 && ( +
+ + {errors.join(";")} +
+ )} + + {foundHits.length > 0 && ( +
+ {foundHits.map((hit) => { + const on = isSelectedByFolder(hit.folder || hit.name); + return ( + + ); + })} +
+ )} +
+ ); +} diff --git a/frontend/src/create/SkillHubPicker.tsx b/frontend/src/create/SkillHubPicker.tsx new file mode 100644 index 00000000..5d12b91d --- /dev/null +++ b/frontend/src/create/SkillHubPicker.tsx @@ -0,0 +1,159 @@ +// Skill Hub (public findskill.com / skills.volces.com marketplace) picker. +// Extracted from the original inline SkillHubPicker in CustomCreate.tsx so the +// new multi-source SkillsSourceTabs can swap between sources without growing +// that file further. + +import { useEffect, useState } from "react"; +import { Check, Info, Loader2, Plus, Search } from "lucide-react"; +import { searchSkills } from "./skills/skillhub"; +import type { SelectedSkill, SkillHit } from "./skills/types"; + +export function SkillHubPicker({ + selected, + onChange, +}: { + selected: SelectedSkill[]; + onChange: (next: SelectedSkill[]) => void; +}) { + const [query, setQuery] = useState(""); + const [results, setResults] = useState([]); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [searched, setSearched] = useState(false); + + const isSelected = (slug: string) => + selected.some((s) => s.source === "skillhub" && s.slug === slug); + + const toggle = (hit: SkillHit) => { + if (!hit.slug) return; + if (isSelected(hit.slug)) { + onChange(selected.filter((s) => !(s.source === "skillhub" && s.slug === hit.slug))); + } else { + onChange([ + ...selected, + { + source: "skillhub", + slug: hit.slug, + name: hit.name, + folder: hit.slug.split("/").pop() || hit.name, + namespace: hit.namespace || "public", + description: hit.description, + }, + ]); + } + }; + + const runSearch = async (q: string) => { + setLoading(true); + setError(null); + setSearched(true); + try { + const hits = await searchSkills(q); + setResults(hits); + } catch (e) { + setError(e instanceof Error ? e.message : "搜索失败,请稍后重试。"); + setResults([]); + } finally { + setLoading(false); + } + }; + + // Debounce typing ~300ms; also searches on Enter / button via runSearch. + useEffect(() => { + const q = query.trim(); + if (!q) { + setResults([]); + setSearched(false); + setError(null); + return; + } + const t = setTimeout(() => runSearch(q), 300); + return () => clearTimeout(t); + }, [query]); + + return ( +
+
+
+ + setQuery(e.target.value)} + onKeyDown={(e) => { + if (e.key === "Enter") { + e.preventDefault(); + if (query.trim()) runSearch(query); + } + }} + /> +
+ +
+ + {error && ( +
+ + {error} +
+ )} + + {loading && results.length === 0 ? ( +

正在搜索…

+ ) : results.length > 0 ? ( +
+ {results.map((hit) => { + const on = isSelected(hit.slug || ""); + return ( + + ); + })} +
+ ) : searched && !error ? ( +

没有找到匹配的技能,换个关键词试试。

+ ) : ( + !searched && ( +

+ 输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。 +

+ ) + )} +
+ ); +} diff --git a/frontend/src/create/SkillSpacePicker.tsx b/frontend/src/create/SkillSpacePicker.tsx new file mode 100644 index 00000000..382a0eac --- /dev/null +++ b/frontend/src/create/SkillSpacePicker.tsx @@ -0,0 +1,199 @@ +// Volcengine AgentKit SkillSpace picker. Lists account-scoped SkillSpaces via +// the server-side /web/skill-spaces* routes (which sign with the SERVER's AK/SK +// so the browser never sees credentials), lists skills within a chosen space, +// and lets the user toggle them into the draft. SKILL.md content is fetched at +// project-generation time (downloadSkillSpaceSkill) so we don't bloat YAML +// exports with markdown. + +import { useEffect, useState } from "react"; +import { Check, Cloud, Info, Loader2, Plus } from "lucide-react"; +import { + listSkillSpaces, + listSkillsInSpace, + toHit, + type SkillSpaceRef, + type SkillSpaceSkill, +} from "./skills/skillspace"; +import type { SelectedSkill, SkillHit } from "./skills/types"; + +export function SkillSpacePicker({ + selected, + onChange, +}: { + selected: SelectedSkill[]; + onChange: (next: SelectedSkill[]) => void; +}) { + const [spaces, setSpaces] = useState([]); + const [skills, setSkills] = useState([]); + const [spaceId, setSpaceId] = useState(""); + const [loading, setLoading] = useState(true); + const [loadingSkills, setLoadingSkills] = useState(false); + const [error, setError] = useState(null); + + useEffect(() => { + let cancelled = false; + (async () => { + setLoading(true); + setError(null); + try { + const sp = await listSkillSpaces(); + if (!cancelled) { + setSpaces(sp); + if (sp.length > 0) setSpaceId(sp[0].id); + } + } catch (e) { + if (!cancelled) setError(e instanceof Error ? e.message : "加载失败"); + } finally { + if (!cancelled) setLoading(false); + } + })(); + return () => { + cancelled = true; + }; + }, []); + + useEffect(() => { + if (!spaceId) { + setSkills([]); + return; + } + let cancelled = false; + (async () => { + setLoadingSkills(true); + setError(null); + try { + const sk = await listSkillsInSpace(spaceId); + if (!cancelled) setSkills(sk); + } catch (e) { + if (!cancelled) setError(e instanceof Error ? e.message : "加载失败"); + } finally { + if (!cancelled) setLoadingSkills(false); + } + })(); + return () => { + cancelled = true; + }; + }, [spaceId]); + + const selectedSpace = spaces.find((s) => s.id === spaceId); + + const isSelected = (skillId: string, ver: string) => + selected.some( + (s) => + s.source === "skillspace" && s.skillId === skillId && (s.version || "") === ver, + ); + + const toggle = (skill: SkillSpaceSkill) => { + if (!selectedSpace) return; + if (isSelected(skill.skillId, skill.version)) { + onChange( + selected.filter( + (s) => + !( + s.source === "skillspace" && + s.skillId === skill.skillId && + (s.version || "") === skill.version + ), + ), + ); + } else { + const hit: SkillHit = toHit(selectedSpace, skill); + onChange([ + ...selected, + { + source: "skillspace", + folder: hit.folder || skill.skillName, + name: hit.name, + description: hit.description, + skillSpaceId: hit.skillSpaceId, + skillSpaceName: hit.skillSpaceName, + skillId: hit.skillId, + version: hit.version, + }, + ]); + } + }; + + return ( +
+ {loading ? ( +

+ 正在加载 SkillSpace 列表… +

+ ) : error ? ( +
+ + {error} +
+ ) : spaces.length === 0 ? ( +

此账号下没有 SkillSpace。

+ ) : ( + <> + + + {loadingSkills ? ( +

+ 正在加载技能列表… +

+ ) : skills.length === 0 ? ( +

此 SkillSpace 暂无技能。

+ ) : ( +
+ {skills.map((sk) => { + const on = isSelected(sk.skillId, sk.version); + return ( + + ); + })} +
+ )} + + )} +
+ ); +} diff --git a/frontend/src/create/codegen.ts b/frontend/src/create/codegen.ts index ef37105d..4a54c29b 100644 --- a/frontend/src/create/codegen.ts +++ b/frontend/src/create/codegen.ts @@ -3,7 +3,7 @@ // // Output files: agent.py, __init__.py, .env.example, requirements.txt, README.md. -import { emptyDraft, type AgentDraft, type CustomTool } from "./types"; +import { emptyDraft, type AgentDraft, type CustomTool, type SelectedSkill } from "./types"; import type { AgentProject, ProjectFile } from "./project"; import { MODEL_ENV, @@ -174,6 +174,31 @@ function buildAgent(acc: Acc, draft: AgentDraft, varName: string): string { toolExprs.push(emitToolStub(acc, name, "")); } + // Skills (from Skill Hub / local upload / AgentKit SkillSpace). Each + // selected skill is materialized to skills//SKILL.md (+ optional + // scripts/references) by the browser at finish() time. At runtime we load + // every skill directory via ADK's load_skill_from_dir and wrap them in a + // SkillToolset so the model can invoke them. This is added to tools=[...] + // on the Agent, same as a built-in tool. + const skillFolders = (draft.selectedSkills ?? []) + .map((s) => s.folder) + .filter((f): f is string => !!f && f.trim().length > 0); + if (skillFolders.length > 0) { + acc.imports.push("from pathlib import Path as _Path"); + acc.imports.push("from google.adk.skills import load_skill_from_dir"); + acc.imports.push("from google.adk.tools.skill_toolset import SkillToolset"); + const v = uniqueIdent(acc, `skills_${varName}`, "skill_toolset"); + // One skill per line for readability (especially with many skills). + const loaders = skillFolders.map( + (f) => + ` load_skill_from_dir(_Path(__file__).parent.parent.parent / "skills" / ${pyStr(f)})`, + ); + acc.preLines.push( + `${v} = SkillToolset(skills=[\n${loaders.join(",\n")},\n ])`, + ); + toolExprs.push(v); + } + // Every LLM agent (root or sub) gets the full component config. Preline // variable names are suffixed with `varName` so nested agents don't collide. const kwargs: string[] = [ @@ -628,13 +653,68 @@ export function normalizeDraft(raw: unknown): AgentDraft { tracingExporters: asStringArray(o.tracingExporters).filter((e) => EXPORTER_IDS.has(e)), enableA2ui: asBool(o.enableA2ui), subAgents, - selectedSkills: Array.isArray(o.selectedSkills) - ? (o.selectedSkills as unknown[]) - .map((s) => { - const so = (s && typeof s === "object" ? s : {}) as Record; - return { slug: asString(so.slug), name: asString(so.name) || asString(so.slug), namespace: asString(so.namespace) || "public" }; - }) - .filter((s) => !!s.slug) - : [], + selectedSkills: ((): SelectedSkill[] => { + if (!Array.isArray(o.selectedSkills)) return []; + const out: SelectedSkill[] = []; + for (const raw of o.selectedSkills as unknown[]) { + const so = (raw && typeof raw === "object" ? raw : {}) as Record; + const src = asString(so.source); + const source: SelectedSkill["source"] = + src === "local" || src === "skillspace" || src === "skillhub" + ? src + : "skillhub"; // backward compat: pre-multi-source YAMLs default to hub + const name = + asString(so.name) || + asString(so.slug) || + asString(so.skillName) || + asString(so.skillId) || + "skill"; + const folder = asString(so.folder) || name; + const description = asString(so.description); + if (source === "skillhub") { + const slug = asString(so.slug); + if (!slug) continue; + out.push({ + source, + folder, + name, + description, + slug, + namespace: asString(so.namespace) || "public", + }); + continue; + } + if (source === "local") { + const files = Array.isArray(so.localFiles) ? so.localFiles : []; + const localFiles = files + .map((f) => { + const fo = (f && typeof f === "object" ? f : {}) as Record; + const path = asString(fo.path); + const content = asString(fo.content); + if (!path) return null; + return { path, content }; + }) + .filter((x): x is { path: string; content: string } => x !== null); + if (localFiles.length === 0) continue; + out.push({ source, folder, name, description, localFiles }); + continue; + } + // skillspace + const skillSpaceId = asString(so.skillSpaceId); + const skillId = asString(so.skillId); + if (!skillSpaceId || !skillId) continue; + out.push({ + source, + folder, + name, + description, + skillSpaceId, + skillSpaceName: asString(so.skillSpaceName), + skillId, + version: asString(so.version), + }); + } + return out; + })(), }; } diff --git a/frontend/src/create/configYaml.ts b/frontend/src/create/configYaml.ts index 009aeadd..41a1474b 100644 --- a/frontend/src/create/configYaml.ts +++ b/frontend/src/create/configYaml.ts @@ -47,7 +47,22 @@ function toConfig(draft: AgentDraft): Record { } if (draft.enableA2ui) o.enableA2ui = true; if (draft.selectedSkills?.length) - o.selectedSkills = draft.selectedSkills.map((s) => ({ slug: s.slug, name: s.name, namespace: s.namespace })); + o.selectedSkills = draft.selectedSkills.map((s) => { + const base: Record = { source: s.source, name: s.name, folder: s.folder }; + if (s.description) base.description = s.description; + if (s.source === "skillhub") { + base.slug = s.slug; + base.namespace = s.namespace ?? "public"; + } else if (s.source === "local") { + base.localFiles = s.localFiles ?? []; + } else { + base.skillSpaceId = s.skillSpaceId; + base.skillSpaceName = s.skillSpaceName; + base.skillId = s.skillId; + if (s.version) base.version = s.version; + } + return base; + }); if (draft.subAgents?.length) o.subAgents = draft.subAgents.map((sa) => { const s: Record = { name: sa.name, description: sa.description, instruction: sa.instruction }; diff --git a/frontend/src/create/skills.ts b/frontend/src/create/skills.ts deleted file mode 100644 index 1625b144..00000000 --- a/frontend/src/create/skills.ts +++ /dev/null @@ -1,140 +0,0 @@ -// Volcengine Skill Hub client (the backend behind findskill.com). -// Endpoints (proxied via vite `/skillhub` to https://skills.volces.com to dodge -// the missing CORS headers): -// GET /v1/skills?query=&namespace=public -> { Skills: [...] } -// GET /v1/skills/download/?namespace= -> application/zip -// -// Skills are downloaded as a zip and unpacked client-side (store + deflate -// entries via the browser's DecompressionStream) into project files. - -import type { ProjectFile } from "./project"; - -const BASE = "/skillhub/v1/skills"; - -export interface SkillHit { - id: string; - slug: string; - name: string; - description: string; - namespace: string; - sourceRepo?: string; - downloadCount?: number; -} - -interface RawSkill { - Id?: string; - Slug?: string; - Name?: string; - Description?: string; - Namespace?: string; - SourceRepo?: string; - DownloadCount?: number; - Metadata?: { DisplayDescription?: string }; -} - -/** Search the skill hub. Returns [] on error. */ -export async function searchSkills(query: string, namespace = "public"): Promise { - const q = query.trim(); - const url = `${BASE}?query=${encodeURIComponent(q)}&namespace=${encodeURIComponent(namespace)}`; - const res = await fetch(url, { headers: { accept: "application/json" } }); - if (!res.ok) throw new Error(`搜索失败 (${res.status})`); - const data = (await res.json()) as { Skills?: RawSkill[] }; - return (data.Skills ?? []).map((s) => ({ - id: s.Id ?? "", - slug: s.Slug ?? "", - name: s.Name ?? s.Slug ?? "", - description: s.Metadata?.DisplayDescription || s.Description || "", - namespace: s.Namespace ?? namespace, - sourceRepo: s.SourceRepo, - downloadCount: s.DownloadCount, - })); -} - -/** Download one skill's zip and unpack it into ProjectFiles under - * `skills//...`. */ -export async function downloadSkillFiles( - slug: string, - namespace = "public", -): Promise { - const url = `${BASE}/download/${slug}?namespace=${encodeURIComponent(namespace)}`; - const res = await fetch(url); - if (!res.ok) throw new Error(`下载技能失败 (${res.status})`); - const buf = new Uint8Array(await res.arrayBuffer()); - const entries = await unzip(buf); - const folder = `skills/${slug.split("/").pop() || "skill"}`; - return entries - .filter((e) => !e.name.endsWith("/")) // skip directory entries - .map((e) => ({ path: `${folder}/${e.name}`, content: e.text })); -} - -/* ------------------------------------------------------------------ * - * Minimal ZIP reader: walks the central directory, supports store (0) - * and deflate (8) via the browser's DecompressionStream("deflate-raw"). - * ------------------------------------------------------------------ */ -interface ZipEntry { - name: string; - text: string; -} - -function u16(b: Uint8Array, o: number) { - return b[o] | (b[o + 1] << 8); -} -function u32(b: Uint8Array, o: number) { - return (b[o] | (b[o + 1] << 8) | (b[o + 2] << 16) | (b[o + 3] << 24)) >>> 0; -} - -async function inflateRaw(data: Uint8Array): Promise { - // DecompressionStream is available in modern browsers + Node 18+. - const ds = new DecompressionStream("deflate-raw"); - // Copy into a fresh ArrayBuffer-backed view so the Blob typing is happy. - const stream = new Blob([new Uint8Array(data)]).stream().pipeThrough(ds); - const out = new Uint8Array(await new Response(stream).arrayBuffer()); - return out; -} - -async function unzip(buf: Uint8Array): Promise { - // Find the End Of Central Directory record (signature 0x06054b50), scanning - // backwards (it's within the last 65557 bytes). - const EOCD = 0x06054b50; - let eocd = -1; - for (let i = buf.length - 22; i >= 0 && i > buf.length - 65557; i--) { - if (u32(buf, i) === EOCD) { - eocd = i; - break; - } - } - if (eocd < 0) throw new Error("无效的 zip:找不到 EOCD"); - - const count = u16(buf, eocd + 10); - let p = u32(buf, eocd + 16); // central directory offset - const dec = new TextDecoder("utf-8"); - const entries: ZipEntry[] = []; - - for (let i = 0; i < count; i++) { - if (u32(buf, p) !== 0x02014b50) break; // central dir header signature - const method = u16(buf, p + 10); - const compSize = u32(buf, p + 20); - const nameLen = u16(buf, p + 28); - const extraLen = u16(buf, p + 30); - const commentLen = u16(buf, p + 32); - const localOff = u32(buf, p + 42); - const name = dec.decode(buf.subarray(p + 46, p + 46 + nameLen)); - - // Local file header: 30 bytes fixed + name + extra, then file data. - const lNameLen = u16(buf, localOff + 26); - const lExtraLen = u16(buf, localOff + 28); - const dataStart = localOff + 30 + lNameLen + lExtraLen; - const raw = buf.subarray(dataStart, dataStart + compSize); - - let bytes: Uint8Array; - if (method === 0) bytes = raw; - else if (method === 8) bytes = await inflateRaw(raw); - else { - p += 46 + nameLen + extraLen + commentLen; - continue; // unsupported method — skip - } - entries.push({ name, text: dec.decode(bytes) }); - p += 46 + nameLen + extraLen + commentLen; - } - return entries; -} diff --git a/frontend/src/create/skills/index.ts b/frontend/src/create/skills/index.ts new file mode 100644 index 00000000..caa403e6 --- /dev/null +++ b/frontend/src/create/skills/index.ts @@ -0,0 +1,5 @@ +export * from "./types"; +export * from "./zip"; +export * from "./skillhub"; +export * from "./local"; +export * from "./skillspace"; diff --git a/frontend/src/create/skills/local.ts b/frontend/src/create/skills/local.ts new file mode 100644 index 00000000..1481403a --- /dev/null +++ b/frontend/src/create/skills/local.ts @@ -0,0 +1,248 @@ +// Local skill upload: read a browser folder (via ) or a +// .zip file into SkillHit entries. Each skill directory must contain a +// SKILL.md (case-insensitive) with valid frontmatter. Validation mirrors what +// ADK's skill loader requires (so skills actually load at runtime): +// - SKILL.md starts with a closed `--- ... ---` frontmatter block +// - `name`: required, <=64 chars, matches [a-z0-9-]+ (kebab-case) +// - `description`: required, <=1024 chars, no XML tags +// - quoted name/description values are accepted (quotes stripped) — real YAML +// parsers handle them fine, and the platform's line-based parser only +// applies to pushed skills, not locally-uploaded ones. +// +// Resulting ProjectFiles are rooted at `skills//...` so they +// merge cleanly with the existing Skill Hub download layout. Zip-slip paths +// are rejected. + +import type { ProjectFile } from "../project"; +import type { SkillHit } from "./types"; +import { unzip } from "./zip"; + +export interface LocalReadResult { + hits: SkillHit[]; + errors: string[]; +} + +interface RawEntry { + /** Path inside the upload, using '/' separators (zip style). */ + path: string; + text: string; +} + +const SKILL_MD_RE = /(^|\/)skill\.md$/i; + +/** Validation error: carries a human-readable message. */ +class SkillValidationError extends Error {} + +/** Parse a YAML "key: value" line the same way the agentkit validator does + * (simple line-based, no full YAML parser, rejects quoted name/description). + * Returns { name, description } on success, throws on any violation. */ +function parseAndValidateSkillMd(text: string, where: string): { + name: string; + description: string; +} { + const lines = (text ?? "").replace(/\r\n?/g, "\n").split("\n"); + if (!lines.length || lines[0].trim() !== "---") { + throw new SkillValidationError( + `${where} 的 SKILL.md 必须以 YAML frontmatter (--- ... ---) 开头`, + ); + } + let endIdx = -1; + for (let i = 1; i < lines.length; i++) { + if (lines[i].trim() === "---") { + endIdx = i; + break; + } + } + if (endIdx < 0) { + throw new SkillValidationError( + `${where} 的 SKILL.md frontmatter 未闭合(缺少结束 ---)`, + ); + } + const meta: Record = {}; + for (let i = 1; i < endIdx; i++) { + const s = lines[i].trim(); + if (!s || s.startsWith("#")) continue; + const colon = s.indexOf(":"); + if (colon < 0) continue; + const key = s.slice(0, colon).trim(); + let val = s.slice(colon + 1).trim(); + // Strip surrounding quotes (ADK's frontmatter parser accepts quoted YAML + // strings, so we normalize them rather than reject — user intent is clear). + if (isQuoted(val)) val = val.slice(1, -1); + meta[key] = val; + } + + const name = (meta.name || "").trim(); + const description = (meta.description || "").trim(); + validateName(name, where); + validateDescription(description, where); + return { name, description }; +} + +function isQuoted(v: string): boolean { + return v.length >= 2 && ((v.startsWith('"') && v.endsWith('"')) || (v.startsWith("'") && v.endsWith("'"))); +} + +function validateName(name: string, where: string) { + if (!name) { + throw new SkillValidationError(`${where} 的 SKILL.md 缺少必填的 name frontmatter`); + } + if (name.length > 64) { + throw new SkillValidationError(`${where} 的 name 长度超过 64 个字符`); + } + if (!/^[a-z0-9-]+$/.test(name)) { + throw new SkillValidationError( + `${where} 的 name 必须匹配 [a-z0-9-]+(小写字母、数字、短横线)`, + ); + } +} + +function validateDescription(desc: string, where: string) { + if (!desc) { + throw new SkillValidationError( + `${where} 的 SKILL.md 缺少必填的 description frontmatter`, + ); + } + if (desc.length > 1024) { + throw new SkillValidationError(`${where} 的 description 长度超过 1024 个字符`); + } + if (/<[^>]+>/.test(desc)) { + throw new SkillValidationError(`${where} 的 description 不能包含 XML 标签`); + } +} + +/** Normalize path separators and strip a single common wrapper folder if the + * upload has one (typical when someone zips a single folder named after the + * skill). Returns paths relative to the logical root. */ +function normalizeEntries(raw: RawEntry[]): RawEntry[] { + const cleaned = raw + .map((e) => ({ + path: e.path.replace(/\\/g, "/").replace(/^\.\//, ""), + text: e.text, + })) + .filter((e) => e.path.length > 0 && !e.path.endsWith("/")); + + const firstSegs = new Set(cleaned.map((p) => p.path.split("/")[0])); + if (firstSegs.size === 1 && cleaned.every((p) => p.path.includes("/"))) { + const prefix = [...firstSegs][0] + "/"; + return cleaned.map((p) => ({ path: p.path.slice(prefix.length), text: p.text })); + } + return cleaned; +} + +/** Group entries by their nearest enclosing skill directory (the folder + * containing a SKILL.md). The folder "" represents a root-level SKILL.md. */ +function groupBySkillFolder(entries: RawEntry[]): Map { + const groups = new Map(); + const skillFolders = new Set(); + for (const e of entries) { + if (SKILL_MD_RE.test("/" + e.path)) { + const parts = e.path.split("/"); + skillFolders.add(parts.slice(0, -1).join("/")); + } + } + + for (const e of entries) { + const parts = e.path.split("/"); + let assigned = ""; + for (let d = parts.length - 1; d >= 0; d--) { + const candidate = parts.slice(0, d).join("/"); + if (skillFolders.has(candidate)) { + assigned = candidate; + break; + } + } + const isSkillMdItself = SKILL_MD_RE.test("/" + e.path); + if (!assigned && !isSkillMdItself && !skillFolders.has("")) continue; + if (!skillFolders.has(assigned) && !isSkillMdItself) continue; + const relPath = assigned ? e.path.slice(assigned.length + 1) : e.path; + const arr = groups.get(assigned) || []; + arr.push({ path: relPath, text: e.text }); + groups.set(assigned, arr); + } + return groups; +} + +function materializeHit( + folderKey: string, + files: RawEntry[], + sourceLabel: string, +): { hit: SkillHit | null; error: string | null } { + const where = `${sourceLabel}${folderKey ? "/" + folderKey : ""}`; + const md = files.find((e) => SKILL_MD_RE.test("/" + e.path)); + if (!md) { + return { hit: null, error: `${where} 缺少 SKILL.md` }; + } + let fm: { name: string; description: string }; + try { + fm = parseAndValidateSkillMd(md.text, where); + } catch (e) { + return { + hit: null, + error: e instanceof Error ? e.message : String(e), + }; + } + const folder = fm.name; + const projectFiles: ProjectFile[] = []; + for (const e of files) { + // Zip-slip guard: reject paths containing '..' or that would escape + // skills// after normalization. + const parts = e.path.split("/"); + if (parts.some((p) => p === "..")) { + return { hit: null, error: `${where} 包含非法路径(..):${e.path}` }; + } + const target = `skills/${folder}/${e.path}`; + if (!target.startsWith(`skills/${folder}/`)) { + return { hit: null, error: `${where} 包含非法路径:${e.path}` }; + } + projectFiles.push({ path: target, content: e.text }); + } + return { + hit: { + source: "local", + id: `local:${folder}:${files.length}`, + name: fm.name, + description: fm.description, + folder, + localFiles: projectFiles, + }, + error: null, + }; +} + +/** Read a .zip File into zero or more SkillHits. */ +export async function readZipSkills(file: File): Promise { + const buf = new Uint8Array(await file.arrayBuffer()); + const zipEntries = await unzip(buf); + const raw: RawEntry[] = zipEntries.map((e) => ({ path: e.name, text: e.text })); + return collectHits(normalizeEntries(raw), file.name); +} + +/** Read a FileList produced by . */ +export async function readFolderSkills(fileList: FileList): Promise { + const raw: RawEntry[] = []; + for (let i = 0; i < fileList.length; i++) { + const f = fileList[i]; + const rel = + (f as File & { webkitRelativePath?: string }).webkitRelativePath || f.name; + // Decode bytes as UTF-8. Binary assets are out of v1 scope. + const text = await f.text(); + raw.push({ path: rel, text }); + } + return collectHits(normalizeEntries(raw), "文件夹"); +} + +function collectHits(entries: RawEntry[], sourceLabel: string): LocalReadResult { + const groups = groupBySkillFolder(entries); + const hits: SkillHit[] = []; + const errors: string[] = []; + for (const [folderKey, files] of groups) { + const { hit, error } = materializeHit(folderKey, files, sourceLabel); + if (error) errors.push(error); + if (hit) hits.push(hit); + } + if (hits.length === 0 && errors.length === 0) { + errors.push(`${sourceLabel} 中未发现 SKILL.md`); + } + return { hits, errors }; +} diff --git a/frontend/src/create/skills/skillhub.ts b/frontend/src/create/skills/skillhub.ts new file mode 100644 index 00000000..3fb0accb --- /dev/null +++ b/frontend/src/create/skills/skillhub.ts @@ -0,0 +1,64 @@ +// Volcengine Skill Hub client (the backend behind findskill.com / +// skills.volces.com). Endpoints are proxied via vite `/skillhub` to dodge the +// missing CORS headers: +// GET /v1/skills?query=&namespace=public -> { Skills: [...] } +// GET /v1/skills/download/?namespace= -> application/zip +// +// Skills are downloaded as a zip and unpacked client-side into project files. + +import type { ProjectFile } from "../project"; +import type { SkillHit, SelectedSkill } from "./types"; +import { unzip } from "./zip"; + +const BASE = "/skillhub/v1/skills"; + +interface RawSkill { + Id?: string; + Slug?: string; + Name?: string; + Description?: string; + Namespace?: string; + SourceRepo?: string; + DownloadCount?: number; + Metadata?: { DisplayDescription?: string }; +} + +/** Search the public Skill Hub. */ +export async function searchSkills( + query: string, + namespace = "public", +): Promise { + const q = query.trim(); + const url = `${BASE}?query=${encodeURIComponent(q)}&namespace=${encodeURIComponent(namespace)}`; + const res = await fetch(url, { headers: { accept: "application/json" } }); + if (!res.ok) throw new Error(`搜索失败 (${res.status})`); + const data = (await res.json()) as { Skills?: RawSkill[] }; + return (data.Skills ?? []).map((s) => ({ + source: "skillhub" as const, + id: s.Id ?? s.Slug ?? "", + slug: s.Slug ?? "", + name: s.Name ?? s.Slug ?? "", + description: s.Metadata?.DisplayDescription || s.Description || "", + namespace: s.Namespace ?? namespace, + sourceRepo: s.SourceRepo, + downloadCount: s.DownloadCount, + })); +} + +/** Download one Skill Hub skill's zip and unpack it into ProjectFiles under + * `skills//...` (folder defaults to last slug segment). */ +export async function downloadSkillHubSkill( + s: SelectedSkill, +): Promise { + const slug = s.slug || ""; + const namespace = s.namespace || "public"; + const url = `${BASE}/download/${slug}?namespace=${encodeURIComponent(namespace)}`; + const res = await fetch(url); + if (!res.ok) throw new Error(`下载技能失败 (${res.status})`); + const buf = new Uint8Array(await res.arrayBuffer()); + const entries = await unzip(buf); + const folder = s.folder || slug.split("/").pop() || "skill"; + return entries + .filter((e) => !e.name.endsWith("/")) // skip directory entries + .map((e) => ({ path: `skills/${folder}/${e.name}`, content: e.text })); +} diff --git a/frontend/src/create/skills/skillspace.ts b/frontend/src/create/skills/skillspace.ts new file mode 100644 index 00000000..3fb56888 --- /dev/null +++ b/frontend/src/create/skills/skillspace.ts @@ -0,0 +1,104 @@ +// AgentKit SkillSpace client. These hit the new /web/skill-spaces* backend +// routes, which sign requests server-side with the server's Volcengine AK/SK +// (the browser never sees credentials) and are gated by SSO when enabled. + +import type { ProjectFile } from "../project"; +import type { SkillHit } from "./types"; + +export interface SkillSpaceRef { + id: string; + name: string; + description: string; + status: string; +} +export interface SkillSpaceSkill { + skillId: string; + skillName: string; + skillDescription: string; + version: string; + skillStatus: string; +} +export interface SkillDetail { + skillId: string; + skillSpaceId: string; + name: string; + description: string; + version: string; + skillMd: string; + bucketName: string; + tosPath: string; +} + +async function jfetch(url: string): Promise { + const res = await fetch(url, { headers: { accept: "application/json" } }); + if (res.status === 409) { + throw new Error("服务端未配置 Volcengine AK/SK,无法访问 SkillSpace"); + } + if (res.status === 401) { + throw new Error("请先登录以访问 SkillSpace"); + } + if (res.status === 404) { + throw new Error("技能不存在或无 SKILL.md 内容"); + } + if (!res.ok) { + let detail = ""; + try { + const j = (await res.json()) as { detail?: string }; + detail = j.detail || ""; + } catch { + /* ignore */ + } + throw new Error(`请求失败 (${res.status})${detail ? ": " + detail : ""}`); + } + return res.json() as Promise; +} + +export async function listSkillSpaces(): Promise { + const data = await jfetch<{ items: SkillSpaceRef[] }>("/web/skill-spaces"); + return data.items || []; +} + +export async function listSkillsInSpace(spaceId: string): Promise { + const data = await jfetch<{ items: SkillSpaceSkill[] }>( + `/web/skill-spaces/${encodeURIComponent(spaceId)}/skills`, + ); + return data.items || []; +} + +export async function getSkillDetail( + spaceId: string, + skillId: string, + version?: string, +): Promise { + const q = version ? `?version=${encodeURIComponent(version)}` : ""; + return jfetch( + `/web/skill-spaces/${encodeURIComponent(spaceId)}/skills/${encodeURIComponent(skillId)}${q}`, + ); +} + +/** Convert a raw space skill listing into a selectable SkillHit. */ +export function toHit(space: SkillSpaceRef, s: SkillSpaceSkill): SkillHit { + return { + source: "skillspace", + id: `ss:${space.id}/${s.skillId}/${s.version}`, + name: s.skillName, + description: s.skillDescription, + folder: s.skillName, + skillSpaceId: space.id, + skillSpaceName: space.name, + skillId: s.skillId, + version: s.version, + }; +} + +/** Download a SkillSpace skill's SKILL.md into a ProjectFile. v1: only the + * SKILL.md (SkillMd); TOS zip (scripts/assets) is a follow-up. */ +export async function downloadSkillSpaceSkill( + spaceId: string, + skillId: string, + version: string | undefined, + folder: string, +): Promise { + const d = await getSkillDetail(spaceId, skillId, version); + return [{ path: `skills/${folder}/SKILL.md`, content: d.skillMd }]; +} diff --git a/frontend/src/create/skills/types.ts b/frontend/src/create/skills/types.ts new file mode 100644 index 00000000..f30a81d6 --- /dev/null +++ b/frontend/src/create/skills/types.ts @@ -0,0 +1,57 @@ +// Shared types for the multi-source skill picker (Skill Hub public marketplace, +// local folder/zip upload, and account-scoped Volcengine AgentKit SkillSpaces). + +import type { ProjectFile } from "../project"; + +/** Discriminator for where a selected skill came from. */ +export type SkillSource = "skillhub" | "local" | "skillspace"; + +/** A selectable hit from any source. Pickers produce these before the user + * toggles them into SelectedSkill. */ +export interface SkillHit { + source: SkillSource; + /** Stable id within that source for dedup + React keys. */ + id: string; + name: string; + description: string; + /** Folder name the skill should land in under skills/. Defaults from the + * source-specific id/slug/name if not set. */ + folder?: string; + // Skill Hub (findskill.com / skills.volces.com) fields + slug?: string; + namespace?: string; + sourceRepo?: string; + downloadCount?: number; + // Local upload fields: already-resolved ProjectFiles, prefixed skills// + localFiles?: ProjectFile[]; + // SkillSpace (AgentKit account-scoped) fields + skillSpaceId?: string; + skillSpaceName?: string; + skillId?: string; + version?: string; +} + +/** A skill the user has added to the draft. Saved in YAML and materialized + * into project files when finish() runs. */ +export interface SelectedSkill { + source: SkillSource; + /** Folder name used under skills/ in the generated project. */ + folder: string; + name: string; + description?: string; + // Skill Hub + slug?: string; + namespace?: string; + // Local: embedded file snapshot so the selection survives YAML round-trip / reload. + localFiles?: ProjectFile[]; + // SkillSpace: ids resolved to SKILL.md content at finish() time (SkillMd is + // fetched live rather than serialized, since it can be large). + skillSpaceId?: string; + skillSpaceName?: string; + skillId?: string; + version?: string; +} + +/** Source-specific downloader signature. Resolves to ProjectFiles to merge + * into the generated project under skills//. */ +export type SkillDownloader = (s: SelectedSkill) => Promise; diff --git a/frontend/src/create/skills/zip.ts b/frontend/src/create/skills/zip.ts new file mode 100644 index 00000000..fd14aac8 --- /dev/null +++ b/frontend/src/create/skills/zip.ts @@ -0,0 +1,72 @@ +// Minimal ZIP reader: walks the central directory, supports store (0) and +// deflate (8) via the browser's DecompressionStream("deflate-raw"). Extracted +// verbatim from the previous monolithic skills.ts so both the Skill Hub +// downloader and the local .zip uploader can share it. + +export interface ZipEntry { + name: string; + text: string; +} + +function u16(b: Uint8Array, o: number) { + return b[o] | (b[o + 1] << 8); +} +function u32(b: Uint8Array, o: number) { + return (b[o] | (b[o + 1] << 8) | (b[o + 2] << 16) | (b[o + 3] << 24)) >>> 0; +} + +async function inflateRaw(data: Uint8Array): Promise { + // DecompressionStream is available in modern browsers + Node 18+. + const ds = new DecompressionStream("deflate-raw"); + // Copy into a fresh ArrayBuffer-backed view so the Blob typing is happy. + const stream = new Blob([new Uint8Array(data)]).stream().pipeThrough(ds); + const out = new Uint8Array(await new Response(stream).arrayBuffer()); + return out; +} + +export async function unzip(buf: Uint8Array): Promise { + // Find the End Of Central Directory record (signature 0x06054b50), scanning + // backwards (it's within the last 65557 bytes). + const EOCD = 0x06054b50; + let eocd = -1; + for (let i = buf.length - 22; i >= 0 && i > buf.length - 65557; i--) { + if (u32(buf, i) === EOCD) { + eocd = i; + break; + } + } + if (eocd < 0) throw new Error("无效的 zip:找不到 EOCD"); + + const count = u16(buf, eocd + 10); + let p = u32(buf, eocd + 16); // central directory offset + const dec = new TextDecoder("utf-8"); + const entries: ZipEntry[] = []; + + for (let i = 0; i < count; i++) { + if (u32(buf, p) !== 0x02014b50) break; // central dir header signature + const method = u16(buf, p + 10); + const compSize = u32(buf, p + 20); + const nameLen = u16(buf, p + 28); + const extraLen = u16(buf, p + 30); + const commentLen = u16(buf, p + 32); + const localOff = u32(buf, p + 42); + const name = dec.decode(buf.subarray(p + 46, p + 46 + nameLen)); + + // Local file header: 30 bytes fixed + name + extra, then file data. + const lNameLen = u16(buf, localOff + 26); + const lExtraLen = u16(buf, localOff + 28); + const dataStart = localOff + 30 + lNameLen + lExtraLen; + const raw = buf.subarray(dataStart, dataStart + compSize); + + let bytes: Uint8Array; + if (method === 0) bytes = raw; + else if (method === 8) bytes = await inflateRaw(raw); + else { + p += 46 + nameLen + extraLen + commentLen; + continue; // unsupported method — skip + } + entries.push({ name, text: dec.decode(bytes) }); + p += 46 + nameLen + extraLen + commentLen; + } + return entries; +} diff --git a/frontend/src/create/types.ts b/frontend/src/create/types.ts index 9cb824b2..1fd0275b 100644 --- a/frontend/src/create/types.ts +++ b/frontend/src/create/types.ts @@ -27,13 +27,13 @@ export interface McpTool { args?: string[]; } -/** A skill selected from the Skill Hub (findskill.com); its files get bundled - * into the generated project under skills//. */ -export interface SelectedSkill { - slug: string; - name: string; - namespace: string; -} +// Import and re-export the multi-source SelectedSkill (and related types) from +// the skills module. Importing locally brings the names into scope so the +// AgentDraft interface below can reference SelectedSkill, while `export type` +// makes them available to external importers of "./types" unchanged. +import type { SelectedSkill, SkillHit, SkillSource } from "./skills/types"; +export type { SelectedSkill, SkillHit, SkillSource }; + /** A draft VeADK agent configuration produced by a creation flow. */ export interface AgentDraft { diff --git a/veadk/cli/cli_frontend.py b/veadk/cli/cli_frontend.py index 2493de0d..25d25e66 100644 --- a/veadk/cli/cli_frontend.py +++ b/veadk/cli/cli_frontend.py @@ -501,7 +501,11 @@ def _resolve_ve_credentials() -> tuple[str, str, str | None]: ak = os.getenv("VOLCENGINE_ACCESS_KEY") sk = os.getenv("VOLCENGINE_SECRET_KEY") if ak and sk: - return ak, sk, None + # STS / temporary credentials carry a session token; don't drop it. + token = os.getenv("VOLCENGINE_SESSION_TOKEN") or os.getenv( + "VOLC_SESSIONTOKEN" + ) + return ak, sk, token or None try: with open("/var/run/secrets/iam/credential", encoding="utf-8") as f: data = json.load(f) @@ -1456,6 +1460,142 @@ async def _web_runtime_config(): ) or os.path.exists("/var/run/secrets/iam/credential") return {"credentials": has_creds} + # ---- SkillSpace proxy (AgentKit account-scoped skills) ---------------- + # These routes sign requests with the SERVER's Volcengine credentials (same + # chain /web/deploy-agentkit uses) and sit under /web/* so the OAuth2 + # middleware gates them by SSO session when SSO is enabled. The browser + # never sees AK/SK. v1 only returns SKILL.md (SkillMd) content, not the + # full TOS zip; that keeps the surface small and mirrors how the public + # Skill Hub picker only needs markdown for basic skills. + + def _skills_client(region: str): + """Build an AgentkitSkillsClient using server-side creds, or raise + HTTPException(409) if creds aren't configured.""" + from agentkit.sdk.skills.client import AgentkitSkillsClient + + try: + ak, sk, token = _resolve_ve_credentials() + except HTTPException: + raise HTTPException( + status_code=409, + detail="Server Volcengine credentials not configured " + "(set VOLCENGINE_ACCESS_KEY/SECRET_KEY).", + ) + return AgentkitSkillsClient( + access_key=ak, + secret_key=sk, + region=region, + session_token=token or "", + ) + + @app.get("/web/skill-spaces") + async def _web_list_skill_spaces(region: str = "cn-beijing"): + """List SkillSpaces visible to the server's credentials. v1: single + page of up to 50 spaces (covers virtually all accounts).""" + from agentkit.sdk.skills.types import ListSkillSpacesRequest + + try: + client = _skills_client(region) + resp = client.list_skill_spaces( + ListSkillSpacesRequest(page_number=1, page_size=50) + ) + except HTTPException: + raise + except Exception as e: + logger.error(f"ListSkillSpaces error: {e}", exc_info=True) + raise HTTPException(status_code=502, detail=f"SkillSpaces API error: {e}") + + items = list(resp.items or []) + return { + "items": [ + { + "id": s.id or "", + "name": s.name or "", + "description": s.description or "", + "status": s.status or "", + } + for s in items + ], + "totalCount": resp.total_count or len(items), + } + + @app.get("/web/skill-spaces/{space_id}/skills") + async def _web_list_skills_in_space(space_id: str, region: str = "cn-beijing"): + """List skills in one SkillSpace (relation view: id/name/description/ + version/status per skill).""" + from agentkit.sdk.skills.types import ListSkillsBySkillSpaceRequest + + try: + client = _skills_client(region) + resp = client.list_skills_by_skill_space( + ListSkillsBySkillSpaceRequest( + skill_space_id=space_id, page_number=1, page_size=100 + ) + ) + except HTTPException: + raise + except Exception as e: + logger.error( + f"ListSkillsBySkillSpace({space_id}) error: {e}", exc_info=True + ) + raise HTTPException(status_code=502, detail=f"SkillSpaces API error: {e}") + + items = list(resp.items or []) + return { + "items": [ + { + "skillId": r.skill_id or "", + "skillName": r.skill_name or "", + "skillDescription": r.skill_description or "", + "version": r.version or "", + "skillStatus": r.skill_status or "", + } + for r in items + ], + "totalCount": resp.total_count or len(items), + } + + @app.get("/web/skill-spaces/{space_id}/skills/{skill_id}") + async def _web_get_skill_detail( + space_id: str, + skill_id: str, + version: str | None = None, + region: str = "cn-beijing", + ): + """Fetch a specific skill version's SKILL.md content (SkillMd) plus + metadata. v1 returns SkillMd only; the TOS zip (scripts/assets) is a + follow-up.""" + from agentkit.sdk.skills.types import GetSkillVersionRequest + + try: + client = _skills_client(region) + resp = client.get_skill_version( + GetSkillVersionRequest(id=skill_id, skill_version=version) + ) + except HTTPException: + raise + except Exception as e: + logger.error( + f"GetSkillVersion({skill_id}@{version}) error: {e}", exc_info=True + ) + raise HTTPException(status_code=502, detail=f"SkillSpaces API error: {e}") + + if not resp.skill_md: + raise HTTPException( + status_code=404, detail="Skill version has no SKILL.md content" + ) + + return { + "skillId": skill_id, + "skillSpaceId": space_id, + "name": resp.name or "", + "description": resp.description or "", + "version": resp.version or version or "", + "skillMd": resp.skill_md, + "bucketName": resp.bucket_name or "", + "tosPath": resp.tos_path or "", + } + if vite: logger.info( f"A2UI Vite mode: API on http://{host}:{port} (no bundled UI), " diff --git a/veadk/webui/assets/index-9sln4eMN.css b/veadk/webui/assets/index-9sln4eMN.css deleted file mode 100644 index 4a45bb1f..00000000 --- a/veadk/webui/assets/index-9sln4eMN.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)}}@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-CSD9mE1w.css b/veadk/webui/assets/index-CSD9mE1w.css new file mode 100644 index 00000000..0a0c38e8 --- /dev/null +++ b/veadk/webui/assets/index-CSD9mE1w.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-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-CgCoaQ73.js b/veadk/webui/assets/index-D58rpHH8.js similarity index 51% rename from veadk/webui/assets/index-CgCoaQ73.js rename to veadk/webui/assets/index-D58rpHH8.js index 4a199077..ba405338 100644 --- a/veadk/webui/assets/index-CgCoaQ73.js +++ b/veadk/webui/assets/index-D58rpHH8.js @@ -1,4 +1,4 @@ -(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 Nu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Vk={exports:{}},Nd={},Hk={exports:{}},Se={};/** +(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 * @@ -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 Al=Symbol.for("react.element"),kI=Symbol.for("react.portal"),EI=Symbol.for("react.fragment"),_I=Symbol.for("react.strict_mode"),SI=Symbol.for("react.profiler"),NI=Symbol.for("react.provider"),TI=Symbol.for("react.context"),AI=Symbol.for("react.forward_ref"),CI=Symbol.for("react.suspense"),MI=Symbol.for("react.memo"),II=Symbol.for("react.lazy"),cb=Symbol.iterator;function OI(e){return e===null||typeof e!="object"?null:(e=cb&&e[cb]||e["@@iterator"],typeof e=="function"?e:null)}var Kk={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qk=Object.assign,Wk={};function Co(e,t,n){this.props=e,this.context=t,this.refs=Wk,this.updater=n||Kk}Co.prototype.isReactComponent={};Co.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")};Co.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Gk(){}Gk.prototype=Co.prototype;function pg(e,t,n){this.props=e,this.context=t,this.refs=Wk,this.updater=n||Kk}var mg=pg.prototype=new Gk;mg.constructor=pg;qk(mg,Co.prototype);mg.isPureReactComponent=!0;var ub=Array.isArray,Yk=Object.prototype.hasOwnProperty,gg={current:null},Xk={key:!0,ref:!0,__self:!0,__source:!0};function Qk(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)Yk.call(t,r)&&!Xk.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,_))Gi(Y,q)?(R[U]=Y,R[G]=_,U=G):(R[U]=q,R[F]=_,U=F);else if(Gi(Y,_))R[U]=Y,R[G]=_,U=G;else break e}}return P}function i(R,P){var _=R.sortIndex-P.sortIndex;return _!==0?_: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,b=!1,x=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,w=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(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(b=!1,y(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,b&&(b=!1,m(N),N=-1),p=!0;var _=h;try{for(y(P),d=n(l);d!==null&&(!(d.expirationTime>P)||R&&!B());){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),y(P)}else r(l);d=n(l)}if(d!==null)var A=!0;else{var F=n(c);F!==null&&D(v,F.startTime-P),A=!1}return A}finally{d=null,h=_,p=!1}}var k=!1,C=null,N=-1,I=5,T=-1;function B(){return!(e.unstable_now()-TR||125U?(R.sortIndex=_,t(c,R),n(l)===null&&R===n(c)&&(b?(m(N),N=-1):b=!0,D(v,_-U))):(R.sortIndex=V,t(l,R),g||p||(g=!0,O(E))),R},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(R){var P=h;return function(){var _=h;h=P;try{return R.apply(this,arguments)}finally{h=_}}}})(rE);nE.exports=rE;var VI=nE.exports;/** + */(function(e){function t(R,P){var S=R.length;R.push(P);e:for(;0>>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 * @@ -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 HI=S,fn=VI;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"),wp=Object.prototype.hasOwnProperty,KI=/^[: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]*$/,fb={},hb={};function qI(e){return wp.call(hb,e)?!0:wp.call(fb,e)?!1:KI.test(e)?hb[e]=!0:(fb[e]=!0,!1)}function WI(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 GI(e,t,n,r){if(t===null||typeof t>"u"||WI(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 bg=/[\-:]([a-z])/g;function wg(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(bg,wg);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(bg,wg);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(bg,wg);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 xg(e,t,n,r){var i=Nt.hasOwnProperty(t)?Nt[t]:null;(i!==null?i.type!==0:r||!(2"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{$f=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?la(e):""}function YI(e){switch(e.tag){case 5:return la(e.type);case 16:return la("Lazy");case 13:return la("Suspense");case 19:return la("SuspenseList");case 0:case 2:case 15:return e=Ff(e.type,!1),e;case 11:return e=Ff(e.type.render,!1),e;case 1:return e=Ff(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 xp:return"Profiler";case vg:return"StrictMode";case vp:return"Suspense";case kp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case oE:return(e.displayName||"Context")+".Consumer";case sE: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 Eg: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 XI(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===vg?"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 lE(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function QI(e){var t=lE(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 cc(e){e._valueTracker||(e._valueTracker=QI(e))}function cE(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=lE(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Tu(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 _p(e,t){var n=t.checked;return Ze({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function mb(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 uE(e,t){t=t.checked,t!=null&&xg(e,"checked",t,!1)}function Sp(e,t){uE(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")?Np(e,t.type,n):t.hasOwnProperty("defaultValue")&&Np(e,t.type,oi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function gb(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 Np(e,t,n){(t!=="number"||Tu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ca=Array.isArray;function Gs(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=uc.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function za(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var wa={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},ZI=["Webkit","ms","Moz","O"];Object.keys(wa).forEach(function(e){ZI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),wa[t]=wa[e]})});function pE(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||wa.hasOwnProperty(e)&&wa[e]?(""+t).trim():t+"px"}function mE(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=pE(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var JI=Ze({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 Cp(e,t){if(t){if(JI[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 Mp(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 Ip=null;function _g(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Op=null,Ys=null,Xs=null;function wb(e){if(e=Il(e)){if(typeof Op!="function")throw Error(ee(280));var t=e.stateNode;t&&(t=Id(t),Op(e.stateNode,e.type,t))}}function gE(e){Ys?Xs?Xs.push(e):Xs=[e]:Ys=e}function yE(){if(Ys){var e=Ys,t=Xs;if(Xs=Ys=null,wb(e),t)for(e=0;e>>=0,e===0?32:31-(uO(e)/dO|0)|0}var dc=64,fc=4194304;function ua(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 Iu(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=ua(a):(s&=o,s!==0&&(r=ua(s)))}else o=n&~i,o!==0?r=ua(o):s!==0&&(r=ua(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 Cl(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 mO(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=va),Ab=" ",Cb=!1;function jE(e,t){switch(e){case"keyup":return VO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function BE(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var As=!1;function KO(e,t){switch(e){case"compositionend":return BE(t);case"keypress":return t.which!==32?null:(Cb=!0,Ab);case"textInput":return e=t.data,e===Ab&&Cb?null:e;default:return null}}function qO(e,t){if(As)return e==="compositionend"||!Og&&jE(e,t)?(e=PE(),tu=Cg=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=Rb(n)}}function UE(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?UE(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function VE(){for(var e=window,t=Tu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Tu(e.document)}return t}function Rg(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 tR(e){var t=VE(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&UE(n.ownerDocument.documentElement,n)){if(r!==null&&Rg(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=Lb(n,s);var o=Lb(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,Bp=null,Ea=null,$p=!1;function Pb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$p||Cs==null||Cs!==Tu(r)||(r=Cs,"selectionStart"in r&&Rg(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}),Ea&&Wa(Ea,r)||(Ea=r,r=Lu(Bp,"onSelect"),0Os||(e.current=Kp[Os],Kp[Os]=null,Os--)}function $e(e,t){Os++,Kp[Os]=e.current,e.current=t}var ai={},Pt=di(ai),Zt=di(!1),Vi=ai;function so(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 Du(){Ve(Zt),Ve(Pt)}function Ub(e,t,n){if(Pt.current!==ai)throw Error(ee(168));$e(Pt,t),$e(Zt,n)}function ZE(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,XI(e)||"Unknown",i));return Ze({},n,r)}function ju(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ai,Vi=Pt.current,$e(Pt,e),$e(Zt,Zt.current),!0}function Vb(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=ZE(e,t,Vi),r.__reactInternalMemoizedMergedChildContext=e,Ve(Zt),Ve(Pt),$e(Pt,e)):Ve(Zt),$e(Zt,n)}var yr=null,Od=!1,eh=!1;function JE(e){yr===null?yr=[e]:yr.push(e)}function hR(e){Od=!0,JE(e)}function fi(){if(!eh&&yr!==null){eh=!0;var e=0,t=Pe;try{var n=yr;for(Pe=1;e>=o,i-=o,br=1<<32-Un(t)+i|n<N?(I=C,C=null):I=C.sibling;var T=h(m,C,y[N],v);if(T===null){C===null&&(C=I);break}e&&C&&T.alternate===null&&t(m,C),w=s(T,w,N),k===null?E=T:k.sibling=T,k=T,C=I}if(N===y.length)return n(m,C),We&&xi(m,N),E;if(C===null){for(;NN?(I=C,C=null):I=C.sibling;var B=h(m,C,T.value,v);if(B===null){C===null&&(C=I);break}e&&C&&B.alternate===null&&t(m,C),w=s(B,w,N),k===null?E=B:k.sibling=B,k=B,C=I}if(T.done)return n(m,C),We&&xi(m,N),E;if(C===null){for(;!T.done;N++,T=y.next())T=d(m,T.value,v),T!==null&&(w=s(T,w,N),k===null?E=T:k.sibling=T,k=T);return We&&xi(m,N),E}for(C=r(m,C);!T.done;N++,T=y.next())T=p(C,m,N,T.value,v),T!==null&&(e&&T.alternate!==null&&C.delete(T.key===null?N:T.key),w=s(T,w,N),k===null?E=T:k.sibling=T,k=T);return e&&C.forEach(function(j){return t(m,j)}),We&&xi(m,N),E}function x(m,w,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 lc:e:{for(var E=y.key,k=w;k!==null;){if(k.key===E){if(E=y.type,E===Ts){if(k.tag===7){n(m,k.sibling),w=i(k,y.props.children),w.return=m,m=w;break e}}else if(k.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===$r&&qb(E)===k.type){n(m,k.sibling),w=i(k,y.props),w.ref=Yo(m,k,y),w.return=m,m=w;break e}n(m,k);break}else t(m,k);k=k.sibling}y.type===Ts?(w=Di(y.props.children,m.mode,v,y.key),w.return=m,m=w):(v=cu(y.type,y.key,y.props,null,m.mode,v),v.ref=Yo(m,w,y),v.return=m,m=v)}return o(m);case Ns:e:{for(k=y.key;w!==null;){if(w.key===k)if(w.tag===4&&w.stateNode.containerInfo===y.containerInfo&&w.stateNode.implementation===y.implementation){n(m,w.sibling),w=i(w,y.children||[]),w.return=m,m=w;break e}else{n(m,w);break}else t(m,w);w=w.sibling}w=lh(y,m.mode,v),w.return=m,m=w}return o(m);case $r:return k=y._init,x(m,w,k(y._payload),v)}if(ca(y))return g(m,w,y,v);if(Ho(y))return b(m,w,y,v);wc(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,w!==null&&w.tag===6?(n(m,w.sibling),w=i(w,y),w.return=m,m=w):(n(m,w),w=ah(y,m.mode,v),w.return=m,m=w),o(m)):n(m,w)}return x}var ao=r_(!0),i_=r_(!1),Fu=di(null),zu=null,Ps=null,jg=null;function Bg(){jg=Ps=zu=null}function $g(e){var t=Fu.current;Ve(Fu),e._currentValue=t}function Gp(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){zu=e,jg=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(jg!==e)if(e={context:e,memoizedValue:t,next:null},Ps===null){if(zu===null)throw Error(ee(308));Ps=e,zu.dependencies={lanes:0,firstContext:e}}else Ps=Ps.next=e;return t}var Ci=null;function Fg(e){Ci===null?Ci=[e]:Ci.push(e)}function s_(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Fg(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 zg(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function o_(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,Fg(r)):(t.next=i.next,i.next=t),r.interleaved=t,Ar(e,n)}function ru(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,Ng(e,n)}}function Wb(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 Uu(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,b=a;switch(h=t,p=n,b.tag){case 1:if(g=b.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=b.payload,h=typeof g=="function"?g.call(p,d,h):g,h==null)break e;d=Ze({},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);qi|=o,e.lanes=o,e.memoizedState=d}}function Gb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=nh.transition;nh.transition={};try{e(!1),t()}finally{Pe=n,nh.transition=r}}function E_(){return An().memoizedState}function yR(e,t,n){var r=ni(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},__(e))S_(t,n);else if(n=s_(e,t,n,r),n!==null){var i=Ht();Vn(n,e,r,i),N_(n,t,r)}}function bR(e,t,n){var r=ni(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(__(e))S_(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,Fg(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=s_(e,t,i,r),n!==null&&(i=Ht(),Vn(n,e,r,i),N_(n,t,r))}}function __(e){var t=e.alternate;return e===Qe||t!==null&&t===Qe}function S_(e,t){_a=Hu=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function N_(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ng(e,n)}}var Ku={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},wR={readContext:Tn,useCallback:function(e,t){return Zn().memoizedState=[e,t===void 0?null:t],e},useContext:Tn,useEffect:Xb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,su(4194308,4,b_.bind(null,t,e),n)},useLayoutEffect:function(e,t){return su(4194308,4,e,t)},useInsertionEffect:function(e,t){return su(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=yR.bind(null,Qe,e),[r.memoizedState,e]},useRef:function(e){var t=Zn();return e={current:e},t.memoizedState=e},useState:Yb,useDebugValue:Yg,useDeferredValue:function(e){return Zn().memoizedState=e},useTransition:function(){var e=Yb(!1),t=e[0];return e=gR.bind(null,e[1]),Zn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Qe,i=Zn();if(We){if(n===void 0)throw Error(ee(407));n=n()}else{if(n=t(),wt===null)throw Error(ee(349));Ki&30||u_(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Xb(f_.bind(null,r,s,e),[e]),r.flags|=2048,tl(9,d_.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Zn(),t=wt.identifierPrefix;if(We){var n=wr,r=br;n=(r&~(1<<32-Un(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ja++,0")&&(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[Xa]=r,D_(e,t,!1,!1),t.stateNode=e;e:{switch(o=Mp(n,r),n){case"dialog":Ue("cancel",e),Ue("close",e),i=r;break;case"iframe":case"object":case"embed":Ue("load",e),i=r;break;case"video":case"audio":for(i=0;iuo&&(t.flags|=128,r=!0,Xo(s,!1),t.lanes=4194304)}else{if(!r)if(e=Vu(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Xo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!We)return Mt(t),null}else 2*it()-s.renderingStartTime>uo&&n!==1073741824&&(t.flags|=128,r=!0,Xo(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=it(),t.sibling=null,n=Ye.current,$e(Ye,r?n&1|2:n&1),t):(Mt(t),null);case 22:case 23:return ty(),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 TR(e,t){switch(Pg(t),t.tag){case 1:return Jt(t.type)&&Du(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return lo(),Ve(Zt),Ve(Pt),Hg(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Vg(t),null;case 13:if(Ve(Ye),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ee(340));oo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ve(Ye),null;case 4:return lo(),null;case 10:return $g(t.type._context),null;case 22:case 23:return ty(),null;case 24:return null;default:return null}}var vc=!1,Ot=!1,AR=typeof WeakSet=="function"?WeakSet:Set,fe=null;function Ds(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){tt(e,t,r)}else n.current=null}function rm(e,t,n){try{n()}catch(r){tt(e,t,r)}}var aw=!1;function CR(e,t){if(Fp=Ou,e=VE(),Rg(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(zp={focusedElem:e,selectionRange:n},Ou=!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 b=g.memoizedProps,x=g.memoizedState,m=t.stateNode,w=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:Pn(t.type,b),x);m.__reactInternalSnapshotBeforeUpdate=w}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(ee(163))}}catch(v){tt(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,fe=e;break}fe=t.return}return g=aw,aw=!1,g}function Sa(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&&rm(t,n,s)}i=i.next}while(i!==r)}}function Pd(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 im(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 $_(e){var t=e.alternate;t!==null&&(e.alternate=null,$_(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tr],delete t[Xa],delete t[Hp],delete t[dR],delete t[fR])),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 F_(e){return e.tag===5||e.tag===3||e.tag===4}function lw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||F_(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 sm(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=Pu));else if(r!==4&&(e=e.child,e!==null))for(sm(e,t,n),e=e.sibling;e!==null;)sm(e,t,n),e=e.sibling}function om(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(om(e,t,n),e=e.sibling;e!==null;)om(e,t,n),e=e.sibling}var Et=null,Dn=!1;function Lr(e,t,n){for(n=n.child;n!==null;)z_(e,t,n),n=n.sibling}function z_(e,t,n){if(nr&&typeof nr.onCommitFiberUnmount=="function")try{nr.onCommitFiberUnmount(Td,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?Jf(e.parentNode,n):e.nodeType===1&&Jf(e,n),Ka(e)):Jf(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)&&rm(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){tt(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 cw(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new AR),t.forEach(function(r){var i=BR.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=it()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*IR(r/1960))-r,10e?16:e,qr===null)var r=!1;else{if(e=qr,qr=null,Gu=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;lit()-Jg?Pi(e,0):Zg|=n),en(e,t)}function Y_(e,t){t===0&&(e.mode&1?(t=fc,fc<<=1,!(fc&130023424)&&(fc=4194304)):t=1);var n=Ht();e=Ar(e,t),e!==null&&(Cl(e,t,n),en(e,n))}function jR(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Y_(e,n)}function BR(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),Y_(e,n)}var X_;X_=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,SR(e,t,n);Xt=!!(e.flags&131072)}else Xt=!1,We&&t.flags&1048576&&e_(t,$u,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ou(e,t),e=t.pendingProps;var i=so(t,Pt.current);Zs(t,n),i=qg(null,t,r,e,i,n);var s=Wg();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,ju(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,zg(t),i.updater=Ld,t.stateNode=i,i._reactInternals=t,Xp(t,r,e,n),t=Jp(null,t,r,!0,s,n)):(t.tag=0,We&&s&&Lg(t),zt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ou(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=FR(r),e=Pn(r,e),i){case 0:t=Zp(null,t,r,e,n);break e;case 1:t=iw(null,t,r,e,n);break e;case 11:t=nw(null,t,r,e,n);break e;case 14:t=rw(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),Zp(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),iw(e,t,r,i,n);case 3:e:{if(R_(t),e===null)throw Error(ee(387));r=t.pendingProps,s=t.memoizedState,i=s.element,o_(e,t),Uu(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=co(Error(ee(423)),t),t=sw(e,t,r,n,i);break e}else if(r!==i){i=co(Error(ee(424)),t),t=sw(e,t,r,n,i);break e}else for(ln=Jr(t.stateNode.containerInfo.firstChild),cn=t,We=!0,Bn=null,n=i_(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(oo(),r===i){t=Cr(e,t,n);break e}zt(e,t,r,n)}t=t.child}return t;case 5:return a_(t),e===null&&Wp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Up(r,i)?o=null:s!==null&&Up(r,s)&&(t.flags|=32),O_(e,t),zt(e,t,o,n),t.child;case 6:return e===null&&Wp(t),null;case 13:return L_(e,t,n);case 4:return Ug(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ao(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),nw(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,$e(Fu,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),Gp(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),Gp(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),rw(e,t,r,i,n);case 15:return M_(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Pn(r,i),ou(e,t),t.tag=1,Jt(r)?(e=!0,ju(t)):e=!1,Zs(t,n),T_(t,r,i),Xp(t,r,i,n),Jp(null,t,r,!0,e,n);case 19:return P_(e,t,n);case 22:return I_(e,t,n)}throw Error(ee(156,t.tag))};function Q_(e,t){return _E(e,t)}function $R(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 $R(e,t,n,r)}function ry(e){return e=e.prototype,!(!e||!e.isReactComponent)}function FR(e){if(typeof e=="function")return ry(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kg)return 11;if(e===Eg)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 cu(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")ry(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ts:return Di(n.children,i,s,t);case vg:o=8,i|=8;break;case xp:return e=_n(12,n,t,i|2),e.elementType=xp,e.lanes=s,e;case vp:return e=_n(13,n,t,i),e.elementType=vp,e.lanes=s,e;case kp:return e=_n(19,n,t,i),e.elementType=kp,e.lanes=s,e;case aE:return jd(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case sE:o=10;break e;case oE:o=9;break e;case kg:o=11;break e;case Eg:o=14;break e;case $r: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 Di(e,t,n,r){return e=_n(7,e,r,t),e.lanes=n,e}function jd(e,t,n,r){return e=_n(22,e,r,t),e.elementType=aE,e.lanes=n,e.stateNode={isHidden:!1},e}function ah(e,t,n){return e=_n(6,e,null,t),e.lanes=n,e}function lh(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 zR(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=Uf(0),this.expirationTimes=Uf(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Uf(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function iy(e,t,n,r,i,s,o,a,l){return e=new zR(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},zg(s),e}function UR(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(tS)}catch(e){console.error(e)}}tS(),tE.exports=mn;var WR=tE.exports,yw=WR;bp.createRoot=yw.createRoot,bp.hydrateRoot=yw.hydrateRoot;const ly=S.createContext({});function Ud(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Vd=S.createContext(null),rl=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class GR 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 YR({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(rl);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 u=document.createElement("style");return s&&(u.nonce=s),document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` +`+s.stack}return{value:e,source:t,stack:i,digest:null}}function dh(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function im(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var IR=typeof WeakMap=="function"?WeakMap:Map;function P_(e,t,n){n=kr(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xu||(Xu=!0,pm=r),im(e,t)},n}function D_(e,t,n){n=kr(-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(){im(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){im(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 ow(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new IR;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=KR.bind(null,e,t,n),t.then(e,e))}function aw(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 lw(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=kr(-1,1),t.tag=2,ei(n,t,1))),n.lanes|=1),e)}var OR=Or.ReactCurrentOwner,Xt=!1;function zt(e,t,n,r){t.child=e===null?d_(t,null,n,r):co(t,e.child,n,r)}function cw(e,t,n,r,i){n=n.render;var s=t.ref;return eo(t,i),r=Jg(e,t,n,r,s,i),n=ey(),e!==null&&!Xt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Cr(e,t,i)):(Ge&&n&&zg(t),t.flags|=1,zt(e,t,r,i),t.child)}function uw(e,t,n,r,i){if(e===null){var s=n.type;return typeof s=="function"&&!uy(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,j_(e,t,s,r,i)):(e=du(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:Ga,n(o,r)&&e.ref===t.ref)return Cr(e,t,i)}return t.flags|=1,e=ri(s,r),e.ref=t.ref,e.return=t,t.child=e}function j_(e,t,n,r,i){if(e!==null){var s=e.memoizedProps;if(Ga(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,Cr(e,t,i)}return sm(e,t,n,r,i)}function $_(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(Bs,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(Bs,on),on|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,Fe(Bs,on),on|=r}else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,Fe(Bs,on),on|=r;return zt(e,t,i,n),t.child}function B_(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function sm(e,t,n,r,i){var s=Jt(n)?Ki:Pt.current;return s=ao(t,s),eo(t,i),n=Jg(e,t,n,r,s,i),r=ey(),e!==null&&!Xt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Cr(e,t,i)):(Ge&&r&&zg(t),t.flags|=1,zt(e,t,n,i),t.child)}function dw(e,t,n,r,i){if(Jt(n)){var s=!0;Fu(t)}else s=!1;if(eo(t,i),t.stateNode===null)lu(e,t),L_(t,n,r),rm(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)?Ki:Pt.current,c=ao(t,c));var u=n.getDerivedStateFromProps,d=typeof u=="function"||typeof o.getSnapshotBeforeUpdate=="function";d||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==r||l!==c)&&sw(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 u=="function"&&(nm(t,n,u,r),l=t.memoizedState),(a=Fr||iw(t,n,a,r,h,l,c))?(d||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,h_(e,t),a=t.memoizedProps,c=t.type===t.elementType?a:Pn(t.type,a),o.props=c,d=t.pendingProps,h=o.context,l=n.contextType,typeof l=="object"&&l!==null?l=Tn(l):(l=Jt(n)?Ki:Pt.current,l=ao(t,l));var p=n.getDerivedStateFromProps;(u=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==d||h!==l)&&sw(t,o,r,l),Fr=!1,h=t.memoizedState,o.state=h,Ku(t,r,o,i);var g=t.memoizedState;a!==d||h!==g||Zt.current||Fr?(typeof p=="function"&&(nm(t,n,p,r),g=t.memoizedState),(c=Fr||iw(t,n,c,r,h,g,l)||!1)?(u||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 om(e,t,n,r,s,i)}function om(e,t,n,r,i,s){B_(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return i&&Xb(t,n,!1),Cr(e,t,s);r=t.stateNode,OR.current=t;var a=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=co(t,e.child,null,s),t.child=co(t,null,a,s)):zt(e,t,a,s),t.memoizedState=r.state,i&&Xb(t,n,!0),t.child}function F_(e){var t=e.stateNode;t.pendingContext?Yb(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Yb(e,t.context,!1),Yg(e,t.containerInfo)}function fw(e,t,n,r,i){return lo(),Vg(i),t.flags|=256,zt(e,t,n,r),t.child}var am={dehydrated:null,treeContext:null,retryLane:0};function lm(e){return{baseLanes:e,cachePool:null,transitions:null}}function z_(e,t,n){var r=t.pendingProps,i=Xe.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(Xe,i&1),e===null)return em(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=zd(o,r,0,null),e=$i(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=lm(n),t.memoizedState=am,e):ry(t,o));if(i=e.memoizedState,i!==null&&(a=i.dehydrated,a!==null))return RR(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=$i(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?lm(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=e.childLanes&~n,t.memoizedState=am,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 ry(e,t){return t=zd({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function kc(e,t,n,r){return r!==null&&Vg(r),co(t,e.child,null,n),e=ry(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function RR(e,t,n,r,i,s,o){if(n)return t.flags&256?(t.flags&=-257,r=dh(Error(ee(422))),kc(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,i=t.mode,r=zd({mode:"visible",children:r.children},i,0,null),s=$i(s,i,o,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&co(t,e.child,null,o),t.child.memoizedState=lm(o),t.memoizedState=am,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(ee(419)),r=dh(s,r,void 0),kc(e,t,o,r)}if(a=(o&e.childLanes)!==0,Xt||a){if(r=wt,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,Ar(e,i),Vn(r,e,i,-1))}return cy(),r=dh(Error(ee(421))),kc(e,t,o,r)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=qR.bind(null,e),i._reactRetry=t,null):(e=s.treeContext,ln=Jr(i.nextSibling),cn=t,Ge=!0,$n=null,e!==null&&(xn[vn++]=br,xn[vn++]=wr,xn[vn++]=qi,br=e.id,wr=e.overflow,qi=t),t=ry(t,r.children),t.flags|=4096,t)}function hw(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),tm(e.return,t,n)}function fh(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 U_(e,t,n){var r=t.pendingProps,i=r.revealOrder,s=r.tail;if(zt(e,t,r.children,n),r=Xe.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&&hw(e,n,t);else if(e.tag===19)hw(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(Xe,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),fh(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}fh(t,!0,n,null,s);break;case"together":fh(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function lu(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Cr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gi|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(ee(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 LR(e,t,n){switch(t.tag){case 3:F_(t),lo();break;case 5:p_(t);break;case 1:Jt(t.type)&&Fu(t);break;case 4:Yg(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(Xe,Xe.current&1),t.flags|=128,null):n&t.child.childLanes?z_(e,t,n):(Fe(Xe,Xe.current&1),e=Cr(e,t,n),e!==null?e.sibling:null);Fe(Xe,Xe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return U_(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Fe(Xe,Xe.current),r)break;return null;case 22:case 23:return t.lanes=0,$_(e,t,n)}return Cr(e,t,n)}var V_,cm,H_,K_;V_=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}};cm=function(){};H_=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,Oi(rr.current);var s=null;switch(n){case"input":i=Ip(e,i),r=Ip(e,r),s=[];break;case"select":i=Je({},i,{value:void 0}),r=Je({},r,{value:void 0}),s=[];break;case"textarea":i=Lp(e,i),r=Lp(e,r),s=[];break;default:typeof i.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=$u)}Dp(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"&&(za.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"&&(za.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)}};K_=function(e,t,n,r){n!==r&&(t.flags|=4)};function Qo(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 PR(e,t,n){var r=t.pendingProps;switch(Ug(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)&&Bu(),Mt(t),null;case 3:return r=t.stateNode,uo(),He(Zt),He(Pt),Qg(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(xc(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,$n!==null&&(ym($n),$n=null))),cm(e,t),Mt(t),null;case 5:Xg(t);var i=Oi(Ja.current);if(n=t.type,e!==null&&t.stateNode!=null)H_(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(ee(166));return Mt(t),null}if(e=Oi(rr.current),xc(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[tr]=t,r[Qa]=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[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; @@ -45,471 +45,481 @@ Error generating stack: `+s.message+` top: ${l}px !important; left: ${c}px !important; } - `),()=>{document.head.removeChild(u)}},[t]),f.jsx(GR,{isPresent:t,childRef:r,sizeRef:i,children:S.cloneElement(e,{ref:r})})}const XR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=Ud(QR),l=S.useId(),c=S.useCallback(d=>{a.set(d,!0);for(const h of a.values())if(!h)return;r&&r()},[a,r]),u=S.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 S.useMemo(()=>{a.forEach((d,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=f.jsx(YR,{isPresent:n,children:e})),f.jsx(Vd.Provider,{value:u,children:e})};function QR(){return new Map}function nS(e=!0){const t=S.useContext(Vd);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 _c=e=>e.key||"";function bw(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const cy=typeof window<"u",rS=cy?S.useLayoutEffect:S.useEffect,uy=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=nS(o),c=S.useMemo(()=>bw(e),[e]),u=o&&!a?[]:c.map(_c),d=S.useRef(!0),h=S.useRef(c),p=Ud(()=>new Map),[g,b]=S.useState(c),[x,m]=S.useState(c);rS(()=>{d.current=!1,h.current=c;for(let v=0;v{const E=_c(v),k=o&&!a?!1:c===x||u.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(XR,{isPresent:k,initial:!d.current||n?void 0:!1,custom:k?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:k?void 0:C,children:v},E)})})},un=e=>e;let iS=un;const ZR={useManualTiming:!1};function JR(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 Sc=["read","resolveKeyframes","update","preRender","render","postRender"],eL=40;function sS(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Sc.reduce((m,w)=>(m[w]=JR(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,eL),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:Sc.reduce((m,w)=>{const y=o[w];return m[w]=(v,E=!1,k=!1)=>(n||g(),y.schedule(v,E,k)),m},{}),cancel:m=>{for(let w=0;www[e].some(n=>!!t[n])};function tL(e){for(const t in e)fo[t]={...fo[t],...e[t]}}const nL=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 Qu(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||nL.has(e)}let aS=e=>!Qu(e);function lS(e){e&&(aS=t=>t.startsWith("on")?!Qu(t):e(t))}try{lS(require("@emotion/is-prop-valid").default)}catch{}function rL(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(aS(i)||n===!0&&Qu(i)||!t&&!Qu(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function iL({children:e,isValidProp:t,...n}){t&&lS(t),n={...S.useContext(rl),...n},n.isStatic=Ud(()=>n.isStatic);const r=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return f.jsx(rl.Provider,{value:r,children:e})}function sL(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 Hd=S.createContext({});function il(e){return typeof e=="string"||Array.isArray(e)}function Kd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const dy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],fy=["initial",...dy];function qd(e){return Kd(e.animate)||fy.some(t=>il(e[t]))}function cS(e){return!!(qd(e)||e.variants)}function oL(e,t){if(qd(e)){const{initial:n,animate:r}=e;return{initial:n===!1||il(n)?n:void 0,animate:il(r)?r:void 0}}return e.inherit!==!1?t:{}}function aL(e){const{initial:t,animate:n}=oL(e,S.useContext(Hd));return S.useMemo(()=>({initial:t,animate:n}),[xw(t),xw(n)])}function xw(e){return Array.isArray(e)?e.join(" "):e}const lL=Symbol.for("motionComponentSymbol");function Bs(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function cL(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 hy=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),uL="framerAppearId",uS="data-"+hy(uL),{schedule:py}=sS(queueMicrotask,!1),dS=S.createContext({});function dL(e,t,n,r,i){var s,o;const{visualElement:a}=S.useContext(Hd),l=S.useContext(oS),c=S.useContext(Vd),u=S.useContext(rl).reducedMotion,d=S.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=S.useContext(dS);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&fL(d.current,n,i,p);const g=S.useRef(!1);S.useInsertionEffect(()=>{h&&g.current&&h.update(n,c)});const b=n[uS],x=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 rS(()=>{h&&(g.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),py.render(h.render),x.current&&h.animationState&&h.animationState.animateChanges())}),S.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 fL(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:fS(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 fS(e){if(e)return e.options.allowProjection!==!1?e.projection:fS(e.parent)}function hL({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&tL(e);function a(c,u){let d;const h={...S.useContext(rl),...c,layoutId:pL(c)},{isStatic:p}=h,g=aL(c),b=r(c,p);if(!p&&cy){mL();const x=gL(h);d=x.MeasureLayout,g.visualElement=dL(i,b,h,t,x.ProjectionNode)}return f.jsxs(Hd.Provider,{value:g,children:[d&&g.visualElement?f.jsx(d,{visualElement:g.visualElement,...h}):null,n(i,c,cL(b,g.visualElement,u),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[lL]=i,l}function pL({layoutId:e}){const t=S.useContext(ly).id;return t&&e!==void 0?t+"-"+e:e}function mL(e,t){S.useContext(oS).strict}function gL(e){const{drag:t,layout:n}=fo;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 yL=["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 my(e){return typeof e!="string"||e.includes("-")?!1:!!(yL.indexOf(e)>-1||/[A-Z]/u.test(e))}function vw(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function gy(e,t,n,r){if(typeof t=="function"){const[i,s]=vw(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]=vw(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const dm=e=>Array.isArray(e),bL=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),wL=e=>dm(e)?e[e.length-1]||0:e,Rt=e=>!!(e&&e.getVelocity);function uu(e){const t=Rt(e)?e.get():e;return bL(t)?t.toValue():t}function xL({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:vL(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const hS=e=>(t,n)=>{const r=S.useContext(Hd),i=S.useContext(Vd),s=()=>xL(e,t,r,i);return n?s():Ud(s)};function vL(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=uu(s[h]);let{initial:o,animate:a}=e;const l=qd(e),c=cS(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"&&!Kd(d)){const h=Array.isArray(d)?d:[d];for(let p=0;pt=>typeof t=="string"&&t.startsWith(e),mS=pS("--"),kL=pS("var(--"),yy=e=>kL(e)?EL.test(e.split("/*")[0].trim()):!1,EL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,gS=(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},sl={...Ro,transform:e=>Mr(0,1,e)},Nc={...Ro,default:1},Rl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Br=Rl("deg"),ir=Rl("%"),be=Rl("px"),_L=Rl("vh"),SL=Rl("vw"),kw={...ir,parse:e=>ir.parse(e)/100,transform:e=>ir.transform(e*100)},NL={borderWidth:be,borderTopWidth:be,borderRightWidth:be,borderBottomWidth:be,borderLeftWidth:be,borderRadius:be,radius:be,borderTopLeftRadius:be,borderTopRightRadius:be,borderBottomRightRadius:be,borderBottomLeftRadius:be,width:be,maxWidth:be,height:be,maxHeight:be,top:be,right:be,bottom:be,left:be,padding:be,paddingTop:be,paddingRight:be,paddingBottom:be,paddingLeft:be,margin:be,marginTop:be,marginRight:be,marginBottom:be,marginLeft:be,backgroundPositionX:be,backgroundPositionY:be},TL={rotate:Br,rotateX:Br,rotateY:Br,rotateZ:Br,scale:Nc,scaleX:Nc,scaleY:Nc,scaleZ:Nc,skew:Br,skewX:Br,skewY:Br,distance:be,translateX:be,translateY:be,translateZ:be,x:be,y:be,z:be,perspective:be,transformPerspective:be,opacity:sl,originX:kw,originY:kw,originZ:be},Ew={...Ro,transform:Math.round},by={...NL,...TL,zIndex:Ew,size:be,fillOpacity:sl,strokeOpacity:sl,numOctaves:Ew},AL={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},CL=Oo.length;function ML(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),yS=()=>({...vy(),attrs:{}}),ky=e=>typeof e=="string"&&e.toLowerCase()==="svg";function bS(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 wS=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 xS(e,t,n,r){bS(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(wS.has(i)?i:hy(i),t.attrs[i])}const Zu={};function PL(e){Object.assign(Zu,e)}function vS(e,{layout:t,layoutId:n}){return is.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Zu[e]||e==="opacity")}function Ey(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Rt(i[o])||t.style&&Rt(t.style[o])||vS(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=Ey(e,t,n);for(const i in e)if(Rt(e[i])||Rt(t[i])){const s=Oo.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function DL(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 Sw=["x","y","width","height","cx","cy","r"],jL={useVisualState:hS({scrapeMotionValuesFromProps:kS,createRenderState:yS,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{DL(n,r),He.render(()=>{xy(r,i,ky(n.tagName),e.transformTemplate),xS(n,r)})})}})},BL={useVisualState:hS({scrapeMotionValuesFromProps:Ey,createRenderState:vy})};function ES(e,t,n){for(const r in t)!Rt(t[r])&&!vS(r,n)&&(e[r]=t[r])}function $L({transformTemplate:e},t){return S.useMemo(()=>{const n=vy();return wy(n,t,e),Object.assign({},n.vars,n.style)},[t])}function FL(e,t){const n=e.style||{},r={};return ES(r,n,e),Object.assign(r,$L(e,t)),r}function zL(e,t){const n={},r=FL(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 UL(e,t,n,r){const i=S.useMemo(()=>{const s=yS();return xy(s,t,ky(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};ES(s,e.style,e),i.style={...s,...i.style}}return i}function VL(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(my(n)?UL:zL)(r,s,o,n),c=rL(r,typeof n=="string",e),u=n!==S.Fragment?{...c,...l,ref:i}:{},{children:d}=r,h=S.useMemo(()=>Rt(d)?d.get():d,[d]);return S.createElement(n,{...u,children:h})}}function HL(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...my(r)?jL:BL,preloadedFeatures:e,useRender:VL(i),createVisualElement:t,Component:r};return hL(o)}}function _S(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r(du===void 0&&sr.set(_t.isProcessing||ZR.useManualTiming?_t.timestamp:performance.now()),du),set:e=>{du=e,queueMicrotask(KL)}};function Sy(e,t){e.indexOf(t)===-1&&e.push(t)}function Ny(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Ty{constructor(){this.subscriptions=[]}add(t){return Sy(this.subscriptions,t),()=>Ny(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 WL{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 Ty);const r=this.events[t].add(n);return t==="change"?()=>{r(),He.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>Nw)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Nw);return NS(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 ol(e,t){return new WL(e,t)}function GL(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ol(n))}function YL(e,t){const n=Wd(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=wL(s[o]);GL(e,o,a)}}function XL(e){return!!(Rt(e)&&e.add)}function fm(e,t){const n=e.getValue("willChange");if(XL(n))return n.add(t)}function TS(e){return e.props[uS]}function Ay(e){let t;return()=>(t===void 0&&(t=e()),t)}const QL=Ay(()=>window.ScrollTimeline!==void 0);class ZL{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(QL()&&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 JL extends ZL{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const Er=e=>e*1e3,_r=e=>e/1e3;function Cy(e){return typeof e=="function"}function Tw(e,t){e.timeline=t,e.onfinish=null}const My=e=>Array.isArray(e)&&typeof e[0]=="number",eP={linearEasing:void 0};function tP(e,t){const n=Ay(e);return()=>{var r;return(r=eP[t])!==null&&r!==void 0?r:n()}}const Ju=tP(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),ho=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},AS=(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})`,hm={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:fa([0,.65,.55,1]),circOut:fa([.55,0,1,.45]),backIn:fa([.31,.01,.66,-.59]),backOut:fa([.33,1.53,.69,.99])};function MS(e,t){if(e)return typeof e=="function"&&Ju()?AS(e,t):My(e)?fa(e):Array.isArray(e)?e.map(n=>MS(n,t)||hm.easeOut):hm[e]}const IS=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,nP=1e-7,rP=12;function iP(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=IS(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>nP&&++aiP(s,0,1,e,n);return s=>s===0||s===1?s:IS(i(s),t,r)}const OS=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,RS=e=>t=>1-e(1-t),LS=Ll(.33,1.53,.69,.99),Iy=RS(LS),PS=OS(Iy),DS=e=>(e*=2)<1?.5*Iy(e):.5*(2-Math.pow(2,-10*(e-1))),Oy=e=>1-Math.sin(Math.acos(e)),jS=RS(Oy),BS=OS(Oy),$S=e=>/^0[^.\s]+$/u.test(e);function sP(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||$S(e):!0}const Aa=e=>Math.round(e*1e5)/1e5,Ry=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function oP(e){return e==null}const aP=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Ly=(e,t)=>n=>!!(typeof n=="string"&&aP.test(n)&&n.startsWith(e)||t&&!oP(n)&&Object.prototype.hasOwnProperty.call(n,t)),FS=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Ry);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},lP=e=>Mr(0,255,e),uh={...Ro,transform:e=>Math.round(lP(e))},Ii={test:Ly("rgb","red"),parse:FS("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+uh.transform(e)+", "+uh.transform(t)+", "+uh.transform(n)+", "+Aa(sl.transform(r))+")"};function cP(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 pm={test:Ly("#"),parse:cP,transform:Ii.transform},$s={test:Ly("hsl","hue"),parse:FS("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ir.transform(Aa(t))+", "+ir.transform(Aa(n))+", "+Aa(sl.transform(r))+")"},It={test:e=>Ii.test(e)||pm.test(e)||$s.test(e),parse:e=>Ii.test(e)?Ii.parse(e):$s.test(e)?$s.parse(e):pm.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ii.transform(e):$s.transform(e)},uP=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function dP(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Ry))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(uP))===null||n===void 0?void 0:n.length)||0)>0}const zS="number",US="color",fP="var",hP="var(",Aw="${}",pP=/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 al(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(pP,l=>(It.test(l)?(r.color.push(s),i.push(US),n.push(It.parse(l))):l.startsWith(hP)?(r.var.push(s),i.push(fP),n.push(l)):(r.number.push(s),i.push(zS),n.push(parseFloat(l))),++s,Aw)).split(Aw);return{values:n,split:a,indexes:r,types:i}}function VS(e){return al(e).values}function HS(e){const{split:t,types:n}=al(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function gP(e){const t=VS(e);return HS(e)(t.map(mP))}const ci={test:dP,parse:VS,createTransformer:HS,getAnimatableNone:gP},yP=new Set(["brightness","contrast","saturate","opacity"]);function bP(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ry)||[];if(!r)return e;const i=n.replace(r,"");let s=yP.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const wP=/\b([a-z-]*)\(.*?\)/gu,mm={...ci,getAnimatableNone:e=>{const t=e.match(wP);return t?t.map(bP).join(" "):e}},xP={...by,color:It,backgroundColor:It,outlineColor:It,fill:It,stroke:It,borderColor:It,borderTopColor:It,borderRightColor:It,borderBottomColor:It,borderLeftColor:It,filter:mm,WebkitFilter:mm},Py=e=>xP[e];function KS(e,t){let n=Py(e);return n!==mm&&(n=ci),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const vP=new Set(["auto","none","0"]);function kP(e,t,n){let r=0,i;for(;re===Ro||e===be,Mw=(e,t)=>parseFloat(e.split(", ")[t]),Iw=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return Mw(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?Mw(s[1],e):0}},EP=new Set(["x","y","z"]),_P=Oo.filter(e=>!EP.has(e));function SP(e){const t=[];return _P.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const po={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:Iw(4,13),y:Iw(5,14)};po.translateX=po.x;po.translateY=po.y;const ji=new Set;let gm=!1,ym=!1;function qS(){if(ym){const e=Array.from(ji).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=SP(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)})}ym=!1,gm=!1,ji.forEach(e=>e.complete()),ji.clear()}function WS(){ji.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(ym=!0)})}function NP(){WS(),qS()}class Dy{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?(ji.add(this),gm||(gm=!0,He.read(WS),He.resolveKeyframes(qS))):(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),TP=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function AP(e){const t=TP.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function YS(e,t,n=1){const[r,i]=AP(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return GS(o)?parseFloat(o):o}return yy(i)?YS(i,t,n+1):i}const XS=e=>t=>t.test(e),CP={test:e=>e==="auto",parse:e=>e},QS=[Ro,be,ir,Br,SL,_L,CP],Ow=e=>QS.find(XS(e));class ZS extends Dy{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 Rw=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(ci.test(e)||e==="0")&&!e.startsWith("url("));function MP(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function Gd(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(OP),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const RP=40;class JS{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>RP?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&NP(),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&&!IP(t,r,i,s))if(o)this.options.duration=0;else{l&&l(Gd(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 bm=2e4;function eN(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=bm?1/0:t}const Xe=(e,t,n)=>e+(t-e)*n;function dh(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 LP({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=dh(l,a,e+1/3),s=dh(l,a,e),o=dh(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function ed(e,t){return n=>n>0?t:e}const fh=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},PP=[pm,Ii,$s],DP=e=>PP.find(t=>t.test(e));function Lw(e){const t=DP(e);if(!t)return!1;let n=t.parse(e);return t===$s&&(n=LP(n)),n}const Pw=(e,t)=>{const n=Lw(e),r=Lw(t);if(!n||!r)return ed(e,t);const i={...n};return s=>(i.red=fh(n.red,r.red,s),i.green=fh(n.green,r.green,s),i.blue=fh(n.blue,r.blue,s),i.alpha=Xe(n.alpha,r.alpha,s),Ii.transform(i))},jP=(e,t)=>n=>t(e(n)),Pl=(...e)=>e.reduce(jP),wm=new Set(["none","hidden"]);function BP(e,t){return wm.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function $P(e,t){return n=>Xe(e,t,n)}function jy(e){return typeof e=="number"?$P:typeof e=="string"?yy(e)?ed:It.test(e)?Pw:UP:Array.isArray(e)?tN:typeof e=="object"?It.test(e)?Pw:FP:ed}function tN(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>jy(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function zP(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=ci.createTransformer(t),r=al(e),i=al(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?BP(e,t):Pl(tN(zP(r,i),i.values),n):ed(e,t)};function nN(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Xe(e,t,n):jy(e)(e,t)}const VP=5;function rN(e,t,n){const r=Math.max(t-VP,0);return NS(n-e(r),t-r)}const et={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},hh=.001;function HP({duration:e=et.duration,bounce:t=et.bounce,velocity:n=et.velocity,mass:r=et.mass}){let i,s,o=1-t;o=Mr(et.minDamping,et.maxDamping,o),e=Mr(et.minDuration,et.maxDuration,_r(e)),o<1?(i=c=>{const u=c*o,d=u*e,h=u-n,p=xm(c,o),g=Math.exp(-d);return hh-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),b=xm(Math.pow(c,2),o);return(-i(c)+hh>0?-1:1)*((h-p)*g)/b}):(i=c=>{const u=Math.exp(-c*e),d=(c-n)*e+1;return-hh+u*d},s=c=>{const u=Math.exp(-c*e),d=(n-c)*(e*e);return u*d});const a=5/e,l=qP(i,s,a);if(e=Er(e),isNaN(l))return{stiffness:et.stiffness,damping:et.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:o*2*Math.sqrt(r*c),duration:e}}}const KP=12;function qP(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function YP(e){let t={velocity:et.velocity,stiffness:et.stiffness,damping:et.damping,mass:et.mass,isResolvedFromDuration:!1,...e};if(!Dw(e,GP)&&Dw(e,WP))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:et.mass,stiffness:i,damping:s}}else{const n=HP(e);t={...t,...n,mass:et.mass},t.isResolvedFromDuration=!0}return t}function iN(e=et.visualDuration,t=et.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}=YP({...n,velocity:-_r(n.velocity||0)}),g=h||0,b=c/(2*Math.sqrt(l*u)),x=o-s,m=_r(Math.sqrt(l/u)),w=Math.abs(x)<5;r||(r=w?et.restSpeed.granular:et.restSpeed.default),i||(i=w?et.restDelta.granular:et.restDelta.default);let y;if(b<1){const E=xm(m,b);y=k=>{const C=Math.exp(-b*m*k);return o-C*((g+b*m*x)/E*Math.sin(E*k)+x*Math.cos(E*k))}}else if(b===1)y=E=>o-Math.exp(-m*E)*(x+(g+m*x)*E);else{const E=m*Math.sqrt(b*b-1);y=k=>{const C=Math.exp(-b*m*k),N=Math.min(E*k,300);return o-C*((g+b*m*x)*Math.sinh(N)+E*x*Math.cosh(N))/E}}const v={calculatedDuration:p&&d||null,next:E=>{const k=y(E);if(p)a.done=E>=d;else{let C=0;b<1&&(C=E===0?Er(g):rN(y,E,k));const N=Math.abs(C)<=r,I=Math.abs(o-k)<=i;a.done=N&&I}return a.value=a.done?o:k,a},toString:()=>{const E=Math.min(eN(v),bm),k=AS(C=>v.next(E*C).value,E,30);return E+"ms "+k}};return v}function jw({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)-b*Math.exp(-N/r),y=N=>m+w(N),v=N=>{const I=w(N),T=y(N);h.done=Math.abs(I)<=c,h.value=h.done?m:T};let E,k;const C=N=>{p(h.value)&&(E=N,k=iN({keyframes:[h.value,g(h.value)],velocity:rN(y,N,h.value),damping:i,stiffness:s,restDelta:c,restSpeed:u}))};return C(0),{calculatedDuration:null,next:N=>{let I=!1;return!k&&E===void 0&&(I=!0,v(N),C(N)),E!==void 0&&N>=E?k.next(N-E):(!I&&v(N),h)}}}const XP=Ll(.42,0,1,1),QP=Ll(0,0,.58,1),sN=Ll(.42,0,.58,1),ZP=e=>Array.isArray(e)&&typeof e[0]!="number",JP={linear:un,easeIn:XP,easeInOut:sN,easeOut:QP,circIn:Oy,circInOut:BS,circOut:jS,backIn:Iy,backInOut:PS,backOut:LS,anticipate:DS},Bw=e=>{if(My(e)){iS(e.length===4);const[t,n,r,i]=e;return Ll(t,n,r,i)}else if(typeof e=="string")return JP[e];return e};function eD(e,t,n){const r=[],i=n||nN,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=eD(t,r,i),l=a.length,c=u=>{if(o&&u1)for(;dc(Mr(e[0],e[s-1],u)):c}function nD(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=ho(0,t,r);e.push(Xe(n,1,i))}}function rD(e){const t=[0];return nD(t,e.length-1),t}function iD(e,t){return e.map(n=>n*t)}function sD(e,t){return e.map(()=>t||sN).splice(0,e.length-1)}function td({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=ZP(r)?r.map(Bw):Bw(r),s={done:!1,value:t[0]},o=iD(n&&n.length===t.length?n:rD(t),e),a=tD(o,t,{ease:Array.isArray(i)?i:sD(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const oD=e=>{const t=({timestamp:n})=>e(n);return{start:()=>He.update(t,!0),stop:()=>li(t),now:()=>_t.isProcessing?_t.timestamp:sr.now()}},aD={decay:jw,inertia:jw,tween:td,keyframes:td,spring:iN},lD=e=>e/100;class By extends JS{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)||Dy,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=Cy(n)?n:aD[n]||td;let l,c;a!==td&&typeof t[0]!="number"&&(l=Pl(lD,nN(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=eN(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:b,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),w=this.speed>=0?m<0:m>u;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let y=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,b&&(T-=b/d)):g==="mirror"&&(v=o)),y=Mr(0,1,T)*d}const E=w?{done:!1,value:l[0]}:v.next(y);a&&(E.value=a(E.value));let{done:k}=E;!w&&c!==null&&(k=this.speed>=0?this.currentTime>=u:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return C&&i!==void 0&&(E.value=Gd(l,this.options,i)),x&&x(E.value),C&&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=oD,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 cD=new Set(["opacity","clipPath","filter","transform"]);function uD(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=MS(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 dD=Ay(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),nd=10,fD=2e4;function hD(e){return Cy(e.type)||e.type==="spring"||!CS(e.ease)}function pD(e,t){const n=new By({...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"&&Ju()&&mD(s)&&(s=oN[s]),hD(this.options)){const{onComplete:d,onUpdate:h,motionValue:p,element:g,...b}=this.options,x=pD(t,b);t=x.keyframes,t.length===1&&(t[1]=t[0]),r=x.duration,i=x.times,s=x.ease,o="keyframes"}const u=uD(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return u.startTime=c??this.calcStartTime(),this.pendingTimeline?(Tw(u,this.pendingTimeline),this.pendingTimeline=void 0):u.onfinish=()=>{const{onComplete:d}=this.options;a.set(Gd(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;Tw(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 By({...p,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),b=Er(this.time);c.setWithVelocity(g.sample(b-nd).value,g.sample(b).value,nd)}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 dD()&&r&&cD.has(r)&&!l&&!c&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const gD={type:"spring",stiffness:500,damping:25,restSpeed:10},yD=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),bD={type:"keyframes",duration:.8},wD={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},xD=(e,{keyframes:t})=>t.length>2?bD:is.has(e)?e.startsWith("scale")?yD(t[1]):gD:wD;function vD({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 $y=(e,t,n,r={},i,s)=>o=>{const a=_y(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};vD(a)||(u={...u,...xD(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=Gd(u.keyframes,a);if(h!==void 0)return He.update(()=>{u.onUpdate(h),u.onComplete()}),new JL([])}return!s&&$w.supports(u)?new $w(u):new By(u)};function kD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function aN(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&&kD(u,d))continue;const g={delay:n,..._y(o||{},d)};let b=!1;if(window.MotionHandoffAnimation){const m=TS(e);if(m){const w=window.MotionHandoffAnimation(m,d,He);w!==null&&(g.startTime=w,b=!0)}}fm(e,d),h.start($y(d,h,p,e.shouldReduceMotion&&SS.has(d)?{type:!1}:g,e,b));const x=h.animation;x&&c.push(x)}return a&&Promise.all(c).then(()=>{He.update(()=>{a&&YL(e,a)})}),c}function vm(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(aN(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=s;return ED(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 ED(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(_D).forEach((c,u)=>{c.notify("AnimationStart",t),o.push(vm(c,t,{...s,delay:n+l(u)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(o)}function _D(e,t){return e.sortNodePosition(t)}function SD(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>vm(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=vm(e,t,n);else{const i=typeof t=="function"?Wd(e,t,n.custom):t;r=Promise.all(aN(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const ND=fy.length;function lN(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?lN(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})=>SD(e,n,r)))}function MD(e){let t=CD(e),n=Fw(),r=!0;const i=l=>(c,u)=>{var d;const h=Wd(e,u,l==="exit"?(d=e.presenceContext)===null||d===void 0?void 0:d.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,u=lN(e.parent)||{},d=[],h=new Set;let p={},g=1/0;for(let x=0;xg&&v,I=!1;const T=Array.isArray(y)?y:[y];let B=T.reduce(i(m),{});E===!1&&(B={});const{prevResolvedValues:j={}}=w,$={...j,...B},M=D=>{N=!0,h.has(D)&&(I=!0,h.delete(D)),w.needsAnimating[D]=!0;const R=e.getValue(D);R&&(R.liveStyle=!1)};for(const D in $){const R=B[D],P=j[D];if(p.hasOwnProperty(D))continue;let _=!1;dm(R)&&dm(P)?_=!_S(R,P):_=R!==P,_?R!=null?M(D):h.add(D):R!==void 0&&h.has(D)?M(D):w.protectedKeys[D]=!0}w.prevProp=y,w.prevResolvedValues=B,w.isActive&&(p={...p,...B}),r&&e.blockInitialAnimation&&(N=!1),N&&(!(k&&C)||I)&&d.push(...T.map(D=>({animation:D,options:{type:m}})))}if(h.size){const x={};h.forEach(m=>{const w=e.getBaseTarget(m),y=e.getValue(m);y&&(y.liveStyle=!0),x[m]=w??null}),d.push({animation:x})}let b=!!d.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(b=!1),r=!1,b?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=Fw(),r=!0}}}function ID(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!_S(t,e):!1}function yi(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Fw(){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 OD extends hi{constructor(t){super(t),t.animationState||(t.animationState=MD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Kd(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 RD=0;class LD extends hi{constructor(){super(...arguments),this.id=RD++}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 PD={animation:{Feature:OD},exit:{Feature:LD}},Ln={x:!1,y:!1};function cN(){return Ln.x||Ln.y}function DD(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 Fy=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function ll(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Dl(e){return{point:{x:e.pageX,y:e.pageY}}}const jD=e=>t=>Fy(t)&&e(t,Dl(t));function Ca(e,t,n,r){return ll(e,t,jD(n),r)}const zw=(e,t)=>Math.abs(e-t);function BD(e,t){const n=zw(e.x,t.x),r=zw(e.y,t.y);return Math.sqrt(n**2+r**2)}class uN{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=mh(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=BD(d.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:g}=d,{timestamp:b}=_t;this.history.push({...g,timestamp:b});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=ph(h,this.transformPagePoint),He.update(this.updatePoint,!0)},this.handlePointerUp=(d,h)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:b}=this.handlers;if(this.dragSnapToOrigin&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=mh(d.type==="pointercancel"?this.lastMoveEventInfo:ph(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(d,x),g&&g(d,x)},!Fy(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=Dl(t),a=ph(o,this.transformPagePoint),{point:l}=a,{timestamp:c}=_t;this.history=[{...l,timestamp:c}];const{onSessionStart:u}=n;u&&u(t,mh(a,this.history)),this.removeListeners=Pl(Ca(this.contextWindow,"pointermove",this.handlePointerMove),Ca(this.contextWindow,"pointerup",this.handlePointerUp),Ca(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),li(this.updatePoint)}}function ph(e,t){return t?{point:t(e.point)}:e}function Uw(e,t){return{x:e.x-t.x,y:e.y-t.y}}function mh({point:e},t){return{point:e,delta:Uw(e,dN(t)),offset:Uw(e,$D(t)),velocity:FD(t,.1)}}function $D(e){return e[0]}function dN(e){return e[e.length-1]}function FD(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=dN(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 fN=1e-4,zD=1-fN,UD=1+fN,hN=.01,VD=0-hN,HD=0+hN;function hn(e){return e.max-e.min}function KD(e,t,n){return Math.abs(e-t)<=n}function Vw(e,t,n,r=.5){e.origin=r,e.originPoint=Xe(t.min,t.max,e.origin),e.scale=hn(n)/hn(t),e.translate=Xe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=zD&&e.scale<=UD||isNaN(e.scale))&&(e.scale=1),(e.translate>=VD&&e.translate<=HD||isNaN(e.translate))&&(e.translate=0)}function Ma(e,t,n,r){Vw(e.x,t.x,n.x,r?r.originX:void 0),Vw(e.y,t.y,n.y,r?r.originY:void 0)}function Hw(e,t,n){e.min=n.min+t.min,e.max=e.min+hn(t)}function qD(e,t,n){Hw(e.x,t.x,n.x),Hw(e.y,t.y,n.y)}function Kw(e,t,n){e.min=t.min-n.min,e.max=e.min+hn(t)}function Ia(e,t,n){Kw(e.x,t.x,n.x),Kw(e.y,t.y,n.y)}function WD(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Xe(n,e,r.max):Math.min(e,n)),e}function qw(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 GD(e,{top:t,left:n,bottom:r,right:i}){return{x:qw(e.x,n,i),y:qw(e.y,t,r)}}function Ww(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=ho(t.min,t.max-r,e.min):r>i&&(n=ho(e.min,e.max-i,t.min)),Mr(0,1,n)}function QD(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 ZD(e=km){return e===!1?e=0:e===!0&&(e=km),{x:Gw(e,"left","right"),y:Gw(e,"top","bottom")}}function Gw(e,t,n){return{min:Yw(e,t),max:Yw(e,n)}}function Yw(e,t){return typeof e=="number"?e:e[t]||0}const Xw=()=>({translate:0,scale:1,origin:0,originPoint:0}),Fs=()=>({x:Xw(),y:Xw()}),Qw=()=>({min:0,max:0}),nt=()=>({x:Qw(),y:Qw()});function wn(e){return[e("x"),e("y")]}function pN({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function JD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function ej(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 gh(e){return e===void 0||e===1}function Em({scale:e,scaleX:t,scaleY:n}){return!gh(e)||!gh(t)||!gh(n)}function ki(e){return Em(e)||mN(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function mN(e){return Zw(e.x)||Zw(e.y)}function Zw(e){return e&&e!=="0%"}function rd(e,t,n){const r=e-n,i=t*r;return n+i}function Jw(e,t,n,r,i){return i!==void 0&&(e=rd(e,i,r)),rd(e,n,r)+t}function _m(e,t=0,n=1,r,i){e.min=Jw(e.min,t,n,r,i),e.max=Jw(e.max,t,n,r,i)}function gN(e,{x:t,y:n}){_m(e.x,t.translate,t.scale,t.originPoint),_m(e.y,n.translate,n.scale,n.originPoint)}const ex=.999999999999,tx=1.0000000000001;function tj(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;aex&&(t.x=1),t.yex&&(t.y=1)}function zs(e,t){e.min=e.min+t,e.max=e.max+t}function nx(e,t,n,r,i=.5){const s=Xe(e.min,e.max,i);_m(e,t,n,s,r)}function Us(e,t){nx(e.x,t.x,t.scaleX,t.scale,t.originX),nx(e.y,t.y,t.scaleY,t.scale,t.originY)}function yN(e,t){return pN(ej(e.getBoundingClientRect(),t))}function nj(e,t,n){const r=yN(e,n),{scroll:i}=t;return i&&(zs(r.x,i.offset.x),zs(r.y,i.offset.y)),r}const bN=({current:e})=>e?e.ownerDocument.defaultView:null,rj=new WeakMap;class ij{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=nt(),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(Dl(u).point)},s=(u,d)=>{const{drag:h,dragPropagation:p,onDragStart:g}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DD(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:w}=this.visualElement;if(w&&w.layout){const y=w.layout.layoutBox[x];y&&(m=hn(y)*(parseFloat(m)/100))}}this.originPoint[x]=m}),g&&He.postRender(()=>g(u,d)),fm(this.visualElement,"transform");const{animationState:b}=this.visualElement;b&&b.setActive("whileDrag",!0)},o=(u,d)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:g,onDrag:b}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:x}=d;if(p&&this.currentDirection===null){this.currentDirection=sj(x),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",d.point,x),this.updateAxis("y",d.point,x),this.visualElement.render(),b&&b(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 uN(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:bN(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&&He.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||!Tc(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=WD(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=GD(i.layoutBox,n):this.constraints=!1,this.elastic=ZD(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&wn(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=QD(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=nj(r,i.root,this.visualElement.getTransformPagePoint());let o=YD(i.layout.layoutBox,s);if(n){const a=n(JD(o));this.hasMutatedConstraints=!!a,a&&(o=pN(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(!Tc(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 fm(this.visualElement,t),r.start($y(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(!Tc(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]-Xe(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]=XD({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(!Tc(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:c}=this.constraints[o];a.set(Xe(l,c,i[o]))})}addListeners(){if(!this.visualElement.current)return;rj.set(this.visualElement,this);const t=this.visualElement.current,n=Ca(t,"pointerdown",l=>{const{drag:c,dragListener:u=!0}=this.getProps();c&&u&&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()),He.read(r);const o=ll(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=km,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Tc(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function sj(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class oj extends hi{constructor(t){super(t),this.removeGroupControls=un,this.removeListeners=un,this.controls=new ij(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 rx=e=>(t,n)=>{e&&He.postRender(()=>e(t,n))};class aj extends hi{constructor(){super(...arguments),this.removePointerDownListener=un}onPointerDown(t){this.session=new uN(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:bN(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:rx(t),onStart:rx(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&He.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Ca(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 fu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ix(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Zo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(be.test(e))e=parseFloat(e);else return e;const n=ix(e,t.target.x),r=ix(e,t.target.y);return`${n}% ${r}%`}},lj={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=Xe(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 cj extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;PL(uj),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()})),fu.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()||He.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),py.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 wN(e){const[t,n]=nS(),r=S.useContext(ly);return f.jsx(cj,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(dS),isPresent:t,safeToRemove:n})}const uj={borderRadius:{...Zo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Zo,borderTopRightRadius:Zo,borderBottomLeftRadius:Zo,borderBottomRightRadius:Zo,boxShadow:lj};function dj(e,t,n){const r=Rt(e)?e:ol(e);return r.start($y("",r,t,n)),r.animation}function fj(e){return e instanceof SVGElement&&e.tagName!=="svg"}const hj=(e,t)=>e.depth-t.depth;class pj{constructor(){this.children=[],this.isDirty=!1}add(t){Sy(this.children,t),this.isDirty=!0}remove(t){Ny(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(hj),this.isDirty=!1,this.children.forEach(t)}}function mj(e,t){const n=sr.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(li(r),e(s-t))};return He.read(r,!0),()=>li(r)}const xN=["TopLeft","TopRight","BottomLeft","BottomRight"],gj=xN.length,sx=e=>typeof e=="string"?parseFloat(e):e,ox=e=>typeof e=="number"||be.test(e);function yj(e,t,n,r,i,s){i?(e.opacity=Xe(0,n.opacity!==void 0?n.opacity:1,bj(r)),e.opacityExit=Xe(t.opacity!==void 0?t.opacity:1,0,wj(r))):s&&(e.opacity=Xe(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(ho(e,t,r))}function lx(e,t){e.min=t.min,e.max=t.max}function bn(e,t){lx(e.x,t.x),lx(e.y,t.y)}function cx(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function ux(e,t,n,r,i){return e-=t,e=rd(e,1/n,r),i!==void 0&&(e=rd(e,1/i,r)),e}function xj(e,t=0,n=1,r=.5,i,s=e,o=e){if(ir.test(t)&&(t=parseFloat(t),t=Xe(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=Xe(s.min,s.max,r);e===s&&(a-=t),e.min=ux(e.min,t,n,a,i),e.max=ux(e.max,t,n,a,i)}function dx(e,t,[n,r,i],s,o){xj(e,t[n],t[r],t[i],t.scale,s,o)}const vj=["x","scaleX","originX"],kj=["y","scaleY","originY"];function fx(e,t,n,r){dx(e.x,t,vj,n?n.x:void 0,r?r.x:void 0),dx(e.y,t,kj,n?n.y:void 0,r?r.y:void 0)}function hx(e){return e.translate===0&&e.scale===1}function kN(e){return hx(e.x)&&hx(e.y)}function px(e,t){return e.min===t.min&&e.max===t.max}function Ej(e,t){return px(e.x,t.x)&&px(e.y,t.y)}function mx(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function EN(e,t){return mx(e.x,t.x)&&mx(e.y,t.y)}function gx(e){return hn(e.x)/hn(e.y)}function yx(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class _j{constructor(){this.members=[]}add(t){Sy(this.members,t),t.scheduleRender()}remove(t){if(Ny(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 Sj(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 Ei={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ha=typeof window<"u"&&window.MotionDebug!==void 0,yh=["","X","Y","Z"],Nj={visibility:"hidden"},bx=1e3;let Tj=0;function bh(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function _N(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=TS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",He,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&_N(r)}function SN({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Tj++,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,ha&&(Ei.totalNodes=Ei.resolvedTargetDeltas=Ei.recalculatedProjection=0),this.nodes.forEach(Mj),this.nodes.forEach(Pj),this.nodes.forEach(Dj),this.nodes.forEach(Ij),ha&&window.MotionDebug.record(Ei)},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=mj(h,250),fu.hasAnimatedSinceResize&&(fu.hasAnimatedSinceResize=!1,this.nodes.forEach(xx))})}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 b=this.options.transition||u.getDefaultTransition()||zj,{onLayoutAnimationStart:x,onLayoutAnimationComplete:m}=u.getProps(),w=!this.targetLayout||!EN(this.targetLayout,g)||p,y=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||h&&(w||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,y);const v={..._y(b,"layout"),onPlay:x,onComplete:m};(u.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v)}else h||xx(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(jj),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&&_N(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;vx(d.x,o.x,E),vx(d.y,o.y,E),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ia(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),$j(this.relativeTarget,this.relativeTargetOrigin,h,E),y&&Ej(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=nt()),bn(y,this.relativeTarget)),b&&(this.animationValues=u,yj(u,c,this.latestValues,E,w,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=He.update(()=>{fu.hasAnimatedSinceResize=!0,this.currentAnimation=dj(0,bx,{...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(bx),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&&NN(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||nt();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),Us(a,u),Ma(this.projectionDeltaWithTransform,this.layoutCorrected,a,u)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new _j),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&&bh("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(wx),this.root.sharedNodes.clear()}}}function Aj(e){e.updateLayout()}function Cj(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}):NN(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=Fs();Ma(a,r,n.layoutBox);const l=Fs();o?Ma(l,e.applyTransform(i,!0),n.measuredBox):Ma(l,r,n.layoutBox);const c=!kN(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=nt();Ia(g,n.layoutBox,h.layoutBox);const b=nt();Ia(b,r,p.layoutBox),EN(g,b)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=b,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 Mj(e){ha&&Ei.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 Ij(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Oj(e){e.clearSnapshot()}function wx(e){e.clearMeasurements()}function Rj(e){e.isLayoutDirty=!1}function Lj(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function xx(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Pj(e){e.resolveTargetDelta()}function Dj(e){e.calcProjection()}function jj(e){e.resetSkewAndRotation()}function Bj(e){e.removeLeadSnapshot()}function vx(e,t,n){e.translate=Xe(t.translate,0,n),e.scale=Xe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function kx(e,t,n,r){e.min=Xe(t.min,n.min,r),e.max=Xe(t.max,n.max,r)}function $j(e,t,n,r){kx(e.x,t.x,n.x,r),kx(e.y,t.y,n.y,r)}function Fj(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const zj={duration:.45,ease:[.4,0,.1,1]},Ex=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),_x=Ex("applewebkit/")&&!Ex("chrome/")?Math.round:un;function Sx(e){e.min=_x(e.min),e.max=_x(e.max)}function Uj(e){Sx(e.x),Sx(e.y)}function NN(e,t,n){return e==="position"||e==="preserve-aspect"&&!KD(gx(t),gx(n),.2)}function Vj(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const Hj=SN({attachResizeListener:(e,t)=>ll(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wh={current:void 0},TN=SN({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wh.current){const e=new Hj({});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"}),Kj={pan:{Feature:aj},drag:{Feature:oj,ProjectionNode:TN,MeasureLayout:wN}};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 AN(e,t){const n=qj(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function Nx(e){return t=>{t.pointerType==="touch"||cN()||e(t)}}function Wj(e,t,n={}){const[r,i,s]=AN(e,n),o=Nx(a=>{const{target:l}=a,c=t(a);if(typeof c!="function"||!l)return;const u=Nx(d=>{c(d),l.removeEventListener("pointerleave",u)});l.addEventListener("pointerleave",u,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}function Tx(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&&He.postRender(()=>s(t,Dl(t)))}class Gj extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Wj(t,n=>(Tx(this.node,n,"Start"),r=>Tx(this.node,r,"End"))))}unmount(){}}class Yj 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=Pl(ll(this.node.current,"focus",()=>this.onFocus()),ll(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const CN=(e,t)=>t?e===t?!0:CN(e,t.parentElement):!1,Xj=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Qj(e){return Xj.has(e.tagName)||e.tabIndex!==-1}const pa=new WeakSet;function Ax(e){return t=>{t.key==="Enter"&&e(t)}}function xh(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const Zj=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Ax(()=>{if(pa.has(n))return;xh(n,"down");const i=Ax(()=>{xh(n,"up")}),s=()=>xh(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 Cx(e){return Fy(e)&&!cN()}function Jj(e,t,n={}){const[r,i,s]=AN(e,n),o=a=>{const l=a.currentTarget;if(!Cx(a)||pa.has(l))return;pa.add(l);const c=t(a),u=(p,g)=>{window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",h),!(!Cx(p)||!pa.has(l))&&(pa.delete(l),typeof c=="function"&&c(p,{success:g}))},d=p=>{u(p,n.useGlobalTarget||CN(l,p.target))},h=p=>{u(p,!1)};window.addEventListener("pointerup",d,i),window.addEventListener("pointercancel",h,i)};return r.forEach(a=>{!Qj(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",c=>Zj(c,i),i)}),s}function Mx(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&&He.postRender(()=>s(t,Dl(t)))}class eB extends hi{mount(){const{current:t}=this.node;t&&(this.unmount=Jj(t,n=>(Mx(this.node,n,"Start"),(r,{success:i})=>Mx(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Sm=new WeakMap,vh=new WeakMap,tB=e=>{const t=Sm.get(e.target);t&&t(e)},nB=e=>{e.forEach(tB)};function rB({root:e,...t}){const n=e||document;vh.has(n)||vh.set(n,{});const r=vh.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(nB,{root:e,...t})),r[i]}function iB(e,t,n){const r=rB(t);return Sm.set(e,n),r.observe(e),()=>{Sm.delete(e),r.unobserve(e)}}const sB={some:0,all:1};class oB 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:sB[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 iB(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(aB(t,n))&&this.startObserver()}unmount(){}}function aB({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const lB={inView:{Feature:oB},tap:{Feature:eB},focus:{Feature:Yj},hover:{Feature:Gj}},cB={layout:{ProjectionNode:TN,MeasureLayout:wN}},Nm={current:null},MN={current:!1};function uB(){if(MN.current=!0,!!cy)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Nm.current=e.matches;e.addListener(t),t()}else Nm.current=!1}const dB=[...QS,It,ci],fB=e=>dB.find(XS(e)),Ix=new WeakMap;function hB(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,ol(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,ol(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Ox=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class pB{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=Dy,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)),MN.current||uB(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Nm.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Ix.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&&He.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 fo){const n=fo[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):nt()}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=ol(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"&&(GS(i)||$S(i))?i=parseFloat(i):!fB(i)&&ci.test(n)&&(i=KS(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=gy(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 Ty),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class IN extends pB{constructor(){super(...arguments),this.KeyframeResolver=ZS}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 mB(e){return window.getComputedStyle(e)}class gB extends IN{constructor(){super(...arguments),this.type="html",this.renderInstance=bS}readValueFromInstance(t,n){if(is.has(n)){const r=Py(n);return r&&r.default||0}else{const r=mB(t),i=(mS(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return yN(t,n)}build(t,n,r){wy(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Ey(t,n,r)}}class yB extends IN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=nt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(is.has(n)){const r=Py(n);return r&&r.default||0}return n=wS.has(n)?n:hy(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return kS(t,n,r)}build(t,n,r){xy(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){xS(t,n,r,i)}mount(t){this.isSVGTag=ky(t.tagName),super.mount(t)}}const bB=(e,t)=>my(e)?new yB(t):new gB(t,{allowProjection:e!==S.Fragment}),wB=HL({...PD,...lB,...Kj,...cB},bB),Dt=sL(wB);/** + `),()=>{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 xB=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ON=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** + */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 vB={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"};/** + */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 kB=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,...vB,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:ON("lucide",i),...a},[...o.map(([c,u])=>S.createElement(c,u)),...Array.isArray(s)?s:[s]]));/** + */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 de=(e,t)=>{const n=S.forwardRef(({className:r,...i},s)=>S.createElement(kB,{ref:s,iconNode:t,className:ON(`lucide-${xB(e)}`,r),...i}));return n.displayName=`${e}`,n};/** + */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 EB=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 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 RN=de("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + */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 _B=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 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 LN=de("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + */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 SB=de("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + */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 NB=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 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 mo=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 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 zy=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 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 TB=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 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 AB=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 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 Uy=de("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + */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 PN=de("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + */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 CB=de("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + */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=de("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + */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 MB=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 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 IB=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 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 OB=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 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 cl=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 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 hu=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 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 RB=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 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 LB=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 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 PB=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 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 DN=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 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 Rx=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 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 DB=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 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 Vy=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 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 jB=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 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 BB=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 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 $B=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 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 FB=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 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 jN=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 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 zB=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 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 Hy=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 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 UB=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 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 VB=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 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 HB=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 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 BN=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 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 KB=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 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 $N=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 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 qB=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 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 WB=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 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 GB=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 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 gt=de("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + */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 YB=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 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 XB=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 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 QB=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 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 ZB=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 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 JB=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 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 e$=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 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 t$=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 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 Lo=de("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + */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 FN=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 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 Ky=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 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 id=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 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 Tm=de("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + */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 n$=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 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 r$=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 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 Lx=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 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 Yd=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 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 zN=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 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 Po=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 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 i$=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 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 s$=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 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 o$=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 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 a$=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 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 qy=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 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 Xd=de("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Px="veadk_auth_qs";let Jo=null;function l$(){if(Jo!==null)return Jo;const e=window.location.search.replace(/^\?/,"");return e?(sessionStorage.setItem(Px,e),window.history.replaceState(null,"",window.location.pathname+window.location.hash),Jo=e):Jo=sessionStorage.getItem(Px)??"",Jo}function kh(e){const t=l$();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*UN(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 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 Eh="",Wy=new Map;function c$(e,t){Wy.set(e,t)}function u$(){Wy.clear()}function ss(e){const t=Wy.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 d$(){const e=await jt("/list-apps");if(!e.ok)throw new Error(`list-apps failed: ${e.status}`);return e.json()}async function VN(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 Am(e,t){const{app:n,ep:r}=ss(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 HN(e,t){const{app:n,ep:r}=ss(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 Cm(e,t,n){const{app:r,ep:i}=ss(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 f$(e,t,n){const{app:r,ep:i}=ss(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 h$(e){const t=await jt(`/debug/trace/session/${e}`);if(!t.ok)throw new Error(`trace failed: ${t.status}`);return t.json()}async function Gy(e){const{app:t,ep:n}=ss(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 p$(e,t){const{app:n}=ss(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*sd({appName:e,userId:t,sessionId:n,text:r,attachments:i=[],functionResponses:s=[],signal:o}){const{app:a,ep:l}=ss(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 UN(u))yield d}async function KN(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 UN(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 m$(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 _h={studio:!1,features:{newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0},defaultView:"chat",agentsSource:"local"};async function g$(){try{const e=await jt("/web/ui-config");if(!e.ok)return _h;const t=await e.json();return{studio:t.studio??!1,features:{..._h.features,...t.features??{}},defaultView:t.defaultView??"chat",agentsSource:t.agentsSource==="cloud"?"cloud":"local"}}catch{return _h}}async function Sh(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 y$(e,t="cn-beijing"){try{return await VN("","",{runtimeId:e,region:t})}catch{return null}}async function b$(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 qN(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 w$="send_a2ui_json_to_client",x$="validated_a2ui_json",Mm="adk_request_credential";function v$(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 Dx=e=>e.functionCall??e.function_call,Im=e=>e.functionResponse??e.function_response;function k$(e){return e.replace(/-/g,"+").replace(/_/g,"/")}function E$(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:k$(r.data),name:r.displayName??r.display_name})}return t}function jx(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 Nh(e){for(const t of e)t.kind==="thinking"&&(t.done=!0)}function ul(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=>Dx(l)||Im(l));if(t.partial&&!s){for(const l of i)typeof l.text=="string"&&l.text&&jx(n,l.thought?"thinking":"text",l.text);return{blocks:n,liveStart:r}}n.length=r;for(const l of i){const c=Dx(l),u=Im(l);if(typeof l.text=="string"&&l.text)jx(n,l.thought?"thinking":"text",l.text);else if(c)if(Nh(n),c.name===Mm){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:v$(h),authConfig:h,done:!1})}else n.push({kind:"tool",name:c.name??"",args:c.args,done:!1});else if(u){if(Nh(n),u.name===Mm)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===w$){const d=((a=u.response)==null?void 0:a[x$])??[];if(d.length){const h=n[n.length-1];h&&h.kind==="a2ui"?h.messages.push(...d):n.push({kind:"a2ui",messages:d})}}}}return Nh(n),r=n.length,{blocks:n,liveStart:r}}function _$(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=Im(u))==null?void 0:d.name)===Mm})){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=E$(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=ul(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 S$(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 Yy="veadk_local_user",N$=/^[A-Za-z0-9]{1,16}$/;function T$(){try{return localStorage.getItem(Yy)}catch{return null}}function A$(e){try{localStorage.setItem(Yy,e)}catch{}}function C$(){try{localStorage.removeItem(Yy)}catch{}}async function M$(){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 I$(e){const t=window.location.pathname+window.location.search+window.location.hash,n=e.includes("?")?"&":"?";window.location.assign(`${e}${n}redirect=${encodeURIComponent(t)}`)}function O$(){window.location.assign("/oauth2/logout")}async function R$(){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=T$();return t?{status:"authenticated",userId:t,info:{name:t},local:!0}:{status:"unauthenticated",userId:"",local:!0}}function L$(e){return e?String(e.name??e.preferred_username??e.email??e.sub??""):""}const P$="https://findskill.com/";function D$(){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 j$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(D$,{}),"技能中心"]})}function B$(){return f.jsx("iframe",{className:"skill-frame",src:P$,title:"技能中心"})}const $$=50,Bx=48;function F$(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 z$(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 U$(e,t,n){const r=Math.max(0,t-Bx),i=Math.min(e.length,t+n+Bx);return(r>0?"…":"")+e.slice(r,i).trim()+(i{var l;if((l=a.events)!=null&&l.length)return a;try{return await Cm(t,e,a.id)}catch{return a}})),o=[];for(const a of s)for(const{text:l,role:c,ts:u}of F$(a)){const d=l.toLowerCase().indexOf(r);if(d!==-1){o.push({type:"session",appId:t,sessionId:a.id,title:z$(a),snippet:U$(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,$$)}async function H$(e,t){if(!e||!t.trim())return{results:[]};let n;try{n=await p$(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 K$(e,t,n){return e==="session"?{results:await V$(n.userId,n.appId,t)}:e==="web"?H$(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 q$({onClick:e}){return f.jsxs("button",{className:"new-chat",onClick:e,children:[f.jsx(WN,{}),"智能搜索"]})}const $x=[{id:"session",label:"会话",ready:!0},{id:"web",label:"网页",ready:!0},{id:"knowledge",label:"知识库",ready:!1},{id:"memory",label:"记忆",ready:!1}];function W$(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 G$({userId:e,appId:t,agentLabel:n,onOpenSession:r}){var E;const[i,s]=S.useState("session"),[o,a]=S.useState(""),[l,c]=S.useState([]),[u,d]=S.useState(),[h,p]=S.useState(!1),[g,b]=S.useState(!1),x=S.useRef(0);async function m(k,C){const N=k.trim();if(!N)return;const I=++x.current;p(!0),b(!0);let T;try{T=await K$(C,N,{userId:e,appId:t})}catch(B){T={results:[],note:`搜索失败:${String(B)}`}}I===x.current&&(c(T.results),d(T.note),p(!1))}function w(k){s(k),g&&o.trim()&&m(o,k)}const y=(E=$x.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(WN,{}),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(gt,{className:"icon spin"}):f.jsx(LN,{className:"icon"})})]}),f.jsx("div",{className:"search-sources",children:$x.map(k=>f.jsxs("button",{className:`search-tab ${i===k.id?"active":""}`,onClick:()=>w(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:y?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,C)=>f.jsx(Y$,{result:k,agentLabel:n,onOpen:r},C)):f.jsx("div",{className:"search-empty",children:i==="web"?"输入关键词后回车或点击按钮,让当前 Agent 联网搜索。":"输入关键词后回车或点击按钮,搜索当前 Agent 的会话。"}):f.jsx("div",{className:"search-empty",children:"该搜索源即将支持。"})})]})}function Y$({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(QB,{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?` · ${W$(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(Hy,{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(PB,{className:"search-result-ext"})]})]}),e.summary&&f.jsx("div",{className:"search-result-snippet",children:e.summary})]})]});default:return null}}const GN="veadk_agentkit_connections";function Gr(){try{const e=localStorage.getItem(GN);return e?JSON.parse(e):[]}catch{return[]}}function Xy(e){try{localStorage.setItem(GN,JSON.stringify(e))}catch{}}function Gi(e,t){return`agentkit:${e}:${t}`}function YN(e){try{return new URL(e).host}catch{return e}}function jl(e){u$();for(const t of e)for(const n of t.apps)c$(Gi(t.id,n),t.runtimeId?{app:n,runtimeId:t.runtimeId,region:t.region}:{app:n,base:t.base,apiKey:t.apiKey})}function XN(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 Xy(o),jl(o),s}async function QN(e,t,n,r){const i=t.trim().replace(/\/+$/,""),s=await VN(i,n.trim()),o={id:Date.now().toString(36),name:e.trim()||YN(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 Xy(a),jl(a),o}function X$(e){const t=Gr().filter(n=>n.id!==e);return Xy(t),jl(t),t}function ZN(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:Gi(i.id,s),label:o,app:s,remote:!0,host:i.runtimeId?i.name:YN(i.base??"")}}));return[...n,...r]}const Fx=Object.freeze(Object.defineProperty({__proto__:null,addConnection:QN,addRuntimeConnection:XN,buildAgentEntries:ZN,loadConnections:Gr,registerConnections:jl,remoteAppId:Gi,removeConnection:X$},Symbol.toStringTag,{value:"Module"})),zx=15,Q$=1e4;function Th(e,t=Q$){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 Z$({open:e,onClose:t,anchorTop:n=0,agentsSource:r,localApps:i,currentId:s,currentRuntime:o,author:a,onSelect:l}){const[c,u]=S.useState([]),[d,h]=S.useState([""]),[p,g]=S.useState(0),[b,x]=S.useState(!1),[m,w]=S.useState(null),[y,v]=S.useState(!1),[E,k]=S.useState(""),[C,N]=S.useState(""),[I,T]=S.useState(null),[B,j]=S.useState(new Set),[$,M]=S.useState(o),L=S.useRef(!1),O=S.useCallback(async A=>{if(c[A]){g(A);return}const F=d[A];if(F!==void 0){v(!0),k("");try{const q=await Th(Sh(a,{nextToken:F,pageSize:zx}));u(G=>{const Y=[...G];return Y[A]=q.runtimes,Y}),h(G=>{const Y=[...G];return q.nextToken&&(Y[A+1]=q.nextToken),Y}),g(A)}catch(q){k(q instanceof Error?q.message:String(q))}finally{v(!1)}}},[a,d,c]),D=S.useCallback(async()=>{v(!0),k("");try{const A=[];let F="";do{const q=await Th(Sh(a,{scope:"mine",nextToken:F,pageSize:100}));A.push(...q.runtimes),F=q.nextToken}while(F&&A.length<2e3);w(A)}catch(A){k(A instanceof Error?A.message:String(A))}finally{v(!1)}},[a]);S.useEffect(()=>{e&&r==="cloud"&&!L.current&&(L.current=!0,O(0))},[e,r,O]),S.useEffect(()=>{b&&m===null&&r==="cloud"&&D()},[b,m,r,D]),S.useEffect(()=>{e&&M(o)},[e,o]);function R(){j(new Set),b?(w(null),D()):(u([]),h([""]),g(0),L.current=!0,v(!0),k(""),Th(Sh(a,{nextToken:"",pageSize:zx})).then(A=>{u([A.runtimes]),h(A.nextToken?["",A.nextToken]:[""])}).catch(A=>k(A instanceof Error?A.message:String(A))).finally(()=>v(!1)))}const P=!b&&(c[p+1]!==void 0||d[p+1]!==void 0);function _(A){T(A.runtimeId),y$(A.runtimeId,A.region).then(F=>{if(!F||F.length===0){j(Y=>new Set(Y).add(A.runtimeId));return}const q=Object.fromEntries(F.map(Y=>[Y,A.name])),G=XN(A.runtimeId,A.name,A.region,F,q);l(Gi(G.id,F[0])),M({runtimeId:A.runtimeId,name:A.name,region:A.region})}).catch(()=>j(F=>new Set(F).add(A.runtimeId))).finally(()=>T(null))}if(!e)return null;const V=(b?m??[]:c[p]??[]).filter(A=>C?A.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(zy,{className:"icon"})," 选择 Agent"]}),f.jsxs("div",{className:"agentsel-head-actions",children:[r==="cloud"&&f.jsx("button",{className:"agentsel-refresh",onClick:R,title:"刷新",disabled:y,children:f.jsx(FN,{className:`icon ${y?"spin":""}`})}),f.jsx("button",{className:"agentsel-refresh",onClick:t,title:"关闭",children:f.jsx(Xd,{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(A=>f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${A===s?"active":""}`,onClick:()=>{l(A),t()},children:[f.jsx(cl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:A})]})},A))})}):f.jsxs("div",{className:"agentsel-body",children:[f.jsxs("div",{className:"agentsel-tools",children:[f.jsxs("div",{className:"agentsel-search",children:[f.jsx(Tm,{className:"icon"}),f.jsx("input",{value:C,onChange:A=>N(A.target.value),placeholder:"搜索 Runtime 名称"})]}),f.jsxs("label",{className:"agentsel-mine",children:[f.jsx("input",{type:"checkbox",checked:b,onChange:A=>x(A.target.checked)}),"只看我创建的"]})]}),E&&f.jsx("div",{className:"agentsel-error",children:E}),f.jsxs("div",{className:"agentsel-listwrap",children:[V.length===0&&!y?f.jsx("div",{className:"agentsel-empty",children:"暂无 Runtime。"}):f.jsx("ul",{className:"agentsel-list",children:V.map(A=>{const F=B.has(A.runtimeId),q=I===A.runtimeId,G=($==null?void 0:$.runtimeId)===A.runtimeId;return f.jsx("li",{children:f.jsxs("button",{className:`agentsel-item ${G?"active":""}`,onClick:()=>_(A),disabled:q,title:A.runtimeId,children:[q?f.jsx(gt,{className:"icon spin"}):f.jsx(cl,{className:"icon"}),f.jsx("span",{className:"agentsel-item-name",children:A.name}),A.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-${e3(A.status)}`,children:A.status||"-"})]})},A.runtimeId)})}),y&&f.jsxs("div",{className:"agentsel-loading",children:[f.jsx(gt,{className:"icon spin"})," 加载中…"]})]}),!b&&(p>0||P)&&f.jsxs("div",{className:"agentsel-pager",children:[f.jsx("button",{disabled:p===0||y,onClick:()=>void O(p-1),"aria-label":"上一页",children:f.jsx(CB,{className:"icon"})}),f.jsx("span",{className:"agentsel-pager-label",children:p+1}),f.jsx("button",{disabled:!P||y,onClick:()=>void O(p+1),"aria-label":"下一页",children:f.jsx(Wn,{className:"icon"})})]})]})]}),r==="cloud"&&$&&f.jsx(J$,{runtime:$})]})]})}function J$({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),qN(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(gt,{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 e3(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 t3="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 n3(){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 r3({userInfo:e,onLogout:t}){const[n,r]=S.useState(!1);if(!e)return null;const i=L$(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(XB,{className:"icon"})," 退出登录"]})]})]})]})}function i3({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:b,onManageAgents:x,onPickSession:m,onDeleteSession:w,userInfo:y,onLogout:v}){const E=L=>(n==null?void 0:n[L])!==!1,[k,C]=S.useState(null),[N,I]=S.useState(!1),[T,B]=S.useState(0),j=S.useRef(null),$=()=>{j.current&&B(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:t3,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:$,title:"切换 Agent",children:[f.jsx(cl,{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(Z$,{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(Lo,{className:"icon"}),"新会话"]}),E("search")&&f.jsx(q$,{onClick:h}),E("addAgent")&&f.jsxs("button",{className:"new-chat",onClick:p,children:[f.jsx(n3,{}),"添加 Agent"]}),E("skillCenter")&&f.jsx(j$,{onClick:g}),E("manageAgents")&&f.jsxs("button",{className:"new-chat",onClick:x,children:[f.jsx(zy,{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:S$(L.events)})]}),f.jsx("button",{className:"history-more",title:"更多",onClick:()=>C(O=>O===L.id?null:L.id),children:f.jsx(LB,{className:"icon"})}),k===L.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),w(L.id)},children:[f.jsx(Po,{className:"icon"})," 删除"]})})]})]},L.id))]})]}),f.jsx(r3,{userInfo:y,onLogout:v})]})}function s3({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(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(o3,{apps:e,appName:t,onAppChange:n,agentLabel:r})})}function o3({apps:e,appName:t,onAppChange:n,agentLabel:r}){const[i,s]=S.useState(!1),[o,a]=S.useState(null),[l,c]=S.useState({}),[u,d]=S.useState(0),h=S.useRef({}),p=x=>r?r(x):x;function g(x){a(x);const m=h.current[x];if(m){const w=m.getBoundingClientRect(),y=m.closest(".agent-dd");if(y){const v=y.getBoundingClientRect();d(w.top-v.top)}}l[x]===void 0&&(c(w=>({...w,[x]:"loading"})),Gy(x).then(w=>c(y=>({...y,[x]:w}))).catch(()=>c(w=>({...w,[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(PN,{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(a3,{state:l[o],top:u})]})]})}function a3({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(gt,{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(cl,{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(qy,{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 Ux={llm:{icon:mo,label:"LLM"},sequential:{icon:jN,label:"顺序"},parallel:{icon:zN,label:"并行"},loop:{icon:Ky,label:"循环"},a2a:{icon:Hy,label:"A2A"}};function JN(e){return 1+e.children.reduce((t,n)=>t+JN(n),0)}function eT({node:e,activeAgent:t,seen:n,path:r}){const i=Ux[e.type]??Ux.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(eT,{node:u,activeAgent:t,seen:n,path:r},`${u.name}-${d}`))})]})}function Vx({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 Gy(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:[JN(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(eT,{node:i,activeAgent:t,seen:n,path:o})})]})}function l3({onAdded:e,onCancel:t}){const[n,r]=S.useState(""),[i,s]=S.useState(""),[o,a]=S.useState(""),[l,c]=S.useState(!1),[u,d]=S.useState(""),h=n.trim().length>0&&i.trim().length>0&&!l;async function p(){if(h){c(!0),d("");try{const g=await QN(o,n,i,o);if(g.apps.length===0){d("连接成功,但该地址未发现任何 Agent(/list-apps 为空)。"),c(!1);return}e(Gi(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(gt,{className:"icon spin"}):null,l?"连接中…":"连接并添加"]})]})]})})}function c3({author:e}){const[t,n]=S.useState([]),[r,i]=S.useState(!0),[s,o]=S.useState(""),[a,l]=S.useState(null),[c,u]=S.useState(null),[d,h]=S.useState({}),p=S.useCallback(async()=>{i(!0),o("");try{n(await m$(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 w={loading:!1};try{w.detail=await qN(m.runtimeId,m.region)}catch(y){w.error=y instanceof Error?y.message:String(y)}w.detail&&(w.graphs=[{name:w.detail.name,description:w.detail.description,type:"llm",model:w.detail.model,tools:[],children:[]}],w.graphNote="仅显示主 Agent(控制面信息)。"),h(y=>({...y,[m.runtimeId]:w}))}function b(m){const w=c===m.runtimeId;u(w?null:m.runtimeId),!w&&!d[m.runtimeId]&&g(m)}async function x(m){if(!a&&window.confirm(`确定删除 Agent "${m.name}"?该 Runtime 将被永久删除。`)){l(m.runtimeId),o("");try{await b$(m.runtimeId,m.region),n(w=>w.filter(y=>y.runtimeId!==m.runtimeId))}catch(w){o(w instanceof Error?w.message:String(w))}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(FN,{className:`icon ${r?"spin":""}`}),"刷新"]})]}),s&&f.jsx("div",{className:"manage-error",children:s}),r?f.jsxs("div",{className:"manage-empty",children:[f.jsx(gt,{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 w=c===m.runtimeId,y=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:()=>b(m),"aria-expanded":w,children:[w?f.jsx(PN,{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-${f3(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(gt,{className:"icon spin"}):f.jsx(Po,{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:nT(m.createdAt)})]})]}),w&&f.jsx("div",{className:"manage-detail",children:!y||y.loading?f.jsxs("div",{className:"manage-detail-loading",children:[f.jsx(gt,{className:"icon spin"})," 读取详情…"]}):f.jsxs(f.Fragment,{children:[y.error&&f.jsx("div",{className:"manage-error",children:y.error}),y.detail&&f.jsx(u3,{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(tT,{node:v},E)):f.jsx("div",{className:"manage-tree-note",children:y.graphNote})]})})]},m.runtimeId)})})]})}function u3({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(["更新时间",nT(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 d3={llm:"LLM",sequential:"Sequential",parallel:"Parallel",loop:"Loop",a2a:"A2A"};function tT({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:d3[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(tT,{node:n,depth:t+1},r))]})}function f3(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 nT(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 h3={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 p3(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 m3(e){return typeof e=="object"&&e!==null&&typeof e.path=="string"}function g3(e){return typeof e=="object"&&e!==null&&typeof e.call=="string"}function Qy(e,t){if(m3(e))return p3(t,e.path);if(g3(e)){const n=h3[e.call],r={};for(const[i,s]of Object.entries(e.args??{}))r[i]=Qy(s,t);return n?n(r):`[unknown fn: ${e.call}]`}return e}function y3(e,t){const n=Qy(e,t);return n==null?"":typeof n=="string"?n:String(n)}const rT=new Map;function os(e,t){rT.set(e,t)}function b3(e){return rT.get(e)}function w3(e,t,n){const r=t.replace(/^\//,"").split("/").map(s=>s.replace(/~1/g,"/").replace(/~0/g,"~"));let i=e;for(let s=0;sQy(r,e.dataModel),resolveString:r=>y3(r,e.dataModel),dispatchAction:t,render:r=>{if(!r)return null;const i=e.components[r];if(!i)return null;const s=b3(i.component)??x3;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 sT(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 k3(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const E3=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,_3=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,S3={};function Hx(e,t){return(S3.jsx?_3:E3).test(e)}const N3=/[ \t\n\f\r]/g;function T3(e){return typeof e=="object"?e.type==="text"?Kx(e.value):!1:Kx(e)}function Kx(e){return e.replace(N3,"")===""}let Bl=class{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}};Bl.prototype.normal={};Bl.prototype.property={};Bl.prototype.space=void 0;function oT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Bl(n,r,t)}function Om(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 A3=0;const ke=as(),dt=as(),Rm=as(),te=as(),je=as(),Bi=as(),sn=as();function as(){return 2**++A3}const Lm=Object.freeze(Object.defineProperty({__proto__:null,boolean:ke,booleanish:dt,commaOrSpaceSeparated:sn,commaSeparated:Bi,number:te,overloadedBoolean:Rm,spaceSeparated:je},Symbol.toStringTag,{value:"Module"})),Ah=Object.keys(Lm);class Zy extends nn{constructor(t,n,r,i){let s=-1;if(super(t,n),qx(this,"space",i),typeof r=="number")for(;++s4&&n.slice(0,4)==="data"&&R3.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(Wx,D3);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!Wx.test(s)){let o=s.replace(O3,P3);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=Zy}return new i(r,t)}function P3(e){return"-"+e.toLowerCase()}function D3(e){return e.charAt(1).toUpperCase()}const j3=oT([aT,C3,uT,dT,fT],"html"),Jy=oT([aT,M3,uT,dT,fT],"svg");function B3(e){return e.join(" ").trim()}var e0={},Gx=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,$3=/\n/g,F3=/^\s*/,z3=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,U3=/^:\s*/,V3=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,H3=/^[;\s]*/,K3=/^\s+|\s+$/g,q3=` -`,Yx="/",Xx="*",Ti="",W3="comment",G3="declaration";function Y3(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($3);b&&(n+=b.length);var x=g.lastIndexOf(q3);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(F3)}function u(g){var b;for(g=g||[];b=d();)b!==!1&&g.push(b);return g}function d(){var g=s();if(!(Yx!=e.charAt(0)||Xx!=e.charAt(1))){for(var b=2;Ti!=e.charAt(b)&&(Xx!=e.charAt(b)||Yx!=e.charAt(b+1));)++b;if(b+=2,Ti===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:W3,comment:x})}}function h(){var g=s(),b=l(z3);if(b){if(d(),!l(U3))return a("property missing ':'");var x=l(V3),m=g({type:G3,property:Qx(b[0].replace(Gx,Ti)),value:x?Qx(x[0].replace(Gx,Ti)):Ti});return l(H3),m}}function p(){var g=[];u(g);for(var b;b=h();)b!==!1&&(g.push(b),u(g));return g}return c(),p()}function Qx(e){return e?e.replace(K3,Ti):Ti}var X3=Y3,Q3=Nu&&Nu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e0,"__esModule",{value:!0});e0.default=J3;const Z3=Q3(X3);function J3(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,Z3.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 Qd={};Object.defineProperty(Qd,"__esModule",{value:!0});Qd.camelCase=void 0;var eF=/^--[a-zA-Z0-9_-]+$/,tF=/-([a-z])/g,nF=/^[^-]+$/,rF=/^-(webkit|moz|ms|o|khtml)-/,iF=/^-(ms)-/,sF=function(e){return!e||nF.test(e)||eF.test(e)},oF=function(e,t){return t.toUpperCase()},Zx=function(e,t){return"".concat(t,"-")},aF=function(e,t){return t===void 0&&(t={}),sF(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(iF,Zx):e=e.replace(rF,Zx),e.replace(tF,oF))};Qd.camelCase=aF;var lF=Nu&&Nu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},cF=lF(e0),uF=Qd;function Pm(e,t){var n={};return!e||typeof e!="string"||(0,cF.default)(e,function(r,i){r&&i&&(n[(0,uF.camelCase)(r,t)]=i)}),n}Pm.default=Pm;var dF=Pm;const fF=Tl(dF),hT=pT("end"),t0=pT("start");function pT(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 hF(e){const t=t0(e),n=hT(e);if(t&&n)return{start:t,end:n}}function Oa(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Jx(e.position):"start"in e||"end"in e?Jx(e):"line"in e||"column"in e?Dm(e):""}function Dm(e){return ev(e&&e.line)+":"+ev(e&&e.column)}function Jx(e){return Dm(e&&e.start)+"-"+Dm(e&&e.end)}function ev(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=Oa(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 n0={}.hasOwnProperty,pF=new Map,mF=/[A-Z]/g,gF=new Set(["table","tbody","thead","tfoot","tr"]),yF=new Set(["td","th"]),mT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function bF(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=NF(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=SF(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"?Jy:j3,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=gT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function gT(e,t,n){if(t.type==="element")return wF(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return xF(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return kF(e,t,n);if(t.type==="mdxjsEsm")return vF(e,t);if(t.type==="root")return EF(e,t,n);if(t.type==="text")return _F(e,t)}function wF(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=Jy,e.schema=i),e.ancestors.push(t);const s=bT(e,t.tagName,!1),o=TF(e,t);let a=i0(e,t);return gF.has(t.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!T3(l):!0})),yT(e,o,s,t),r0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function xF(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)}dl(e,t.position)}function vF(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);dl(e,t.position)}function kF(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=Jy,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:bT(e,t.name,!0),o=AF(e,t),a=i0(e,t);return yT(e,o,s,t),r0(o,a),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function EF(e,t,n){const r={};return r0(r,i0(e,t)),e.create(t,e.Fragment,r,n)}function _F(e,t){return t.value}function yT(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function r0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function SF(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 NF(e,t){return n;function n(r,i,s,o){const a=Array.isArray(s.children),l=t0(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 TF(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&n0.call(t.properties,i)){const s=CF(e,i,t.properties[i]);if(s){const[o,a]=s;e.tableCellAlignToStyle&&o==="align"&&typeof a=="string"&&yF.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 AF(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 dl(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 dl(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function i0(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:pF;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 rv={}.hasOwnProperty;function xT(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]/),BF=pi(/[#-'*+\--9=?A-Z^-~]/);function od(e){return e!==null&&(e<32||e===127)}const jm=pi(/\d/),$F=pi(/[\dA-Fa-f]/),FF=pi(/[!-/:-@[-`{-~]/);function ge(e){return e!==null&&e<-2}function Be(e){return e!==null&&(e<0||e===32)}function _e(e){return e===-2||e===-1||e===32}const Zd=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 jo(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 _e(l)?(e.enter(n),a(l)):t(l)}function a(l){return _e(l)&&s++o))return;const C=t.events.length;let N=C,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=C;ky;){const E=n[v];t.containerState=E[1],E[0].exit.call(t,e)}n.length=y}function w(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function KF(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 go(e){if(e===null||Be(e)||Yi(e))return 1;if(Zd(e))return 2}function Jd(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};sv(d,-l),sv(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,Jd(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&&_e(k)?Ce(e,w,"linePrefix",s+1)(k):w(k)}function w(k){return k===null||ge(k)?e.check(ov,b,v)(k):(e.enter("codeFlowValue"),y(k))}function y(k){return k===null||ge(k)?(e.exit("codeFlowValue"),w(k)):(e.consume(k),y)}function v(k){return e.exit("codeFenced"),t(k)}function E(k,C,N){let I=0;return T;function T(L){return k.enter("lineEnding"),k.consume(L),k.exit("lineEnding"),B}function B(L){return k.enter("codeFencedFence"),_e(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"),$(L)):N(L)}function $(L){return L===a?(I++,k.consume(L),$):I>=o?(k.exit("codeFencedFenceSequence"),_e(L)?Ce(k,M,"whitespace")(L):M(L)):N(L)}function M(L){return L===null||ge(L)?(k.exit("codeFencedFence"),C(L)):N(L)}}}function r4(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 Mh={name:"codeIndented",tokenize:s4},i4={partial:!0,tokenize:o4};function s4(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(i4,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 o4(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 a4={name:"codeText",previous:c4,resolve:l4,tokenize:u4};function l4(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&&ea(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),ea(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),ea(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 NT(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||od(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||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 b(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=!_e(p)),p===92?h:d)}function h(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function AT(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 Ra(e,t){let n;return r;function r(i){return ge(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):_e(i)?Ce(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const b4={name:"definition",tokenize:x4},w4={partial:!0,tokenize:v4};function x4(e,t,n){const r=this;let i;return s;function s(p){return e.enter("definition"),o(p)}function o(p){return TT.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)?Ra(e,c)(p):c(p)}function c(p){return NT(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function u(p){return e.attempt(w4,d,d)(p)}function d(p){return _e(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 v4(e,t,n){return r;function r(a){return Be(a)?Ra(e,i)(a):n(a)}function i(a){return AT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return _e(a)?Ce(e,o,"whitespace")(a):o(a)}function o(a){return a===null||ge(a)?t(a):n(a)}}const k4={name:"hardBreakEscape",tokenize:E4};function E4(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 _4={name:"headingAtx",resolve:S4,tokenize:N4};function S4(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 N4(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)):_e(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 T4=["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"],lv=["pre","script","style","textarea"],A4={concrete:!0,name:"htmlFlow",resolveTo:I4,tokenize:O4},C4={partial:!0,tokenize:L4},M4={partial:!0,tokenize:R4};function I4(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 O4(e,t,n){const r=this;let i,s,o,a,l;return c;function c(A){return u(A)}function u(A){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(A),d}function d(A){return A===33?(e.consume(A),h):A===47?(e.consume(A),s=!0,b):A===63?(e.consume(A),i=3,r.interrupt?t:_):Vt(A)?(e.consume(A),o=String.fromCharCode(A),x):n(A)}function h(A){return A===45?(e.consume(A),i=2,p):A===91?(e.consume(A),i=5,a=0,g):Vt(A)?(e.consume(A),i=4,r.interrupt?t:_):n(A)}function p(A){return A===45?(e.consume(A),r.interrupt?t:_):n(A)}function g(A){const F="CDATA[";return A===F.charCodeAt(a++)?(e.consume(A),a===F.length?r.interrupt?t:j:g):n(A)}function b(A){return Vt(A)?(e.consume(A),o=String.fromCharCode(A),x):n(A)}function x(A){if(A===null||A===47||A===62||Be(A)){const F=A===47,q=o.toLowerCase();return!F&&!s&&lv.includes(q)?(i=1,r.interrupt?t(A):j(A)):T4.includes(o.toLowerCase())?(i=6,F?(e.consume(A),m):r.interrupt?t(A):j(A)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(A):s?w(A):y(A))}return A===45||Lt(A)?(e.consume(A),o+=String.fromCharCode(A),x):n(A)}function m(A){return A===62?(e.consume(A),r.interrupt?t:j):n(A)}function w(A){return _e(A)?(e.consume(A),w):T(A)}function y(A){return A===47?(e.consume(A),T):A===58||A===95||Vt(A)?(e.consume(A),v):_e(A)?(e.consume(A),y):T(A)}function v(A){return A===45||A===46||A===58||A===95||Lt(A)?(e.consume(A),v):E(A)}function E(A){return A===61?(e.consume(A),k):_e(A)?(e.consume(A),E):y(A)}function k(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),l=A,C):_e(A)?(e.consume(A),k):N(A)}function C(A){return A===l?(e.consume(A),l=null,I):A===null||ge(A)?n(A):(e.consume(A),C)}function N(A){return A===null||A===34||A===39||A===47||A===60||A===61||A===62||A===96||Be(A)?E(A):(e.consume(A),N)}function I(A){return A===47||A===62||_e(A)?y(A):n(A)}function T(A){return A===62?(e.consume(A),B):n(A)}function B(A){return A===null||ge(A)?j(A):_e(A)?(e.consume(A),B):n(A)}function j(A){return A===45&&i===2?(e.consume(A),O):A===60&&i===1?(e.consume(A),D):A===62&&i===4?(e.consume(A),U):A===63&&i===3?(e.consume(A),_):A===93&&i===5?(e.consume(A),P):ge(A)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(C4,V,$)(A)):A===null||ge(A)?(e.exit("htmlFlowData"),$(A)):(e.consume(A),j)}function $(A){return e.check(M4,M,V)(A)}function M(A){return e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),L}function L(A){return A===null||ge(A)?$(A):(e.enter("htmlFlowData"),j(A))}function O(A){return A===45?(e.consume(A),_):j(A)}function D(A){return A===47?(e.consume(A),o="",R):j(A)}function R(A){if(A===62){const F=o.toLowerCase();return lv.includes(F)?(e.consume(A),U):j(A)}return Vt(A)&&o.length<8?(e.consume(A),o+=String.fromCharCode(A),R):j(A)}function P(A){return A===93?(e.consume(A),_):j(A)}function _(A){return A===62?(e.consume(A),U):A===45&&i===2?(e.consume(A),_):j(A)}function U(A){return A===null||ge(A)?(e.exit("htmlFlowData"),V(A)):(e.consume(A),U)}function V(A){return e.exit("htmlFlow"),t(A)}}function R4(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 L4(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt($l,t,n)}}const P4={name:"htmlText",tokenize:D4};function D4(e,t,n){const r=this;let i,s,o;return a;function a(_){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(_),l}function l(_){return _===33?(e.consume(_),c):_===47?(e.consume(_),E):_===63?(e.consume(_),y):Vt(_)?(e.consume(_),N):n(_)}function c(_){return _===45?(e.consume(_),u):_===91?(e.consume(_),s=0,g):Vt(_)?(e.consume(_),w):n(_)}function u(_){return _===45?(e.consume(_),p):n(_)}function d(_){return _===null?n(_):_===45?(e.consume(_),h):ge(_)?(o=d,D(_)):(e.consume(_),d)}function h(_){return _===45?(e.consume(_),p):d(_)}function p(_){return _===62?O(_):_===45?h(_):d(_)}function g(_){const U="CDATA[";return _===U.charCodeAt(s++)?(e.consume(_),s===U.length?b:g):n(_)}function b(_){return _===null?n(_):_===93?(e.consume(_),x):ge(_)?(o=b,D(_)):(e.consume(_),b)}function x(_){return _===93?(e.consume(_),m):b(_)}function m(_){return _===62?O(_):_===93?(e.consume(_),m):b(_)}function w(_){return _===null||_===62?O(_):ge(_)?(o=w,D(_)):(e.consume(_),w)}function y(_){return _===null?n(_):_===63?(e.consume(_),v):ge(_)?(o=y,D(_)):(e.consume(_),y)}function v(_){return _===62?O(_):y(_)}function E(_){return Vt(_)?(e.consume(_),k):n(_)}function k(_){return _===45||Lt(_)?(e.consume(_),k):C(_)}function C(_){return ge(_)?(o=C,D(_)):_e(_)?(e.consume(_),C):O(_)}function N(_){return _===45||Lt(_)?(e.consume(_),N):_===47||_===62||Be(_)?I(_):n(_)}function I(_){return _===47?(e.consume(_),O):_===58||_===95||Vt(_)?(e.consume(_),T):ge(_)?(o=I,D(_)):_e(_)?(e.consume(_),I):O(_)}function T(_){return _===45||_===46||_===58||_===95||Lt(_)?(e.consume(_),T):B(_)}function B(_){return _===61?(e.consume(_),j):ge(_)?(o=B,D(_)):_e(_)?(e.consume(_),B):I(_)}function j(_){return _===null||_===60||_===61||_===62||_===96?n(_):_===34||_===39?(e.consume(_),i=_,$):ge(_)?(o=j,D(_)):_e(_)?(e.consume(_),j):(e.consume(_),M)}function $(_){return _===i?(e.consume(_),i=void 0,L):_===null?n(_):ge(_)?(o=$,D(_)):(e.consume(_),$)}function M(_){return _===null||_===34||_===39||_===60||_===61||_===96?n(_):_===47||_===62||Be(_)?I(_):(e.consume(_),M)}function L(_){return _===47||_===62||Be(_)?I(_):n(_)}function O(_){return _===62?(e.consume(_),e.exit("htmlTextData"),e.exit("htmlText"),t):n(_)}function D(_){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(_),e.exit("lineEnding"),R}function R(_){return _e(_)?Ce(e,P,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(_):P(_)}function P(_){return e.enter("htmlTextData"),o(_)}}const a0={name:"labelEnd",resolveAll:F4,resolveTo:z4,tokenize:U4},j4={tokenize:V4},B4={tokenize:H4},$4={tokenize:K4};function F4(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"),_e(c)?Ce(e,a,"whitespace")(c):a(c))}}const Gt={continuation:{tokenize:tz},exit:rz,name:"list",tokenize:ez},Z4={partial:!0,tokenize:iz},J4={partial:!0,tokenize:nz};function ez(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:jm(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(pu,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 jm(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($l,r.interrupt?n:u,e.attempt(Z4,h,d))}function u(p){return r.containerState.initialBlankLine=!0,s++,h(p)}function d(p){return _e(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 tz(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check($l,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||!_e(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(J4,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 nz(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 rz(e){e.exit(this.containerState.type)}function iz(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!_e(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const cv={name:"setextUnderline",resolveTo:sz,tokenize:oz};function sz(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 oz(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"),_e(c)?Ce(e,l,"lineSuffix")(c):l(c))}function l(c){return c===null||ge(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const az={tokenize:lz};function lz(e){const t=this,n=e.attempt($l,r,e.attempt(this.parser.constructs.flowInitial,i,Ce(e,e.attempt(this.parser.constructs.flow,i,e.attempt(h4,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 cz={resolveAll:MT()},uz=CT("string"),dz=CT("text");function CT(e){return{resolveAll:MT(e==="text"?fz: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 Sz(e,t){let n=-1;const r=[];let i;for(;++n({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]||dv).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})},ye=-1;++ye0&&(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 $z(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Fz(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function zz(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=jo(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 Uz(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 Vz(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function RT(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 Hz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RT(e,t);const i={src:jo(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 Kz(e,t){const n={src:jo(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 qz(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 Wz(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return RT(e,t);const i={href:jo(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 Gz(e,t){const n={href:jo(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 Yz(e,t,n){const r=e.all(t),i=n?Xz(n):LT(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(;++a0){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 Qz(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=t0(t.children[1]),l=hT(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 n5(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(pv(t.slice(i),i>0,!1)),s.join("")}function pv(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===fv||s===hv;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===fv||s===hv;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function s5(e,t){const n={type:"text",value:i5(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function o5(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const a5={blockquote:Dz,break:jz,code:Bz,delete:$z,emphasis:Fz,footnoteReference:zz,heading:Uz,html:Vz,imageReference:Hz,image:Kz,inlineCode:qz,linkReference:Wz,link:Gz,listItem:Yz,list:Qz,paragraph:Zz,root:Jz,strong:e5,table:t5,tableCell:r5,tableRow:n5,text:s5,thematicBreak:o5,toml:Ac,yaml:Ac,definition:Ac,footnoteDefinition:Ac};function Ac(){}const PT=-1,ef=0,La=1,ad=2,l0=3,c0=4,u0=5,d0=6,DT=7,jT=8,BT=typeof self=="object"?self:globalThis,mv=(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 BT[e](t)},l5=(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 ef:case PT:return n(o,i);case La:{const a=n([],i);for(const l of o)a.push(r(l));return a}case ad:{const a=n({},i);for(const[l,c]of o)a[r(l)]=r(c);return a}case l0:return n(new Date(o),i);case c0:{const{source:a,flags:l}=o;return n(new RegExp(a,l),i)}case u0:{const a=n(new Map,i);for(const[l,c]of o)a.set(r(l),r(c));return a}case d0:{const a=n(new Set,i);for(const l of o)a.add(r(l));return a}case DT:{const{name:a,message:l}=o;return n(typeof BT[a]=="function"?mv(a,l):new Error(l),i)}case jT: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(mv(s,o),i)};return r},gv=e=>l5(new Map,e)(0),_i="",{toString:c5}={},{keys:u5}=Object,ta=e=>{const t=typeof e;if(t!=="object"||!e)return[ef,t];const n=c5.call(e).slice(8,-1);switch(n){case"Array":return[La,_i];case"Object":return[ad,_i];case"Date":return[l0,_i];case"RegExp":return[c0,_i];case"Map":return[u0,_i];case"Set":return[d0,_i];case"DataView":return[La,n]}return n.includes("Array")?[La,n]:e instanceof Error?[DT,e.name||"Error"]:[ad,n]},Cc=([e,t])=>e===ef&&(t==="function"||t==="symbol"),d5=(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]=ta(o);switch(a){case ef:{let u=o;switch(l){case"bigint":a=jT,u=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);u=null;break;case"undefined":return i([PT],o)}return i([a,u],o)}case La:{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 ad:{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 u5(o))(e||!Cc(ta(o[h])))&&u.push([s(h),s(o[h])]);return d}case l0:return i([a,isNaN(o.getTime())?_i:o.toISOString()],o);case c0:{const{source:u,flags:d}=o;return i([a,{source:u,flags:d}],o)}case u0:{const u=[],d=i([a,u],o);for(const[h,p]of o)(e||!(Cc(ta(h))||Cc(ta(p))))&&u.push([s(h),s(p)]);return d}case d0:{const u=[],d=i([a,u],o);for(const h of o)(e||!Cc(ta(h)))&&u.push(s(h));return d}}const{message:c}=o;return i([a,{name:l,message:c}],o)};return s},yv=(e,{json:t,lossy:n}={})=>{const r=[];return d5(!(t||n),!!t,new Map,r)(e),r},ld=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?gv(yv(e,t)):structuredClone(e):(e,t)=>gv(yv(e,t));function f5(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 h5(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function p5(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||f5,r=e.options.footnoteBackLabel||h5,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 w=typeof n=="string"?n:n(l,p);typeof w=="string"&&(w={type:"text",value:w}),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(w)?w:[w]})}const x=u[u.length-1];if(x&&x.type==="element"&&x.tagName==="p"){const w=x.children[x.children.length-1];w&&w.type==="text"?w.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:{...ld(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`});const c={type:"element",tagName:"li",properties:s,children:o};return e.patch(t,c),e.applyData(t,c)}function s5(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r1}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 Fl=function(e){if(e==null)return b5;if(typeof e=="function")return tf(e);if(typeof e=="object")return Array.isArray(e)?m5(e):g5(e);if(typeof e=="string")return y5(e);throw new Error("Expected function, string, or object as test")};function m5(e){const t=[];let n=-1;for(;++n":""))+")"})}return h;function h(){let p=$T,g,b,x;if((!t||s(l,c,u[u.length-1]||void 0))&&(p=k5(n(l,u)),p[0]===$m))return p;if("children"in l&&l.children){const m=l;if(m.children&&p[0]!==v5)for(b=(r?m.children.length:-1)+o,x=u.concat(m);b>-1&&b":""))+")"})}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 bv(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function wv(e,t){const n=_5(e,t),r=n.one(e,void 0),i=p5(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` -`},i),s}function C5(e,t){return e&&"run"in e?async function(n,r){const i=wv(n,{file:r,...t});await e.run(i,r)}:function(n,r){return wv(n,{file:r,...e||t})}}function xv(e){if(e)throw e}var mu=Object.prototype.hasOwnProperty,zT=Object.prototype.toString,vv=Object.defineProperty,kv=Object.getOwnPropertyDescriptor,Ev=function(t){return typeof Array.isArray=="function"?Array.isArray(t):zT.call(t)==="[object Array]"},_v=function(t){if(!t||zT.call(t)!=="[object Object]")return!1;var n=mu.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&mu.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||mu.call(t,i)},Sv=function(t,n){vv&&n.name==="__proto__"?vv(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Nv=function(t,n){if(n==="__proto__")if(mu.call(t,n)){if(kv)return kv(t,n).value}else return;return t[n]},M5=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:R5,dirname:L5,extname:P5,join:D5,sep:"/"};function R5(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');zl(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 L5(e){if(zl(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 P5(e){zl(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 D5(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function B5(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 zl(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const $5={cwd:F5};function F5(){return"/"}function Um(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function z5(e){if(typeof e=="string")e=new URL(e);else if(!Um(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 U5(e)}function U5(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 b=r[h][1];zm(b)&&zm(p)&&(p=Oh(!0,b,p)),r[h]=[c,p,...g]}}}}const q5=new f0().freeze();function Dh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function jh(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Bh(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 Av(e){if(!zm(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Cv(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Mc(e){return W5(e)?e:new UT(e)}function W5(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function G5(e){return typeof e=="string"||Y5(e)}function Y5(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const X5="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Mv=[],Iv={allowDangerousHtml:!0},Q5=/^(https?|ircs?|mailto|xmpp)$/i,Z5=[{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 J5(e){const t=eU(e),n=tU(e);return nU(t.runSync(t.parse(n),n),e)}function eU(e){const t=e.rehypePlugins||Mv,n=e.remarkPlugins||Mv,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Iv}:Iv;return q5().use(Pz).use(n).use(C5,r).use(t)}function tU(e){const t=e.children||"",n=new UT;return typeof t=="string"&&(n.value=t),n}function nU(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,l=t.urlTransform||rU;for(const u of Z5)Object.hasOwn(t,u.from)&&(""+u.from+(u.to?"use `"+u.to+"` instead":"remove it")+X5+u.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),nf(e,c),bF(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 Ch)if(Object.hasOwn(Ch,p)&&Object.hasOwn(u.properties,p)){const g=u.properties[p],b=Ch[p];(b===null||b.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 rU(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||Q5.test(e.slice(0,t))?e:""}function Ov(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 iU(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function sU(e,t,n){const i=Fl((n||{}).ignore||[]),s=oU(t);let o=-1;for(;++o0?{type:"text",value:k}:void 0),k===!1?h.lastIndex=v+1:(g!==v&&w.push({type:"text",value:c.value.slice(g,v)}),Array.isArray(k)?w.push(...k):k&&w.push(k),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=Ov(e,"(");let s=Ov(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)||Zd(n))&&(!t||n!==47)}HT.peek=CU;function vU(){this.buffer()}function kU(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function EU(){this.buffer()}function _U(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function SU(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 NU(e){this.exit(e)}function TU(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 AU(e){this.exit(e)}function CU(){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 MU(){return{enter:{gfmFootnoteCallString:vU,gfmFootnoteCall:kU,gfmFootnoteDefinitionLabelString:EU,gfmFootnoteDefinition:_U},exit:{gfmFootnoteCallString:SU,gfmFootnoteCall:NU,gfmFootnoteDefinitionLabelString:TU,gfmFootnoteDefinition:AU}}}function IU(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"),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?KT:OU))),c(),l}}function OU(e,t,n){return t===0?e:KT(e,t,n)}function KT(e,t,n){return(n?"":" ")+e}const RU=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];qT.peek=BU;function LU(){return{canContainEols:["delete"],enter:{strikethrough:DU},exit:{strikethrough:jU}}}function PU(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:RU}],handlers:{delete:qT}}}function DU(e){this.enter({type:"delete",children:[]},e)}function jU(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 BU(){return"~"}function $U(e){return e.length}function FU(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||$U,s=[],o=[],a=[],l=[];let c=0,u=-1;for(;++uc&&(c=e[u].length);++ml[m])&&(l[m]=y)}b.push(w)}o[u]=b,a[u]=x}let d=-1;if(typeof r=="object"&&"length"in r)for(;++dl[d]&&(l[d]=w),p[d]=w),h[d]=y}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()),VU);return i(),o}function VU(e,t,n){return">"+(n?"":" ")+e}function HU(e,t){return Lv(e,t.inConstruct,!0)&&!Lv(e,t.notInConstruct,!1)}function Lv(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 qU(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 WU(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=WU(n),s=e.value||"",o=i==="`"?"GraveAccent":"Tilde";if(qU(e,n)){const d=n.enter("codeIndented"),h=n.indentLines(s,YU);return d(),h}const a=n.createTracker(r),l=i.repeat(Math.max(KU(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:` +`}),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 YU(e,t,n){return(n?"":" ")+e}function h0(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 XU(e,t,n,r){const i=h0(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 QU(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 fl(e){return"&#x"+e.toString(16).toUpperCase()+";"}function cd(e,t,n){const r=go(e),i=go(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}}WT.peek=ZU;function WT(e,t,n,r){const i=QU(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=cd(r.before.charCodeAt(r.before.length-1),c,i);u.inside&&(l=fl(c)+l.slice(1));const d=l.charCodeAt(l.length-1),h=cd(r.after.charCodeAt(0),d,i);h.inside&&(l=l.slice(0,-1)+fl(d));const p=o.move(i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:u.outside},a+l+p}function ZU(e,t,n){return n.options.emphasis||"*"}function JU(e,t){let n=!1;return nf(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,$m}),!!((!e.depth||e.depth<3)&&s0(e)&&(t.options.setext||n))}function e6(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),s=n.createTracker(r);if(JU(e,n)){const u=n.enter("headingSetext"),d=n.enter("phrasing"),h=n.containerPhrasing(e,{...s.current(),before:` +`)),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=fl(c.charCodeAt(0))+c.slice(1)),c=c?o+" "+c:o,n.options.closeAtx&&(c+=" "+o),l(),a(),c}GT.peek=t6;function GT(e){return e.value||""}function t6(){return"<"}YT.peek=n6;function YT(e,t,n,r){const i=h0(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 n6(){return"!"}XT.peek=r6;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 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 r6(){return"!"}QT.peek=i6;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=s6;function JT(e,t,n,r){const i=h0(n),s=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let a,l;if(ZT(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 s6(e,t,n){return ZT(e,n)?"<":"["}eA.peek=o6;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 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 o6(){return"["}function p0(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 a6(e){const t=p0(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 l6(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 c6(e,t,n,r){const i=n.enter("list"),s=n.bulletCurrent;let o=e.ordered?l6(n):p0(n);const a=e.ordered?o==="."?")":".":a6(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),tA(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 f6(e,t,n,r){const i=n.enter("paragraph"),s=n.enter("phrasing"),o=n.containerPhrasing(e,r);return s(),i(),o}const h6=Fl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function p6(e,t,n,r){return(e.children.some(function(o){return h6(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function m6(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=g6;function nA(e,t,n,r){const i=m6(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=cd(r.before.charCodeAt(r.before.length-1),c,i);u.inside&&(l=fl(c)+l.slice(1));const d=l.charCodeAt(l.length-1),h=cd(r.after.charCodeAt(0),d,i);h.inside&&(l=l.slice(0,-1)+fl(d));const p=o.move(i+i);return s(),n.attentionEncodeSurroundingInfo={after:h.outside,before:u.outside},a+l+p}function g6(e,t,n){return n.options.strong||"*"}function y6(e,t,n,r){return n.safe(e.value,r)}function b6(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 w6(e,t,n){const r=(tA(n)+(n.options.ruleSpaces?" ":"")).repeat(b6(n));return n.options.ruleSpaces?r.slice(0,-1):r}const rA={blockquote:UU,break:Pv,code:GU,definition:XU,emphasis:WT,hardBreak:Pv,heading:e6,html:GT,image:YT,imageReference:XT,inlineCode:QT,link:JT,linkReference:eA,list:c6,listItem:d6,paragraph:f6,root:p6,strong:nA,text:y6,thematicBreak:w6};function x6(){return{enter:{table:v6,tableData:Dv,tableHeader:Dv,tableRow:E6},exit:{codeText:_6,table:k6,tableData:Uh,tableHeader:Uh,tableRow:Uh}}}function v6(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 k6(e){this.exit(e),this.data.inTable=void 0}function E6(e){this.enter({type:"tableRow",children:[]},e)}function Uh(e){this.exit(e)}function Dv(e){this.enter({type:"tableCell",children:[]},e)}function _6(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,S6));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function S6(e,t){return t==="|"?t:e}function N6(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(u(p,b,x),p.align)}function a(p,g,b,x){const m=d(p,b,x),w=c([m]);return w.slice(0,w.indexOf(` -`))}function l(p,g,b,x){const m=b.enter("tableCell"),w=b.enter("phrasing"),y=b.containerPhrasing(p,{...x,before:s,after:s});return w(),m(),y}function c(p,g){return FU(p,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function u(p,g,b){const x=p.children;let m=-1;const w=[],y=g.enter("table");for(;++m0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const H6={tokenize:Z6,partial:!0};function K6(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Y6,continuation:{tokenize:X6},exit:Q6}},text:{91:{name:"gfmFootnoteCall",tokenize:G6},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:q6,resolveTo:W6}}}}function q6(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 W6(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(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 Y6(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 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?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 X6(e,t,n){return e.check($l,t,e.attempt(H6,t,n))}function Q6(e){e.exit("gfmFootnoteDefinition")}function Z6(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 J6(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=go(g);return x._open=!m||m===2&&!!b,x._close=!b||b===2&&!!m,a(g)}}}class eV{constructor(){this.map=[]}add(t,n,r){tV(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 tV(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){const M=r.events[B][1].type;if(M==="lineEnding"||M==="linePrefix")B--;else break}const j=B>-1?r.events[B][1].type:null,$=j==="tableHead"||j==="tableRow"?k:l;return $===k&&r.parser.lazy[r.now().line]?n(T):$(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):_e(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,_e(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"),b):E(T)}function b(T){return _e(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"),w(T)):E(T)}function w(T){return T===45?(e.consume(T),w):T===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(T),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(T))}function y(T){return _e(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"),C(T)}function C(T){return T===124?(e.enter("tableCellDivider"),e.consume(T),e.exit("tableCellDivider"),C):T===null||ge(T)?(e.exit("tableRow"),t(T)):_e(T)?Ce(e,C,"whitespace")(T):(e.enter("data"),N(T))}function N(T){return T===null||T===124||Be(T)?(e.exit("data"),C(T)):(e.consume(T),T===92?I:N)}function I(T){return T===92||T===124?(e.consume(T),N):N(T)}}function sV(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 eV;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",d,t]])}return i!==void 0&&(s.end=Object.assign({},ks(t.events,i)),e.add(i,0,[["exit",s,t]]),s=void 0),s}function Bv(e,t,n,r,i){const s=[],o=ks(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 ks(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const oV={name:"tasklistCheck",tokenize:lV};function aV(){return{text:{91:oV}}}function lV(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):_e(l)?e.check({tokenize:cV},t,n)(l):n(l)}}function cV(e,t,n){return Ce(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function uV(e){return xT([P6(),K6(),J6(e),rV(),aV()])}const dV={};function fV(e){const t=this,n=e||dV,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(uV(n)),s.push(I6()),o.push(O6(n))}const $v=function(e,t,n){const r=Fl(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 hA(e,t,n){return e.type==="element"?xV(e,t,n):e.type==="text"?n.whitespace==="normal"?pA(e,n):vV(e):[]}function xV(e,t,n){const r=mA(e,n),i=e.children||[];let s=-1,o=[];if(bV(e))return o;let a,l;for(Hm(e)||Vv(e)&&$v(t,e,Vv)?l=` -`:yV(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})"/})]},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"],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},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],C={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 AV(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=TV(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:/'/},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},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._-]+)+/},w=["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:x,built_in:[...w,...y,"set","shopt",...v,...E]},contains:[p,e.SHEBANG(),g,d,s,o,m,a,l,c,u,n]}}function CV(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],w={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},y={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 MV(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"],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},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],C={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 IV(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]},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,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,b,g,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},w={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,w,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,w,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,w],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 OV=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_-]*/}}),RV=["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"],LV=["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"],PV=[...RV,...LV],DV=["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(),jV=["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(),BV=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),$V=["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 FV(e){const t=e.regex,n=OV(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:":("+jV.join("|")+")"},{begin:":(:)?("+BV.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+$V.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:DV.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...a,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+PV.join("|")+")\\b"}]}}function zV(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 UV(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 HV(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"]}]},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,Hv,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Hv,c]}}const Kv="[A-Za-z$_][0-9A-Za-z$_]*",KV=["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"],qV=["true","false","null","undefined","NaN","Infinity"],wA=["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"],xA=["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"],WV=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],GV=[].concat(vA,wA,xA);function kA(e){const t=e.regex,n=(R,{after:P})=>{const _="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(R,P)=>{const _=R[0].length+R.index,U=R.input[_];if(U==="<"||U===","){P.ignoreMatch();return}U===">"&&(n(R,{after:_})||P.ignoreMatch());let V;const A=R.input.substring(_);if(V=A.match(/^\s*=/)){P.ignoreMatch();return}if((V=A.match(/^\s+extends\s+/))&&V.index===0){P.ignoreMatch();return}}},a={$pattern:Kv,keyword:KV,literal:qV,built_in:GV,"variable.language":WV},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"}},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]},w={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,x,{match:/\$\d+/},d];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(w,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},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:{_:[...wA,...xA]}},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:/%/},B={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function j(R){return t.concat("(?!",R.join("|"),")")}const $={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,b,x,w,{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:[w,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,C,L,{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 _s="[0-9](_*[0-9])*",Lc=`\\.(${_s})`,Pc="[0-9a-fA-F](_*[0-9a-fA-F])*",YV={className:"number",variants:[{begin:`(\\b(${_s})((${Lc})|\\.)?|(${Lc}))[eE][+-]?(${_s})[fFdD]?\\b`},{begin:`\\b(${_s})((${Lc})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Lc})[fFdD]?\\b`},{begin:`\\b(${_s})[fFdD]\\b`},{begin:`\\b0[xX]((${Pc})\\.?|(${Pc})?\\.(${Pc}))[pP][+-]?(${_s})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Pc})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function XV(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=YV,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 QV=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_-]*/}}),ZV=["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"],JV=["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"],e9=[...ZV,...JV],t9=["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(),_A=["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(),n9=["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(),r9=_A.concat(SA).sort().reverse();function i9(e){const t=QV(e),n=r9,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}},u={$pattern:/[a-z-]+/,keyword:r,attribute:t9.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("+n9.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: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("+e9.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:":("+_A.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SA.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:h},{begin:"!important"},t.FUNCTION_DISPATCH]},w={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[m]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,x,w,g,m,p,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function s9(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}/}]},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 o9(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 a9(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=(b,x,m="\\1")=>{const w=m==="\\1"?m:t.concat(m,x);return t.concat(t.concat("(?:",b,")"),x,/(?:\\.|[^\\\/])*?/,w,/(?:\\.|[^\\\/])*?/,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: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 l9(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]},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"],w=["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:w},E=M=>M.map(L=>L.replace(/\|\d+$/,"")),k={variants:[{match:[/new/,t.concat(p,"+"),t.concat("(?!",E(w).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(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[I,o,N,e.C_BLOCK_COMMENT_MODE,g,b,k]},B={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",E(m).join("\\b|"),"|",E(w).join("\\b|"),"\\b)"),r,t.concat(p,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[T]};T.contains.push(B);const j=[I,N,e.C_BLOCK_COMMENT_MODE,g,b,k],$={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:[$,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,B,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",$,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 c9(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 u9(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:/#/},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("|")}`,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,d,e.HASH_COMMENT_MODE]}]};return c.contains=[d,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"},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:[b,m,d]}]}}function d9(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function f9(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 h9(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"}]},b={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:[b]},{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,b.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 p9(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 m9=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_-]*/}}),g9=["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"],y9=["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"],b9=[...g9,...y9],w9=["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(),v9=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),k9=["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 E9(e){const t=m9(e),n=v9,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("+b9.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("+k9.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:w9.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 _9(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function S9(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)),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 w(E){return t.concat(/\b/,t.either(...E.map(k=>k.replace(/\s+/,"\\s+"))),/\b/)}const y={scope:"keyword",match:w(h),relevance:0};function v(E,{exceptions:k,when:C}={}){const N=C;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:w(o)},y,m,b,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,x]}}function CA(e){return e?typeof e=="string"?e:e.source:null}function na(e){return De("(?=",e,")")}function De(...e){return e.map(n=>CA(n)).join("")}function N9(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"("+(N9(e).capture?"":"?:")+e.map(r=>CA(r)).join("|")+")"}const y0=e=>De(/\b/,e,/\w$/.test(e)?/\b/:/\B/),T9=["Protocol","Type"].map(y0),qv=["init","self"].map(y0),A9=["Any","Self"],Vh=["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"],Wv=["false","nil","true"],C9=["assignment","associativity","higherThan","left","lowerThan","none","right"],M9=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Gv=["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]/),Hh=De(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]/),ud=Ft(OA,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Qn=De(OA,ud,"*"),Dc=De(/[A-Z]/,ud,"*"),I9=["attached","autoclosure",De(/convention\(/,Ft("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",De(/objc\(/,Qn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],O9=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function R9(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,Ft(...T9,...qv)],className:{2:"keyword"}},s={match:De(/\./,Ft(...Vh)),relevance:0},o=Vh.filter(ne=>typeof ne=="string").concat(["_|0"]),a=Vh.filter(ne=>typeof ne!="string").concat(A9).map(y0),l={variants:[{className:"keyword",match:Ft(...a,...qv)}]},c={$pattern:Ft(/\b\w+/,/#\w+/),keyword:o.concat(M9),literal:Wv},u=[i,s,l],d={match:De(/\./,Ft(...Gv)),relevance:0},h={className:"built_in",match:De(/\b/,Ft(...Gv),/(?=\()/)},p=[d,h],g={match:/->/,relevance:0},b={className:"operator",relevance:0,variants:[{match:Hh},{match:`\\.(\\.|${IA})+`}]},x=[g,b],m="([0-9]_*)+",w="([0-9a-fA-F]_*)+",y={className:"number",relevance:0,variants:[{match:`\\b(${m})(\\.(${m}))?([eE][+-]?(${m}))?\\b`},{match:`\\b0x(${w})(\\.(${w}))?([pP][+-]?(${m}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},v=(ne="")=>({className:"subst",variants:[{match:De(/\\/,ne,/[0\\tnr"']/)},{match:De(/\\/,ne,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(ne="")=>({className:"subst",match:De(/\\/,ne,/[\t ]*(?:[\r\n]|\r\n)/)}),k=(ne="")=>({className:"subst",label:"interpol",begin:De(/\\/,ne,/\(/),end:/\)/}),C=(ne="")=>({begin:De(ne,/"""/),end:De(/"""/,ne),contains:[v(ne),E(ne),k(ne)]}),N=(ne="")=>({begin:De(ne,/"/),end:De(/"/,ne),contains:[v(ne),k(ne)]}),I={className:"string",variants:[C(),C("#"),C("##"),C("###"),N(),N("#"),N("##"),N("###")]},T=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],B={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:T},j=ne=>{const he=De(ne,/\//),ce=De(/\//,ne);return{begin:he,end:ce,contains:[...T,{scope:"comment",begin:`#(?!.*${ce})`,end:/$/}]}},$={scope:"regexp",variants:[j("###"),j("##"),j("#"),B]},M={match:De(/`/,Qn,/`/)},L={className:"variable",match:/\$\d+/},O={className:"variable",match:`\\$${ud}+`},D=[M,L,O],R={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:O9,contains:[...x,y,I]}]}},P={scope:"keyword",match:De(/@/,Ft(...I9),na(Ft(/\(/,/\s+/)))},_={scope:"meta",match:De(/@/,Qn)},U=[R,P,_],V={match:na(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:De(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ud,"+")},{className:"type",match:Dc,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:De(/\s+&\s+/,na(Dc)),relevance:0}]},A={begin://,keywords:c,contains:[...r,...u,...U,g,V]};V.contains.push(A);const F={match:De(Qn,/\s*:/),keywords:"_|0",relevance:0},q={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",F,...r,$,...u,...p,...x,y,I,...D,...U,V]},G={begin://,keywords:"repeat each",contains:[...r,V]},Y={begin:Ft(na(De(Qn,/\s*:/)),na(De(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,y,I,...U,V,q],endsParent:!0,illegal:/["']/},Q={match:[/(func|macro)/,/\s+/,Ft(M.match,Qn,Hh)],className:{1:"keyword",3:"title.function"},contains:[G,H,t],illegal:[/\[/,/%/]},se={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[G,H,t],illegal:/\[|%/},le={match:[/operator/,/\s+/,Hh],className:{1:"keyword",3:"title"}},ie={begin:[/precedencegroup/,/\s+/,Dc],className:{1:"keyword",3:"title"},contains:[V],keywords:[...C9,...Wv],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"}},ae={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:Dc},...u],relevance:0}]};for(const ne of I.variants){const he=ne.contains.find(Te=>Te.label==="interpol");he.keywords=c;const ce=[...u,...p,...x,y,I,...D];he.contains=[...ce,{begin:/\(/,end:/\)/,contains:["self",...ce]}]}return{name:"Swift",keywords:c,contains:[...r,Q,se,K,re,ae,le,ie,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},$,...u,...p,...x,y,I,...D,...U,V,q]}}const dd="[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 L9(e){const t=e.regex,n=(R,{after:P})=>{const _="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(R,P)=>{const _=R[0].length+R.index,U=R.input[_];if(U==="<"||U===","){P.ignoreMatch();return}U===">"&&(n(R,{after:_})||P.ignoreMatch());let V;const A=R.input.substring(_);if(V=A.match(/^\s*=/)){P.ignoreMatch();return}if((V=A.match(/^\s+extends\s+/))&&V.index===0){P.ignoreMatch();return}}},a={$pattern:dd,keyword:RA,literal:LA,built_in:$A,"variable.language":BA},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"}},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]},w={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,x,{match:/\$\d+/},d];h.contains=y.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(y)});const v=[].concat(w,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},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)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[k],illegal:/%/},B={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function j(R){return t.concat("(?!",R.join("|"),")")}const $={match:t.concat(/\b/,j([...jA,"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,b,x,w,{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:[w,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,C,L,{match:/\$[(.]/}]}}function FA(e){const t=e.regex,n=L9(e),r=dd,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:dd,keyword:RA.concat(l),literal:LA,built_in:$A.concat(i),"variable.language":BA},u={className:"meta",begin:"@"+r},d=(b,x,m)=>{const w=b.contains.findIndex(y=>y.label===x);if(w===-1)throw new Error("can not find mode to replace");b.contains.splice(w,1,m)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(u);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([u,s,o,p]),d(n,"shebang",e.SHEBANG()),d(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 P9(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 D9(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 j9(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},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 B9={arduino:AV,bash:gA,c:CV,cpp:MV,csharp:IV,css:FV,diff:zV,go:UV,graphql:VV,ini:yA,java:HV,javascript:kA,json:EA,kotlin:XV,less:i9,lua:s9,makefile:NA,markdown:TA,objectivec:o9,perl:a9,php:l9,"php-template":c9,plaintext:u9,python:AA,"python-repl":d9,r:f9,ruby:h9,rust:p9,scss:E9,shell:_9,sql:S9,swift:R9,typescript:FA,vbnet:P9,wasm:D9,xml:j9,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 Yv=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 $9="",Xv=e=>!!e.scope,F9=(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 z9{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=VA(t)}openNode(t){if(!Xv(t))return;const n=F9(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Xv(t)&&(this.buffer+=$9)}value(){return this.buffer}span(t){this.buffer+=``}}const Qv=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class b0{constructor(){this.rootNode=Qv(),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=Qv({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=>{b0._collapse(n)}))}}class U9 extends b0{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 z9(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function hl(e){return e?typeof e=="string"?e:e.source:null}function HA(e){return cs("(?=",e,")")}function V9(e){return cs("(?:",e,")*")}function H9(e){return cs("(?:",e,")?")}function cs(...e){return e.map(n=>hl(n)).join("")}function K9(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function w0(...e){return"("+(K9(e).capture?"":"?:")+e.map(r=>hl(r)).join("|")+")"}function KA(e){return new RegExp(e.toString()+"|").exec("").length-1}function q9(e,t){const n=e&&e.exec(t);return n&&n.index===0}const W9=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function x0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let s=hl(r),o="";for(;s.length>0;){const a=W9.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*",v0="[a-zA-Z_]\\w*",WA="\\b\\d+(\\.\\d+)?",GA="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",YA="\\b(0b[01]+)",Y9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",X9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=cs(t,/.*\b/,e.binary,/\b.*/)),Yr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},pl={begin:"\\\\[\\s\\S]",relevance:0},Q9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[pl]},Z9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[pl]},J9={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/},rf=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=w0("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:cs(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},e8=rf("//","$"),t8=rf("/\\*","\\*/"),n8=rf("#","$"),r8={scope:"number",begin:WA,relevance:0},i8={scope:"number",begin:GA,relevance:0},s8={scope:"number",begin:YA,relevance:0},o8={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[pl,{begin:/\[/,end:/\]/,relevance:0,contains:[pl]}]},a8={scope:"title",begin:qA,relevance:0},l8={scope:"title",begin:v0,relevance:0},c8={begin:"\\.\\s*"+v0,relevance:0},u8=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 jc=Object.freeze({__proto__:null,APOS_STRING_MODE:Q9,BACKSLASH_ESCAPE:pl,BINARY_NUMBER_MODE:s8,BINARY_NUMBER_RE:YA,COMMENT:rf,C_BLOCK_COMMENT_MODE:t8,C_LINE_COMMENT_MODE:e8,C_NUMBER_MODE:i8,C_NUMBER_RE:GA,END_SAME_AS_BEGIN:u8,HASH_COMMENT_MODE:n8,IDENT_RE:qA,MATCH_NOTHING_RE:G9,METHOD_GUARD:c8,NUMBER_MODE:r8,NUMBER_RE:WA,PHRASAL_WORDS_MODE:J9,QUOTE_STRING_MODE:Z9,REGEXP_MODE:o8,RE_STARTERS_RE:Y9,SHEBANG:X9,TITLE_MODE:a8,UNDERSCORE_IDENT_RE:v0,UNDERSCORE_TITLE_MODE:l8});function d8(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function f8(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function h8(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=d8,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function p8(e,t){Array.isArray(e.illegal)&&(e.illegal=w0(...e.illegal))}function m8(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 g8(e,t){e.relevance===void 0&&(e.relevance=1)}const y8=(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=cs(n.beforeMatch,HA(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},b8=["of","and","for","in","not","or","if","then","parent","list","value"],w8="keyword";function XA(e,t,n=w8){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):v8(e)?0:1}function v8(e){return b8.includes(e.toLowerCase())}const Zv={},$i=e=>{console.error(e)},Jv=(e,...t)=>{console.log(`WARN: ${e}`,...t)},gs=(e,t)=>{Zv[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Zv[`${e}/${t}`]=!0)},fd=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 k8(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $i("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),fd;if(typeof e.beginScope!="object"||e.beginScope===null)throw $i("beginScope must be object"),fd;QA(e,e.begin,{key:"beginScope"}),e.begin=x0(e.begin,{joinWith:""})}}function E8(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $i("skip, excludeEnd, returnEnd not compatible with endScope: {}"),fd;if(typeof e.endScope!="object"||e.endScope===null)throw $i("endScope must be object"),fd;QA(e,e.end,{key:"endScope"}),e.end=x0(e.end,{joinWith:""})}}function _8(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function S8(e){_8(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),k8(e),E8(e)}function N8(e){function t(o,a){return new RegExp(hl(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(x0(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;[f8,m8,S8,y8].forEach(u=>u(o,a)),e.compilerExtensions.forEach(u=>u(o,a)),o.__beforeBegin=null,[h8,p8,g8].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=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=hl(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 T8(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 ZA(e){return e?e.endsWithParent||ZA(e.starts):!1}function T8(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 A8="11.11.1";class C8 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Kh=VA,e1=Yr,t1=Symbol("nomatch"),M8=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:U9};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||(Jv(s.replace("{}",R[1])),Jv("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="",_="";typeof D=="object"?(P=O,R=D.ignoreIllegals,_=D.language):(gs("10.7.0","highlight(lang, code, ...args) has been deprecated."),gs("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),_=O,P=D),R===void 0&&(R=!0);const U={code:P,language:_};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 _=Object.create(null);function U(z,W){return z.keywords[W]}function V(){if(!ce.keywords){ve.addText(we);return}let z=0;ce.keywordPatternRe.lastIndex=0;let W=ce.keywordPatternRe.exec(we),Z="";for(;W;){Z+=we.substring(z,W.index);const oe=ae.case_insensitive?W[0].toLowerCase():W[0],ye=U(ce,oe);if(ye){const[Oe,$t]=ye;if(ve.addText(Z),Z="",_[oe]=(_[oe]||0)+1,_[oe]<=M8&&(Tt+=$t),Oe.startsWith("_"))Z+=W[0];else{const vt=ae.classNameAliases[Oe]||Oe;q(W[0],vt)}}else Z+=W[0];z=ce.keywordPatternRe.lastIndex,W=ce.keywordPatternRe.exec(we)}Z+=we.substring(z),ve.addText(Z)}function A(){if(we==="")return;let z=null;if(typeof ce.subLanguage=="string"){if(!t[ce.subLanguage]){ve.addText(we);return}z=d(ce.subLanguage,we,!0,Te[ce.subLanguage]),Te[ce.subLanguage]=z._top}else z=p(we,ce.subLanguage.length?ce.subLanguage:null);ce.relevance>0&&(Tt+=z.relevance),ve.__addSublanguage(z._emitter,z.language)}function F(){ce.subLanguage!=null?A():V(),we=""}function q(z,W){z!==""&&(ve.startScope(W),ve.addText(z),ve.endScope())}function G(z,W){let Z=1;const oe=W.length-1;for(;Z<=oe;){if(!z._emit[Z]){Z++;continue}const ye=ae.classNameAliases[z[Z]]||z[Z],Oe=W[Z];ye?q(Oe,ye):(we=Oe,V(),we=""),Z++}}function Y(z,W){return z.scope&&typeof z.scope=="string"&&ve.openNode(ae.classNameAliases[z.scope]||z.scope),z.beginScope&&(z.beginScope._wrap?(q(we,ae.classNameAliases[z.beginScope._wrap]||z.beginScope._wrap),we=""):z.beginScope._multi&&(G(z.beginScope,W),we="")),ce=Object.create(z,{parent:{value:ce}}),ce}function H(z,W,Z){let oe=q9(z.endRe,Z);if(oe){if(z["on:end"]){const ye=new Yv(z);z["on:end"](W,ye),ye.isMatchIgnored&&(oe=!1)}if(oe){for(;z.endsParent&&z.parent;)z=z.parent;return z}}if(z.endsWithParent)return H(z.parent,W,Z)}function Q(z){return ce.matcher.regexIndex===0?(we+=z[0],1):(Le=!0,0)}function se(z){const W=z[0],Z=z.rule,oe=new Yv(Z),ye=[Z.__beforeBegin,Z["on:begin"]];for(const Oe of ye)if(Oe&&(Oe(z,oe),oe.isMatchIgnored))return Q(W);return Z.skip?we+=W:(Z.excludeBegin&&(we+=W),F(),!Z.returnBegin&&!Z.excludeBegin&&(we=W)),Y(Z,z),Z.returnBegin?0:W.length}function le(z){const W=z[0],Z=D.substring(z.index),oe=H(ce,z,Z);if(!oe)return t1;const ye=ce;ce.endScope&&ce.endScope._wrap?(F(),q(W,ce.endScope._wrap)):ce.endScope&&ce.endScope._multi?(F(),G(ce.endScope,z)):ye.skip?we+=W:(ye.returnEnd||ye.excludeEnd||(we+=W),F(),ye.excludeEnd&&(we=W));do ce.scope&&ve.closeNode(),!ce.skip&&!ce.subLanguage&&(Tt+=ce.relevance),ce=ce.parent;while(ce!==oe.parent);return oe.starts&&Y(oe.starts,z),ye.returnEnd?0:W.length}function ie(){const z=[];for(let W=ce;W!==ae;W=W.parent)W.scope&&z.unshift(W.scope);z.forEach(W=>ve.openNode(W))}let K={};function re(z,W){const Z=W&&W[0];if(we+=z,Z==null)return F(),0;if(K.type==="begin"&&W.type==="end"&&K.index===W.index&&Z===""){if(we+=D.slice(W.index,W.index+1),!i){const oe=new Error(`0 width match regex (${O})`);throw oe.languageName=O,oe.badRule=K.rule,oe}return 1}if(K=W,W.type==="begin")return se(W);if(W.type==="illegal"&&!R){const oe=new Error('Illegal lexeme "'+Z+'" for mode "'+(ce.scope||"")+'"');throw oe.mode=ce,oe}else if(W.type==="end"){const oe=le(W);if(oe!==t1)return oe}if(W.type==="illegal"&&Z==="")return we+=` -`,1;if(xt>1e5&&xt>W.index*3)throw new Error("potential infinite loop, way more iterations than matches");return we+=Z,Z.length}const ae=N(O);if(!ae)throw $i(s.replace("{}",O)),new Error('Unknown language: "'+O+'"');const ne=N8(ae);let he="",ce=P||ne;const Te={},ve=new a.__emitter(a);ie();let we="",Tt=0,Re=0,xt=0,Le=!1;try{if(ae.__emitTokens)ae.__emitTokens(D,ve);else{for(ce.matcher.considerAll();;){xt++,Le?Le=!1:ce.matcher.considerAll(),ce.matcher.lastIndex=Re;const z=ce.matcher.exec(D);if(!z)break;const W=D.substring(Re,z.index),Z=re(W,z);Re=z.index+Z}re(D.substring(Re))}return ve.finalize(),he=ve.toHTML(),{language:O,value:he,relevance:Tt,illegal:!1,_emitter:ve,_top:ce}}catch(z){if(z.message&&z.message.includes("Illegal"))return{language:O,value:Kh(D),illegal:!0,relevance:0,_illegalBy:{message:z.message,index:Re,context:D.slice(Re-100,Re+100),mode:z.mode,resultSoFar:he},_emitter:ve};if(i)return{language:O,value:Kh(D),illegal:!1,relevance:0,errorRaised:z,_emitter:ve,_top:ce};throw z}}function h(O){const D={value:Kh(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 _=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]=_,A=U;return A.secondBest=V,A}function g(O,D,R){const P=D&&n[D]||R;O.classList.add("hljs"),O.classList.add(`language-${P}`)}function b(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 C8("One of your code blocks includes unescaped HTML.",O.innerHTML);D=O;const P=D.textContent,_=R?u(P,{language:R,ignoreIllegals:!0}):p(P);O.innerHTML=_.value,O.dataset.highlighted="yes",g(O,R,_.language),O.result={language:_.language,re:_.relevance,relevance:_.relevance},_.secondBest&&(O.secondBest={language:_.secondBest.language,relevance:_.secondBest.relevance}),M("after:highlightElement",{el:O,result:_,text:P})}function x(O){a=e1(a,O)}const m=()=>{v(),gs("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function w(){v(),gs("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let y=!1;function v(){function O(){v()}if(document.readyState==="loading"){y||window.addEventListener("DOMContentLoaded",O,!1),y=!0;return}document.querySelectorAll(a.cssSelector).forEach(b)}function E(O,D){let R=null;try{R=D(e)}catch(P){if($i("Language definition for '{}' could not be registered.".replace("{}",O)),i)$i(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 C(){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 B(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){B(O),r.push(O)}function $(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 gs("10.7.0","highlightBlock will be removed entirely in v12.0"),gs("10.7.0","Please use highlightElement now."),b(O)}Object.assign(e,{highlight:u,highlightAuto:p,highlightAll:v,highlightElement:b,highlightBlock:L,configure:x,initHighlighting:m,initHighlightingOnLoad:w,registerLanguage:E,unregisterLanguage:k,listLanguages:C,getLanguage:N,registerAliases:I,autoDetection:T,inherit:e1,addPlugin:j,removePlugin:$}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=A8,e.regex={concat:cs,lookahead:HA,either:w0,optional:H9,anyNumberOfTimes:V9};for(const O in jc)typeof jc[O]=="object"&&UA(jc[O]);return Object.assign(e,jc),e},yo=JA({});yo.newInstance=()=>JA({});var I8=yo;yo.HighlightJS=yo;yo.default=yo;const tn=Tl(I8),n1={},O8="hljs-";function R8(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||n1,h=typeof d.prefix=="string"?d.prefix:O8;if(!t.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");t.configure({__emitter:L8,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 d=(c||n1).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 L8{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 P8={};function D8(e){const t=e||P8,n=t.aliases,r=t.detect||!1,i=t.languages||B9,s=t.plainText,o=t.prefix,a=t.subset;let l="hljs";const c=R8(i);if(n&&c.registerAlias(n),o){const u=o.indexOf("-");l=u===-1?o:o.slice(0,u)}return function(u,d){nf(u,"element",function(h,p,g){if(h.tagName!=="code"||!g||g.type!=="element"||g.tagName!=="pre")return;const b=j8(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=wV(h,{whitespace:"pre"});let m;try{m=b?c.highlight(b,x,{prefix:o}):c.highlightAuto(x,{prefix:o,subset:a})}catch(w){const y=w;if(b&&/Unknown language/.test(y.message)){d.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 j8(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(B8),eC="send_a2ui_json_to_client";function $8({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}=sT(o);return f.jsxs("div",{className:"block-thinking",children:[f.jsxs("button",{className:"think-head",onClick:s,type:"button",children:[f.jsx($8,{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 F8(){return f.jsx(tC,{text:"",done:!1})}function z8({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(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 U8({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(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(Lx,{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(Lx,{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(gt,{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 V8({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(z8,{name:r.name,args:r.args,response:r.response,done:r.done},i);case"auth":return f.jsx(U8,{block:r,onAuth:n},i);case"a2ui":return iT(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(v3,{surface:s,onAction:t})},`${i}-${s.surfaceId}`));default:return null}})})}function H8({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),u=S.useRef(null),[d,h]=S.useState(!1);S.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(K8,{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(Lo,{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(HB,{className:"icon"}),"上传图片"]}),f.jsxs("button",{type:"button",className:"menu-item",onClick:()=>g(u),children:[f.jsx(Vy,{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(gt,{className:"icon spin"}):f.jsx(SB,{className:"icon"})})]}),f.jsx("input",{ref:c,type:"file",accept:"image/*",multiple:!0,hidden:!0,onChange:b}),f.jsx("input",{ref:u,type:"file",accept:"application/pdf",multiple:!0,hidden:!0,onChange:b})]})}function K8({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(Vy,{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(Xd,{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(Wn,{className:"stk-card-arrow"})]},i.key))}),r&&f.jsx("div",{className:"stk-footer",children:r})]})}const E0=Symbol.for("yaml.alias"),Km=Symbol.for("yaml.document"),ii=Symbol.for("yaml.map"),rC=Symbol.for("yaml.pair"),ar=Symbol.for("yaml.scalar"),Bo=Symbol.for("yaml.seq"),Cn=Symbol.for("yaml.node.type"),$o=e=>!!e&&typeof e=="object"&&e[Cn]===E0,Ul=e=>!!e&&typeof e=="object"&&e[Cn]===Km,Vl=e=>!!e&&typeof e=="object"&&e[Cn]===ii,at=e=>!!e&&typeof e=="object"&&e[Cn]===rC,Fe=e=>!!e&&typeof e=="object"&&e[Cn]===ar,Hl=e=>!!e&&typeof e=="object"&&e[Cn]===Bo;function st(e){if(e&&typeof e=="object")switch(e[Cn]){case ii:case Bo:return!0}return!1}function ot(e){if(e&&typeof e=="object")switch(e[Cn]){case E0:case ii:case ar:case Bo:return!0}return!1}const iC=e=>(Fe(e)||st(e))&&!!e.anchor,Si=Symbol("break visit"),q8=Symbol("skip children"),Pa=Symbol("remove node");function Fo(e,t){const n=W8(t);Ul(e)?Vs(null,e.contents,n,Object.freeze([e]))===Pa&&(e.contents=null):Vs(null,e,n,Object.freeze([]))}Fo.BREAK=Si;Fo.SKIP=q8;Fo.REMOVE=Pa;function Vs(e,t,n,r){const i=G8(e,t,n,r);if(ot(i)||at(i))return Y8(e,r,i),Vs(e,i,n,r);if(typeof i!="symbol"){if(st(t)){r=Object.freeze(r.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>X8[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+Q8(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&&ot(t.contents)){const s={};Fo(t.contents,(o,a)=>{ot(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 Fo(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 Z8(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&&(Fe(o.node)||st(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 _0{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(!Ul(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 S0 extends _0{constructor(t){super(E0),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=[],Fo(t,{Node:(s,o)=>{($o(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=gu(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 gu(e,t,n){if($o(t)){const r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(st(t)){let r=0;for(const i of t.items){const s=gu(e,i,n);s>r&&(r=s)}return r}else if(at(t)){const r=gu(e,t.key,n),i=gu(e,t.value,n);return Math.max(r,i)}return 1}const lC=e=>!e||typeof e!="function"&&typeof e!="object";class Ee extends _0{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 J8="tag:yaml.org,2002:";function eH(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 ml(e,t,n){var d,h,p;if(Ul(e)&&(e=e.contents),ot(e))return e;if(at(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 S0(l.anchor);l={anchor:null,node:null},a.set(e,l)}t!=null&&t.startsWith("!!")&&(t=J8+t.slice(2));let c=eH(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 hd(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 ml(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 ma=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class cC extends _0{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=>ot(r)||at(r)?r.clone(t):r),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(ma(t))this.add(n);else{const[r,...i]=t,s=this.get(r,!0);if(st(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,hd(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(st(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&&Fe(s)?s.value:s:st(s)?s.getIn(i,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!at(n))return!1;const r=n.value;return r==null||t&&Fe(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 st(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(st(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,hd(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const tH=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function xr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const Oi=(e,t,n)=>e.endsWith(` +`,...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,uC="flow",qm="block",yu="quoted";function sf(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,b=-1,x=-1,m=-1;n===qm&&(b=r1(e,b,t.length),b!==-1&&(d=b+l));for(let y;y=e[b+=1];){if(n===yu&&y==="\\"){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(y===` -`)n===qm&&(b=r1(e,b,t.length)),d=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>=d)if(h)c.push(h),d=h+l,h=void 0;else if(n===yu){for(;p===" "||p===" ";)p=y,y=e[b+=1],g=!0;const v=b>m+1?b-2:x-1;if(u[v])return e;c.push(v),u[v]=!0,d=v+l,h=void 0}else g=!0}p=y}if(g&&a&&a(),c.length===0)return e;o&&o();let w=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}),af=e=>/^(%|---|\.\.\.)/m.test(e);function nH(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 Da(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(af(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.lengthi-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(Gm,`$&${c}`));let b=!1,x,m=-1;for(x=0;x{k=!0});const N=sf(`${w}${E}${p}`,c,qm,C);if(!k)return`>${v} +`&&(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}${w}${n}${p}`}function rH(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 Ks(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||u||!s.includes(` -`)?Ks(s,t):bu(e,t,n,r);if(!a&&!u&&i!==Ee.PLAIN&&s.includes(` -`))return bu(e,t,n,r);if(af(s)){if(l==="")return t.forceBlockIndent=!0,bu(e,t,n,r);if(a&&l===c)return Ks(s,t)}const d=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(d))},{compat:p,tags:g}=t.doc.schema;if(g.some(h)||p!=null&&p.some(h))return Ks(s,t)}return a?d:sf(d,l,uC,of(t,!1))}function N0(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?Ks(o.value,t):bu(o,t,n,r);case Ee.QUOTE_DOUBLE:return Da(o.value,t);case Ee.QUOTE_SINGLE:return Wm(o.value,t);case Ee.PLAIN:return rH(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 dC(e,t){const n=Object.assign({blockQuote:!0,commentString:tH,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 iH(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(Fe(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 sH(e,t,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(Fe(e)||st(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 bo(e,t,n,r){var l;if(at(e))return e.toString(t,n,r);if($o(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=ot(e)?e:t.doc.createNode(e,{onTagObj:c=>i=c});i??(i=iH(t.doc.schema.tags,s));const o=sH(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):Fe(s)?N0(s,t,n,r):s.toString(t,n,r);return o?Fe(s)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o} -${t.indent}${a}`:a}function oH({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=ot(e)&&e.comment||null;if(d){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(st(e)||!ot(e)&&typeof e=="object"){const C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!d&&(!e||h&&t==null&&!n.inFlow||st(e)||(Fe(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,b=!1,x=bo(e,n,()=>g=!0,()=>b=!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+=Oi(x,n.indent,c(h)):b&&i&&i(),x;g&&(h=null),p?(h&&(x+=Oi(x,n.indent,c(h))),x=`? ${x} -${a}:`):(x=`${x}:`,h&&(x+=Oi(x,n.indent,c(h))));let m,w,y;ot(t)?(m=!!t.spaceBefore,w=t.commentBefore,y=t.comment):(m=!1,w=null,y=null,t&&typeof t=="object"&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!h&&Fe(t)&&(n.indentAtStart=x.length+1),b=!1,!u&&l.length>=2&&!n.inFlow&&!p&&Hl(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let v=!1;const E=bo(t,n,()=>v=!0,()=>b=!0);let k=" ";if(h||m||w){if(k=m?` -`:"",w){const C=c(w);k+=` -${xr(C,n.indent)}`}E===""&&!n.inFlow?k===` -`&&y&&(k=` +${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&&st(t)){const C=E[0],N=E.indexOf(` -`),I=N!==-1,T=n.inFlow??t.flow??t.items.length===0;if(I||!T){let B=!1;if(I&&(C==="&"||C==="!")){let j=E.indexOf(" ");C==="&"&&j!==-1&&je===Bc||typeof e=="symbol"&&e.description===Bc,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Ee(Symbol(Bc)),{addToJSMap:hC}),stringify:()=>Bc},aH=(e,t)=>(Sr.identify(t)||Fe(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 hC(e,t,n){const r=pC(e,n);if(Hl(r))for(const i of r.items)qh(e,t,i);else if(Array.isArray(r))for(const i of r)qh(e,t,i);else qh(e,t,r)}function qh(e,t,n){const r=pC(e,n);if(!Vl(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&&$o(t)?t.resolve(e.doc,e):t}function mC(e,t,{key:n,value:r}){if(ot(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(aH(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=lH(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 lH(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(ot(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 T0(e,t,n){const r=ml(e,void 0,n),i=ml(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 ot(n)&&(n=n.clone(t)),ot(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?oH(this,t,n,r):JSON.stringify(this)}}function gC(e,t,n){return(t.inFlow??e.flow?uH:cH)(e,t,n)}function cH({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+=Oi(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;ge===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((w,y)=>w+y.length+2,2)+(m.length+2)>t.options.lineWidth)),c&&(m+=",")),x&&(m+=Oi(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((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 d)g+=b?` -${s}${i}${b}`:` +`+xr(c(e),l),a&&a()):d&&o&&o(),p}function wH({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,u=0;const d=[];for(let g=0;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 pd({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 Ri(e,t){const n=Fe(t)?t.value:t;for(const r of e)if(at(r)&&(r.key===t||r.key===n||Fe(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(T0(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;at(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=Ri(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`);Fe(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=Ri(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const r=Ri(this.items,t),i=r==null?void 0:r.value;return(!n&&Fe(i)?i.value:i)??void 0}has(t){return!!Ri(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(!at(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 zo={collection:"map",default:!0,nodeClass:En,tag:"tag:yaml.org,2002:map",resolve(e,t){return Vl(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(Bo,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=$c(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const r=$c(t);if(typeof r!="number")return;const i=this.items[r];return!n&&Fe(i)?i.value:i}has(t){const n=$c(t);return typeof n=="number"&&n=0?t:null}const Uo={collection:"seq",default:!0,nodeClass:Xi,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Hl(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>Xi.from(e,t,n)},lf={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),N0(e,t,n,r)}},cf={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"&&cf.test.test(e)?e:t.options.nullStr},A0={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&&A0.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 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:Gn},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():Gn(e)}},wC={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},uf=e=>typeof e=="bigint"||Number.isInteger(e),C0=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function xC(e,t,n){const{value:r}=e;return uf(r)&&r>=0?n+r.toString(t):Gn(e)}const vC={identify:e=>uf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>C0(e,2,8,n),stringify:e=>xC(e,8,"0o")},kC={identify:uf,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>C0(e,0,10,n),stringify:Gn},EC={identify:e=>uf(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>C0(e,2,16,n),stringify:e=>xC(e,16,"0x")},dH=[zo,Uo,lf,cf,A0,vC,kC,EC,yC,bC,wC];function i1(e){return typeof e=="bigint"||Number.isInteger(e)}const Fc=({value:e})=>JSON.stringify(e),fH=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Fc},{identify:e=>e==null,createNode:()=>new Ee(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Fc},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Fc},{identify:i1,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})=>i1(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:Fc}],hH={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},pH=[zo,Uo].concat(fH,hH),M0={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}${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]=at(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(T0(a,l,n))}return i}const I0={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_C,createNode:SC};class eo 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=eo.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(at(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}}eo.tag="tag:yaml.org,2002:omap";const O0={collection:"seq",identify:e=>e instanceof Map,nodeClass:eo,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=_C(e,t),r=[];for(const{key:i}of n.items)Fe(i)&&(r.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new eo,n)},createNode:(e,t,n)=>eo.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},mH={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},gH={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)}},yH={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},Kl=e=>typeof e=="bigint"||Number.isInteger(e);function df(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 R0(e,t,n){const{value:r}=e;if(Kl(r)){const i=r.toString(t);return r<0?"-"+n+i.substr(1):n+i}return Gn(e)}const bH={identify:Kl,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>df(e,2,2,n),stringify:e=>R0(e,2,"0b")},wH={identify:Kl,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>df(e,1,8,n),stringify:e=>R0(e,8,"0")},xH={identify:Kl,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>df(e,0,10,n),stringify:Gn},vH={identify:Kl,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>df(e,2,16,n),stringify:e=>R0(e,16,"0x")};class to extends En{constructor(t){super(t),this.tag=to.tag}add(t){let n;at(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),Ri(this.items,n.key)||this.items.push(n)}get(t,n){const r=Ri(this.items,t);return!n&&at(r)?Fe(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=Ri(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(T0(o,null,r));return s}}to.tag="tag:yaml.org,2002:set";const L0={collection:"map",identify:e=>e instanceof Set,nodeClass:to,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>to.from(e,t,n),resolve(e,t){if(Vl(e)){if(e.hasAllNullValues(!0))return Object.assign(new to,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function P0(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 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 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})=>P0(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=>P0(e,!1),stringify:CC},ff={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(ff.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=P0(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$/,""))??""},s1=[zo,Uo,lf,cf,TC,AC,bH,wH,xH,vH,mH,gH,yH,M0,Sr,O0,I0,L0,MC,IC,ff],o1=new Map([["core",dH],["failsafe",[zo,Uo,lf]],["json",pH],["yaml11",s1],["yaml-1.1",s1]]),a1={binary:M0,bool:A0,float:wC,floatExp:bC,floatNaN:yC,floatTime:IC,int:kC,intHex:EC,intOct:vC,intTime:MC,map:zo,merge:Sr,null:cf,omap:O0,pairs:I0,seq:Uo,set:L0,timestamp:ff},kH={"tag:yaml.org,2002:binary":M0,"tag:yaml.org,2002:merge":Sr,"tag:yaml.org,2002:omap":O0,"tag:yaml.org,2002:pairs":I0,"tag:yaml.org,2002:set":L0,"tag:yaml.org,2002:timestamp":ff};function Wh(e,t,n){const r=o1.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(o1.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"?a1[o]:o;if(!a){const l=JSON.stringify(o),c=Object.keys(a1).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 EH=(e,t)=>e.keyt.key?1:0;class D0{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?kH:{},this.tags=Wh(n,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,ii,{value:zo}),Object.defineProperty(this,ar,{value:lf}),Object.defineProperty(this,Bo,{value:Uo}),this.sortMapEntries=typeof o=="function"?o:o===!0?EH:null}clone(){const t=Object.create(D0.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function _H(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(ot(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=bo(e.contents,i,()=>a=null,c);a&&(u+=Oi(u,"",s(a))),(u[0]==="|"||u[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${u}`:n.push(u)}else n.push(bo(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]=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 ql{constructor(t,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Cn,{value:Km});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(ql.prototype,{[Cn]:{value:Km}});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=ot(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ys(this.contents)&&this.contents.add(t)}addIn(t,n){ys(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 S0(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=w=>typeof w=="number"||w instanceof String||w 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}=Z8(this,o||"a"),g={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:d,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},b=ml(t,u,g);return a&&st(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 ys(this.contents)?this.contents.delete(t):!1}deleteIn(t){return ma(t)?this.contents==null?!1:(this.contents=null,!0):ys(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return st(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return ma(t)?!n&&Fe(this.contents)?this.contents.value:this.contents:st(this.contents)?this.contents.getIn(t,n):void 0}has(t){return st(this.contents)?this.contents.has(t):!1}hasIn(t){return ma(t)?this.contents!==void 0:st(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=hd(this.schema,[t],n):ys(this.contents)&&this.contents.set(t,n)}setIn(t,n){ma(t)?this.contents=n:this.contents==null?this.contents=hd(this.schema,Array.from(t),n):ys(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 D0(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"?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 _H(this,t)}}function ys(e){if(st(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 ga extends OC{constructor(t,n,r){super("YAMLParseError",t,n,r)}}class SH extends OC{constructor(t,n,r){super("YAMLWarning",t,n,r)}}const l1=(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 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 wo(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,b=null,x=null,m=null,w=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),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)&&(w=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){y&&s(N,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),y=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],C=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:y,found:v,spaceBefore:l,comment:d,hasNewline:p,anchor:x,tag:m,newlineAfterProp:w,end:C,start:E??C}}function gl(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(gl(t.key)||gl(t.value))return!0}return!1;default:return!0}}function Ym(e,t,n){if((t==null?void 0:t.type)==="flow-collection"){const r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&gl(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||Fe(s)&&Fe(o)&&s.value===o.value;return t.some(s=>i(s.key,n))}const c1="All mapping items must start at the same column";function NH({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:b}=d,x=wo(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",c1)),!x.anchor&&!x.tag&&!g){c=x.end,x.comment&&(a.comment?a.comment+=` -`+x.comment:a.comment=x.comment);continue}(x.newlineAfterProp||gl(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",c1);n.atKey=!0;const w=x.end,y=p?e(n,p,x,i):t(n,w,h,null,x,i);n.schema.compat&&Ym(r.indent,p,i),n.atKey=!1,RC(n,a.items,y)&&i(w,"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&&x.starte&&(e.type==="block-map"||e.type==="block-seq");function AH({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:Xi),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=Wl(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 Xh(e,t,n,r,i,s){const o=n.type==="block-map"?NH(e,t,n,r,s):n.type==="block-seq"?TH(e,t,n,r,s):AH(e,t,n,r,s),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function CH(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),Xh(e,t,n,i,o)}const c=Xh(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=ot(u)?u:new Ee(u);return d.range=c.range,d.tag=o,l!=null&&l.format&&(d.format=l.format),d}function MH(e,t,n){const r=t.offset,i=IH(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?OH(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,u=0;for(let b=0;bl&&(l=x.length);else{x.length=a;--b)o[b][0].length>l&&(a=b+1);let d="",h="",p=!1;for(let b=0;bs===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=` @@ -518,76 +528,79 @@ ${c} `,p=!0):m===""?h===` `?d+=` `:h=` -`:(d+=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=LH(s,c);break;case"single-quoted-scalar":a=Ee.QUOTE_SINGLE,l=PH(s,c);break;case"double-quoted-scalar":a=Ee.QUOTE_DOUBLE,l=DH(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=Wl(o,u,t,n);return{value:l,type:a,comment:d.comment,range:[r,u,d.offset]}}function LH(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 PH(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=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 jH(e,t){let n="",r=e[t+1];for(;(r===" "||r===" "||r===` +`)&&(n+=r>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 BH={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` -`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function $H(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"?MH(e,t,r):RH(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=FH(e.schema,i,l,n,r):t.type==="scalar"?c=zH(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=Fe(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 FH(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 zH({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 UH(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 VH={composeNode:DC,composeEmptyNode:j0};function DC(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=HH(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=CH(VH,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=j0(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&&(!Fe(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 j0(e,t,n,r,{spaceBefore:i,comment:s,anchor:o,tag:a,end:l},c){const u={type:"scalar",offset:UH(t,n,r),indent:-1,source:""},d=PC(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 HH({options:e},{offset:t,source:n,end:r},i){const s=new S0(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=Wl(r,o,e.strict,i);return s.range=[t,o,a.offset],a.comment&&(s.comment=a.comment),s}function KH(e,t,{offset:n,start:r,value:i,end:s},o){const a=Object.assign({_directives:t},e),l=new ql(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=wo(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?DC(c,i,u,o):j0(c,u.end,r,null,u,o);const d=l.contents.range[2],h=Wl(s,d,!1,o);return h.comment&&(l.comment=h.comment),l.range=[n,d,h.offset],l}function ra(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 u1(e){var i;let t="",n=!1,r=!1;for(let s=0;sr(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=ra(n);s?this.warnings.push(new SH(o,r,i)):this.errors.push(new ga(o,r,i))},this.directives=new Ut({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:r,afterEmptyLine:i}=u1(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(st(s)&&!s.flow&&s.items.length>0){let o=s.items[0];at(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 tK{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,r,i,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=ra(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=KH(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 ga(ra(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 ga(ra(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=Wl(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 ga(ra(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 ql(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="",Xm="";function WH(e){switch(e){case jC:return"byte-order-mark";case BC:return"doc-mode";case $C:return"flow-error-end";case Xm:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +${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 d1=new Set("0123456789ABCDEFabcdef"),GH=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),zc=new Set(",[]{}"),YH=new Set(` ,[]{} -\r `),Qh=e=>!e||YH.has(e);class XH{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===` +`: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(Qh),"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&&rthis.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 Xm,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&&zc.has(s))break;n=r}else if(Rn(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` +`&&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&&zc.has(s))break;if(i===` -`){const o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&zc.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Xm,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(Qh),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,r=this.charAt(1);if(Rn(r)||n&&zc.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==="%"&&d1.has(this.buffer[t+1])&&d1.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===` +`,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 QH{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 md(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"&&h1(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&&f1(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent0&&(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(FC(n.key)&&!zr(n.sep,"newline")){const a=bs(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=bs(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)){md(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=Uc(r),s=bs(i);h1(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(` +`,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)){wd(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(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=Uc(t),r=bs(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=Uc(t),r=bs(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 JH(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new QH||null,prettyErrors:t}}function eK(e,t={}){const{lineCounter:n,prettyErrors:r}=JH(t),i=new ZH(n==null?void 0:n.addNewLine),s=new qH(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 ga(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(o.errors.forEach(l1(e,n)),o.warnings.forEach(l1(e,n))),o}function tK(e,t,n){let r;const i=eK(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 nK(e,t,n){let r=null;if(Array.isArray(t)&&(r=t),e===void 0){const{keepUndefined:i}={};if(!i)return}return Ul(e)&&!r?e.toString(n):new ql(e,r,n).toString(n)}function us(){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 zC="https://ark.cn-beijing.volces.com/api/v3/",rK=[{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}],ja=[{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"}],xo=[{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:xo},{id:"parallel_web_search",label:"并行联网搜索",desc:"并行发起多条搜索查询,更快汇总。",importLine:"from veadk.tools.builtin_tools.parallel_web_search import parallel_web_search",toolNames:["parallel_web_search"],env:xo},{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:ja,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},...ja],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},...ja],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Memory",desc:"火山 VikingDB 记忆库(支持用户画像)。",env:xo},{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:ja,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},...ja],pipExtra:"extensions",needsEmbedding:!0},{id:"viking",label:"VikingDB Knowledge",desc:"火山 VikingDB 知识库。",env:xo},{id:"context_search",label:"Context Search",desc:"火山 Context Search 引擎(无需向量化)。",env:[...xo,{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:[...xo,{key:"OBSERVABILITY_OPENTELEMETRY_TLS_SERVICE_NAME",required:!1,comment:"TLS topic_id,留空自动创建"}]}],iK=e=>UC.find(t=>t.id===e),sK=e=>VC.find(t=>t.id===e),oK=e=>HC.find(t=>t.id===e),aK=e=>KC.find(t=>t.id===e),lK=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 WC(e){return`"""${(e||"").replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}"""`}function ut(e){return`"${(e||"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}"`}function Qm(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 ia(e,t){for(const n of t)e.env.push(n)}function p1(e,t,n){const r=Qm(e,t,"custom_tool"),i=(n==null?void 0:n.trim())||`TODO: 描述 ${t} 的用途与参数。`;return e.preLines.push(`def ${r}(query: str) -> dict: - ${WC(i)} +`,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 cK(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}`;B0(e,a,c),s.push(c)});const o=[`name=${ut(Fi(t.name,n))}`,`description=${ut(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 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 uK(e,t,n){e.imports.push("from veadk.a2a.remote_ve_agent import RemoteVeAgent");const r=[`name=${ut(Fi(t.name,n))}`,`url=${ut((t.a2aUrl??"").trim())}`];return e.preLines.push(`${n} = RemoteVeAgent( +)`),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 B0(e,t,n){var a,l,c,u,d,h,p,g,b,x;const r=t.agentType??"llm";if(r==="a2a")return uK(e,t,n);if(r!=="llm")return cK(e,t,n);const i=[];for(const m of t.builtinTools??[]){const w=iK(m);w&&(e.imports.includes(w.importLine)||e.imports.push(w.importLine),i.push(...w.toolNames),ia(e,w.env),w.pipExtra&&e.extras.add(w.pipExtra))}for(const m of t.customTools??[])(a=m.name)!=null&&a.trim()&&i.push(p1(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 w=Qm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=(c=m.authToken)!=null&&c.trim()?`, headers={"Authorization": ${ut(`Bearer ${m.authToken.trim()}`)}}`:"";e.preLines.push(`${w} = MCPToolset(connection_params=StreamableHTTPConnectionParams(url=${ut(m.url.trim())}${y}))`),i.push(w)}else if(m.transport==="stdio"&&((u=m.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=Qm(e,`${m.name||"mcp"}_mcp`,"mcp_tool"),y=`[${(m.args??[]).filter(v=>v==null?void 0:v.trim()).map(v=>ut(v)).join(", ")}]`;e.preLines.push(`${w} = MCPToolset(connection_params=StdioConnectionParams(server_params=StdioServerParameters(command=${ut(m.command.trim())}, args=${y}), timeout=30))`),i.push(w)}for(const m of t.tools??[])m!=null&&m.trim()&&i.push(p1(e,m,""));const s=[`name=${ut(Fi(t.name,n))}`,`description=${ut(t.description||t.name||"A VeADK agent.")}`,`instruction=INSTRUCTION_${n.toUpperCase()}`];if(e.preLines.push(`INSTRUCTION_${n.toUpperCase()} = ${WC(t.instruction||"You are a helpful assistant.")}`),i.length&&s.push(`tools=[${i.join(", ")}]`),(d=t.modelName)!=null&&d.trim()&&s.push(`model_name=${ut(t.modelName.trim())}`),(h=t.modelProvider)!=null&&h.trim()&&s.push(`model_provider=${ut(t.modelProvider.trim())}`),(p=t.modelApiBase)!=null&&p.trim()&&s.push(`model_api_base=${ut(t.modelApiBase.trim())}`),(g=t.memory)!=null&&g.shortTerm){const m=sK(t.shortTermBackend||"local");if(m){e.imports.push("from veadk.memory.short_term_memory import ShortTermMemory");const w=[`backend=${ut(m.id)}`];m.extraArgs&&w.push(m.extraArgs);const y=`stm_${n}`;e.preLines.push(`${y} = ShortTermMemory(${w.join(", ")})`),s.push(`short_term_memory=${y}`),ia(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if((b=t.memory)!=null&&b.longTerm){const m=oK(t.longTermBackend||"local");if(m){e.imports.push("from veadk.memory.long_term_memory import LongTermMemory");const w=Fi(t.name,n),y=`ltm_${n}`;e.preLines.push(`${y} = LongTermMemory(backend=${ut(m.id)}, index=${ut(w)}, app_name=${ut(w)})`),s.push(`long_term_memory=${y}`),t.autoSaveSession&&s.push("auto_save_session=True"),ia(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.knowledgebase){const m=aK(t.knowledgebaseBackend||"local");if(m){e.imports.push("from veadk.knowledgebase import KnowledgeBase");const w=Fi(t.name+"_kb",n+"_kb"),y=`kb_${n}`;e.preLines.push(`${y} = KnowledgeBase(backend=${ut(m.id)}, index=${ut(w)}, app_name=${ut(w)})`),s.push(`knowledgebase=${y}`),ia(e,m.env),m.pipExtra&&e.extras.add(m.pipExtra)}}if(t.tracing&&(((x=t.tracingExporters)==null?void 0:x.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 w of t.tracingExporters??[]){const y=lK(w);y&&(e.env.push({key:y.enableFlag,required:!0,placeholder:"true",comment:`${y.label} 开关`}),ia(e,y.env))}}t.enableA2ui&&(s.push("enable_a2ui=True"),e.extras.add("a2ui"));const o=[];return(t.subAgents??[]).forEach((m,w)=>{const y=`${n}_sub_${w+1}`;B0(e,m,y),o.push(y)}),o.length&&s.push(`sub_agents=[${o.join(", ")}]`),e.preLines.push(`${n} = Agent( - ${s.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 dK(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 fK(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(` +)`),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 hK(e){const t=[...e].sort();return`${t.length?`veadk-python[${t.join(",")}]`:"veadk-python"} +`}function kK(e){const t=[...e].sort();return`${t.length?`veadk-python[${t.join(",")}]`:"veadk-python"} agentkit-sdk-python google-adk -`}function pK(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 GC(e){const t=Fi(e.name,"my_agent"),n={imports:[],preLines:[],env:[...rK],extras:new Set,usedNames:new Set};B0(n,e,"agent");const r=["from veadk import Agent",...mK(n.imports)].join(` +`}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(` @@ -746,14 +759,16 @@ if __name__ == "__main__": `},{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:fK(dK(n.env))},{path:"requirements.txt",content:hK(n.extras)},{path:"README.md",content:pK(t,e)}];return{name:t,files:l}}function mK(e){return[...new Set(e)]}const gK=new Set(["local","sqlite","mysql","postgresql"]),yK=new Set(["local","opensearch","redis","viking","mem0"]),bK=new Set(["local","opensearch","viking","context_search"]),wK=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 rt(e,t=""){return typeof e=="string"?e:t}function ws(e){return e===!0}function wu(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:rt(t.name),description:rt(t.description)}:null).filter(t=>!!t&&!!t.name.trim()):[]}function Zh(e,t,n){return typeof e=="string"&&t.has(e)?e:n}const vK=new Set(["llm","sequential","parallel","loop","a2a"]);function QC(e){return typeof e=="string"&&vK.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{...us(),name:rt(n.name),description:rt(n.description),instruction:rt(n.instruction),agentType:QC(n.agentType),maxIterations:ZC(n.maxIterations),a2aUrl:rt(n.a2aUrl),builtinTools:wu(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=JC(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:rt(o.name),transport:a,url:rt(o.url),authToken:rt(o.authToken),command:rt(o.command),args:wu(o.args)}}).filter(s=>s.transport==="http"?!!s.url:!!s.command):[];return{...us(),name:rt(t.name)||"my_agent",description:rt(t.description),instruction:rt(t.instruction)||"You are a helpful assistant.",agentType:QC(t.agentType),maxIterations:ZC(t.maxIterations),a2aUrl:rt(t.a2aUrl),modelName:rt(t.modelName),modelProvider:rt(t.modelProvider),modelApiBase:rt(t.modelApiBase),builtinTools:wu(t.builtinTools).filter(s=>YC.has(s)),customTools:XC(t.customTools),mcpTools:i,memory:{shortTerm:ws(n.shortTerm),longTerm:ws(n.longTerm)},shortTermBackend:Zh(t.shortTermBackend,gK,"local"),longTermBackend:Zh(t.longTermBackend,yK,"local"),autoSaveSession:ws(t.autoSaveSession),knowledgebase:ws(t.knowledgebase),knowledgebaseBackend:Zh(t.knowledgebaseBackend,bK,"local"),tracing:ws(t.tracing),tracingExporters:wu(t.tracingExporters).filter(s=>wK.has(s)),enableA2ui:ws(t.enableA2ui),subAgents:r,selectedSkills:Array.isArray(t.selectedSkills)?t.selectedSkills.map(s=>{const o=s&&typeof s=="object"?s:{};return{slug:rt(o.slug),name:rt(o.name)||rt(o.slug),namespace:rt(o.namespace)||"public"}}).filter(s=>!!s.slug):[]}}function kK(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 b,x,m,w;const g={name:p.name,transport:p.transport};return(b=p.url)!=null&&b.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()),(w=p.args)!=null&&w.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=>({slug:p.slug,name:p.name,namespace:p.namespace}))),(h=e.subAgents)!=null&&h.length&&(t.subAgents=e.subAgents.map(p=>{var b,x;const g={name:p.name,description:p.description,instruction:p.instruction};return(b=p.builtinTools)!=null&&b.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 m1(e){return`# VeADK 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」重新载入。 -`+nK(kK(e))}function t2(e){const t=tK(e);return e2(t)}const EK=[{kind:"intelligent",icon:ZB,title:"智能模式",desc:"敬请期待",disabled:!0},{kind:"custom",icon:o$,title:"自定义",desc:"分步配置模型、工具、记忆、知识库等组件。"},{kind:"template",icon:WB,title:"从模板新建",desc:"敬请期待",disabled:!0},{kind:"workflow",icon:a$,title:"工作流",desc:"敬请期待",disabled:!0}];function _K({onSelect:e,onImport:t}){const n=S.useRef(null),[r,i]=S.useState(""),s=EK.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(t2(u))}catch(u){i(`导入失败:${u instanceof Error?u.message:String(u)}`)}};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(i$,{}),"导入 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 SK="modulepreload",NK=function(e){return"/"+e},g1={},y1=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=NK(l),l in g1)return;g1[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":SK,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)})},TK=(()=>{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 AK(e){let t=4294967295;for(let n=0;n>>8;return(t^4294967295)>>>0}function Ge(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 b1=2048,Jh=20,w1=0;function CK(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=AK(b),m=b.length,w=[];rn(w,67324752),Ge(w,Jh),Ge(w,b1),Ge(w,w1),Ge(w,0),Ge(w,0),rn(w,x),rn(w,m),rn(w,m),Ge(w,g.length),Ge(w,0);const y=Uint8Array.from(w);n.push(y,g,b),r.push({nameBytes:g,dataBytes:b,crc:x,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),Ge(g,Jh),Ge(g,Jh),Ge(g,b1),Ge(g,w1),Ge(g,0),Ge(g,0),rn(g,p.crc),rn(g,p.size),rn(g,p.size),Ge(g,p.nameBytes.length),Ge(g,0),Ge(g,0),Ge(g,0),Ge(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),Ge(l,0),Ge(l,0),Ge(l,r.length),Ge(l,r.length),rn(l,a),rn(l,s),Ge(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",AA);tn.registerLanguage("typescript",FA);tn.registerLanguage("javascript",kA);tn.registerLanguage("json",EA);tn.registerLanguage("yaml",zA);tn.registerLanguage("markdown",TA);tn.registerLanguage("bash",gA);tn.registerLanguage("ini",yA);tn.registerLanguage("dockerfile",NV);tn.registerLanguage("makefile",NA);const MK={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"},x1={dockerfile:"dockerfile","requirements.txt":"plaintext","requirements-dev.txt":"plaintext",".env":"ini",".gitignore":"plaintext",makefile:"makefile"};function v1(e){return e.replace(/&/g,"&").replace(//g,">")}function IK(e){const n=(e.split("/").pop()??e).toLowerCase();if(x1[n])return x1[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 MK[i]??null}function OK(e,t){try{const n=IK(t);return n&&tn.getLanguage(n)?tn.highlight(e,{language:n,ignoreIllegals:!0}).value:n===null?tn.highlightAuto(e).value:v1(e)}catch{return v1(e)}}const ep=[{phase:"build",label:"构建镜像"},{phase:"deploy",label:"部署"},{phase:"publish",label:"发布"}];function RK(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 LK(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 $0({project:e,onChange:t,onDeploy:n,onAgentAdded:r}){var U,V,A;const i=typeof t=="function",[s,o]=S.useState(((V=(U=e==null?void 0:e.files)==null?void 0:U[0])==null?void 0:V.path)??null),[a,l]=S.useState(new Set),[c,u]=S.useState(!1),[d,h]=S.useState(""),[p,g]=S.useState(!1),[b,x]=S.useState(null),[m,w]=S.useState(null),[y,v]=S.useState({}),[E,k]=S.useState(null),[C,N]=S.useState(!1),I=S.useMemo(()=>!(e!=null&&e.files)||!Array.isArray(e.files)?{name:"",children:new Map}:RK(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 B(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 $(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),w(null),v({}),k(null),g(!0);try{const F=await n(e,q=>{v(G=>({...G,[q.phase]:q})),k(q.phase)});w(F),k(null)}catch(F){x(F instanceof Error?F.message:String(F))}finally{g(!1)}}}async function R(){if(!(!m||C)){N(!0),x(null);try{const{addConnection:F,remoteAppId:q,loadConnections:G}=await y1(async()=>{const{addConnection:H,remoteAppId:Q,loadConnections:se}=await Promise.resolve().then(()=>Fx);return{addConnection:H,remoteAppId:Q,loadConnections:se}},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}},se=G().map(ie=>ie.id===Y.id?H:ie);localStorage.setItem("veadk_agentkit_connections",JSON.stringify(se));const{registerConnections:le}=await y1(async()=>{const{registerConnections:ie}=await Promise.resolve().then(()=>Fx);return{registerConnections:ie}},void 0);if(le(se),r){const ie=q(Y.id,Y.apps[0]);r(ie,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=CK(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 _(F,q,G){return LK(F).map(Y=>{const H=G?`${G}/${Y.name}`:Y.name,Q=Y.path!==void 0,se={paddingLeft:8+q*14};if(Q){const ie=Y.path===s;return f.jsxs("button",{type:"button",className:`pp-row pp-file${ie?" pp-active":""}`,style:se,onClick:()=>o(Y.path),title:Y.path,children:[f.jsx(BB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]},H)}const le=a.has(H);return f.jsxs("div",{children:[f.jsxs("button",{type:"button",className:"pp-row pp-folder",style:se,onClick:()=>B(H),children:[f.jsx(Wn,{className:`pp-ic pp-chevron${le?"":" pp-open"}`}),f.jsx(FB,{className:"pp-ic"}),f.jsx("span",{className:"pp-label",children:Y.name})]}),!le&&_(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(DB,{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:"暂无文件"}):_(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(t$,{className:"pp-ic"})}),f.jsx("button",{type:"button",className:"pp-icon-btn pp-danger",title:"删除",onClick:O,children:f.jsx(Po,{className:"pp-ic"})})]}),e.files.length>0&&f.jsxs("button",{type:"button",className:"pp-secondary",title:"下载 ZIP",onClick:P,children:[f.jsx(RB,{className:"pp-ic"}),"下载 ZIP"]}),n&&f.jsxs("button",{type:"button",className:"pp-deploy",onClick:D,disabled:p,children:[p?f.jsx(gt,{className:"pp-ic spin"}):f.jsx(id,{className:"pp-ic"}),"部署到 AgentKit"]})]})]}),(p||m||Object.keys(y).length>0)&&f.jsx("ol",{className:"pp-steps",children:ep.map((F,q)=>{const G=E?ep.findIndex(se=>se.phase===E):-1,Y=!!b&&(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:A.label)??E}阶段):`:"",b]}),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:C,children:[C?f.jsx(gt,{className:"pp-ic spin"}):null,C?"连接中…":"添加此 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=>$(F.target.value)}):f.jsx("pre",{className:"pp-pre hljs",dangerouslySetInnerHTML:{__html:OK(T.content,T.path)}})})]})]})}const k1="dogfooding",tp="dogfooding",np="dogfooding_b";let PK=0;const rp=()=>++PK;function E1(e){return e.blocks.filter(t=>t.kind==="text").map(t=>t.text).join("")}function DK(e){const t=e.trim(),n=t.match(/^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i);return(n?n[1]:t).trim()}function _1(e){const t=[],n=DK(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 GC(e2(o))}catch{}return null}function jK({userId:e,onBack:t,onCreate:n,onAgentAdded:r}){const[i,s]=S.useState([{id:rp(),role:"assistant",text:"你好,我是 VeADK 的智能构建助手。用自然语言描述你想要的 Agent,我会直接帮你生成一个可运行的 VeADK 项目,并在右侧实时预览。"}]),[o,a]=S.useState(""),[l,c]=S.useState(!1),[u,d]=S.useState(null),[h,p]=S.useState(null),[g,b]=S.useState(!1),[x,m]=S.useState(null),[w,y]=S.useState(null),[v,E]=S.useState(!1),[k,C]=S.useState(!1),[N,I]=S.useState({}),T=S.useRef(null),B=S.useRef(null),j=S.useRef(null),$=S.useRef(null),M=S.useRef(null);S.useEffect(()=>{const F=$.current;F&&F.scrollTo({top:F.scrollHeight,behavior:"smooth"})},[i,l]),S.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:rp(),role:"assistant",text:F}]);async function O(){if(T.current)return T.current;const F=await Am(k1,e);return T.current=F,F}async function D(F,q){if(q.current)return q.current;const G=await Am(F,e);return q.current=G,G}async function R(F,q){if(!N[F])try{const G=await Gy(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 se of sd({appName:F,userId:e,sessionId:Y,text:G}))H=ul(H,se);const Q=E1(H).trim();return{project:_1(Q),finalText:Q}}const _=async F=>KN(F.name,F.files,{region:"cn-beijing",projectName:"default"}),U=async()=>{const F=o.trim();if(!(!F||l)){if(s(q=>[...q,{id:rp(),role:"user",text:F}]),a(""),d(null),c(!0),g){m(null),y(null),E(!0),C(!0),R("a",tp),R("b",np);const q=P(tp,B,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(np,j,F).then(({project:Y})=>(y(Y),Y)).catch(Y=>{const H=Y instanceof Error?Y.message:String(Y);return d(H),null}).finally(()=>C(!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 sd({appName:k1,userId:e,sessionId:q,text:F}))G=ul(G,Q);const Y=E1(G).trim(),H=_1(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:w;if(!q)return;p(q),b(!1),m(null),y(null),E(!1),C(!1);const G=F==="a"?"A":"B",Y=F==="a"?N.a:N.b;L(`已采用方案 ${G}(${Y??(F==="a"?tp:np)}),可继续编辑。`)},A=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:$,children:[f.jsx(uy,{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(mo,{className:"ic-avatar-icon"})}),f.jsx("div",{className:"ic-bubble",children:F.role==="assistant"?f.jsx(k0,{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(mo,{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(MB,{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:A,disabled:l}),f.jsx("button",{className:"ic-send",onClick:()=>void U(),disabled:!o.trim()||l,title:"发送 (Enter)",children:f.jsx(n$,{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=>b(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(S1,{side:"a",project:x,loading:v,model:N.a,onAdopt:()=>V("a")}),f.jsx("div",{className:"ic-compare-divider"}),f.jsx(S1,{side:"b",project:w,loading:k,model:N.b,onAdopt:()=>V("b")})]}):h?f.jsx($0,{project:h,onChange:p,onDeploy:_,onAgentAdded:r}):f.jsxs("div",{className:"ic-preview-empty",children:[f.jsxs("div",{className:"ic-preview-empty-icon",children:[f.jsx($B,{className:"ic-preview-empty-glyph"}),f.jsx(Yd,{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 S1({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(gt,{className:"ic-pane-spinner"}),f.jsx("span",{children:"正在生成…"})]}):t?f.jsx($0,{project:t}):f.jsx("div",{className:"ic-pane-empty",children:"该方案未返回可用项目"})})]})}const n2="/skillhub/v1/skills";async function BK(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 $K(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 zK(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 sa(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}async function FK(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 zK(e){let n=-1;for(let a=e.length-22;a>=0&&a>e.length-65557;a--)if(sa(e,a)===101010256){n=a;break}if(n<0)throw new Error("无效的 zip:找不到 EOCD");const r=wi(e,n+10);let i=sa(e,n+16);const s=new TextDecoder("utf-8"),o=[];for(let a=0;ae==="sequential"||e==="parallel"||e==="loop",F0=e=>e==="a2a";function A1({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(Uy,{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 ip({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 VK({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(uy,{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(Po,{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(Lo,{className:"cw-i"}),"添加 MCP 工具"]}),e.length===0&&f.jsx("p",{className:"cw-empty-line",children:"暂无 MCP 工具,点击「添加 MCP 工具」连接外部 MCP 服务。"})]})}function HK({selected:e,onChange:t}){const[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(!1),[l,c]=S.useState(null),[u,d]=S.useState(!1),h=x=>e.some(m=>m.slug===x),p=x=>{h(x.slug)?t(e.filter(m=>m.slug!==x.slug)):t([...e,{slug:x.slug,name:x.name,namespace:x.namespace}])},g=x=>t(e.filter(m=>m.slug!==x)),b=async x=>{a(!0),c(null),d(!0);try{const m=await BK(x);s(m)}catch(m){c(m instanceof Error?m.message:"搜索失败,请稍后重试。"),s([])}finally{a(!1)}};return S.useEffect(()=>{const x=n.trim();if(!x){s([]),d(!1),c(null);return}const m=setTimeout(()=>b(x),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(Tm,{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:x=>r(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.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(gt,{className:"cw-i cw-spin"}):f.jsx(Tm,{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(uy,{initial:!1,children:e.map(x=>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(Yd,{className:"cw-i cw-i-sm"}),x.name,f.jsx("button",{type:"button",className:"cw-pill-x",onClick:()=>g(x.slug),"aria-label":`移除 ${x.name}`,children:f.jsx(Xd,{className:"cw-i cw-i-sm"})})]},x.slug))})})]}),l&&f.jsxs("div",{className:"cw-banner",children:[f.jsx(BN,{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(x=>{const m=h(x.slug);return f.jsxs("button",{type:"button",className:`cw-skill-result ${m?"is-on":""}`,onClick:()=>p(x),"aria-pressed":m,children:[f.jsx("span",{className:"cw-skill-result-icon","aria-hidden":!0,children:m?f.jsx(Uy,{className:"cw-i cw-i-sm"}):f.jsx(Lo,{className:"cw-i cw-i-sm"})}),f.jsxs("span",{className:"cw-skill-result-meta",children:[f.jsx("span",{className:"cw-skill-result-name",children:x.name}),x.description&&f.jsx("span",{className:"cw-skill-result-desc",children:x.description}),x.sourceRepo&&f.jsx("span",{className:"cw-skill-result-repo",children:x.sourceRepo})]})]},x.id||x.slug)})}):u&&!l?f.jsx("p",{className:"cw-empty-line",children:"没有找到匹配的技能,换个关键词试试。"}):!u&&f.jsx("p",{className:"cw-empty-line",children:"输入关键词以搜索 Skill Hub,所选技能会在生成项目时下载到 skills/ 目录。"})]})}function xs({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 C1=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function KK(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 xu(e,t){let n=e;for(const r of t)n=n.subAgents[r];return n}function Gl(e,t,n){if(t.length===0)return n(e);const[r,...i]=t,s=e.subAgents.slice();return s[r]=Gl(s[r],i,n),{...e,subAgents:s}}function qK(e,t){return Gl(e,t,n=>({...n,subAgents:[...n.subAgents,us()]}))}function WK(e,t){if(t.length===0)return e;const n=t.slice(0,-1),r=t[t.length-1];return Gl(e,n,i=>({...i,subAgents:i.subAgents.filter((s,o)=>o!==r)}))}function GK(e,t,n,r){return Gl(e,t,i=>{const s=i.subAgents.slice(),[o]=s.splice(n,1);return s.splice(r,0,o),{...i,subAgents:s}})}const YK=e=>e==="sequential"||e==="loop",i2=e=>!F0(e.agentType),XK=3,QK=e=>Zm.find(t=>t.id===(e??"llm"))??Zm[0];function s2(e){return e.name.trim().length===0?"缺少名称":F0(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=xu(e,t),o=QK(s.agentType),a=o.icon,l=t.length===0,c=C1(t,n),u=i2(s),d=u&&t.length{const y=qK(e,t),v=xu(y,t).subAgents.length-1;i(y,[...t,v])},p=()=>i(WK(e,t),t.slice(0,-1)),g=t.slice(0,-1),b=!l&&YK(xu(e,g).agentType),[x,m]=S.useState(!1),w=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(!C1(E.slice(0,-1),g))return;const k=E[E.length-1],C=t[t.length-1];k!==C&&i(GK(e,g,k,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":""} ${x?"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?w: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:[d&&f.jsx("button",{type:"button",className:"cw-icon-btn",title:"添加子 Agent",onClick:y=>{y.stopPropagation(),h()},children:f.jsx(Lo,{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(Po,{className:"cw-i cw-i-sm"})})]})]}),u&&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 ZK({onBack:e,onCreate:t,onAgentAdded:n,initialDraft:r,author:i=""}){const[s,o]=S.useState(()=>r??us()),[a,l]=S.useState(!1),[c,u]=S.useState(null),[d,h]=S.useState(!1),[p,g]=S.useState("type"),b=S.useRef(null),[x,m]=S.useState(""),w=async K=>{var ae;const re=(ae=K.target.files)==null?void 0:ae[0];if(K.target.value="",!!re){m("");try{const ne=await re.text();o(t2(ne)),v([]),l(!1)}catch(ne){m(`导入失败:${ne instanceof Error?ne.message:String(ne)}`)}}},[y,v]=S.useState([]),E=S.useRef(null),k=S.useRef({}),C=S.useRef(null);C.current||(C.current=({meta:K,children:re})=>f.jsxs("section",{ref:ae=>{k.current[K.id]=ae},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=KK(s,y)?y:[],I=xu(s,N),T=K=>o(re=>Gl(re,N,ae=>({...ae,...K}))),B=(K,re)=>{o(K),re&&v(re)},j=I.builtinTools??[],$=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(ae=>ae!==K):[...M,K];T({tracingExporters:re,tracing:re.length>0?!0:I.tracing})},R=r2(I.agentType),P=F0(I.agentType),_=I.name.trim().length===0,U=I.instruction.trim().length===0,V=(I.a2aUrl??"").trim().length===0,A=S.useMemo(()=>o2(s),[s]),F=A.length===0,q=S.useMemo(()=>{var K,re,ae,ne;return{type:!0,basic:!_&&(R||P||!U),model:!!((K=I.modelName)!=null&&K.trim()||(re=I.modelProvider)!=null&&re.trim()||(ae=I.modelApiBase)!=null&&ae.trim()),tools:j.length>0||$.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,_,U,R,P,F,j,$,L]),G=R||P?["basic"]:["basic","model","tools","skills","memory","knowledge","tracing"],Y=T1.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"})};S.useEffect(()=>{if(c)return;const K=E.current;if(!K)return;const re=new IntersectionObserver(ae=>{var ce,Te;const he=(Te=(ce=ae.filter(ve=>ve.isIntersecting).sort((ve,we)=>ve.boundingClientRect.top-we.boundingClientRect.top)[0])==null?void 0:ce.target)==null?void 0:Te.dataset.stepId;he&&g(he)},{root:K,rootMargin:"0px 0px -65% 0px",threshold:0});for(const ae of Object.values(k.current))ae&&re.observe(ae);return()=>re.disconnect()},[c]);const se=async()=>{if(!F){l(!0),A[0]&&v(A[0].path);return}const K=GC(s),re=[],ae=new Set,ne=he=>{for(const ce of he.selectedSkills??[]){const Te=`${ce.namespace}/${ce.slug}`;ae.has(Te)||(ae.add(Te),re.push(ce))}(he.subAgents??[]).forEach(ne)};if(ne(s),re.length>0){h(!0);try{const he=await Promise.all(re.map(Te=>$K(Te.slug,Te.namespace).catch(ve=>(console.warn(`下载技能失败:${Te.name}`,ve),[])))),ce=new Set(K.files.map(Te=>Te.path));for(const Te of he)for(const ve of Te)ce.has(ve.path)||(K.files.push(ve),ce.add(ve.path))}finally{h(!1)}}u(K)};if(c){const K=async(re,ae)=>KN(re.name,re.files,{region:"cn-beijing",projectName:"default"},{author:i,onStage:ae});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(RN,{className:"cw-i"}),"返回配置"]}),f.jsxs("span",{className:"cw-preview-title",children:[f.jsx(id,{className:"cw-i"}),"项目预览 · ",c.name]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft cw-preview-yaml",onClick:()=>N1(`${s.name||"agent"}.yaml`,m1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Rx,{className:"cw-i"}),"导出 YAML"]})]}),f.jsx("div",{className:"cw-preview-body",children:f.jsx($0,{project:c,onChange:u,onDeploy:K,onAgentAdded:n})})]})}const le=C.current,ie=K=>T1.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(a2,{root:s,path:[],selectedPath:N,onSelect:v,onChange:B})]}),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:Zm.map(K=>{const re=(I.agentType??"llm")===K.id,ae=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(ae,{className:"cw-typeradio-icon"}),f.jsx("span",{className:"cw-typeradio-title",children:K.label})]})})]},K.id)})}),A.length>0&&f.jsxs("div",{className:"cw-missing",role:"alert",children:[f.jsxs("span",{className:"cw-missing-lead",children:["待补全(",A.length,")"]}),f.jsx("div",{className:"cw-missing-list",children:A.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(le,{meta:ie("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&&_?"is-error":""}`,value:I.name,placeholder:"例如:客服智能体",onChange:K=>T({name:K.target.value})}),a&&_&&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:`你是一个…… +`+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(le,{meta:ie("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(le,{meta:ie("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(A1,{items:UC,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(VK,{tools:$,onChange:K=>T({mcpTools:K})})]})]})}),f.jsx(le,{meta:ie("skills"),children:f.jsxs("div",{className:"cw-form",children:[f.jsx("p",{className:"cw-section-desc",children:"从 Skill Hub 搜索并选择技能,生成项目时会自动下载到 skills/ 目录。"}),f.jsx(HK,{selected:L,onChange:K=>T({selectedSkills:K})})]})}),f.jsx(le,{meta:ie("memory"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(xs,{checked:I.memory.shortTerm,onChange:K=>T({memory:{...I.memory,shortTerm:K}}),title:"短期记忆",desc:"在单次会话内保留上下文,跨轮次记住对话内容。",icon:$N}),I.memory.shortTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"短期记忆后端"}),f.jsx(ip,{options:VC,value:I.shortTermBackend,onChange:K=>T({shortTermBackend:K})})]}),f.jsx(xs,{checked:I.memory.longTerm,onChange:K=>T({memory:{...I.memory,longTerm:K}}),title:"长期记忆",desc:"跨会话持久化关键信息,让 Agent 记住历史偏好。",icon:hu}),I.memory.longTerm&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"长期记忆后端"}),f.jsx(ip,{options:HC,value:I.longTermBackend,onChange:K=>T({longTermBackend:K})}),f.jsx(xs,{checked:!!I.autoSaveSession,onChange:K=>T({autoSaveSession:K}),title:"自动保存会话到长期记忆",desc:"会话结束时自动把内容写入长期记忆,无需手动调用。",icon:hu})]})]})}),f.jsx(le,{meta:ie("knowledge"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(xs,{checked:I.knowledgebase,onChange:K=>T({knowledgebase:K}),title:"知识库",desc:"启用外部知识检索(RAG),让 Agent 基于你的资料作答。",icon:hu}),I.knowledgebase&&f.jsxs("div",{className:"cw-field cw-subfield",children:[f.jsx("label",{className:"cw-label",children:"知识库后端"}),f.jsx(ip,{options:KC,value:I.knowledgebaseBackend,onChange:K=>T({knowledgebaseBackend:K})})]})]})}),f.jsx(le,{meta:ie("tracing"),children:f.jsxs("div",{className:"cw-form cw-toggle-stack",children:[f.jsx(xs,{checked:I.tracing,onChange:K=>T({tracing:K}),title:"观测 / Tracing",desc:"记录每一步的调用链路与耗时,便于调试与性能分析。",icon:DN}),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(A1,{items:qC,selected:M,onToggle:D})]}),f.jsx(xs,{checked:I.enableA2ui,onChange:K=>T({enableA2ui:K}),title:"A2UI",desc:"允许 Agent 渲染交互式 UI 卡片,而不仅仅是纯文本。",icon:qB})]})})]})]}),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,ae=q[K.id];return f.jsx("li",{children:f.jsxs("button",{type:"button",className:`cw-step ${re?"is-active":""} ${ae?"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),A[0]&&v(A[0].path)},children:["待补全(",A.length,"):",A[0].name," · ",A[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:w}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>{var K;return(K=b.current)==null?void 0:K.click()},title:"从 YAML 加载 Agent 结构(覆盖当前表单)",children:[f.jsx(jB,{className:"cw-i"}),"导入 YAML"]}),f.jsxs("button",{type:"button",className:"cw-btn cw-btn-soft",onClick:()=>N1(`${s.name||"agent"}.yaml`,m1(s),"text/yaml"),title:"导出表示 Agent 结构的 YAML",children:[f.jsx(Rx,{className:"cw-i"}),"导出 YAML"]}),f.jsx("button",{type:"button",className:"cw-btn cw-btn-primary cw-btn-finish",onClick:se,disabled:!F||d,children:d?f.jsxs(f.Fragment,{children:[f.jsx(gt,{className:"cw-i cw-spin"}),"正在下载技能…"]}):f.jsxs(f.Fragment,{children:[f.jsx(id,{className:"cw-i"}),"生成项目"]})})]})]})]})}function pr(e){return{...us(),...e}}const JK=[{id:"support",icon:VB,draft:pr({name:"客服助手",description:"7×24 在线答疑,结合知识库与历史对话,稳定、礼貌地解决用户问题。",instruction:"你是一名专业、耐心的客服助手。请始终保持礼貌、友好的语气,优先依据知识库中的资料回答用户问题;当资料不足以确定答案时,如实告知用户并主动引导其提供更多信息,切勿编造。回答尽量简洁、分点清晰,必要时给出操作步骤。",model:"doubao-1.5-pro-32k",knowledgebase:!0,memory:{shortTerm:!0,longTerm:!0}})},{id:"analyst",icon:AB,draft:pr({name:"数据分析师",description:"运行代码完成统计与可视化,开启链路追踪,分析过程可观测、可复现。",instruction:"你是一名严谨的数据分析师。面对数据问题时,先厘清分析目标与口径,再通过编写并运行代码完成清洗、统计与可视化。每一步都要说明你的假设与方法,给出结论时附上关键数据支撑,并指出潜在的偏差与局限。",model:"doubao-1.5-pro-32k",tools:["code_runner"],tracing:!0})},{id:"translator",icon:KB,draft:pr({name:"翻译助手",description:"中英互译,忠实、通顺、地道,保留原文语气与专业术语。",instruction:"你是一名专业的翻译助手,精通中英互译。请在忠实于原文含义的前提下,使译文自然、地道、符合目标语言表达习惯;保留专有名词与专业术语的准确性,并尽量贴合原文的语气与风格。仅输出译文,除非用户额外要求解释。",model:"doubao-1.5-pro-32k"})},{id:"coder",icon:IB,draft:pr({name:"代码助手",description:"编写、调试与重构代码,可运行代码验证结果,给出清晰可维护的实现。",instruction:"你是一名资深软件工程师。请根据需求编写正确、清晰、可维护的代码,遵循目标语言的惯用风格与最佳实践。在不确定时通过运行代码验证你的实现,给出关键的边界条件与测试思路,并对复杂逻辑附上简要注释。",model:"doubao-1.5-pro-32k",tools:["code_runner","file_reader"],tracing:!0})},{id:"researcher",icon:JB,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:s$,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 e7(e){const t=[];return e.tools.length&&t.push({icon:qy,label:"工具"}),(e.memory.shortTerm||e.memory.longTerm)&&t.push({icon:TB,label:"记忆"}),e.knowledgebase&&t.push({icon:NB,label:"知识库"}),e.tracing&&t.push({icon:EB,label:"观测"}),e.subAgents.length&&t.push({icon:e$,label:`子Agent ${e.subAgents.length}`}),t}function t7({onBack:e,onCreate:t}){const[n,r]=S.useState(null);return f.jsx("div",{className:"tpl-root",children:n?f.jsx(r7,{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:JK.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 r7({template:e,onBack:t,onCreate:n}){const[r,i]=S.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(RN,{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:i7(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 i7(e){const t=[];return e.memory.shortTerm&&t.push("短期"),e.memory.longTerm&&t.push("长期"),t.length?t.join(" + "):"关闭"}function ht(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n{}};function hf(){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}})}vu.prototype=hf.prototype={constructor:vu,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)),I1.hasOwnProperty(t)?{space:I1[t],local:e}:e}function l7(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Jm&&t.documentElement.namespaceURI===Jm?t.createElement(e):t.createElementNS(n,e)}}function c7(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function l2(e){var t=pf(e);return(t.local?c7:l7)(t)}function u7(){}function z0(e){return e==null?u7:function(){return this.querySelector(e)}}function d7(e){typeof e!="function"&&(e=z0(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=y&&(y=w+1);!(E=x[y])&&++y=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function D7(e){e||(e=j7);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 B7(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function $7(){return Array.from(this)}function F7(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Q7:typeof t=="function"?J7:Z7)(e,t,n??"")):vo(this.node(),e)}function vo(e,t){return e.style.getPropertyValue(t)||h2(e).getComputedStyle(e,null).getPropertyValue(t)}function tq(e){return function(){delete this[e]}}function nq(e,t){return function(){this[e]=t}}function rq(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function iq(e,t){return arguments.length>1?this.each((t==null?tq:typeof t=="function"?rq:nq)(e,t)):this.node()[e]}function p2(e){return e.trim().split(/^|\s+/)}function U0(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=U0(e),r=-1,i=t.length;++r=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Oq(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n()=>e;function eg(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}})}eg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Uq(e){return!e.ctrlKey&&!e.button}function Vq(){return this.parentNode}function Hq(e,t){return t??{x:e.x,y:e.y}}function Kq(){return navigator.maxTouchPoints||"ontouchstart"in this}function k2(){var e=Uq,t=Vq,n=Hq,r=Kq,i={},s=hf("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,zq).on("touchend.drag touchcancel.drag",w).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=y(this,t.call(this,v,E),v,E,"mouse");k&&(an(v.view).on("mousemove.drag",g,yl).on("mouseup.drag",b,yl),x2(v.view),sp(v),c=!1,a=v.clientX,l=v.clientY,k("start",v))}}function g(v){if(no(v),!c){var E=v.clientX-a,k=v.clientY-l;c=E*E+k*k>d}i.mouse("drag",v)}function b(v){an(v.view).on("mousemove.drag mouseup.drag",null),v2(v.view,c),no(v),i.mouse("end",v)}function x(v,E){if(e.call(this,v,E)){var k=v.changedTouches,C=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?Hc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Hc(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=Wq.exec(e))?new Qt(t[1],t[2],t[3],1):(t=Gq.exec(e))?new Qt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Yq.exec(e))?Hc(t[1],t[2],t[3],t[4]):(t=Xq.exec(e))?Hc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Qq.exec(e))?B1(t[1],t[2]/100,t[3]/100,1):(t=Zq.exec(e))?B1(t[1],t[2]/100,t[3]/100,t[4]):O1.hasOwnProperty(e)?P1(O1[e]):e==="transparent"?new Qt(NaN,NaN,NaN,0):null}function P1(e){return new Qt(e>>16&255,e>>8&255,e&255,1)}function Hc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Qt(e,t,n,r)}function tW(e){return e instanceof Xl||(e=Qi(e)),e?(e=e.rgb(),new Qt(e.r,e.g,e.b,e.opacity)):new Qt}function tg(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}V0(Qt,tg,E2(Xl,{brighter(e){return e=e==null?yd:Math.pow(yd,e),new Qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?bl:Math.pow(bl,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),bd(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:D1,formatHex:D1,formatHex8:nW,formatRgb:j1,toString:j1}));function D1(){return`#${Li(this.r)}${Li(this.g)}${Li(this.b)}`}function nW(){return`#${Li(this.r)}${Li(this.g)}${Li(this.b)}${Li((isNaN(this.opacity)?1:this.opacity)*255)}`}function j1(){const e=bd(this.opacity);return`${e===1?"rgb(":"rgba("}${zi(this.r)}, ${zi(this.g)}, ${zi(this.b)}${e===1?")":`, ${e})`}`}function bd(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 Li(e){return e=zi(e),(e<16?"0":"")+e.toString(16)}function B1(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 _2(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof Xl||(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 rW(e,t,n,r){return arguments.length===1?_2(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}V0($n,rW,E2(Xl,{brighter(e){return e=e==null?yd:Math.pow(yd,e),new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?bl:Math.pow(bl,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(op(e>=240?e-240:e+120,i,r),op(e,i,r),op(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n($1(this.h),Kc(this.s),Kc(this.l),bd(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=bd(this.opacity);return`${e===1?"hsl(":"hsla("}${$1(this.h)}, ${Kc(this.s)*100}%, ${Kc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function $1(e){return e=(e||0)%360,e<0?e+360:e}function Kc(e){return Math.max(0,Math.min(1,e||0))}function op(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 H0=e=>()=>e;function iW(e,t){return function(n){return e+n*t}}function sW(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?S2:function(t,n){return n-t?sW(t,n,e):H0(isNaN(t)?n:t)}}function S2(e,t){var n=t-e;return n?iW(e,n):H0(isNaN(e)?t:e)}const wd=function e(t){var n=oW(t);function r(i,s){var o=n((i=tg(i)).r,(s=tg(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),c=S2(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 aW(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=ap.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 b=p.push(i(p)+"scale(",null,",",null,")");g.push({i:b-4,x:er(c,d)},{i:b-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,b=h.length,x;++g=0&&e._call.call(void 0,t),e=e._next;--ko}function U1(){Zi=(vd=xl.now())+mf,ko=ya=0;try{kW()}finally{ko=0,_W(),Zi=0}}function EW(){var e=xl.now(),t=e-vd;t>C2&&(mf-=t,vd=e)}function _W(){for(var e,t=xd,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:xd=n);ba=e,ig(r)}function ig(e){if(!ko){ya&&(ya=clearTimeout(ya));var t=e-Zi;t>24?(e<1/0&&(ya=setTimeout(U1,e-xl.now()-mf)),oa&&(oa=clearInterval(oa))):(oa||(vd=xl.now(),oa=setInterval(EW,C2)),ko=1,M2(U1))}}function V1(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 SW=hf("start","end","cancel","interrupt"),NW=[],O2=0,H1=1,sg=2,Eu=3,K1=4,og=5,_u=6;function gf(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;TW(e,n,{name:t,index:r,group:i,on:SW,tween:NW,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:O2})}function q0(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>Eu)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 TW(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=I2(s,0,n.time);function s(c){n.state=H1,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!==H1)return l();for(u in r)if(p=r[u],p.name===n.name){if(p.state===Eu)return V1(o);p.state===K1?(p.state=_u,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[u]):+usg&&r.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function rG(e,t,n){var r,i,s=nG(t)?q0:cr;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function iG(e,t){var n=this._id;return arguments.length<2?Yn(this.node(),n).on.on(e):this.each(rG(n,e,t))}function sG(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",sG(this._id))}function aG(e){var t=this._name,n=this._id;typeof e!="function"&&(e=z0(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o()=>e;function OG(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 yf=new vr(1,0,0);D2.prototype=vr.prototype;function D2(e){for(;!e.__zoom;)if(!(e=e.parentNode))return yf;return e.__zoom}function lp(e){e.stopImmediatePropagation()}function aa(e){e.preventDefault(),e.stopImmediatePropagation()}function RG(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function LG(){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||yf}function PG(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function DG(){return navigator.maxTouchPoints||"ontouchstart"in this}function jG(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=RG,t=LG,n=jG,r=PG,i=DG,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=ku,c=hf("start","zoom","end"),u,d,h,p=500,g=150,b=0,x=10;function m(M){M.property("__zoom",q1).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",T).filter(i).on("touchstart.zoom",B).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",$).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",q1),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,_=O==null?v(R):typeof O=="function"?O.apply(this,arguments):O,U=P.invert(_),V=typeof L=="function"?L.apply(this,arguments):L;return n(y(w(P,V),_,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),_=this.__zoom,U=D==null?v(P):typeof D=="function"?D.apply(this,arguments):D;return n(yf.translate(U[0],U[1]).scale(_.k).translate(typeof L=="function"?-L.apply(this,arguments):-L,typeof O=="function"?-O.apply(this,arguments):-O),P,o)},D,R)};function w(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 y(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,_=k(R,P).event(D),U=t.apply(R,P),V=O==null?v(U):typeof O=="function"?O.apply(R,P):O,A=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(A/F.k),q.invert(V).concat(A/q.k));return function(Y){if(Y===1)Y=q;else{var H=G(Y),Q=A/H[2];Y=new vr(Q,V[0]-H[0]*Q,V[1]-H[1]*Q)}_.zoom(null,Y)}})}function k(M,L,O){return!O&&M.__zooming||new C(M,L)}function C(M,L){this.that=M,this.args=L,this.active=0,this.sourceEvent=null,this.extent=t.apply(M,L),this.taps=0}C.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 OG(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)],Su(this),O.start()}aa(M),O.wheel=setTimeout(_,g),O.zoom("mouse",n(y(w(D,R),O.mouse[0],O.mouse[1]),O.extent,o));function _(){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",A,!0),P=jn(M,O),_=M.clientX,U=M.clientY;x2(M.view),lp(M),D.mouse=[P,this.__zoom.invert(P)],Su(this),D.start();function V(F){if(aa(F),!D.moved){var q=F.clientX-_,G=F.clientY-U;D.moved=q*q+G*G>b}D.event(F).zoom("mouse",n(y(D.that.__zoom,D.mouse[0]=jn(F,O),D.mouse[1]),D.extent,o))}function A(F){R.on("mousemove.zoom mouseup.zoom",null),v2(F.view,D.moved),aa(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),_=n(y(w(O,P),D,R),t.apply(this,L),o);aa(M),a>0?an(this).transition().duration(a).call(E,_,D,M):an(this).call(m.transform,_,D,M)}}function B(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,_,U,V;for(lp(M),_=0;_`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.`},vl=[[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 kl;(function(e){e.Partial="partial",e.Full="full"})(kl||(kl={}));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 El;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(El||(El={}));var pe;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(pe||(pe={}));const W1={[pe.Left]:pe.Right,[pe.Right]:pe.Left,[pe.Top]:pe.Bottom,[pe.Bottom]:pe.Top};function z2(e){return e===null?null:e?"valid":"invalid"}const U2=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,BG=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),G0=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Ql=(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}},$G=(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):G0(i)?i:t.nodeLookup.get(i.id));const a=o?Ed(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return bf(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return wf(n)},Zl=(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=bf(n,Ed(i)),r=!0)}),r?wf(n):{x:0,y:0,width:0,height:0}},Y0=(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:b=!1}=h;if(o&&!g||b)continue;const x=p.width??h.width??h.initialWidth??0,m=p.height??h.height??h.initialHeight??0,{x:w,y}=h.internals.positionAbsolute,v=q2(a,l,c,u,w,y,x,m),E=x*m,k=s&&v>0;(!h.internals.handleBounds||k||v>=E||h.dragging)&&d.push(h)}return d},FG=(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 zG(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 UG({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return!0;const a=zG(e,o),l=Zl(a),c=Q0(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},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&&es(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=es(d)?Ji(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 VG({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),u=FG(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 _o=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ji=(e={x:0,y:0},t,n)=>({x:_o(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:_o(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}=ur(n),{x:s,y:o}=n.internals.positionAbsolute;return Ji(e,[[s,o],[s+r,o+i]],t)}const G1=(e,t,n)=>en?-_o(Math.abs(e-n),1,t)/t:0,X0=(e,t,n=15,r=40)=>{const i=G1(e.x,r,t.width-r)*n,s=G1(e.y,r,t.height-r)*n;return[i,s]},bf=(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)}),ag=({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}),_l=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=G0(e)?e.internals.positionAbsolute:Ql(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}},Ed=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=G0(e)?e.internals.positionAbsolute:Ql(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(bf(ag(e),ag(t))),q2=(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)},_d=(e,t)=>q2(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Y1=e=>Fn(e.width)&&Fn(e.height)&&Fn(e.x)&&Fn(e.y),Fn=e=>!isNaN(e)&&isFinite(e),W2=(e,t)=>(n,r)=>{},Jl=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ec=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?Jl(a,o):a},So=({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 HG(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 KG(e,t,n,r,i,s){const{x:o,y:a}=So(e,[t,n,r]),{x:l,y:c}=So({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 Q0=(e,t,n,r,i,s)=>{const o=HG(s,t,n),a=(t-o.x)/e.width,l=(n-o.y)/e.height,c=Math.min(a,l),u=_o(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,b=KG(e,p,g,u,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:u}},Sl=()=>{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 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 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 Y2(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 X1(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function qG(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function WG(e){return{...$2,...e||{}}}function $a(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=zn(e),a=ec({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:l,y:c}=n?Jl(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const Z0=e=>({width:e.offsetWidth,height:e.offsetHeight}),X2=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},GG=["INPUT","SELECT","TEXTAREA"];function Q2(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:GG.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Z2=e=>"clientX"in e,zn=(e,t)=>{var s,o;const n=Z2(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)}},Q1=(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,...Z0(o)}})};function J2({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 Gc(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Z1({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case pe.Left:return[t-Gc(t-r,s),n];case pe.Right:return[t+Gc(r-t,s),n];case pe.Top:return[t,n-Gc(n-i,s)];case pe.Bottom:return[t,n+Gc(i-n,s)]}}function eM({sourceX:e,sourceY:t,sourcePosition:n=pe.Bottom,targetX:r,targetY:i,targetPosition:s=pe.Top,curvature:o=.25}){const[a,l]=Z1({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[c,u]=Z1({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[d,h,p,g]=J2({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 tM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n0}const QG=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,ZG=(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)),JG=(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||QG;let i;return U2(e)?i={...e}:i={...e,id:r(e)},ZG(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function nM({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=tM({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const J1={[pe.Left]:{x:-1,y:0},[pe.Right]:{x:1,y:0},[pe.Top]:{x:0,y:-1},[pe.Bottom]:{x:0,y:1}},eY=({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=J1[t],l=J1[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=eY({source:c,sourcePosition:t,target:u}),h=d.x!==0?"x":"y",p=d[h];let g=[],b,x;const m={x:0,y:0},w={x:0,y:0},[,,y,v]=tM({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+(u.x-c.x)*o,x=i.y??(c.y+u.y)/2):(b=i.x??(c.x+u.x)/2,x=i.y??c.y+(u.y-c.y)*o);const N=[{x:b,y:c.y},{x:b,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:w[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=(T.x+B.x)/2,x=g[0].y):(b=g[0].x,x=(T.y+B.y)/2)}const E={x:c.x+m.x,y:c.y+m.y},k={x:u.x+w.x,y:u.y+w.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],b,x,y,v]}function nY(e,t,n,r){const i=Math.min(ek(e,t)/2,ek(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 cg(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function iY(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=cg(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 rM=1e3,sY=10,J0={nodeOrigin:[0,0],nodeExtent:vl,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},oY={...J0,checkEquality:!0};function eb(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function aY(e,t,n){const r=eb(J0,n);for(const i of e.values())if(i.parentId)nb(i,e,t,r);else{const s=Ql(i,r.nodeOrigin),o=es(i.extent)?i.extent:r.nodeExtent,a=Ji(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 tb(e){return e==="manual"}function ug(e,t,n,r={}){var u,d;const i=eb(oY,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!tb(i.zIndexMode)?rM: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=Ql(h,i.nodeOrigin),b=es(h.extent)?h.extent:i.nodeExtent,x=Ji(g,b,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:iM(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&&nb(p,t,n,r,s),c||(c=h.selected??!1)}return{nodesInitialized:l,hasSelectedNodes:c}}function cY(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 nb(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:l}=eb(J0,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}cY(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*sY),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);const d=s&&!tb(l)?rM:0,{x:h,y:p,z:g}=uY(e,u,o,a,d,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 iM(e,t,n){const r=Fn(e.zIndex)?e.zIndex:0;return tb(n)?r:r+(e.selected?t:0)}function uY(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,l=ur(e),c=Ql(e,n),u=es(e.extent)?Ji(c,e.extent,l):c;let d=Ji({x:o+u.x,y:a+u.y},r,l);e.extent==="parent"&&(d=H2(d,l,t));const h=iM(e,i,s),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=h?p+1:h}}function rb(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)??_l(l),u=K2(c,a.rect);s.set(a.parentId,{expandedRect:u,parent:l})}return s.size>0&&s.forEach(({expandedRect:a,parent:l},c)=>{var y;const u=l.internals.positionAbsolute,d=ur(l),h=l.origin??r,p=a.x0||g>0||m||w)&&(i.push({id:c,type:"position",position:{x:l.position.x-p+m,y:l.position.y-g+w}}),(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}})})),(d.width0){const p=rb(h,t,n,i);c.push(...p)}return{changes:c,updatedInternals:l}}async function fY({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 ik(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 sM(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}`;ik("source",l,u,e,i,o),ik("target",l,c,e,s,a),t.set(r.id,r)}}function oM(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:oM(n,t):!1}function sk(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 hY(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!oM(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 cp({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 pY({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=Jl(s,t);return{x:o.x-s.x,y:o.y-s.y}}function mY({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,b=null;function x({noDragClassName:w,handleSelector:y,domNode:v,isSelectable:E,nodeId:k,nodeClickDistance:C=0}){h=an(v);function N({x:j,y:$}){const{nodeLookup:M,nodeExtent:L,snapGrid:O,snapToGrid:D,nodeOrigin:R,onNodeDrag:P,onSelectionDrag:_,onError:U,updateNodePositions:V}=t();s={x:j,y:$};let A=!1;const F=a.size>1,q=F&&L?ag(Zl(a)):null,G=F&&D?pY({dragItems:a,snapGrid:O,x:j,y:$}):null;for(const[Y,H]of a){if(!M.has(Y))continue;let Q={x:j-H.distance.x,y:$-H.distance.y};D&&(Q=G?{x:Math.round(Q.x+G.x),y:Math.round(Q.y+G.y)}:Jl(Q,O));let se=null;if(F&&L&&!H.extent&&q){const{positionAbsolute:K}=H.internals,re=K.x-q.x+L[0][0],ae=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];se=[[re,ne],[ae,he]]}const{position:le,positionAbsolute:ie}=V2({nodeId:Y,nextPosition:Q,nodeLookup:M,nodeExtent:se||L,nodeOrigin:R,onError:U});A=A||H.position.x!==le.x||H.position.y!==le.y,H.position=le,H.internals.positionAbsolute=ie}if(g=g||A,!!A&&(V(a,!0),b&&(r||P||!k&&_))){const[Y,H]=cp({nodeId:k,dragItems:a,nodeLookup:M});r==null||r(b,a,Y,H),P==null||P(b,Y,H),k||_==null||_(b,H)}}async function I(){if(!u)return;const{transform:j,panBy:$,autoPanSpeed:M,autoPanOnNodeDrag:L}=t();if(!L){l=!1,cancelAnimationFrame(o);return}const[O,D]=X0(c,u,M);(O!==0||D!==0)&&(s.x=(s.x??0)-O/j[2],s.y=(s.y??0)-D/j[2],await $({x:O,y:D})&&N(s)),o=requestAnimationFrame(I)}function T(j){var F;const{nodeLookup:$,multiSelectionActive:M,nodesDraggable:L,transform:O,snapGrid:D,snapToGrid:R,selectNodesOnDrag:P,onNodeDragStart:_,onSelectionDragStart:U,unselectNodesAndEdges:V}=t();d=!0,(!P||!E)&&!M&&k&&((F=$.get(k))!=null&&F.selected||V()),E&&P&&k&&(e==null||e(k));const A=$a(j.sourceEvent,{transform:O,snapGrid:D,snapToGrid:R,containerBounds:u});if(s=A,a=hY($,L,A,k),a.size>0&&(n||_||!k&&U)){const[q,G]=cp({nodeId:k,dragItems:a,nodeLookup:$});n==null||n(j.sourceEvent,a,q,G),_==null||_(j.sourceEvent,q,G),k||U==null||U(j.sourceEvent,G)}}const B=k2().clickDistance(C).on("start",j=>{const{domNode:$,nodeDragThreshold:M,transform:L,snapGrid:O,snapToGrid:D}=t();u=($==null?void 0:$.getBoundingClientRect())||null,p=!1,g=!1,b=j.sourceEvent,M===0&&T(j),s=$a(j.sourceEvent,{transform:L,snapGrid:O,snapToGrid:D,containerBounds:u}),c=zn(j.sourceEvent,u)}).on("drag",j=>{const{autoPanOnNodeDrag:$,transform:M,snapGrid:L,snapToGrid:O,nodeDragThreshold:D,nodeLookup:R}=t(),P=$a(j.sourceEvent,{transform:M,snapGrid:L,snapToGrid:O,containerBounds:u});if(b=j.sourceEvent,(j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||k&&!R.has(k))&&(p=!0),!p){if(!l&&$&&d&&(l=!0,I()),!d){const _=zn(j.sourceEvent,u),U=_.x-c.x,V=_.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:$,updateNodePositions:M,onNodeDragStop:L,onSelectionDragStop:O}=t();if(g&&(M(a,!1),g=!1),i||L||!k&&O){const[D,R]=cp({nodeId:k,dragItems:a,nodeLookup:$,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 $=j.target;return!j.button&&(!w||!sk($,`.${w}`,v))&&(!y||sk($,y,v))});h.call(B)}function m(){h==null||h.on(".drag",null)}return{update:x,destroy:m}}function gY(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())_d(i,_l(s))>0&&r.push(s);return r}const yY=250;function bY(e,t,n,r){var a,l;let i=[],s=1/0;const o=gY(e,n,t+yY);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}=ts(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 aM(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,...ts(o,l,l.position,!0)}:l}function lM(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function wY(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const cM=()=>!0;function xY(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:b,onConnectEnd:x,isValidConnection:m=cM,onReconnectEnd:w,updateConnection:y,getTransform:v,getFromHandle:E,autoPanSpeed:k,dragThreshold:C=1,handleDomNode:N}){const I=X2(e.target);let T=0,B;const{x:j,y:$}=zn(e),M=lM(s,N),L=a==null?void 0:a.getBoundingClientRect();let O=!1;if(!L||!M)return;const D=aM(i,M,r,l,t);if(!D)return;let R=zn(e,L),P=!1,_=null,U=!1,V=null;function A(){if(!u||!L)return;const[le,ie]=X0(R,L,k);h({x:le,y:ie}),T=requestAnimationFrame(A)}const F={...D,nodeId:i,type:M,position:D.position},q=l.get(i);let Y={inProgress:!0,isValid:null,from:ts(q,F,pe.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:q,to:R,toHandle:null,toPosition:W1[F.position],toNode:null,pointer:R};function H(){O=!0,y(Y),g==null||g(e,{nodeId:i,handleId:r,handleType:M})}C===0&&H();function Q(le){if(!O){const{x:he,y:ce}=zn(le),Te=he-j,ve=ce-$;if(!(Te*Te+ve*ve>C*C))return;H()}if(!E()||!F){se(le);return}const ie=v();R=zn(le,L),B=bY(ec(R,ie,!1,[1,1]),n,l,F),P||(A(),P=!0);const K=uM(le,{handle:B,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:m,doc:I,lib:c,flowId:d,nodeLookup:l});V=K.handleDomNode,_=K.connection,U=wY(!!B,K.isValid);const re=l.get(i),ae=re?ts(re,F,pe.Left,!0):Y.from,ne={...Y,from:ae,isValid:U,to:K.toHandle&&U?So({x:K.toHandle.x,y:K.toHandle.y},ie):R,toHandle:K.toHandle,toPosition:U&&K.toHandle?K.toHandle.position:W1[F.position],toNode:K.toHandle?l.get(K.toHandle.nodeId):null,pointer:R};y(ne),Y=ne}function se(le){if(!("touches"in le&&le.touches.length>0)){if(O){(B||V)&&_&&U&&(b==null||b(_));const{inProgress:ie,...K}=Y,re={...K,toPosition:Y.toHandle?Y.toPosition:null};x==null||x(le,re),s&&(w==null||w(le,re))}p(),cancelAnimationFrame(T),P=!1,U=!1,_=null,V=null,I.removeEventListener("mousemove",Q),I.removeEventListener("mouseup",se),I.removeEventListener("touchmove",Q),I.removeEventListener("touchend",se)}}I.addEventListener("mousemove",Q),I.addEventListener("mouseup",se),I.addEventListener("touchmove",Q),I.addEventListener("touchend",se)}function uM(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:l,isValidConnection:c=cM,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),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 w=lM(void 0,x),y=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),E=x.classList.contains("connectable"),k=x.classList.contains("connectableend");if(!y||!w)return m;const C={source:d?y:r,sourceHandle:d?v:i,target:d?r:y,targetHandle:d?i:v};m.connection=C;const I=E&&k&&(n===Eo.Strict?d&&w==="source"||!d&&w==="target":y!==r||v!==i);m.isValid=I&&c(C),m.toHandle=aM(y,w,v,u,n,!0)}return m}const dg={onPointerDown:xY,isValid:uM};function vY({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=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const v=n(),E=y.sourceEvent.ctrlKey&&Sl()?10:1,k=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*u,C=v[2]*Math.pow(2,k*E);t.scaleTo(C)};let b=[0,0];const x=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],k=[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]-k[0]*C,y:v[1]-k[1]*C},I=[[0,0],[l,c]];t.setViewportConstrained({x:N.x,y:N.y,zoom:v[2]},I,a)},w=j2().on("start",x).on("zoom",d?m:null).on("zoom.wheel",h?g:null);i.call(w,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:jn}}const xf=e=>({x:e.x,y:e.y,zoom:e.k}),up=({x:e,y:t,zoom:n})=>yf.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),dM=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),kY=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,dp=(e,t=0,n=kY,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},fM=e=>{const t=e.ctrlKey&&Sl()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function EY({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(qs(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=fM(u),w=d*Math.pow(2,m);r.scaleTo(n,w,x,u);return}const h=u.deltaMode===1?20:1;let p=i===Ui.Vertical?0:u.deltaX*h,g=i===Ui.Horizontal?0:u.deltaY*h;!Sl()&&u.shiftKey&&i!==Ui.Vertical&&(p=u.deltaY*h,g=0),r.translateBy(n,-(p/d)*s,-(g/d)*s,{internal:!0});const b=xf(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l==null||l(u,b):(e.isPanScrolling=!0,a==null||a(u,b)),e.panScrollTimeout=setTimeout(()=>{c==null||c(u,b),e.isPanScrolling=!1},150)}}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 SY({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=xf(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 NY({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&dM(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,xf(s.transform)))}}function TY({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&&dM(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const l=xf(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,l)},n?150:0)}}}function AY({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"&&(qs(d,`${c}-flow__node`)||qs(d,`${c}-flow__edge`)))return!0;if(!r&&!h&&!i&&!s&&!n||o||u&&!g||qs(d,a)&&g||qs(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 b=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||g)&&b}}function CY({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($=>{const M=$[0];M&&(d=[[0,0],[M.contentRect.width,M.contentRect.height]])}):null;h==null||h.observe(e);const p=j2().extent(()=>d).scaleExtent([t,n]).translateExtent(r),g=an(e).call(p);v({x:i.x,y:i.y,zoom:_o(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);const b=g.on("wheel.zoom"),x=g.on("dblclick.zoom");p.wheelDelta(fM);async function m($,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:ku).transform(dp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),$)}):!1}function w({noWheelClassName:$,noPanClassName:M,onPaneContextMenu:L,userSelectionActive:O,panOnScroll:D,panOnDrag:R,panOnScrollMode:P,panOnScrollSpeed:_,preventScrolling:U,zoomOnPinch:V,zoomOnScroll:A,zoomOnDoubleClick:F,zoomActivationKeyPressed:q,lib:G,onTransformChange:Y,connectionInProgress:H,paneClickDistance:Q,selectionOnDrag:se}){O&&!c.isZoomingOrPanning&&y();const le=D&&!q&&!O;p.clickDistance(se?1/0:!Fn(Q)||Q<0?0:Q);const ie=le?EY({zoomPanValues:c,noWheelClassName:$,d3Selection:g,d3Zoom:p,panOnScrollMode:P,panOnScrollSpeed:_,zoomOnPinch:V,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):_Y({noWheelClassName:$,preventScrolling:U,d3ZoomHandler:b});g.on("wheel.zoom",ie,{passive:!1});const K=SY({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:o});p.on("start",K);const re=NY({zoomPanValues:c,panOnDrag:R,onPaneContextMenu:!!L,onPanZoom:s,onTransformChange:Y});p.on("zoom",re);const ae=TY({zoomPanValues:c,panOnDrag:R,panOnScroll:D,onPaneContextMenu:L,onPanZoomEnd:a,onDraggingChange:l});p.on("end",ae);const ne=AY({zoomActivationKeyPressed:q,panOnDrag:R,zoomOnScroll:A,panOnScroll:D,zoomOnDoubleClick:F,zoomOnPinch:V,userSelectionActive:O,noPanClassName:M,noWheelClassName:$,lib:G,connectionInProgress:H});p.filter(ne),F?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function y(){p.on("zoom",null)}async function v($,M,L){const O=up($),D=p==null?void 0:p.constrain()(O,M,L);return D&&await m(D),D}async function E($,M){const L=up($);return await m(L,M),L}function k($){if(g){const M=up($),L=g.property("__zoom");(L.k!==$.zoom||L.x!==$.x||L.y!==$.y)&&(p==null||p.transform(g,M,null,{sync:!0}))}}function C(){const $=g?D2(g.node()):{x:0,y:0,k:1};return{x:$.x,y:$.y,zoom:$.k}}async function N($,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:ku).scaleTo(dp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),$)}):!1}async function I($,M){return g?new Promise(L=>{p==null||p.interpolate((M==null?void 0:M.interpolate)==="linear"?Ba:ku).scaleBy(dp(g,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>L(!0)),$)}):!1}function T($){p==null||p.scaleExtent($)}function B($){p==null||p.translateExtent($)}function j($){const M=!Fn($)||$<0?0:$;p==null||p.clickDistance(M)}return{update:w,destroy:y,setViewport:E,setViewportConstrained:v,getViewport:C,scaleTo:N,scaleBy:I,setScaleExtent:T,setTranslateExtent:B,syncViewport:k,setClickDistance:j}}var No;(function(e){e.Line="line",e.Handle="handle"})(No||(No={}));function MY({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 ok(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 Yc(e,t,n){return Math.max(0,t-e,e-n)}function ak(e,t){return e?!t:t}function IY(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:b,maxWidth:x,minHeight:m,maxHeight:w}=r,{x:y,y:v,width:E,height:k,aspectRatio:C}=e;let N=Math.floor(u?p-e.pointerX:0),I=Math.floor(d?g-e.pointerY:0);const T=E+(l?-N:N),B=k+(c?-I:I),j=-s[0]*E,$=-s[1]*k;let M=Yc(T,b,x),L=Yc(B,m,w);if(o){let R=0,P=0;l&&N<0?R=Dr(y+N+j,o[0][0]):!l&&N>0&&(R=jr(y+T+j,o[1][0])),c&&I<0?P=Dr(v+I+$,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(y+N,a[0][0]):!l&&N<0&&(R=Dr(y+T,a[1][0])),c&&I>0?P=jr(v+I,a[0][1]):!c&&I<0&&(P=Dr(v+B,a[1][1])),M=Math.max(M,R),L=Math.max(L,P)}if(i){if(u){const R=Yc(T/C,m,w)*C;if(M=Math.max(M,R),o){let P=0;!l&&!c||l&&!c&&h?P=jr(v+$+T/C,o[1][1])*C:P=Dr(v+$+(l?N:-N)/C,o[0][1])*C,M=Math.max(M,P)}if(a){let P=0;!l&&!c||l&&!c&&h?P=Dr(v+T/C,a[1][1])*C:P=jr(v+(l?N:-N)/C,a[0][1])*C,M=Math.max(M,P)}}if(d){const R=Yc(B*C,b,x)/C;if(L=Math.max(L,R),o){let P=0;!l&&!c||c&&!l&&h?P=jr(y+B*C+j,o[1][0])/C:P=Dr(y+(c?I:-I)*C+j,o[0][0])/C,L=Math.max(L,P)}if(a){let P=0;!l&&!c||c&&!l&&h?P=Dr(y+B*C,a[1][0])/C:P=jr(y+(c?I:-I)*C,a[0][0])/C,L=Math.max(L,P)}}}I=I+(I<0?L:-L),N=N+(N<0?M:-M),i&&(h?T>B*C?I=(ak(l,c)?-N:N)/C:N=(ak(l,c)?-I:I)*C:u?(I=N/C,c=l):(N=I*C,l=c));const O=l?y+N:y,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 hM={width:0,height:0,x:0,y:0},OY={...hM,pointerX:0,pointerY:0,aspectRatio:1};function RY(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 LY({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=an(e);let o={controlDirection:ok("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:b,shouldResize:x}){let m={...hM},w={...OY};o={boundaries:u,resizeDirection:h,keepAspectRatio:d,controlDirection:ok(c)};let y,v=null,E=[],k,C,N,I=!1;const T=k2().on("start",B=>{const{nodeLookup:j,transform:$,snapGrid:M,snapToGrid:L,nodeOrigin:O,paneDomNode:D}=n();if(y=j.get(t),!y)return;v=(D==null?void 0:D.getBoundingClientRect())??null;const{xSnapped:R,ySnapped:P}=$a(B.sourceEvent,{transform:$,snapGrid:M,snapToGrid:L,containerBounds:v});m={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},w={...m,pointerX:R,pointerY:P,aspectRatio:m.width/m.height},k=void 0,C=es(y.extent)?y.extent:void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(k=j.get(y.parentId)),k&&y.extent==="parent"&&(C=[[0,0],[k.measured.width,k.measured.height]]),E=[],N=void 0;for(const[_,U]of j)if(U.parentId===t&&(E.push({id:_,position:{...U.position},extent:U.extent}),U.extent==="parent"||U.expandParent)){const V=RY(U,y,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(B,{...m})}).on("drag",B=>{const{transform:j,snapGrid:$,snapToGrid:M,nodeOrigin:L}=n(),O=$a(B.sourceEvent,{transform:j,snapGrid:$,snapToGrid:M,containerBounds:v}),D=[];if(!y)return;const{x:R,y:P,width:_,height:U}=m,V={},A=y.origin??L,{width:F,height:q,x:G,y:Y}=IY(w,o.controlDirection,O,o.boundaries,o.keepAspectRatio,A,C,N),H=F!==_,Q=q!==U,se=G!==R&&H,le=Y!==P&&Q;if(!se&&!le&&!H&&!Q)return;if((se||le||A[0]===1||A[1]===1)&&(V.x=se?G:m.x,V.y=le?Y:m.y,m.x=V.x,m.y=V.y,E.length>0)){const ae=G-R,ne=Y-P;for(const he of E)he.position={x:he.position.x-ae+A[0]*(F-_),y:he.position.y-ne+A[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&&y.expandParent){const ae=A[0]*(V.width??0);V.x&&V.x{I&&(b==null||b(B,{...m}),i==null||i({...m}),I=!1)});s.call(T)}function l(){s.on(".drag",null)}return{update:a,destroy:l}}var pM={exports:{}},mM={},gM={exports:{}},yM={};/** +- ……`,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 * @@ -761,7 +776,7 @@ __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 To=S;function PY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var DY=typeof Object.is=="function"?Object.is:PY,jY=To.useState,BY=To.useEffect,$Y=To.useLayoutEffect,FY=To.useDebugValue;function zY(e,t){var n=t(),r=jY({inst:{value:n,getSnapshot:t}}),i=r[0].inst,s=r[1];return $Y(function(){i.value=n,i.getSnapshot=t,fp(i)&&s({inst:i})},[e,n,t]),BY(function(){return fp(i)&&s({inst:i}),e(function(){fp(i)&&s({inst:i})})},[e]),FY(n),n}function fp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!DY(e,n)}catch{return!0}}function UY(e,t){return t()}var VY=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?UY:zY;yM.useSyncExternalStore=To.useSyncExternalStore!==void 0?To.useSyncExternalStore:VY;gM.exports=yM;var HY=gM.exports;/** + */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 * @@ -769,11 +784,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 vf=S,KY=HY;function qY(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var WY=typeof Object.is=="function"?Object.is:qY,GY=KY.useSyncExternalStore,YY=vf.useRef,XY=vf.useEffect,QY=vf.useMemo,ZY=vf.useDebugValue;mM.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var s=YY(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=QY(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,WY(u,p))return g;var b=r(p);return i!==void 0&&i(g,b)?(u=p,g):(u=p,d=b)}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=GY(e,s[0],s[1]);return XY(function(){o.hasValue=!0,o.value=a},[a]),ZY(a),a};pM.exports=mM;var JY=pM.exports;const eX=Tl(JY),tX={},lk=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},nX=e=>e?lk(e):lk,{useDebugValue:rX}=Jk,{useSyncExternalStoreWithSelector:iX}=eX,sX=e=>e;function bM(e,t=sX,n){const r=iX(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return rX(r),r}const ck=(e,t)=>{const n=nX(e),r=(i,s=t)=>bM(n,i,s);return Object.assign(r,n),r},oX=(e,t)=>e?ck(e,t):ck;function Je(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),aX=kf.Provider,wM=qn.error001("react");function Ie(e,t){const n=S.useContext(kf);if(n===null)throw new Error(wM);return bM(n,e,t)}function Ke(){const e=S.useContext(kf);if(e===null)throw new Error(wM);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const uk={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%)"},xM="react-flow__node-desc",vM="react-flow__edge-desc",cX="react-flow__aria-live",uX=e=>e.ariaLiveMessage,dX=e=>e.ariaLabelConfig;function fX({rfId:e}){const t=Ie(uX);return f.jsx("div",{id:`${cX}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:lX,children:t})}function hX({rfId:e,disableKeyboardA11y:t}){const n=Ie(dX);return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:`${xM}-${e}`,style:uk,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),f.jsx("div",{id:`${vM}-${e}`,style:uk,children:n["edge.a11yDescription.default"]}),!t&&f.jsx(fX,{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:ht(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});Ef.displayName="Panel";const dk="https://reactflow.dev?utm_source=attribution";function pX({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: ${dk}`,children:f.jsx("a",{href:dk,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const mX=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}},Xc=e=>e.id;function gX(e,t){return Je(e.selectedNodes.map(Xc),t.selectedNodes.map(Xc))&&Je(e.selectedEdges.map(Xc),t.selectedEdges.map(Xc))}function yX({onSelectionChange:e}){const t=Ke(),{selectedNodes:n,selectedEdges:r}=Ie(mX,gX);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 bX=e=>!!e.onSelectionChangeHandlers;function wX({onSelectionChange:e}){const t=Ie(bX);return e||t?f.jsx(yX,{onSelectionChange:e}):null}const kM=[0,0],xX={x:0,y:0,zoom:1},vX=["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"],fk=[...vX,"rfId"],kX=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}),hk={translateExtent:vl,nodeOrigin:kM,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function EX(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l}=Ie(kX,Je),c=Ke();S.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=hk,a()}),[]);const u=S.useRef(hk);return S.useEffect(()=>{for(const d of fk){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:WG(h)}):d==="fitView"?c.setState({fitViewQueued:h}):d==="fitViewOptions"?c.setState({fitViewOptions:h}):c.setState({[d]:h})))}u.current=e},fk.map(d=>e[d])),null}function pk(){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=pk(),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=pk())!=null&&r.matches?"dark":"light"}const mk=typeof document<"u"?document:null;function Nl(e=null,t={target:mk,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(d=>typeof d=="string").map(d=>d.replace("+",` + */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 S.useEffect(()=>{const l=(t==null?void 0:t.target)??mk,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)&&Q2(p))return!1;const b=yk(p.code,a);if(s.current.add(p[b]),gk(o,s.current,!1)){const w=((m=(x=p.composedPath)==null?void 0:x.call(p))==null?void 0:m[0])||p.target,y=(w==null?void 0:w.nodeName)==="BUTTON"||(w==null?void 0:w.nodeName)==="A";t.preventDefault!==!1&&(i.current||!y)&&p.preventDefault(),r(!0)}},d=p=>{const g=yk(p.code,a);gk(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 gk(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function yk(e,t){return t.includes(e)?"code":"key"}const SX=()=>{const e=Ke();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=Q0(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 ec(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=So(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function EM(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)NX(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 NX(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 _M(e,t){return EM(e,t)}function SM(e,t){return EM(e,t)}function Ni(e,t){return{id:e,type:"select",selected:t}}function Ws(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(Ni(s.id,o)))}return r}function bk({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 wk(e){return{id:e.id,type:"remove"}}const TX=W2();function NM(e,t,n={}){return JG(e,t,{...n,onError:n.onError??TX})}const xk=e=>BG(e),AX=e=>U2(e);function TM(e){return S.forwardRef(e)}const AM=typeof window<"u"?S.useLayoutEffect:S.useEffect;function vk(e){const[t,n]=S.useState(BigInt(0)),[r]=S.useState(()=>CX(()=>n(i=>i+BigInt(1))));return AM(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function CX(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const CM=S.createContext(null);function MX({children:e}){const t=Ke(),n=S.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:u,onNodesChange:d,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=bk({items:b,lookup:h});for(const m of g.values())x=m(x);u&&c(b),x.length>0?d==null||d(x):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:w,setNodes:y}=t.getState();m&&y(w)})},[]),r=vk(n),i=S.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(bk({items:p,lookup:h}))},[]),s=vk(i),o=S.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return f.jsx(CM.Provider,{value:o,children:e})}function IX(){const e=S.useContext(CM);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const OX=e=>!!e.panZoom;function ib(){const e=SX(),t=Ke(),n=IX(),r=Ie(OX),i=S.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,w;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=xk(d)?d:h.get(d.id),b=g.parentId?Y2(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:((w=g.measured)==null?void 0:w.height)??g.height};return _l(x)},c=(d,h,p={replace:!1})=>{o(g=>g.map(b=>{if(b.id===d){const x=typeof h=="function"?h(b):h;return p.replace&&xk(x)?x:{...b,...x}}return b}))},u=(d,h,p={replace:!1})=>{a(g=>g.map(b=>{if(b.id===d){const x=typeof h=="function"?h(b):h;return p.replace&&AX(x)?x:{...b,...x}}return b}))};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,b,x]=p;return{nodes:d.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:g,y:b,zoom:x}}},deleteElements:async({nodes:d=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:b,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:w,onDelete:y,onBeforeDelete:v}=t.getState(),{nodes:E,edges:k}=await VG({nodesToRemove:d,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:v}),C=k.length>0,N=E.length>0;if(C){const I=k.map(wk);x==null||x(k),w(I)}if(N){const I=E.map(wk);b==null||b(E),m(I)}return(N||C)&&(y==null||y({nodes:E,edges:k})),{deletedNodes:E,deletedEdges:k}},getIntersectingNodes:(d,h=!0,p)=>{const g=Y1(d),b=g?d:l(d),x=p!==void 0;return b?(p||t.getState().nodes).filter(m=>{const w=t.getState().nodeLookup.get(m.id);if(w&&!g&&(m.id===d.id||!w.internals.positionAbsolute))return!1;const y=_l(x?m:w),v=_d(y,b);return h&&v>0||v>=y.width*y.height||v>=b.width*b.height}):[]},isNodeIntersecting:(d,h,p=!0)=>{const b=Y1(d)?d:l(d);if(!b)return!1;const x=_d(b,h);return p&&x>0||x>=h.width*h.height||x>=b.width*b.height},updateNode:c,updateNodeData:(d,h,p={replace:!1})=>{c(d,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},updateEdge:u,updateEdgeData:(d,h,p={replace:!1})=>{u(d,g=>{const b=typeof h=="function"?h(g):h;return p.replace?{...g,data:b}:{...g,data:{...g.data,...b}}},p)},getNodesBounds:d=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return $G(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??qG();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const kk=e=>e.selected,RX=typeof window<"u"?window:void 0;function LX({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Ke(),{deleteElements:r}=ib(),i=Nl(e,{actInsideInputWithModifier:!1}),s=Nl(t,{target:RX});S.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(kk),edges:o.filter(kk)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function PX(e){const t=Ke();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=Z0(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 _f={position:"absolute",width:"100%",height:"100%",top:0,left:0},DX=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function jX({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:u,maxZoom:d,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:b,noPanClassName:x,onViewportChange:m,isControlledViewport:w,paneClickDistance:y,selectionOnDrag:v}){const E=Ke(),k=S.useRef(null),{userSelectionActive:C,lib:N,connectionInProgress:I}=Ie(DX,Je),T=Nl(h),B=S.useRef();PX(k);const j=S.useCallback($=>{m==null||m({x:$[0],y:$[1],zoom:$[2]}),w||E.setState({transform:$})},[m,w]);return S.useEffect(()=>{if(k.current){B.current=CY({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:$,y:M,zoom:L}=B.current.getViewport();return E.setState({panZoom:B.current,transform:[$,M,L],domNode:k.current.closest(".react-flow")}),()=>{var O;(O=B.current)==null||O.destroy()}}},[]),S.useEffect(()=>{var $;($=B.current)==null||$.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:T,preventScrolling:p,noPanClassName:x,userSelectionActive:C,noWheelClassName:b,lib:N,onTransformChange:j,connectionInProgress:I,selectionOnDrag:v,paneClickDistance:y})},[e,t,n,r,i,s,o,a,T,p,x,C,b,N,j,I,v,y]),f.jsx("div",{className:"react-flow__renderer",ref:k,style:_f,children:g})}const BX=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function $X(){const{userSelectionActive:e,userSelectionRect:t}=Ie(BX,Je);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 hp=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},FX=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function zX({isSelecting:e,selectionKeyPressed:t,selectionMode:n=kl.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:b}){const x=S.useRef(0),m=Ke(),{userSelectionActive:w,elementsSelectable:y,dragging:v,panBy:E,autoPanSpeed:k}=Ie(FX,Je),C=y&&(e||w),N=S.useRef(null),I=S.useRef(),T=S.useRef(new Set),B=S.useRef(new Set),j=S.useRef(!1),$=S.useRef(!1),M=S.useRef({x:0,y:0}),L=S.useRef(!1),O=H=>{if($.current||j.current||m.getState().connection.inProgress){$.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=>{$.current&&(H.stopPropagation(),$.current=!1)},_=H=>{var he,ce;const{domNode:Q,transform:se}=m.getState();if(I.current=Q==null?void 0:Q.getBoundingClientRect(),!I.current)return;const le=H.target===N.current;if(!le&&!!H.target.closest(".nokey")||!e||!(o&&le||t)||H.button!==0||!H.isPrimary)return;(ce=(he=H.target)==null?void 0:he.setPointerCapture)==null||ce.call(he,H.pointerId),$.current=!1;const{x:re,y:ae}=zn(H.nativeEvent,I.current),ne=ec({x:re,y:ae},se);m.setState({userSelectionRect:{width:0,height:0,startX:ne.x,startY:ne.y,x:re,y:ae}}),le||(H.stopPropagation(),H.preventDefault())};function U(H,Q){const{userSelectionRect:se}=m.getState();if(!se)return;const{transform:le,nodeLookup:ie,edgeLookup:K,connectionLookup:re,triggerNodeChanges:ae,triggerEdgeChanges:ne,defaultEdgeOptions:he}=m.getState(),ce={x:se.startX,y:se.startY},{x:Te,y:ve}=So(ce,le),we={startX:ce.x,startY:ce.y,x:HLe.id)),B.current=new Set;const xt=(he==null?void 0:he.selectable)??!0;for(const Le of T.current){const z=re.get(Le);if(z)for(const{edgeId:W}of z.values()){const Z=K.get(W);Z&&(Z.selectable??xt)&&B.current.add(W)}}if(!X1(Tt,T.current)){const Le=Ws(ie,T.current,!0);ae(Le)}if(!X1(Re,B.current)){const Le=Ws(K,B.current);ne(Le)}m.setState({userSelectionRect:we,userSelectionActive:!0,nodesSelectionActive:!1})}function V(){if(!i||!I.current)return;const[H,Q]=X0(M.current,I.current,k);E({x:H,y:Q}).then(se=>{if(!$.current||!se){x.current=requestAnimationFrame(V);return}const{x:le,y:ie}=M.current;U(le,ie),x.current=requestAnimationFrame(V)})}const A=()=>{cancelAnimationFrame(x.current),x.current=0,L.current=!1};S.useEffect(()=>()=>A(),[]);const F=H=>{const{userSelectionRect:Q,transform:se,resetSelectedElements:le}=m.getState();if(!I.current||!Q)return;const{x:ie,y:K}=zn(H.nativeEvent,I.current);M.current={x:ie,y:K};const re=So({x:Q.startX,y:Q.startY},se);if(!$.current){const ae=t?0:s;if(Math.hypot(ie-re.x,K-re.y)<=ae)return;le(),a==null||a(H)}$.current=!0,L.current||(V(),L.current=!0),U(ie,K)},q=H=>{var Q,se;if(!C){H.target===N.current&&m.getState().connection.inProgress&&(j.current=!0);return}H.button===0&&((se=(Q=H.target)==null?void 0:Q.releasePointerCapture)==null||se.call(Q,H.pointerId),!w&&H.target===N.current&&m.getState().userSelectionRect&&(O==null||O(H)),m.setState({userSelectionActive:!1,userSelectionRect:null}),$.current&&(l==null||l(H),m.setState({nodesSelectionActive:T.current.size>0})),A())},G=H=>{var Q,se;(se=(Q=H.target)==null?void 0:Q.releasePointerCapture)==null||se.call(Q,H.pointerId),A()},Y=r===!0||Array.isArray(r)&&r.includes(0);return f.jsxs("div",{className:ht(["react-flow__pane",{draggable:Y,dragging:v,selection:e}]),onClick:C?void 0:hp(O,N),onContextMenu:hp(D,N),onWheel:hp(R,N),onPointerEnter:C?void 0:h,onPointerMove:C?F:p,onPointerUp:q,onPointerCancel:C?G:void 0,onPointerDownCapture:C?_:void 0,onClickCapture:C?P:void 0,onPointerLeave:g,ref:N,style:_f,children:[b,f.jsx($X,{})]})}function fg({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 MM({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=Ke(),[l,c]=S.useState(!1),u=S.useRef();return S.useEffect(()=>{if(!t)return u.current=mY({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{fg({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]),S.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 UX=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function IM(){const e=Ke();return S.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=UX(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 w={x:m.internals.positionAbsolute.x+b,y:m.internals.positionAbsolute.y+x};i&&(w=Jl(w,s));const{position:y,positionAbsolute:v}=V2({nodeId:m.id,nextPosition:w,nodeLookup:c,nodeExtent:r,nodeOrigin:u,onError:a});m.position=y,m.internals.positionAbsolute=v,d.set(m.id,m)}l(d)},[])}const sb=S.createContext(null),VX=sb.Provider;sb.Consumer;const OM=()=>S.useContext(sb),HX=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),RM=S.createContext(null);function KX({children:e}){const t=Ie(HX,Je);return f.jsx(RM.Provider,{value:t,children:e})}function qX(){const e=S.useContext(RM);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const WX={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},GX=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:l,isValid:c}=o;if(!a&&!i)return WX;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===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:u&&c}};function YX({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,b=e==="target",x=Ke(),m=OM(),{connectOnClick:w,noPanClassName:y,rfId:v}=qX(),{connectingFrom:E,connectingTo:k,clickConnecting:C,isPossibleEndHandle:N,connectionInProcess:I,clickConnectionInProcess:T,valid:B}=Ie(GX(m,g,e),Je);m||(O=(L=x.getState()).onError)==null||O.call(L,"010",qn.error010());const j=D=>{const{defaultEdgeOptions:R,onConnect:P,hasDefaultEdges:_}=x.getState(),U={...R,...D};if(_){const{edges:V,setEdges:A,onError:F}=x.getState();A(NM(U,V,{onError:F}))}P==null||P(U),a==null||a(U)},$=D=>{if(!m)return;const R=Z2(D.nativeEvent);if(i&&(R&&D.button===0||!R)){const P=x.getState();dg.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:b,handleId:g,nodeId:m,flowId:P.rfId,panBy:P.panBy,cancelConnection:P.cancelConnection,onConnectStart:P.onConnectStart,onConnectEnd:(..._)=>{var U,V;return(V=(U=x.getState()).onConnectEnd)==null?void 0:V.call(U,..._)},updateConnection:P.updateConnection,onConnect:j,isValidConnection:n||((..._)=>{var U,V;return((V=(U=x.getState()).isValidConnection)==null?void 0:V.call(U,..._))??!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:_,connectionMode:U,isValidConnection:V,lib:A,rfId:F,nodeLookup:q,connection:G}=x.getState();if(!m||!_&&!i)return;if(!_){R==null||R(D.nativeEvent,{nodeId:m,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const Y=X2(D.target),H=n||V,{connection:Q,isValid:se}=dg.isValid(D.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:U,fromNodeId:_.nodeId,fromHandleId:_.id||null,fromType:_.type,isValidConnection:H,flowId:F,doc:Y,lib:A,nodeLookup:q});se&&Q&&j(Q);const le=structuredClone(G);delete le.inProgress,le.toPosition=le.toHandle?le.toHandle.position:null,P==null||P(D,le),x.setState({connectionClickStartHandle:null})};return f.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:ht(["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:k,valid:B,connectionindicator:r&&(!I||N)&&(I||T?s:i)}]),onMouseDown:$,onTouchStart:$,onClick:w?M:void 0,ref:p,...h,children:l})}const Ao=S.memo(TM(YX));function XX({data:e,isConnectable:t,sourcePosition:n=pe.Bottom}){return f.jsxs(f.Fragment,{children:[e==null?void 0:e.label,f.jsx(Ao,{type:"source",position:n,isConnectable:t})]})}function QX({data:e,isConnectable:t,targetPosition:n=pe.Top,sourcePosition:r=pe.Bottom}){return f.jsxs(f.Fragment,{children:[f.jsx(Ao,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,f.jsx(Ao,{type:"source",position:r,isConnectable:t})]})}function ZX(){return null}function JX({data:e,isConnectable:t,targetPosition:n=pe.Top}){return f.jsxs(f.Fragment,{children:[f.jsx(Ao,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Sd={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Ek={input:XX,default:QX,output:JX,group:ZX};function eQ(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}=Zl(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 nQ({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ke(),{width:i,height:s,transformString:o,userSelectionActive:a}=Ie(tQ,Je),l=IM(),c=S.useRef(null);S.useEffect(()=>{var p;n||(p=c.current)==null||p.focus({preventScroll:!0})},[n]);const u=!a&&i!==null&&s!==null;if(MM({nodeRef:c,disabled:!u}),!u)return null;const d=e?p=>{const g=r.getState().nodes.filter(b=>b.selected);e(p,g)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(Sd,p.key)&&(p.preventDefault(),l({direction:Sd[p.key],factor:p.shiftKey?4:1}))};return f.jsx("div",{className:ht(["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 _k=typeof window<"u"?window:void 0,rQ=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function LM({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:b,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:v,panOnScrollSpeed:E,panOnScrollMode:k,zoomOnDoubleClick:C,panOnDrag:N,autoPanOnSelection:I,defaultViewport:T,translateExtent:B,minZoom:j,maxZoom:$,preventScrolling:M,onSelectionContextMenu:L,noWheelClassName:O,noPanClassName:D,disableKeyboardA11y:R,onViewportChange:P,isControlledViewport:_}){const{nodesSelectionActive:U,userSelectionActive:V}=Ie(rQ,Je),A=Nl(c,{target:_k}),F=Nl(b,{target:_k}),q=F||N,G=F||v,Y=u&&q!==!0,H=A||V||Y;return LX({deleteKeyCode:l,multiSelectionKeyCode:g}),f.jsx(jX,{onPaneContextMenu:s,elementsSelectable:m,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:G,panOnScrollSpeed:E,panOnScrollMode:k,zoomOnDoubleClick:C,panOnDrag:!A&&q,defaultViewport:T,translateExtent:B,minZoom:j,maxZoom:$,zoomActivationKeyCode:x,preventScrolling:M,noWheelClassName:O,noPanClassName:D,onViewportChange:P,isControlledViewport:_,paneClickDistance:a,selectionOnDrag:Y,children:f.jsxs(zX,{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:A,paneClickDistance:a,selectionOnDrag:Y,children:[e,U&&f.jsx(nQ,{onSelectionContextMenu:L,noPanClassName:D,disableKeyboardA11y:R})]})})}LM.displayName="FlowRenderer";const iQ=S.memo(LM),sQ=e=>t=>e?Y0(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(S.useCallback(sQ(e),[e]),Je)}const aQ=e=>e.updateNodeInternals;function lQ(){const e=Ie(aQ),[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 cQ({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=Ke(),s=S.useRef(null),o=S.useRef(null),a=S.useRef(e.sourcePosition),l=S.useRef(e.targetPosition),c=S.useRef(t),u=n&&!!e.internals.handleBounds;return S.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]),S.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),S.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 uQ({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:b,nodeTypes:x,nodeClickDistance:m,onError:w}){const{node:y,internals:v,isParent:E}=Ie(H=>{const Q=H.nodeLookup.get(e),se=H.parentLookup.has(e);return{node:Q,internals:Q.internals,isParent:se}},Je);let k=y.type||"default",C=(x==null?void 0:x[k])||Ek[k];C===void 0&&(w==null||w("003",qn.error003(k)),k="default",C=(x==null?void 0:x.default)||Ek.default);const N=!!(y.draggable||a&&typeof y.draggable>"u"),I=!!(y.selectable||l&&typeof y.selectable>"u"),T=!!(y.connectable||c&&typeof y.connectable>"u"),B=!!(y.focusable||u&&typeof y.focusable>"u"),j=Ke(),$=G2(y),M=cQ({node:y,nodeType:k,hasDimensions:$,resizeObserver:d}),L=MM({nodeRef:M,disabled:y.hidden||!N,noDragClassName:h,handleSelector:y.dragHandle,nodeId:e,isSelectable:I,nodeClickDistance:m}),O=IM();if(y.hidden)return null;const D=ur(y),R=eQ(y),P=I||N||t||n||r||i,_=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,A=s?H=>s(H,{...v.userNode}):void 0,F=o?H=>o(H,{...v.userNode}):void 0,q=H=>{const{selectNodesOnDrag:Q,nodeDragThreshold:se}=j.getState();I&&(!Q||!N||se>0)&&fg({id:e,store:j,nodeRef:M}),t&&t(H,{...v.userNode})},G=H=>{if(!(Q2(H.nativeEvent)||g)){if(B2.includes(H.key)&&I){const Q=H.key==="Escape";fg({id:e,store:j,unselect:Q,nodeRef:M})}else if(N&&y.selected&&Object.prototype.hasOwnProperty.call(Sd,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:Sd[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:se,autoPanOnNodeFocus:le,setCenter:ie}=j.getState();if(!le)return;Y0(new Map([[e,y]]),{x:0,y:0,width:Q,height:se},H,!0).length>0||ie(y.position.x+D.width/2,y.position.y+D.height/2,{zoom:H[2]})};return f.jsx("div",{className:ht(["react-flow__node",`react-flow__node-${k}`,{[p]:N},y.className,{selected:y.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:$?"visible":"hidden",...y.style,...R},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:_,onMouseMove:U,onMouseLeave:V,onContextMenu:A,onClick:q,onDoubleClick:F,onKeyDown:B?G:void 0,tabIndex:B?0:void 0,onFocus:B?Y:void 0,role:y.ariaRole??(B?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${xM}-${b}`,"aria-label":y.ariaLabel,...y.domAttributes,children:f.jsx(VX,{value:e,children:f.jsx(C,{id:e,data:y.data,type:k,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:y.selected??!1,selectable:I,draggable:N,deletable:y.deletable??!0,isConnectable:T,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:L,dragHandle:y.dragHandle,zIndex:v.z,parentId:y.parentId,...D})})})}var dQ=S.memo(uQ);const fQ=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function PM(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Ie(fQ,Je),s=oQ(e.onlyRenderVisibleElements),o=lQ();return f.jsx("div",{className:"react-flow__nodes",style:_f,children:s.map(a=>f.jsx(dQ,{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))})}PM.displayName="NodeRenderer";const hQ=S.memo(PM);function pQ(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&&XG({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),Je)}const mQ=({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"})},gQ=({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"})},Sk={[El.Arrow]:mQ,[El.ArrowClosed]:gQ};function yQ(e){const t=Ke();return S.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(Sk,e)?Sk[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",qn.error009(e)),null)},[e])}const bQ=({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=yQ(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},DM=({defaultColor:e,rfId:t})=>{const n=Ie(s=>s.edges),r=Ie(s=>s.defaultEdgeOptions),i=S.useMemo(()=>iY(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(bQ,{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};DM.displayName="MarkerDefinitions";var wQ=S.memo(DM);function jM({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]=S.useState({x:1,y:0,width:0,height:0}),p=ht(["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-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}jM.displayName="EdgeText";const xQ=S.memo(jM);function Sf({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:ht(["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(xQ,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Nk({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 BM({sourceX:e,sourceY:t,sourcePosition:n=pe.Bottom,targetX:r,targetY:i,targetPosition:s=pe.Top}){const[o,a]=Nk({pos:n,x1:e,y1:t,x2:r,y2:i}),[l,c]=Nk({pos:s,x1:r,y1:i,x2:e,y2:t}),[u,d,h,p]=J2({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 $M(e){return S.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:b,markerStart:x,interactionWidth:m})=>{const[w,y,v]=BM({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),E=e.isInternal?void 0:t;return f.jsx(Sf,{id:E,path:w,labelX:y,labelY:v,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,interactionWidth:m})})}const vQ=$M({isInternal:!1}),FM=$M({isInternal:!0});vQ.displayName="SimpleBezierEdge";FM.displayName="SimpleBezierEdgeInternal";function zM(e){return S.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:b,markerStart:x,pathOptions:m,interactionWidth:w})=>{const[y,v,E]=lg({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(Sf,{id:k,path:y,labelX:v,labelY:E,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:b,markerStart:x,interactionWidth:w})})}const UM=zM({isInternal:!1}),VM=zM({isInternal:!0});UM.displayName="SmoothStepEdge";VM.displayName="SmoothStepEdgeInternal";function HM(e){return S.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return f.jsx(UM,{...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 kQ=HM({isInternal:!1}),KM=HM({isInternal:!0});kQ.displayName="StepEdge";KM.displayName="StepEdgeInternal";function qM(e){return S.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:b})=>{const[x,m,w]=nM({sourceX:n,sourceY:r,targetX:i,targetY:s}),y=e.isInternal?void 0:t;return f.jsx(Sf,{id:y,path:x,labelX:m,labelY:w,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:p,markerStart:g,interactionWidth:b})})}const EQ=qM({isInternal:!1}),WM=qM({isInternal:!0});EQ.displayName="StraightEdge";WM.displayName="StraightEdgeInternal";function GM(e){return S.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:b,markerStart:x,pathOptions:m,interactionWidth:w})=>{const[y,v,E]=eM({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(Sf,{id:k,path:y,labelX:v,labelY:E,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:b,markerStart:x,interactionWidth:w})})}const _Q=GM({isInternal:!1}),YM=GM({isInternal:!0});_Q.displayName="BezierEdge";YM.displayName="BezierEdgeInternal";const Tk={default:YM,straight:WM,step:KM,smoothstep:VM,simplebezier:FM},Ak={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},SQ=(e,t,n)=>n===pe.Left?e-t:n===pe.Right?e+t:e,NQ=(e,t,n)=>n===pe.Top?e-t:n===pe.Bottom?e+t:e,Ck="react-flow__edgeupdater";function Mk({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:ht([Ck,`${Ck}-${a}`]),cx:SQ(t,r,e),cy:NQ(n,r,e),r,stroke:"transparent",fill:"transparent"})}function TQ({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=Ke(),b=(v,E)=>{if(v.button!==0)return;const{autoPanOnConnect:k,domNode:C,connectionMode:N,connectionRadius:I,lib:T,onConnectStart:B,cancelConnection:j,nodeLookup:$,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),_=(U,V)=>{h(!0),u==null||u(v,n,E.type),B==null||B(U,V)};dg.onPointerDown(v.nativeEvent,{autoPanOnConnect:k,connectionMode:N,connectionRadius:I,domNode:C,handleId:E.id,nodeId:E.nodeId,nodeLookup:$,isTarget:D,edgeUpdaterType:E.type,lib:T,flowId:M,cancelConnection:j,panBy:L,isValidConnection:(...U)=>{var V,A;return((A=(V=g.getState()).isValidConnection)==null?void 0:A.call(V,...U))??!0},onConnect:P,onConnectStart:_,onConnectEnd:(...U)=>{var V,A;return(A=(V=g.getState()).onConnectEnd)==null?void 0:A.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=>b(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>b(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),w=()=>p(!0),y=()=>p(!1);return f.jsxs(f.Fragment,{children:[(e===!0||e==="source")&&f.jsx(Mk,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:x,onMouseEnter:w,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&f.jsx(Mk,{position:l,centerX:s,centerY:o,radius:t,onMouseDown:m,onMouseEnter:w,onMouseOut:y,type:"target"})]})}function AQ({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:b,noPanClassName:x,onError:m,disableKeyboardA11y:w}){let y=Ie(ie=>ie.edgeLookup.get(e));const v=Ie(ie=>ie.defaultEdgeOptions);y=v?{...v,...y}:y;let E=y.type||"default",k=(b==null?void 0:b[E])||Tk[E];k===void 0&&(m==null||m("011",qn.error011(E)),E="default",k=(b==null?void 0:b.default)||Tk.default);const C=!!(y.focusable||t&&typeof y.focusable>"u"),N=typeof d<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),I=!!(y.selectable||r&&typeof y.selectable>"u"),T=S.useRef(null),[B,j]=S.useState(!1),[$,M]=S.useState(!1),L=Ke(),{zIndex:O=y.zIndex,sourceX:D,sourceY:R,targetX:P,targetY:_,sourcePosition:U,targetPosition:V}=Ie(S.useCallback(ie=>{const K=ie.nodeLookup.get(y.source),re=ie.nodeLookup.get(y.target);if(!K||!re)return Ak;const ae=rY({id:e,sourceNode:K,targetNode:re,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:ie.connectionMode,onError:m}),ne=YG({selected:y.selected,zIndex:y.zIndex,sourceNode:K,targetNode:re,elevateOnSelect:ie.elevateEdgesOnSelect,zIndexMode:ie.zIndexMode});return{...ae||Ak,zIndex:ne}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Je),A=S.useMemo(()=>y.markerStart?`url('#${cg(y.markerStart,g)}')`:void 0,[y.markerStart,g]),F=S.useMemo(()=>y.markerEnd?`url('#${cg(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||D===null||R===null||P===null||_===null)return null;const q=ie=>{var ne;const{addSelectedEdges:K,unselectNodesAndEdges:re,multiSelectionActive:ae}=L.getState();I&&(L.setState({nodesSelectionActive:!1}),y.selected&&ae?(re({nodes:[],edges:[y]}),(ne=T.current)==null||ne.blur()):K([e])),i&&i(ie,y)},G=s?ie=>{s(ie,{...y})}:void 0,Y=o?ie=>{o(ie,{...y})}:void 0,H=a?ie=>{a(ie,{...y})}:void 0,Q=l?ie=>{l(ie,{...y})}:void 0,se=c?ie=>{c(ie,{...y})}:void 0,le=ie=>{var K;if(!w&&B2.includes(ie.key)&&I){const{unselectNodesAndEdges:re,addSelectedEdges:ae}=L.getState();ie.key==="Escape"?((K=T.current)==null||K.blur(),re({edges:[y]})):ae([e])}};return f.jsx("svg",{style:{zIndex:O},children:f.jsxs("g",{className:ht(["react-flow__edge",`react-flow__edge-${E}`,y.className,x,{selected:y.selected,animated:y.animated,inactive:!I&&!i,updating:B,selectable:I}]),onClick:q,onDoubleClick:G,onContextMenu:Y,onMouseEnter:H,onMouseMove:Q,onMouseLeave:se,onKeyDown:C?le: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?`${vM}-${g}`:void 0,ref:T,...y.domAttributes,children:[!$&&f.jsx(k,{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:D,sourceY:R,targetX:P,targetY:_,sourcePosition:U,targetPosition:V,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:A,markerEnd:F,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),N&&f.jsx(TQ,{edge:y,isReconnectable:N,reconnectRadius:u,onReconnect:d,onReconnectStart:h,onReconnectEnd:p,sourceX:D,sourceY:R,targetX:P,targetY:_,sourcePosition:U,targetPosition:V,setUpdateHover:j,setReconnecting:M})]})})}var CQ=S.memo(AQ);const MQ=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function XM({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:b}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:w,onError:y}=Ie(MQ,Je),v=pQ(t);return f.jsxs("div",{className:"react-flow__edges",children:[f.jsx(wQ,{defaultColor:e,rfId:n}),v.map(E=>f.jsx(CQ,{id:E,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:w,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:y,edgeTypes:r,disableKeyboardA11y:b},E))]})}XM.displayName="EdgeRenderer";const IQ=S.memo(XM),Ik=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function OQ({children:e}){const t=Ke(),n=S.useRef(null),[r]=S.useState(()=>t.getState().transform);return AM(()=>{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=Ik(o)))};return s(),t.subscribe(s)},[t]),f.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:Ik(r)},children:e})}function RQ(e){const t=ib(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const LQ=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function PQ(e){const t=Ie(LQ),n=Ke();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function DQ(e){return e.connection.inProgress?{...e.connection,to:ec(e.connection.to,e.transform)}:{...e.connection}}function jQ(e){return DQ}function BQ(e){const t=jQ();return Ie(t,Je)}const $Q=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function FQ({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:l}=Ie($Q,Je);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:ht(["react-flow__connection",z2(a)]),children:f.jsx(QM,{style:t,type:n,CustomComponent:r,isValid:a})})})}const QM=({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}=BQ();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:u,toHandle:d,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]=eM(b);break;case Hr.SimpleBezier:[g]=BM(b);break;case Hr.Step:[g]=lg({...b,borderRadius:0});break;case Hr.SmoothStep:[g]=lg(b);break;default:[g]=nM(b)}return f.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};QM.displayName="ConnectionLine";const zQ={};function Ok(e=zQ){S.useRef(e),Ke(),S.useEffect(()=>{},[e])}function UQ(){Ke(),S.useRef(!1),S.useEffect(()=>{},[])}function ZM({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:b,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:w,selectionOnDrag:y,selectionMode:v,multiSelectionKeyCode:E,panActivationKeyCode:k,zoomActivationKeyCode:C,deleteKeyCode:N,onlyRenderVisibleElements:I,elementsSelectable:T,defaultViewport:B,translateExtent:j,minZoom:$,maxZoom:M,preventScrolling:L,defaultMarkerColor:O,zoomOnScroll:D,zoomOnPinch:R,panOnScroll:P,panOnScrollSpeed:_,panOnScrollMode:U,zoomOnDoubleClick:V,panOnDrag:A,autoPanOnSelection:F,onPaneClick:q,onPaneMouseEnter:G,onPaneMouseMove:Y,onPaneMouseLeave:H,onPaneScroll:Q,onPaneContextMenu:se,paneClickDistance:le,nodeClickDistance:ie,onEdgeContextMenu:K,onEdgeMouseEnter:re,onEdgeMouseMove:ae,onEdgeMouseLeave:ne,reconnectRadius:he,onReconnect:ce,onReconnectStart:Te,onReconnectEnd:ve,noDragClassName:we,noWheelClassName:Tt,noPanClassName:Re,disableKeyboardA11y:xt,nodeExtent:Le,rfId:z,viewport:W,onViewportChange:Z,nodesDraggable:oe}){return Ok(e),Ok(t),UQ(),RQ(n),PQ(W),f.jsx(iQ,{onPaneClick:q,onPaneMouseEnter:G,onPaneMouseMove:Y,onPaneMouseLeave:H,onPaneContextMenu:se,onPaneScroll:Q,paneClickDistance:le,deleteKeyCode:N,selectionKeyCode:w,selectionOnDrag:y,selectionMode:v,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:k,zoomActivationKeyCode:C,elementsSelectable:T,zoomOnScroll:D,zoomOnPinch:R,zoomOnDoubleClick:V,panOnScroll:P,panOnScrollSpeed:_,panOnScrollMode:U,panOnDrag:A,autoPanOnSelection:F,defaultViewport:B,translateExtent:j,minZoom:$,maxZoom:M,onSelectionContextMenu:d,preventScrolling:L,noDragClassName:we,noWheelClassName:Tt,noPanClassName:Re,disableKeyboardA11y:xt,onViewportChange:Z,isControlledViewport:!!W,children:f.jsxs(OQ,{children:[f.jsx(IQ,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ce,onReconnectStart:Te,onReconnectEnd:ve,onlyRenderVisibleElements:I,onEdgeContextMenu:K,onEdgeMouseEnter:re,onEdgeMouseMove:ae,onEdgeMouseLeave:ne,reconnectRadius:he,defaultMarkerColor:O,noPanClassName:Re,disableKeyboardA11y:xt,rfId:z}),f.jsx(FQ,{style:b,type:g,component:x,containerStyle:m}),f.jsx("div",{className:"react-flow__edgelabel-renderer"}),f.jsx(hQ,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:ie,onlyRenderVisibleElements:I,noPanClassName:Re,noDragClassName:we,disableKeyboardA11y:xt,nodeExtent:Le,rfId:z,nodesDraggable:oe}),f.jsx("div",{className:"react-flow__viewport-portal"})]})})}ZM.displayName="GraphView";const VQ=S.memo(ZM),HQ=W2(),Rk=({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,b=new Map,x=new Map,m=r??t??[],w=n??e??[],y=u??[0,0],v=d??vl;sM(b,x,m);const{nodesInitialized:E}=ug(w,p,g,{nodeOrigin:y,nodeExtent:v,zIndexMode:h});let k=[0,0,1];if(o&&i&&s){const C=Zl(p,{filter:B=>!!((B.width||B.initialWidth)&&(B.height||B.initialHeight))}),{x:N,y:I,zoom:T}=Q0(C,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:w,nodesInitialized:E,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:vl,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:HQ,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:$2,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},KQ=({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 b(){const{nodeLookup:x,panZoom:m,fitViewOptions:w,fitViewResolver:y,width:v,height:E,minZoom:k,maxZoom:C}=g();m&&(await UG({nodes:x,width:v,height:E,panZoom:m,minZoom:k,maxZoom:C},w),y==null||y.resolve(!0),p({fitViewResolver:null}))}return{...Rk({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:w,nodeOrigin:y,elevateNodesOnSelect:v,fitViewQueued:E,zIndexMode:k,nodesSelectionActive:C}=g(),{nodesInitialized:N,hasSelectedNodes:I}=ug(x,m,w,{nodeOrigin:y,nodeExtent:d,elevateNodesOnSelect:v,checkEquality:!0,zIndexMode:k}),T=C&&I;E&&N?(b(),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:w}=g();sM(m,w,x),p({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:w}=g();w(x),p({hasDefaultNodes:!0})}if(m){const{setEdges:w}=g();w(m),p({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:w,parentLookup:y,domNode:v,nodeOrigin:E,nodeExtent:k,debug:C,fitViewQueued:N,zIndexMode:I}=g(),{changes:T,updatedInternals:B}=dY(x,w,y,v,E,k,I);B&&(aY(w,y,{nodeOrigin:E,nodeExtent:k,zIndexMode:I}),N?(b(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(T==null?void 0:T.length)>0&&(C&&console.log("React Flow: trigger node changes",T),m==null||m(T)))},updateNodePositions:(x,m=!1)=>{const w=[];let y=[];const{nodeLookup:v,triggerNodeChanges:E,connection:k,updateConnection:C,onNodesChangeMiddlewareMap:N}=g();for(const[I,T]of x){const B=v.get(I),j=!!(B!=null&&B.expandParent&&(B!=null&&B.parentId)&&(T!=null&&T.position)),$={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(B&&k.inProgress&&k.fromNode.id===B.id){const M=ts(B,k.fromHandle,pe.Left,!0);C({...k,from:M})}j&&B.parentId&&w.push({id:I,parentId:B.parentId,rect:{...T.internals.positionAbsolute,width:T.measured.width??0,height:T.measured.height??0}}),y.push($)}if(w.length>0){const{parentLookup:I,nodeOrigin:T}=g(),B=rb(w,v,I,T);y.push(...B)}for(const I of N.values())y=I(y);E(y)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:w,nodes:y,hasDefaultNodes:v,debug:E}=g();if(x!=null&&x.length){if(v){const k=_M(x,y);w(k)}E&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:w,edges:y,hasDefaultEdges:v,debug:E}=g();if(x!=null&&x.length){if(v){const k=SM(x,y);w(k)}E&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:w,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const k=x.map(C=>Ni(C,!0));v(k);return}v(Ws(y,new Set([...x]),!0)),E(Ws(w))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:w,nodeLookup:y,triggerNodeChanges:v,triggerEdgeChanges:E}=g();if(m){const k=x.map(C=>Ni(C,!0));E(k);return}E(Ws(w,new Set([...x]))),v(Ws(y,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:w,nodes:y,nodeLookup:v,triggerNodeChanges:E,triggerEdgeChanges:k}=g(),C=x||y,N=m||w,I=[];for(const B of C){if(!B.selected)continue;const j=v.get(B.id);j&&(j.selected=!1),I.push(Ni(B.id,!1))}const T=[];for(const B of N)B.selected&&T.push(Ni(B.id,!1));E(I),k(T)},setMinZoom:x=>{const{panZoom:m,maxZoom:w}=g();m==null||m.setScaleExtent([x,w]),p({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:w}=g();m==null||m.setScaleExtent([w,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:w,triggerEdgeChanges:y,elementsSelectable:v}=g();if(!v)return;const E=m.reduce((C,N)=>N.selected?[...C,Ni(N.id,!1)]:C,[]),k=x.reduce((C,N)=>N.selected?[...C,Ni(N.id,!1)]:C,[]);w(E),y(k)},setNodeExtent:x=>{const{nodes:m,nodeLookup:w,parentLookup:y,nodeOrigin:v,elevateNodesOnSelect:E,nodeExtent:k,zIndexMode:C}=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]||(ug(m,w,y,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:C}),p({nodeExtent:x}))},panBy:x=>{const{transform:m,width:w,height:y,panZoom:v,translateExtent:E}=g();return fY({delta:x,panZoom:v,transform:m,translateExtent:E,width:w,height:y})},setCenter:async(x,m,w)=>{const{width:y,height:v,maxZoom:E,panZoom:k}=g();if(!k)return!1;const C=typeof(w==null?void 0:w.zoom)<"u"?w.zoom:E;return await k.setViewport({x:y/2-x*C,y:v/2-m*C,zoom:C},{duration:w==null?void 0:w.duration,ease:w==null?void 0:w.ease,interpolate:w==null?void 0:w.interpolate}),!0},cancelConnection:()=>{p({connection:{...F2}})},updateConnection:x=>{p({connection:x})},reset:()=>p({...Rk()})}},Object.is);function JM({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]=S.useState(()=>KQ({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(aX,{value:g,children:f.jsx(MX,{children:f.jsx(KX,{children:p})})})}function qQ({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 S.useContext(kf)?f.jsx(f.Fragment,{children:e}):f.jsx(JM,{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 WQ={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function GQ({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:b,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:k,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onNodesDelete:T,onEdgesDelete:B,onDelete:j,onSelectionChange:$,onSelectionDragStart:M,onSelectionDrag:L,onSelectionDragStop:O,onSelectionContextMenu:D,onSelectionStart:R,onSelectionEnd:P,onBeforeDelete:_,connectionMode:U,connectionLineType:V=Hr.Bezier,connectionLineStyle:A,connectionLineComponent:F,connectionLineContainerStyle:q,deleteKeyCode:G="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:H=!1,selectionMode:Q=kl.Full,panActivationKeyCode:se="Space",multiSelectionKeyCode:le=Sl()?"Meta":"Control",zoomActivationKeyCode:ie=Sl()?"Meta":"Control",snapToGrid:K,snapGrid:re,onlyRenderVisibleElements:ae=!1,selectNodesOnDrag:ne,nodesDraggable:he,autoPanOnNodeFocus:ce,nodesConnectable:Te,nodesFocusable:ve,nodeOrigin:we=kM,edgesFocusable:Tt,edgesReconnectable:Re,elementsSelectable:xt=!0,defaultViewport:Le=xX,minZoom:z=.5,maxZoom:W=2,translateExtent:Z=vl,preventScrolling:oe=!0,nodeExtent:ye,defaultMarkerColor:Oe="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:vt=!0,panOnScroll:Mn=!1,panOnScrollSpeed:dr=.5,panOnScrollMode:lt=Ui.Free,zoomOnDoubleClick:In=!0,panOnDrag:At=!0,onPaneClick:tc,onPaneMouseEnter:Nf,onPaneMouseMove:Tf,onPaneMouseLeave:Af,onPaneScroll:Cf,onPaneContextMenu:Mf,paneClickDistance:ds=1,nodeClickDistance:fs=0,children:If,onReconnect:hs,onReconnectStart:Of,onReconnectEnd:nc,onEdgeContextMenu:Rf,onEdgeDoubleClick:Lf,onEdgeMouseEnter:rc,onEdgeMouseMove:ps,onEdgeMouseLeave:mi,reconnectRadius:Pf=10,onNodesChange:ic,onEdgesChange:X,noDragClassName:J="nodrag",noWheelClassName:ue="nowheel",noPanClassName:Ae="nopan",fitView:qe,fitViewOptions:me,connectOnClick:kt,attributionPosition:yt,proOptions:xe,defaultEdgeOptions:ze,elevateNodesOnSelect:Ne=!0,elevateEdgesOnSelect:ct=!1,disableKeyboardA11y:fr=!1,autoPanOnConnect:Vo,autoPanOnNodeDrag:hr,autoPanOnSelection:yn=!0,autoPanSpeed:gi,connectionRadius:sc,isValidConnection:oI,onError:aI,style:lI,id:ob,nodeDragThreshold:cI,connectionDragThreshold:uI,viewport:dI,onViewportChange:fI,width:hI,height:pI,colorMode:mI="light",debug:gI,onScroll:oc,ariaLabelConfig:yI,zIndexMode:ab="basic",...bI},wI){const Df=ob||"1",xI=_X(mI),vI=S.useCallback(lb=>{lb.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),oc==null||oc(lb)},[oc]);return f.jsx("div",{"data-testid":"rf__wrapper",...bI,onScroll:vI,style:{...lI,...WQ},ref:wI,className:ht(["react-flow",i,xI]),id:ob,role:"application",children:f.jsxs(qQ,{nodes:e,edges:t,width:hI,height:pI,fitView:qe,fitViewOptions:me,minZoom:z,maxZoom:W,nodeOrigin:we,nodeExtent:ye,zIndexMode:ab,children:[f.jsx(EX,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:b,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:he,autoPanOnNodeFocus:ce,nodesConnectable:Te,nodesFocusable:ve,edgesFocusable:Tt,edgesReconnectable:Re,elementsSelectable:xt,elevateNodesOnSelect:Ne,elevateEdgesOnSelect:ct,minZoom:z,maxZoom:W,nodeExtent:ye,onNodesChange:ic,onEdgesChange:X,snapToGrid:K,snapGrid:re,connectionMode:U,translateExtent:Z,connectOnClick:kt,defaultEdgeOptions:ze,fitView:qe,fitViewOptions:me,onNodesDelete:T,onEdgesDelete:B,onDelete:j,onNodeDragStart:C,onNodeDrag:N,onNodeDragStop:I,onSelectionDrag:L,onSelectionDragStart:M,onSelectionDragStop:O,onMove:u,onMoveStart:d,onMoveEnd:h,noPanClassName:Ae,nodeOrigin:we,rfId:Df,autoPanOnConnect:Vo,autoPanOnNodeDrag:hr,autoPanSpeed:gi,onError:aI,connectionRadius:sc,isValidConnection:oI,selectNodesOnDrag:ne,nodeDragThreshold:cI,connectionDragThreshold:uI,onBeforeDelete:_,debug:gI,ariaLabelConfig:yI,zIndexMode:ab}),f.jsx(VQ,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:v,onNodeContextMenu:E,onNodeDoubleClick:k,nodeTypes:s,edgeTypes:o,connectionLineType:V,connectionLineStyle:A,connectionLineComponent:F,connectionLineContainerStyle:q,selectionKeyCode:Y,selectionOnDrag:H,selectionMode:Q,deleteKeyCode:G,multiSelectionKeyCode:le,panActivationKeyCode:se,zoomActivationKeyCode:ie,onlyRenderVisibleElements:ae,defaultViewport:Le,translateExtent:Z,minZoom:z,maxZoom:W,preventScrolling:oe,zoomOnScroll:$t,zoomOnPinch:vt,zoomOnDoubleClick:In,panOnScroll:Mn,panOnScrollSpeed:dr,panOnScrollMode:lt,panOnDrag:At,autoPanOnSelection:yn,onPaneClick:tc,onPaneMouseEnter:Nf,onPaneMouseMove:Tf,onPaneMouseLeave:Af,onPaneScroll:Cf,onPaneContextMenu:Mf,paneClickDistance:ds,nodeClickDistance:fs,onSelectionContextMenu:D,onSelectionStart:R,onSelectionEnd:P,onReconnect:hs,onReconnectStart:Of,onReconnectEnd:nc,onEdgeContextMenu:Rf,onEdgeDoubleClick:Lf,onEdgeMouseEnter:rc,onEdgeMouseMove:ps,onEdgeMouseLeave:mi,reconnectRadius:Pf,defaultMarkerColor:Oe,noDragClassName:J,noWheelClassName:ue,noPanClassName:Ae,rfId:Df,disableKeyboardA11y:fr,nodeExtent:ye,viewport:dI,onViewportChange:fI,nodesDraggable:he}),f.jsx(wX,{onSelectionChange:$}),If,f.jsx(pX,{proOptions:xe,position:yt}),f.jsx(hX,{rfId:Df,disableKeyboardA11y:fr})]})})}var YQ=TM(GQ);function XQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>_M(i,s)),[]);return[t,n,r]}function QQ(e){const[t,n]=S.useState(e),r=S.useCallback(i=>n(s=>SM(i,s)),[]);return[t,n,r]}function ZQ({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:ht(["react-flow__background-pattern",n,r])})}function JQ({radius:e,className:t}){return f.jsx("circle",{cx:e,cy:e,r:e,className:ht(["react-flow__background-pattern","dots",t])})}var si;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(si||(si={}));const eZ={[si.Dots]:1,[si.Lines]:1,[si.Cross]:6},tZ=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function eI({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:u}){const d=S.useRef(null),{transform:h,patternId:p}=Ie(tZ,Je),g=r||eZ[t],b=t===si.Dots,x=t===si.Cross,m=Array.isArray(n)?n:[n,n],w=[m[0]*h[2]||1,m[1]*h[2]||1],y=g*h[2],v=Array.isArray(s)?s:[s,s],E=x?[y,y]:w,k=[v[0]*h[2]||1+E[0]/2,v[1]*h[2]||1+E[1]/2],C=`${p}${e||""}`;return f.jsxs("svg",{className:ht(["react-flow__background",c]),style:{...l,..._f,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:d,"data-testid":"rf__background",children:[f.jsx("pattern",{id:C,x:h[0]%w[0],y:h[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${k[0]},-${k[1]})`,children:b?f.jsx(JQ,{radius:y/2,className:u}):f.jsx(ZQ,{dimensions:E,lineWidth:i,variant:t,className:u})}),f.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}eI.displayName="Background";const nZ=S.memo(eI);function rZ(){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 iZ(){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 sZ(){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 aZ(){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 Qc({children:e,className:t,...n}){return f.jsx("button",{type:"button",className:ht(["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 tI({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=Ke(),{isInteractive:b,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:w}=Ie(lZ,Je),{zoomIn:y,zoomOut:v,fitView:E}=ib(),k=()=>{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)},T=h==="horizontal"?"horizontal":"vertical";return f.jsxs(Ef,{className:ht(["react-flow__controls",T,c]),position:d,style:e,"data-testid":"rf__controls","aria-label":p??w["controls.ariaLabel"],children:[t&&f.jsxs(f.Fragment,{children:[f.jsx(Qc,{onClick:k,className:"react-flow__controls-zoomin",title:w["controls.zoomIn.ariaLabel"],"aria-label":w["controls.zoomIn.ariaLabel"],disabled:m,children:f.jsx(rZ,{})}),f.jsx(Qc,{onClick:C,className:"react-flow__controls-zoomout",title:w["controls.zoomOut.ariaLabel"],"aria-label":w["controls.zoomOut.ariaLabel"],disabled:x,children:f.jsx(iZ,{})})]}),n&&f.jsx(Qc,{className:"react-flow__controls-fitview",onClick:N,title:w["controls.fitView.ariaLabel"],"aria-label":w["controls.fitView.ariaLabel"],children:f.jsx(sZ,{})}),r&&f.jsx(Qc,{className:"react-flow__controls-interactive",onClick:I,title:w["controls.interactive.ariaLabel"],"aria-label":w["controls.interactive.ariaLabel"],children:b?f.jsx(aZ,{}):f.jsx(oZ,{})}),u]})}tI.displayName="Controls";const cZ=S.memo(tI);function uZ({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:b}=s||{},x=o||g||b;return f.jsx("rect",{className:ht(["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 dZ=S.memo(uZ),fZ=e=>e.nodes.map(t=>t.id),pp=e=>e instanceof Function?e:()=>e;function hZ({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=dZ,onClick:o}){const a=Ie(fZ,Je),l=pp(t),c=pp(e),u=pp(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return f.jsx(f.Fragment,{children:a.map(h=>f.jsx(mZ,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:d},h))})}function pZ({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 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:w}=b.internals.positionAbsolute,{width:y,height:v}=ur(x);return{node:x,x:m,y:w,width:y,height:v}},Je);return!c||c.hidden||!G2(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 mZ=S.memo(pZ);var gZ=S.memo(hZ);const yZ=200,bZ=150,wZ=e=>!e.hidden,xZ=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(Zl(e.nodeLookup,{filter:wZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Lk=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,vZ=(e,t)=>Lk(e.viewBB,t.viewBB)&&Lk(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,kZ="react-flow__minimap-desc";function nI({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:b=!1,zoomable:x=!1,ariaLabel:m,inversePan:w,zoomStep:y=1,offsetScale:v=5}){const E=Ke(),k=S.useRef(null),{boundingRect:C,viewBB:N,rfId:I,panZoom:T,translateExtent:B,flowWidth:j,flowHeight:$,ariaLabelConfig:M}=Ie(xZ,vZ),L=(e==null?void 0:e.width)??yZ,O=(e==null?void 0:e.height)??bZ,D=C.width/L,R=C.height/O,P=Math.max(D,R),_=P*L,U=P*O,V=v*P,A=C.x-(_-C.width)/2-V,F=C.y-(U-C.height)/2-V,q=_+V*2,G=U+V*2,Y=`${kZ}-${I}`,H=S.useRef(0),Q=S.useRef();H.current=P,S.useEffect(()=>{if(k.current&&T)return Q.current=vY({domNode:k.current,panZoom:T,getTransform:()=>E.getState().transform,getViewScale:()=>H.current}),()=>{var K;(K=Q.current)==null||K.destroy()}},[T]),S.useEffect(()=>{var K;(K=Q.current)==null||K.update({translateExtent:B,width:j,height:$,inversePan:w,pannable:b,zoomStep:y,zoomable:x})},[b,x,w,y,B,j,$]);const se=p?K=>{var ne;const[re,ae]=((ne=Q.current)==null?void 0:ne.pointer(K))||[0,0];p(K,{x:re,y:ae})}:void 0,le=g?S.useCallback((K,re)=>{const ae=E.getState().nodeLookup.get(re).internals.userNode;g(K,ae)},[]):void 0,ie=m??M["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 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:ht(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:f.jsxs("svg",{width:L,height:O,viewBox:`${A} ${F} ${q} ${G}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:k,onClick:se,children:[ie&&f.jsx("title",{id:Y,children:ie}),f.jsx(gZ,{onClick:le,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),f.jsx("path",{className:"react-flow__minimap-mask",d:`M${A-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"})]})})}nI.displayName="MiniMap";const EZ=S.memo(nI),_Z=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,SZ={[No.Line]:"right",[No.Handle]:"bottom-right"};function NZ({nodeId:e,position:t,variant:n=No.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:b,onResize:x,onResizeEnd:m}){const w=OM(),y=typeof e=="string"?e:w,v=Ke(),E=S.useRef(null),k=n===No.Handle,C=Ie(S.useCallback(_Z(k&&p),[k,p]),Je),N=S.useRef(null),I=t??SZ[n];S.useEffect(()=>{if(!(!E.current||!y))return N.current||(N.current=LY({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:B,transform:j,snapGrid:$,snapToGrid:M,nodeOrigin:L,domNode:O}=v.getState();return{nodeLookup:B,transform:j,snapGrid:$,snapToGrid:M,nodeOrigin:L,paneDomNode:O}},onChange:(B,j)=>{const{triggerNodeChanges:$,nodeLookup:M,parentLookup:L,nodeOrigin:O}=v.getState(),D=[],R={x:B.x,y:B.y},P=M.get(y);if(P&&P.expandParent&&P.parentId){const _=P.origin??O,U=B.width??P.measured.width??0,V=B.height??P.measured.height??0,A={id:P.id,parentId:P.parentId,rect:{width:U,height:V,...Y2({x:B.x??P.position.x,y:B.y??P.position.y},{width:U,height:V},P.parentId,M,_)}},F=rb([A],M,L,O);D.push(...F),R.x=B.x?Math.max(_[0]*U,B.x):void 0,R.y=B.y?Math.max(_[1]*V,B.y):void 0}if(R.x!==void 0&&R.y!==void 0){const _={id:y,type:"position",position:{...R}};D.push(_)}if(B.width!==void 0&&B.height!==void 0){const U={id:y,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:B.width,height:B.height}};D.push(U)}for(const _ of j){const U={..._,type:"position"};D.push(U)}$(D)},onEnd:({width:B,height:j})=>{const $={id:y,type:"dimensions",resizing:!1,dimensions:{width:B,height:j}};v.getState().triggerNodeChanges([$])}})),N.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:d,resizeDirection:h,onResizeStart:b,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var B;(B=N.current)==null||B.destroy()}},[I,a,l,c,u,d,b,x,m,g]);const T=I.split("-");return f.jsx("div",{className:ht(["react-flow__resize-control","nodrag",...T,n,r]),ref:E,style:{...i,scale:C,...o&&{[k?"backgroundColor":"borderColor"]:o}},children:s})}S.memo(NZ);const TZ=[{type:"sequential",label:"顺序",desc:"节点依次执行",Icon:GB},{type:"parallel",label:"并行",desc:"节点同时执行",Icon:_B},{type:"loop",label:"循环",desc:"节点循环执行",Icon:Ky}];let hg=0;function mp(){return hg+=1,`node_${hg}`}function gp(e,t,n){const r=us();return{id:e,type:"agentNode",position:t,data:{agent:{...r,name:(n==null?void 0:n.name)??`agent_${e.replace("node_","")}`,...n}}}}function AZ({data:e,selected:t}){const n=e.agent;return f.jsxs("div",{className:`wfb-node ${t?"wfb-node--selected":""}`,children:[f.jsx(Ao,{type:"target",position:pe.Left,className:"wfb-handle"}),f.jsx("div",{className:"wfb-node-icon",children:f.jsx(mo,{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(Ao,{type:"source",position:pe.Right,className:"wfb-handle"})]})}const CZ={agentNode:AZ},Pk={type:"smoothstep",markerEnd:{type:El.ArrowClosed,width:16,height:16}};function MZ({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(()=>{hg=0;const j=mp();return gp(j,{x:80,y:120},{name:"agent_1"})},[]),[u,d,h]=XQ([c]),[p,g,b]=QQ([]),[x,m]=S.useState(c.id),w=u.find(j=>j.id===x)??null,y=S.useCallback(j=>g($=>NM({...j,...Pk},$)),[g]),v=S.useCallback(()=>{const j=mp(),$=u.length*28,M=gp(j,{x:80+$,y:120+$});d(L=>L.concat(M)),m(j)},[u.length,d]),E=j=>{j.dataTransfer.setData("application/wfb-node","agentNode"),j.dataTransfer.effectAllowed="move"},k=S.useCallback(j=>{j.preventDefault(),j.dataTransfer.dropEffect="move"},[]),C=S.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=mp(),O=gp(L,M);d(D=>D.concat(O)),m(L)},[d]),N=S.useCallback(j=>{x&&d($=>$.map(M=>M.id===x?{...M,data:{...M.data,agent:{...M.data.agent,...j}}}:M))},[x,d]),I=S.useCallback(()=>{x&&(d(j=>j.filter($=>$.id!==x)),g(j=>j.filter($=>$.source!==x&&$.target!==x)),m(null))},[x,d,g]),T=S.useCallback(()=>{const j=u.map(M=>M.data.agent),$={...us(),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($)},[u,p,r,s,a,t]),B=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:TZ.map(({type:j,label:$,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:$}),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(UB,{className:"icon wfb-grip"}),f.jsx("span",{className:"wfb-node-icon wfb-node-icon--sm",children:f.jsx(mo,{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(Lo,{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:!B,type:"button",children:[f.jsx(Yd,{className:"icon"}),"创建工作流"]}),f.jsxs(YQ,{nodes:u,edges:p,onNodesChange:h,onEdgesChange:b,onConnect:y,onInit:j=>n.current=j,nodeTypes:CZ,defaultEdgeOptions:Pk,onDrop:C,onDragOver:k,onNodeClick:(j,$)=>m($.id),onPaneClick:()=>m(null),fitView:!0,fitViewOptions:{padding:.3,maxZoom:1},proOptions:{hideAttribution:!0},children:[f.jsx(nZ,{gap:16,size:1,color:"hsl(240 5.9% 88%)"}),f.jsx(cZ,{showInteractive:!1}),f.jsx(EZ,{pannable:!0,zoomable:!0,className:"wfb-minimap"})]})]}),f.jsx("aside",{className:"wfb-inspector",children:w?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(Po,{className:"icon"})})]}),f.jsxs("label",{className:"wfb-field",children:[f.jsx("span",{className:"wfb-field-label",children:"名称"}),f.jsx("input",{className:"wfb-input",value:w.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:w.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:w.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:w.data.agent.tools.join(", "),onChange:j=>N({tools:j.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:w.id})]})]}):f.jsxs("div",{className:"wfb-inspector-empty",children:[f.jsx(mo,{className:"wfb-empty-icon"}),f.jsx("p",{children:"选择一个节点以编辑其配置"}),f.jsxs("p",{className:"wfb-empty-sub",children:["共 ",u.length," 个节点 · ",p.length," 条连线"]})]})})]})})}function IZ(e){return f.jsx(JM,{children:f.jsx(MZ,{...e})})}const Dk=["#6366f1","#0ea5e9","#10b981","#f59e0b","#f43f5e","#a855f7","#14b8a6","#f472b6"];function yp(e){let t=0;for(let n=0;n>>0;return Dk[t%Dk.length]}function OZ(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 RZ(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 jk(e){const t=e/1e6;return t>=1e3?`${(t/1e3).toFixed(2)} s`:`${t.toFixed(t<10?2:1)} ms`}const LZ=e=>e.replace(/^(gen_ai|a2ui|adk)\./,"");function Bk(e){return Object.entries(e.attributes).filter(([,t])=>t!=null&&typeof t!="object").map(([t,n])=>{const r=String(n);return{key:LZ(t),value:r,long:r.length>80||r.includes(` -`)}}).sort((t,n)=>Number(t.long)-Number(n.long))}function PZ({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(""),h$(e).then(m=>{r(m),c(m.length?m.reduce((w,y)=>w.start_time<=y.start_time?w:y).span_id:null)}).catch(m=>s(String(m)))},[e]);const{rootNodes:u,min:d,total:h}=S.useMemo(()=>OZ(n??[]),[n]),p=S.useMemo(()=>RZ(u,o),[u,o]),g=(n==null?void 0:n.find(m=>m.span_id===l))??null,b=h/1e6,x=m=>a(w=>{const y=new Set(w);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(Xd,{className:"icon"})})]}),n==null&&!i&&f.jsxs("div",{className:"drawer-loading",children:[f.jsx(gt,{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 w=m.span,y=(w.start_time-d)/h*100,v=Math.max((w.end_time-w.start_time)/h*100,.6),E=m.children.length>0;return f.jsxs("button",{className:`trace-row ${l===w.span_id?"active":""}`,onClick:()=>c(w.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(w.span_id)?"":"open"}`,onClick:k=>{k.stopPropagation(),E&&x(w.span_id)},children:f.jsx(Wn,{className:"chev"})}),f.jsx("span",{className:"trace-dot",style:{background:yp(w.name)}}),f.jsx("span",{className:"trace-name",title:w.name,children:w.name})]}),f.jsx("span",{className:"trace-dur",children:jk(w.end_time-w.start_time)}),f.jsx("span",{className:"trace-track",children:f.jsx("span",{className:"trace-bar",style:{left:`${y}%`,width:`${v}%`,background:yp(w.name)}})})]},w.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:yp(g.name)}}),jk(g.end_time-g.start_time)]}),f.jsx("div",{className:"td-section",children:"属性"}),f.jsx("div",{className:"td-props",children:Bk(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))}),Bk(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 DZ(e){return e.toLowerCase()==="github"?f.jsx(zB,{className:"icon"}):f.jsx(YB,{className:"icon"})}function jZ({onUsername:e}){const[t,n]=S.useState(null),[r,i]=S.useState("");S.useEffect(()=>{M$().then(n)},[]);const s=N$.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:()=>I$(a.loginUrl),children:[DZ(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(LN,{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 BZ({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)})}os("Button",BZ);function $Z({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)})}os("Card",$Z);const FZ={start:"flex-start",center:"center",end:"flex-end",spaceBetween:"space-between",spaceAround:"space-around",spaceEvenly:"space-evenly",stretch:"stretch"},zZ={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch"};function rI(e){return FZ[e]??"flex-start"}function iI(e){return zZ[e]??"stretch"}function UZ({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:rI(e.justify),alignItems:iI(e.align)},children:n.map(r=>t.render(r))})}os("Column",UZ);function VZ({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})}os("Divider",VZ);const HZ={send:"✈️",check:"✅",close:"✖️",star:"⭐",favorite:"❤️",info:"ℹ️",help:"❓",error:"⛔",calendarToday:"📅",event:"📅",schedule:"🕒",locationOn:"📍",accountCircle:"👤",mail:"✉️",call:"📞",home:"🏠",settings:"⚙️",search:"🔍"};function KZ({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:HZ[t]??"•"})}os("Icon",KZ);function qZ({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:rI(e.justify),alignItems:iI(e.align??"center")},children:n.map(r=>t.render(r))})}os("Row",qZ);const WZ=new Set(["h1","h2","h3","h4","h5"]);function GZ({node:e,ctx:t}){const n=e.variant??"body",r=t.resolveString(e.text),i=WZ.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})}os("Text",GZ);const YZ="创建 Agent",XZ={intelligent:"智能模式",custom:"自定义",template:"从模板新建",workflow:"工作流"},Ss={app:"veadk.appName",view:"veadk.view",session:"veadk.sessionId"},QZ=new Set,ZZ=[];function $k(){const e=typeof localStorage<"u"?localStorage.getItem(Ss.view):null;return e==="menu"||e==="intelligent"||e==="custom"||e==="template"||e==="workflow"?e:null}function JZ({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 eJ({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 sI(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 nJ(e){if(!e)return"";const t=[];return e.ts&&t.push(sI(e.ts)),e.tokens!=null&&t.push(`${e.tokens.toLocaleString()} tokens`),t.join(" · ")}function rJ(e){return e.blocks.map(t=>t.kind==="text"?t.text:"").join("").trim()}const iJ="send_a2ui_json_to_client";function sJ(e){return e.blocks.some(t=>t.kind==="text"?t.text.trim().length>0:t.kind==="tool"?!(t.name===iJ&&t.done):t.kind==="a2ui"?iT(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 aJ(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 Fk({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(Uy,{className:"icon"}):f.jsx(OB,{className:"icon"})})}const zk=["今天想做点什么?","有什么可以帮你的?","需要我帮你查点什么吗?","有问题尽管问我","嗨,我们开始吧","开始一段新对话吧"],Uk=()=>zk[Math.floor(Math.random()*zk.length)],cJ=20*1024*1024;function uJ(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 dJ(){const[e,t]=S.useState([]),[n,r]=S.useState(""),[i,s]=S.useState([]),[o,a]=S.useState(""),[l,c]=S.useState({}),u=l[o]??[],d=(X,J)=>c(ue=>({...ue,[X]:typeof J=="function"?J(ue[X]??[]):J})),[h,p]=S.useState(""),[g,b]=S.useState([]),[x,m]=S.useState(()=>new Set),w=S.useRef(new Map),y=(X,J)=>m(ue=>{const Ae=new Set(ue);return J?Ae.add(X):Ae.delete(X),Ae}),v=S.useRef(""),[E,k]=S.useState(""),[C,N]=S.useState(!1),[I,T]=S.useState(Uk),[B,j]=S.useState(null),[$,M]=S.useState(""),[L,O]=S.useState(),[D,R]=S.useState({newChat:!0,search:!0,skillCenter:!0,history:!0,addAgent:!0,manageAgents:!0,addAgentkit:!0}),[P,_]=S.useState("local"),[U,V]=S.useState(!1),[A,F]=S.useState(!1),[q,G]=S.useState({}),[Y,H]=S.useState({}),[Q,se]=S.useState({}),le=x.has(o),ie=q[o]??"",K=Y[o]??QZ,re=Q[o]??ZZ,ae=(X,J)=>{var me,kt,yt,xe,ze;const ue=J.author&&J.author!=="user"?J.author:void 0;ue&&(G(Ne=>({...Ne,[X]:ue})),H(Ne=>({...Ne,[X]:new Set(Ne[X]??[]).add(ue)})),se(Ne=>{var ct;return(ct=Ne[X])!=null&&ct.length?Ne:{...Ne,[X]:[ue]}}));const Ae=((me=J.actions)==null?void 0:me.transferToAgent)??((kt=J.actions)==null?void 0:kt.transfer_to_agent);Ae&&se(Ne=>{const ct=Ne[X]??[];return ct[ct.length-1]===Ae?Ne:{...Ne,[X]:[...ct,Ae]}}),(((yt=J.actions)==null?void 0:yt.endOfAgent)??((xe=J.actions)==null?void 0:xe.end_of_agent)??((ze=J.actions)==null?void 0:ze.escalate))&&se(Ne=>{const ct=Ne[X]??[];return ct.length<=1?Ne:{...Ne,[X]:ct.slice(0,-1)}})},[ne,he]=S.useState($k),[ce,Te]=S.useState(!0),[ve,we]=S.useState(!1),[Tt,Re]=S.useState(!1),[xt,Le]=S.useState(!1),[z,W]=S.useState(null),[Z,oe]=S.useState(!1),[ye,Oe]=S.useState(!1),$t=S.useRef(null),[vt,Mn]=S.useState(()=>{const X=Gr();return jl(X),X}),[dr,lt]=S.useState(!1),In=S.useRef(!1);function At(X){console.log("create agent draft:",X),he(null),fs()}function tc(X,J){console.log("Agent added, navigating to:",X,J),Mn(Gr()),he(null),r(X)}const{ref:Nf,onScroll:Tf}=sT(u);S.useEffect(()=>{R$().then(X=>{M(X.userId),O(X.info),V(!!X.local),j(X.status)})},[]),S.useEffect(()=>{g$().then(X=>{R(X.features),_(X.agentsSource),X.defaultView==="addAgent"&&(he(null),we(!1),oe(!1),Oe(!1),Re(!1),Le(!0))})},[]),S.useEffect(()=>{fetch("/web/runtime-config").then(X=>X.ok?X.json():null).then(X=>{X&&Te(!!X.credentials)}).catch(()=>{})},[]);function Af(X){A$(X),M(X),O({name:X}),V(!0),j("authenticated")}function Cf(){U?(C$(),M(""),O(void 0),j("unauthenticated")):O$()}S.useEffect(()=>{B!=="unauthenticated"&&d$().then(X=>{if(t(X),P==="cloud"){r("");return}const J=localStorage.getItem(Ss.app),ue=vt.flatMap(me=>me.apps.map(kt=>Gi(me.id,kt))),Ae=J&&(X.includes(J)||ue.includes(J)),qe=["web_search_agent","web_demo"].find(me=>X.includes(me))??X.find(me=>!/^\d/.test(me))??X[0];r(Ae?J:qe||"")}).catch(X=>k(String(X)))},[B,P]),S.useEffect(()=>{n&&localStorage.setItem(Ss.app,n)},[n]),S.useEffect(()=>{localStorage.setItem(Ss.view,ne??"chat")},[ne]),S.useEffect(()=>{localStorage.setItem(Ss.session,o),v.current=o},[o]),S.useEffect(()=>()=>w.current.forEach(X=>X.abort()),[]),S.useEffect(()=>{!n||!$||(async()=>{const X=await ds(n);if(!In.current){In.current=!0;const J=localStorage.getItem(Ss.session)||"";if($k()===null&&J&&X.some(ue=>ue.id===J)){hs(J);return}}fs()})()},[n,$]),S.useEffect(()=>{const X=$t.current;X&&X.app===n&&($t.current=null,hs(X.sid))},[n]);function Mf(X,J){oe(!1),X===n?hs(J):($t.current={app:X,sid:J},r(X))}async function ds(X){try{const J=await HN(X,$),ue=await Promise.all(J.map(Ae=>{var qe;return(qe=Ae.events)!=null&&qe.length?Promise.resolve(Ae):Cm(X,$,Ae.id)}));return s(ue),ue}catch(J){return k(String(J)),[]}}function fs(){k(""),T(Uk()),v.current="",a("")}async function If(X){var J;try{(J=w.current.get(X))==null||J.abort(),await f$(n,$,X),c(ue=>{const{[X]:Ae,...qe}=ue;return qe}),X===o&&fs(),await ds(n)}catch(ue){k(String(ue))}}async function hs(X){if(X!==o&&(v.current=X,k(""),a(X),l[X]===void 0)){F(!0);try{const J=await Cm(n,$,X);d(X,_$(J.events??[]))}catch(J){k(String(J))}finally{F(!1)}}}async function Of(X){const J=[];for(const ue of Array.from(X)){if(ue.size>cJ){k(`文件过大(>20MB):${ue.name}`);continue}const Ae=await uJ(ue);J.push({mimeType:ue.type||"application/octet-stream",data:Ae,name:ue.name})}J.length&&b(ue=>[...ue,...J])}async function nc(X,J=[]){if(!X.trim()&&J.length===0||le||!n||!$)return;k("");let ue=o;if(!ue)try{ue=await Am(n,$),a(ue);const me=Date.now()/1e3,kt={id:ue,lastUpdateTime:me,events:[{author:"user",timestamp:me,content:{role:"user",parts:[{text:X}]}}]};s(yt=>[kt,...yt.filter(xe=>xe.id!==ue)])}catch(me){k(String(me));return}const Ae=new AbortController;w.current.set(ue,Ae),y(ue,!0),v.current=ue;const qe=[];J.length&&qe.push({kind:"attachment",files:J.map(me=>({mimeType:me.mimeType,data:me.data,name:me.name}))}),X.trim()&&qe.push({kind:"text",text:X}),d(ue,me=>[...me,{role:"user",blocks:qe,meta:{ts:Date.now()/1e3}},{role:"assistant",blocks:[]}]),G(me=>({...me,[ue]:""})),H(me=>({...me,[ue]:new Set})),se(me=>({...me,[ue]:[]}));try{let me=Wr(),kt=0,yt=Date.now()/1e3;for await(const xe of sd({appName:n,userId:$,sessionId:ue,text:X,attachments:J,signal:Ae.signal})){if(Ae.signal.aborted)break;const ze=xe.error??xe.errorMessage??xe.error_message;if(typeof ze=="string"&&ze){v.current===ue&&k(ze);break}ae(ue,xe),me=ul(me,xe);const Ne=xe.usageMetadata??xe.usage_metadata;Ne!=null&&Ne.totalTokenCount&&(kt=Ne.totalTokenCount),xe.timestamp&&(yt=xe.timestamp);const ct=me.blocks,fr={tokens:kt||void 0,ts:yt};d(ue,Vo=>{const hr=Vo.slice(),yn=hr[hr.length-1];return(yn==null?void 0:yn.role)==="assistant"&&(hr[hr.length-1]={...yn,blocks:ct,meta:fr}),hr})}ds(n)}catch(me){(me==null?void 0:me.name)!=="AbortError"&&!Ae.signal.aborted&&v.current===ue&&k(String(me))}finally{w.current.get(ue)===Ae&&w.current.delete(ue),y(ue,!1),G(me=>({...me,[ue]:""})),se(me=>({...me,[ue]:[]}))}}function Rf(X,J){var qe,me;const ue=((qe=X==null?void 0:X.event)==null?void 0:qe.name)??J.id,Ae=((me=X==null?void 0:X.event)==null?void 0:me.context)??{};nc(`[ui-action] ${ue}: ${JSON.stringify(Ae)}`)}async function Lf(X){if(!X.authUri)throw new Error("事件中没有授权地址。");if(!n||!$||!o)throw new Error("会话尚未就绪。");const J=o,ue=await aJ(X.authUri),Ae=lJ(X.authConfig,ue),qe=xe=>xe.map(ze=>ze.kind==="auth"&&!ze.done?{...ze,done:!0}:ze);d(J,xe=>{const ze=xe.slice(),Ne=ze[ze.length-1];return(Ne==null?void 0:Ne.role)==="assistant"&&(ze[ze.length-1]={...Ne,blocks:qe(Ne.blocks)}),ze});const me=u[u.length-1],kt=qe(me&&me.role==="assistant"?me.blocks:[]),yt=new AbortController;w.current.set(J,yt),y(J,!0);try{let xe=Wr(),ze=0,Ne=Date.now()/1e3;for await(const ct of sd({appName:n,userId:$,sessionId:o,text:"",functionResponses:[{id:X.callId,name:"adk_request_credential",response:Ae}],signal:yt.signal})){if(yt.signal.aborted)break;ae(J,ct),xe=ul(xe,ct);const fr=ct.usageMetadata??ct.usage_metadata;fr!=null&&fr.totalTokenCount&&(ze=fr.totalTokenCount),ct.timestamp&&(Ne=ct.timestamp);const Vo=[...kt,...xe.blocks];d(J,hr=>{var sc;const yn=hr.slice(),gi=yn[yn.length-1];return(gi==null?void 0:gi.role)==="assistant"&&(yn[yn.length-1]={...gi,blocks:Vo,meta:{tokens:ze||((sc=gi.meta)==null?void 0:sc.tokens),ts:Ne}}),yn})}ds(n)}catch(xe){(xe==null?void 0:xe.name)!=="AbortError"&&!yt.signal.aborted&&v.current===J&&k(String(xe))}finally{w.current.get(J)===yt&&w.current.delete(J),y(J,!1),G(xe=>({...xe,[J]:""})),se(xe=>({...xe,[J]:[]}))}}if(B===null)return f.jsx("div",{className:"boot"});if(B==="unauthenticated")return f.jsx(jZ,{onUsername:Af});const rc=ZN(e,vt),ps=X=>{var J;return((J=rc.find(ue=>ue.id===X))==null?void 0:J.label)??X},mi=vt.find(X=>X.runtimeId&&X.apps.some(J=>Gi(X.id,J)===n)),Pf=mi&&mi.runtimeId?{runtimeId:mi.runtimeId,name:mi.name,region:mi.region??"cn-beijing"}:void 0,ic=X=>{Mn(Gr()),v.current="",a(""),r(X)};return f.jsxs("div",{className:"layout",children:[f.jsx(i3,{agentsSource:P,localApps:e,currentAgentId:n,currentAgentLabel:n?ps(n):"",currentRuntime:Pf,author:String((L==null?void 0:L.email)??$??""),onSelectAgent:ic,features:D,sessions:i,currentSessionId:o,streamingSids:x,onNewChat:()=>{he(null),we(!1),Re(!1),Le(!1),oe(!1),Oe(!1),fs()},onSearch:()=>{he(null),we(!1),Re(!1),Le(!1),Oe(!1),oe(!0),k("")},onQuickCreate:()=>{v.current="",a(""),we(!1),Re(!1),oe(!1),Oe(!1),he(null),W(null),Le(!0),k("")},onSkillCenter:()=>{he(null),Re(!1),Le(!1),oe(!1),Oe(!1),we(!0),k("")},onAddAgent:()=>{v.current="",he(null),we(!1),oe(!1),Oe(!1),a(""),Le(!1),Re(!0),k("")},onManageAgents:()=>{v.current="",a(""),he(null),we(!1),Re(!1),Le(!1),oe(!1),Oe(!0),k("")},onPickSession:X=>{he(null),we(!1),Re(!1),Le(!1),oe(!1),Oe(!1),k(""),hs(X)},onDeleteSession:If,userInfo:L,onLogout:Cf}),(()=>{const X=f.jsx(H8,{value:h,onChange:p,onSubmit:()=>{const J=h,ue=g;p(""),b([]),nc(J,ue)},disabled:!n||!$,busy:le,attachments:g,onAddFiles:Of,onRemoveAttachment:J=>b(ue=>ue.filter((Ae,qe)=>qe!==J))});return f.jsxs("main",{className:"main",children:[f.jsx(s3,{apps:rc.map(J=>J.id),appName:n,onAppChange:ic,agentLabel:ps,title:xt?"添加 Agent":Tt?"添加 AgentKit 智能体":ve?"技能中心":Z?"搜索":ye?"管理 Agent":ne?void 0:n?ps(n):"选择 Agent",crumbs:Z||Tt||ve||xt||!ne?void 0:ne==="menu"?[{label:YZ,onClick:()=>{he(null),W(null),Le(!0)}},{label:"从 0 快速创建"}]:[{label:"从 0 快速创建",onClick:()=>lt(!0)},{label:XZ[ne]}]}),E&&f.jsx("div",{className:"error",children:E}),A&&f.jsxs("div",{className:"session-loading",children:[f.jsx(gt,{className:"icon spin"})," 加载会话…"]}),ye?f.jsx(c3,{author:String((L==null?void 0:L.email)??$??"")}):xt?f.jsx(nC,{title:"您想以哪种方式添加 Agent 来运行?",sub:"选择最适合你的方式,下一步即可开始",cards:[...D.addAgentkit?[{key:"agentkit",icon:JZ,title:"添加 AgentKit 智能体",desc:"连接已部署在火山引擎 AgentKit 上的远程智能体。",onClick:()=>{Le(!1),Re(!0)}}]:[],{key:"scratch",icon:eJ,title:"从 0 快速创建",desc:"用智能 / 自定义 / 模板 / 工作流的方式从零创建一个 Agent。",onClick:()=>{Le(!1),W(null),he("menu")}}]}):Z?f.jsx(G$,{userId:$,appId:n,agentLabel:ps,onOpenSession:Mf}):Tt?f.jsx(l3,{onAdded:J=>{Mn(Gr()),Re(!1),r(J)},onCancel:()=>Re(!1)}):ve?f.jsx(B$,{}):ne!==null&&!ce?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(_K,{onSelect:J=>{W(null),he(J)},onImport:J=>{W(J),he("custom")}}):ne==="intelligent"?f.jsx(jK,{userId:$,onBack:()=>he("menu"),onCreate:At,onAgentAdded:tc}):ne==="custom"?f.jsx(ZK,{initialDraft:z??void 0,onBack:()=>he("menu"),onCreate:At,onAgentAdded:tc,author:String((L==null?void 0:L.email)??$??"")}):ne==="template"?f.jsx(t7,{onBack:()=>he("menu"),onCreate:At}):ne==="workflow"?f.jsx(IZ,{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(Vx,{appName:n,activeAgent:ie,seenAgents:K,execPath:re})]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"transcript",ref:Nf,onScroll:Tf,children:u.map((J,ue)=>{var me;const Ae=ue===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,ze)=>{var Ne;return(Ne=xe.mimeType)!=null&&Ne.startsWith("image/")&&xe.data?f.jsx("img",{className:"attachment-thumb",src:`data:${xe.mimeType};base64,${xe.data}`,alt:xe.name??"image"},ze):f.jsxs("div",{className:"attachment-file",children:[f.jsx(Vy,{className:"icon"}),f.jsx("span",{className:"attachment-file-name",children:xe.name??"文件"})]},ze)})}),kt&&f.jsx("div",{className:"bubble",children:f.jsx(k0,{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:sI(J.meta.ts)}),f.jsx(Fk,{text:kt})]})]},ue)}const qe=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:qe?Ae&&le?f.jsx(F8,{}):null:f.jsxs(f.Fragment,{children:[f.jsx(V8,{blocks:J.blocks,onAction:Rf,onAuth:Lf}),!(Ae&&le)&&!sJ(J)&&f.jsx("div",{className:"turn-empty",children:"本次没有返回可显示的内容。"}),!(Ae&&le)&&!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(Fk,{text:rJ(J)})]}),J.meta&&f.jsx("span",{className:"meta-text",children:nJ(J.meta)})]})]})},ue)})}),f.jsx(Vx,{appName:n,activeAgent:ie,seenAgents:K,execPath:re}),X]})]})})(),C&&o&&f.jsx(PZ,{sessionId:o,onClose:()=>N(!1)}),dr&&f.jsx("div",{className:"confirm-scrim",onClick:()=>lt(!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:()=>lt(!1),children:"取消"}),f.jsx("button",{className:"confirm-btn confirm-btn--danger",onClick:()=>{W(null),he("menu"),lt(!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})()||bp.createRoot(document.getElementById("root")).render(f.jsx(Jk.StrictMode,{children:f.jsx(iL,{reducedMotion:"user",children:f.jsx(dJ,{})})})); +`)),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/index.html b/veadk/webui/index.html index 1f56bc76..7beb77b5 100644 --- a/veadk/webui/index.html +++ b/veadk/webui/index.html @@ -4,8 +4,8 @@ VeADK Web - - + +