diff --git a/.gitea/workflows/ampel-ci.yml b/.gitea/workflows/ampel-ci.yml index 8f53428..33eb48b 100644 --- a/.gitea/workflows/ampel-ci.yml +++ b/.gitea/workflows/ampel-ci.yml @@ -42,6 +42,27 @@ jobs: rot=1 else ( cd frontend && npm ci --no-audit --no-fund && npm run build ) || rot=1 + + if [ $rot -eq 0 ]; then + echo "== Frontend: Push nach release-dist ==" + git config --global user.name "Gitea Actions" + git config --global user.email "actions@gitea.local" + # Erzeuge (oder hole) den orphan branch 'release-dist' + git checkout --orphan release-dist 2>/dev/null || git checkout release-dist + git rm -rf . >/dev/null 2>&1 || true + # Checkout nur frontend/dist vom aktuellen Stand + git checkout $GITHUB_SHA -- frontend/dist + git add frontend/dist + if ! git diff-index --quiet HEAD; then + git commit -m "Automatischer Frontend Build ($GITHUB_SHA) [skip ci]" + # Push to release-dist. Token auth from runner is expected to work for Gitea Actions. + git push origin HEAD:release-dist -f + else + echo "Keine Änderungen am Frontend-Build." + fi + # Zurück zum originalen Branch für den Rest des Skripts + git checkout $GITHUB_SHA + fi fi fi diff --git a/.gitignore b/.gitignore index 04aa799..045b24c 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ gemma_swap* # TypeScript-Inkrementalcache (reines Build-Artefakt, maschinenabhängig) frontend/tsconfig.tsbuildinfo +frontend/dist/ diff --git a/backend/app.py b/backend/app.py index 786f3c7..07aa630 100644 --- a/backend/app.py +++ b/backend/app.py @@ -37,6 +37,7 @@ from routers import ( voice, wissen, zeitmaschine, + skills, ) from routers import reminders as reminders_router from services import metrics_history, reminders, sentry, warmer @@ -131,6 +132,7 @@ app.include_router(chronik.router) # Timeline der autonomen Taten (Announ app.include_router(events.router) # SSE-Eventstrom /api/events (P3a) — Invalidation-Bus app.include_router(wissen.router) # Wissens-Vault (Traum-Notizen) read-only app.include_router(zeitmaschine.router) # Snapshots ansehen + Ein-Klick-Restore (detached) +app.include_router(skills.router) # Skills & Jobs Dashboard app.include_router( console.router ) # Box-Konsole (ttyd) same-origin durchreichen — VOR dem SPA-Catch-all diff --git a/backend/routers/skills.py b/backend/routers/skills.py new file mode 100644 index 0000000..2058136 --- /dev/null +++ b/backend/routers/skills.py @@ -0,0 +1,57 @@ +from fastapi import APIRouter +from pydantic import BaseModel +import os +import subprocess + +router = APIRouter(prefix="/api") + +class RunSkillRequest(BaseModel): + skill_name: str + +@router.get("/skills") +def list_skills(): + """Listet alle verfügbaren Skills aus dem deploy/skills Verzeichnis auf.""" + skills_dir = os.path.join(os.getcwd(), "deploy", "skills") + skills = [] + + if os.path.exists(skills_dir) and os.path.isdir(skills_dir): + for entry in os.scandir(skills_dir): + if entry.is_dir(): + # Suche nach SKILL.md für Metadaten + skill_md_path = os.path.join(entry.path, "SKILL.md") + description = "" + if os.path.exists(skill_md_path): + try: + with open(skill_md_path, "r", encoding="utf-8") as f: + # Lese erste Zeilen für Description (YAML Frontmatter) + lines = f.readlines()[:10] + for line in lines: + if "description:" in line.lower(): + description = line.split(":", 1)[1].strip().strip('"\'') + break + elif "author:" in line.lower() and not description: + description = line.strip() + except Exception: + pass + + skills.append({ + "name": entry.name, + "description": description or "Keine Beschreibung verfügbar." + }) + return {"skills": skills} + +@router.post("/skills/run") +def run_skill(req: RunSkillRequest): + """Startet einen autonomen Skill via Hermes im Hintergrund.""" + hermes_bin = os.path.expanduser("~/.local/bin/hermes") + if not os.path.exists(hermes_bin): + # Fallback falls lokal (auf Windows) entwickelt wird + return {"ok": False, "err": "Hermes CLI nicht gefunden (~/.local/bin/hermes fehlt). Bist du lokal unterwegs?"} + + # Entspricht: hermes "Führe den 'X' Skill aus" + cmd = [hermes_bin, f"Führe den '{req.skill_name}' Skill aus"] + try: + subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + return {"ok": True, "msg": f"Skill '{req.skill_name}' erfolgreich angestoßen."} + except Exception as e: + return {"ok": False, "err": str(e)} diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 1d4ac40..61c2624 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -6,14 +6,27 @@ echo "Starte MC2 Deployment..." # 1. Neuesten Code holen git pull origin main +# 1.5 Frontend aus dem Release-Branch holen (nur dist Ordner) +echo "Hole gebautes Frontend aus release-dist Branch..." +git fetch origin release-dist || true +git restore --source=origin/release-dist --staged --worktree frontend/dist 2>/dev/null || echo "Kein release-dist Branch gefunden (erster Lauf?)." + # 2. Abhängigkeiten prüfen (falls sich was geändert hat) echo "Aktualisiere Python Abhängigkeiten..." backend/.venv/bin/pip install -r backend/requirements.txt -# 3. Systemd Units neu laden (falls sich .service Dateien geändert haben) +# 3. Llama-Swap Konfiguration prüfen und synchronisieren +if ! cmp -s deploy/llama-swap.config.yaml /etc/llama-swap/config.yaml; then + echo "Llama-Swap Konfiguration hat sich geändert, synchronisiere..." + # NOPASSWD für llama-swap Neustart ist vorausgesetzt (siehe AGENTS.md) + sudo cp deploy/llama-swap.config.yaml /etc/llama-swap/config.yaml + sudo systemctl restart llama-swap +fi + +# 4. Systemd Units neu laden (falls sich .service Dateien geändert haben) systemctl --user daemon-reload -# 4. Dienste neu starten +# 5. Dienste neu starten echo "Starte Backend neu..." systemctl --user restart mc2-gateway.service mission-control-2.service diff --git a/frontend/dist/assets/AgentView-LlJDd33l.js b/frontend/dist/assets/AgentView-LlJDd33l.js deleted file mode 100644 index c18a779..0000000 --- a/frontend/dist/assets/AgentView-LlJDd33l.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as A,K as P,l as M,b as B,u as D,r as z,j as e,M as T,e as a,N as g,O as b,Q as W,x as f,W as j,R as G,X as I,C as N,g as y,q as i}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const w=A("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),q=["chat","coding","fast","heavy"];function U(){const{data:r,error:c}=P(),{data:d}=M(),{showAlert:n,dialogElement:v}=B(),o=D(),x=c?String(c):"",[k,l]=z.useState(!1),_=(d==null?void 0:d.models)??[],m=s=>{var t;return((t=s==null?void 0:s.match(/:(\d+)/))==null?void 0:t[1])??""},p=m(r==null?void 0:r.gateway_url)||"8642",u=(r==null?void 0:r.pc_executor_url)??"",S=u.replace(/^https?:\/\//,""),C=m(u)||"7777";async function H(s){try{await y("/api/agent/brain",{method:"POST",body:JSON.stringify({model:s})}),n("Erledigt",`Hermes-Hirn zeigt jetzt auf das Alias '${s}'. Der Gateway-Dienst wurde neu gestartet.`),o.invalidateQueries({queryKey:i.agentStatus}),l(!1)}catch(t){n("Fehler",`Wechsel fehlgeschlagen: ${t.message||t}`)}}async function E(s){try{await y("/api/agent/brain/set",{method:"POST",body:JSON.stringify({model_id:s})}),n("Erledigt","Agent-Hirn gewechselt (warm gehalten). Gateway wurde neugestartet."),o.invalidateQueries({queryKey:i.agentStatus}),o.invalidateQueries({queryKey:i.models}),l(!1)}catch(t){n("Fehler",`Wechsel fehlgeschlagen: ${t.message||t}`)}}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Hermes Agenten-Cockpit"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port ",e.jsxs("code",{children:[":",p]}),") und seine eigene UI besitzt."]})]}),(r==null?void 0:r.hermes_ui_url)&&e.jsxs("a",{href:g(r.hermes_ui_url),target:"_blank",rel:"noopener",className:a("flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer shadow-md shrink-0 self-start",r.hermes_ui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-primary/10":"border border-border/60 text-muted-foreground bg-background/20"),children:[e.jsx(T,{className:"h-4 w-4"}),e.jsx("span",{children:"Hermes-GUI öffnen"})]})]}),x&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["Status nicht lesbar (",x,")."]}),r&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"mc-card p-5",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx(b,{className:"h-4.5 w-4.5 text-primary"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"Agent-Fluss"})]}),e.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-stretch gap-3",children:[e.jsxs("button",{onClick:()=>r.hermes_ui_reachable&&window.open(g(r.hermes_ui_url),"_blank"),title:r.hermes_ui_reachable?"Hermes-GUI öffnen":"Desktop-Gateway offline",className:"lg:w-40 shrink-0 rounded-xl border border-border/60 bg-background/30 p-3 text-left hover:border-primary/40 transition-all cursor-pointer flex flex-col justify-center",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(W,{className:a("h-3.5 w-3.5",r.hermes_ui_reachable?"text-emerald-400":"text-amber-500")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:"Desktop & GUI"}),e.jsx("span",{className:a("ml-auto h-1.5 w-1.5 rounded-full animate-pulse",r.hermes_ui_reachable?"bg-emerald-500":"bg-amber-500")})]}),e.jsx("span",{className:"text-[10px] text-muted-foreground font-mono mt-0.5",children:"Hermes Desktop · Clients"})]}),e.jsx("div",{className:"hidden lg:flex items-center text-muted-foreground text-lg select-none",children:"→"}),e.jsxs("div",{className:"flex-1 flex flex-col gap-2.5",children:[e.jsxs("div",{className:"rounded-xl border border-primary/40 bg-primary/5 px-3.5 py-2.5 flex items-center gap-2",children:[e.jsx(b,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-xs font-semibold text-primary",children:"Agent Gateway"}),e.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground",children:[":",p]}),e.jsxs("span",{className:a("ml-auto inline-flex items-center gap-1.5 text-[10px] font-bold uppercase font-mono px-2 py-0.5 rounded-full border",r.gateway_reachable?"bg-emerald-500/10 text-emerald-400 border-emerald-500/20":"bg-red-500/10 text-red-400 border-red-500/20"),children:[e.jsx("span",{className:a("h-1.5 w-1.5 rounded-full",r.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-red-500")}),r.gateway_reachable?"online":"offline"]})]}),e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-3",children:[e.jsxs("button",{onClick:()=>l(!0),className:"rounded-xl border border-border/60 bg-background/30 p-3 text-left hover:border-primary/45 transition-all cursor-pointer",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(f,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"Hirn"}),e.jsx("span",{className:"ml-auto text-[9px] text-primary/70 font-bold uppercase",children:"wechseln →"})]}),e.jsx("div",{className:"text-[11px] font-mono font-medium text-foreground truncate mt-1",title:r.brain_model,children:r.brain_model||"chat"})]}),e.jsxs("div",{className:"rounded-xl border border-border/60 bg-background/30 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(j,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"Verdrahtung"})]}),e.jsxs("div",{className:"text-[10px] font-mono mt-1 flex flex-wrap gap-x-2 text-muted-foreground",children:[e.jsxs("span",{children:["Config: ",r.has_config?"✓":"—"]}),e.jsxs("span",{children:["Skills: ",r.has_skills?"✓":"—"]}),e.jsxs("span",{children:["Memory: ",r.has_memories?"✓":"—"]})]})]}),e.jsxs("div",{className:"rounded-xl border border-border/60 bg-background/30 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"PC"}),e.jsx("span",{className:a("ml-auto h-1.5 w-1.5 rounded-full",r.pc_executor_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")})]}),e.jsxs("div",{className:a("text-[11px] font-mono mt-1",r.pc_executor_reachable?"text-emerald-400":"text-muted-foreground"),children:[":",C," ",r.pc_executor_reachable?"verbunden":"offline"]})]})]})]})]})]}),e.jsxs("div",{className:"mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(w,{className:"h-5 w-5 text-primary"}),e.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"PC Verbindung"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:a("h-2 w-2 rounded-full",r.pc_executor_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:r.pc_executor_reachable?"Erreichbar":"Nicht verbunden"})]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2 text-xs text-muted-foreground leading-relaxed text-left",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{children:["Der ",e.jsx("strong",{className:"text-foreground",children:"Hermes PC Executor"})," läuft auf ",e.jsx("code",{className:"text-foreground font-mono px-1 py-0.5 rounded bg-muted/40 border border-border/30",children:S||"deinem Windows-PC"})," und ermöglicht Hermes den direkten Zugriff auf deinen Windows-PC — Shell-Befehle, Screenshots, Tastatureingaben."]}),e.jsxs("p",{children:["Hermes erreicht den PC über den MCP-Server ",e.jsx("code",{className:"text-foreground font-mono px-1 py-0.5 rounded bg-muted/40 border border-border/30",children:"hermes-pc-control"}),", der automatisch beim Gateway-Start verbunden wird."]})]}),e.jsx("div",{className:"space-y-3",children:r.pc_executor_reachable?e.jsxs("div",{className:"p-3.5 bg-emerald-500/5 border border-emerald-500/20 rounded-xl space-y-1",children:[e.jsxs("div",{className:"text-emerald-400 font-semibold text-xs flex items-center gap-1.5",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"PC Executor verbunden"]}),e.jsxs("p",{className:"text-[10px]",children:["Hermes kann jetzt per Telegram oder Terminal Befehle auf TobisNicerPC ausführen. Nutze ",e.jsx("code",{className:"text-foreground",children:"pc_shell"}),", ",e.jsx("code",{className:"text-foreground",children:"pc_screenshot"})," oder ",e.jsx("code",{className:"text-foreground",children:"pc_open"}),"."]})]}):e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"text-xs font-bold text-foreground",children:"PC Executor starten"}),e.jsxs("p",{children:["Starte ",e.jsx("code",{className:"text-foreground font-mono",children:"start.bat"})," im Ordner ",e.jsx("code",{className:"text-foreground font-mono",children:"client\\hermes-pc\\"})," auf dem Windows-PC und lasse das Fenster offen."]}),e.jsx("div",{className:"p-3 bg-background/25 rounded-xl border border-border/30 font-mono text-[9px] text-cyan-300",children:"client\\hermes-pc\\start.bat"})]})})]})]}),!r.gateway_reachable&&e.jsxs("div",{className:"mc-card p-6 space-y-4 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(G,{className:"h-5 w-5 text-amber-500"}),e.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"Hermes-Agent Diagnostics"})]}),e.jsxs("div",{className:"text-xs text-muted-foreground space-y-3 leading-relaxed",children:[e.jsx("p",{children:"Der Hermes-Dienst ist auf der Box derzeit offline oder kann sich nicht mit dem lokalen llama-swap verbinden."}),e.jsxs("p",{children:["Am schnellsten: In der System-Schublade unter ",e.jsx("strong",{children:"Dienste"})," den Eintrag"," ",e.jsx("strong",{children:"Hermes-Gateway"})," mit einem Klick neu starten (dort gibt es auch die Logs dazu)."]}),e.jsxs("button",{onClick:()=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:"maintenance"}})),className:"flex h-9 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-4 text-[11px] font-bold uppercase tracking-wide text-primary transition-all hover:bg-primary/20 cursor-pointer",children:[e.jsx(j,{className:"h-3.5 w-3.5"})," Dienste-Übersicht öffnen"]}),e.jsxs("p",{children:["Weitere Einrichtungsdetails (Brain-Konfiguration, MCP-Kopplungen, SSH-Tunneling und Such-Engines) findest du in der Dokumentationsdatei:",e.jsx("code",{className:"ml-1 px-1.5 py-0.5 rounded bg-muted/40 text-foreground border border-border/30",children:"docs/HERMES_SETUP.md"}),"."]})]})]})]}),r&&k&&e.jsx("div",{className:"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 overscroll-contain",role:"dialog","aria-modal":"true","aria-label":"Hermes-Hirn konfigurieren",children:e.jsxs("div",{className:"w-full max-w-md rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsxs("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary flex items-center gap-1.5",children:[e.jsx(f,{className:"h-4 w-4"}),e.jsx("span",{children:"Hermes-Hirn konfigurieren"})]}),e.jsx("button",{onClick:()=>l(!1),className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:e.jsx(I,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Lane / Gateway-Alias"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:q.map(s=>{const t=r.brain_model===s;return e.jsxs("button",{onClick:()=>H(s),className:a("px-3 py-1.5 rounded-lg text-xs font-mono font-semibold border transition-all cursor-pointer flex items-center gap-1.5",t?"border-primary/40 bg-primary/10 text-primary":"border-border/30 bg-background/20 text-foreground hover:bg-accent"),children:[s,t&&e.jsx(N,{className:"h-3.5 w-3.5"})]},s)})}),e.jsxs("p",{className:"text-[10px] text-muted-foreground/70",children:["Schlank & flexibel: das Hirn folgt dem Lane-Routing (z.B. ",e.jsx("code",{className:"text-primary",children:"chat"})," = fast↔heavy)."]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Installiertes Modell (warm gehalten)"}),e.jsx("div",{className:"space-y-1.5 max-h-56 overflow-y-auto pr-1",children:_.map(s=>{var h;const t=s.role==="hermes";return e.jsxs("button",{onClick:()=>!t&&E(s.name),disabled:t||s.incomplete,className:a("w-full text-left px-3 py-2.5 rounded-lg text-xs flex items-center justify-between font-mono border transition-all",t?"border-indigo-500/40 bg-indigo-500/10 text-indigo-300":s.incomplete?"border-border/20 bg-background/10 text-muted-foreground/50 cursor-not-allowed":"border-border/30 bg-background/20 text-foreground hover:bg-accent cursor-pointer"),children:[e.jsxs("div",{className:"flex flex-col min-w-0",children:[e.jsx("span",{className:"font-semibold truncate max-w-[280px]",children:(h=s.name.split("/").pop())==null?void 0:h.replace(/\.gguf$/i,"")}),e.jsxs("span",{className:"text-[9px] text-muted-foreground mt-0.5",children:[s.capabilities.params_b?`${s.capabilities.params_b}B`:"?"," · ",s.capabilities.tools!=="no"?"Tools ✓":"ohne Tools",s.role&&` · Rolle: ${s.role}`]})]}),t?e.jsxs("span",{className:"text-[9px] font-bold uppercase text-indigo-300 shrink-0 flex items-center gap-1",children:[e.jsx(N,{className:"h-3.5 w-3.5"})," Aktiv"]}):e.jsx("span",{className:"text-[9px] font-bold uppercase text-primary/70 shrink-0",children:"Warm setzen →"})]},s.name)})})]}),e.jsxs("div",{className:"text-[10px] text-amber-400/80 flex items-start gap-1.5 border-t border-border/20 pt-2.5",children:[e.jsx("span",{children:"💡"}),e.jsxs("span",{children:["Für einen ",e.jsx("strong",{children:"Agenten"}),' sind Hermes-Modelle (natives Tool-Calling) meist die robustere Wahl. Neues Modell? Erst über „Modell-Manager → Modelle finden" laden.']})]})]})}),v]})}export{U as AgentView}; diff --git a/frontend/dist/assets/AuftragsbuchView-C2dG-lAH.js b/frontend/dist/assets/AuftragsbuchView-C2dG-lAH.js deleted file mode 100644 index 6a07a75..0000000 --- a/frontend/dist/assets/AuftragsbuchView-C2dG-lAH.js +++ /dev/null @@ -1,15 +0,0 @@ -import{c as W,a3 as G,a4 as H,u as T,b as F,r as b,j as e,U as O,e as y,L as m,C as E,a0 as P,G as _,a2 as z,a5 as R,a6 as V,X as D,T as C,I as K,g as $,a7 as q,q as U}from"./index-CUuKs_1x.js";import{S,H as Q}from"./SectionLabel-SQgndpwc.js";import{C as M}from"./chevron-down-MK8qZkE9.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Z=W("FileDiff",[["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:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const J=W("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"}]]),X={wartung:"Werkstatt",orchestrator:"Orchestrator",doku:"Doku",feature:"Feature"},Y={laeuft:{label:"wird eingespielt …",cls:"text-sky-300 border-sky-500/40 bg-sky-500/10",spin:!0},rollback:{label:"Rollback läuft …",cls:"text-amber-300 border-amber-500/40 bg-amber-500/10",spin:!0},eingespielt:{label:"eingespielt ✓",cls:"text-emerald-300 border-emerald-500/40 bg-emerald-500/10"},fehlgeschlagen:{label:"fehlgeschlagen",cls:"text-red-300 border-red-500/40 bg-red-500/10"},zurueckgerollt:{label:"zurückgerollt",cls:"text-amber-300 border-amber-500/40 bg-amber-500/10"},kritisch:{label:"KRITISCH — Box prüfen",cls:"text-red-200 border-red-500/60 bg-red-500/20"},abgelehnt:{label:"abgelehnt",cls:"text-muted-foreground border-border/60 bg-background/30"}};function de(){const{data:t,isLoading:r,refetch:n,isFetching:p}=G(),{data:l}=H(),f=T(),{showAlert:h,showConfirm:j,dialogElement:B}=F(),[N,A]=b.useState({}),w=()=>f.invalidateQueries({queryKey:U.auftragsbuch});async function k(a,i,I,v){A(d=>({...d,[a]:!0}));try{await $(i,{method:"POST",body:JSON.stringify(I)}),v&&h("Erledigt",v),w()}catch(d){h("Das hat nicht geklappt",String((d==null?void 0:d.message)||d))}finally{A(d=>({...d,[a]:!1}))}}const g=(t==null?void 0:t.items)??[],o=(t==null?void 0:t.skill_kandidaten)??[],x=l!=null&&l.available?l.items.filter(a=>a.status==="blocked").length:0,u=g.length===0&&o.length===0;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Auftragsbuch"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Was die Box gebaut oder sich ausgedacht hat — du entscheidest. Annehmen spielt es mit Fangnetz ein (Health-Check, automatischer Rollback)."})]}),e.jsxs("button",{onClick:()=>n(),className:"flex h-9 items-center gap-1.5 rounded-lg border border-border/60 bg-card/45 px-3 text-xs font-semibold text-muted-foreground hover:text-foreground hover:border-primary/40 transition-all cursor-pointer",children:[e.jsx(O,{className:y("h-3.5 w-3.5",p&&"animate-spin")})," Aktualisieren"]})]}),t&&!t.available&&e.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Das Auftragsbuch lebt auf der Box (liest die Gitea-Branches dort). Im lokalen Dev-Modus ist hier nichts zu sehen."}),r&&e.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[e.jsx(m,{className:"h-4 w-4 animate-spin"})," Vorschläge werden geladen …"]}),(t==null?void 0:t.available)&&u&&e.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-5",children:[e.jsx(E,{className:"h-5 w-5 shrink-0 text-emerald-400"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu entscheiden"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Keine offenen Vorschläge. Werkstatt, Orchestrator und Traum melden sich hier, sobald es etwas gibt."})]})]}),x>0&&e.jsxs("button",{onClick:()=>window.dispatchEvent(new CustomEvent("mc-navigate",{detail:{view:"ideen"}})),className:"flex w-full items-center gap-3 rounded-2xl border border-red-500/30 bg-red-500/5 p-4 text-left transition-all hover:border-red-500/50 cursor-pointer",children:[e.jsx(P,{className:"h-5 w-5 shrink-0 text-red-300"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:x===1?"Eine Idee hängt und braucht dich":`${x} Ideen hängen und brauchen dich`}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Hier ist nichts zu tun — aber drüben in den Ideen wartet eine Frage auf deine Antwort."})]}),e.jsx(_,{className:"h-4 w-4 shrink-0 text-red-300/70"})]}),g.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(S,{icon:J,children:["Patch-Vorschläge (",g.length,")"]}),g.map(a=>e.jsx(re,{item:a,busy:N,onAct:k,showConfirm:j},`${a.repo??"mc2"}:${a.branch}`))]}),o.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(S,{icon:z,children:["Skill-Kandidaten aus dem Traum (",o.length,")"]}),o.map(a=>e.jsx(se,{k:a,busy:N,onAct:k,showConfirm:j},a.file))]}),B]})}function ee({item:t}){const r=t.status;if(!r)return null;const n=Y[r.state];return n?e.jsxs("span",{className:y("flex items-center gap-1.5 rounded-lg border px-2 py-0.5 text-[10px] font-bold",n.cls),title:r.detail,children:[n.spin&&e.jsx(m,{className:"h-3 w-3 animate-spin"}),n.label]}):null}function te({item:t}){const r=t.ci_status;return r?r==="success"?e.jsxs("span",{className:"flex items-center gap-1 rounded-lg border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 text-[10px] font-bold text-emerald-400",title:"CI-Ampel: Grün (Baut & läuft)",children:[e.jsx(E,{className:"h-3 w-3"})," CI Grün"]}):r==="failure"?e.jsxs("span",{className:"flex items-center gap-1 rounded-lg border border-red-500/30 bg-red-500/10 px-1.5 py-0.5 text-[10px] font-bold text-red-400",title:"CI-Ampel: Rot (Fehler)",children:[e.jsx(D,{className:"h-3 w-3"})," CI Rot"]}):r==="pending"?e.jsxs("span",{className:"flex items-center gap-1 rounded-lg border border-amber-500/30 bg-amber-500/10 px-1.5 py-0.5 text-[10px] font-bold text-amber-400",title:"CI-Ampel: Läuft",children:[e.jsx(m,{className:"h-3 w-3 animate-spin"})," CI Läuft"]}):null:null}function re({item:t,busy:r,onAct:n,showConfirm:p}){var v,d,L;const[l,f]=b.useState(!1),[h,j]=b.useState(null),[B,N]=b.useState(!1),[A,w]=b.useState(!1),[k,g]=b.useState(""),o=((v=t.status)==null?void 0:v.state)==="laeuft"||((d=t.status)==null?void 0:d.state)==="rollback",x=((L=t.status)==null?void 0:L.state)==="eingespielt",u=t.repo??"mc2",a=u==="lucy",i=`${u}:${t.branch}`;async function I(){const s=!l;if(f(s),s&&h===null){N(!0);try{const c=await $(`/api/auftragsbuch/diff?branch=${encodeURIComponent(t.branch)}&repo=${u}`);j(c.diff+(c.truncated?` -… (gekürzt)`:""))}catch(c){j(`(Diff nicht ladbar: ${(c==null?void 0:c.message)||c})`)}finally{N(!1)}}}return e.jsxs("div",{className:"mc-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"rounded-md border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-primary",children:X[t.kind]??t.kind}),a&&e.jsx("span",{className:"rounded-md border border-pink-500/40 bg-pink-500/10 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-pink-300",title:"Vorschlag fürs Lucy-Repo — Annehmen baut die App am PC neu und startet sie neu, wenn sie läuft.",children:"Lucy"}),e.jsx("span",{className:"font-mono text-[11px] text-muted-foreground truncate",title:t.branch,children:t.branch}),e.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(R,{className:"h-3 w-3"}),V(t.ts)]}),e.jsx(te,{item:t}),e.jsx(ee,{item:t})]}),e.jsx("p",{className:"mt-1.5 text-sm font-semibold text-foreground",children:t.subject||"(ohne Titel)"}),t.body&&e.jsx("p",{className:"mt-1 whitespace-pre-wrap text-xs leading-relaxed text-muted-foreground line-clamp-6",children:t.body}),t.empfehlung&&e.jsxs("p",{className:y("mt-1.5 flex items-start gap-1.5 rounded-lg border px-2 py-1 text-[11px]",t.empfehlung.empfehlung==="ANNEHMEN"&&"border-emerald-500/30 bg-emerald-500/5 text-emerald-300",t.empfehlung.empfehlung==="ABLEHNEN"&&"border-red-500/30 bg-red-500/5 text-red-300",t.empfehlung.empfehlung==="UNKLAR"&&"border-amber-500/30 bg-amber-500/5 text-amber-300"),title:`Nächtliches Kurz-Gutachten (${t.empfehlung.richter}) — eine Meinung, kein Muss. Die Entscheidung bleibt bei dir.`,children:[e.jsx(z,{className:"mt-0.5 h-3 w-3 shrink-0"}),e.jsxs("span",{children:[e.jsxs("b",{children:["Empfehlung: ",t.empfehlung.empfehlung==="ANNEHMEN"?"Annehmen":t.empfehlung.empfehlung==="ABLEHNEN"?"Ablehnen":"Unklar","."]})," ",t.empfehlung.satz]})]})]}),!o&&!x&&e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[!t.verwaist&&e.jsxs("button",{disabled:!!r[i],onClick:()=>p("Vorschlag annehmen?",a?`'${t.branch}' wird im Lucy-Repo auf main gemergt, dann baut dein PC die App neu (dist) und startet Lucy neu, falls sie gerade läuft. Der PC muss dafür an sein. Schlägt Build oder Start fehl, dreht die Box den Merge automatisch zurück — die laufende Lucy bleibt die alte.`:`'${t.branch}' wird auf main gemergt und live eingespielt. Die Zentrale startet dabei kurz neu. Geht der Health-Check danach rot, rollt die Box automatisch zurück.${t.frontend_ohne_build?` - -Achtung: Enthält Frontend-Quelltext ohne gebautes Bundle — die Oberfläche bleibt alt, bis am PC gebaut wird.`:""}`,()=>n(i,"/api/auftragsbuch/annehmen",{branch:t.branch,repo:u})),className:"flex h-9 items-center gap-1.5 rounded-lg border border-emerald-500/40 bg-emerald-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-emerald-300 transition-all hover:bg-emerald-500/20 cursor-pointer disabled:opacity-50",children:[r[i]?e.jsx(m,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(E,{className:"h-3.5 w-3.5"})," Annehmen"]}),e.jsxs("button",{disabled:!!r["ab:"+i],onClick:()=>w(s=>!s),className:"flex h-9 items-center gap-1.5 rounded-lg border border-red-500/30 bg-red-500/5 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300/90 transition-all hover:bg-red-500/15 cursor-pointer disabled:opacity-50",children:[r["ab:"+i]?e.jsx(m,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(D,{className:"h-3.5 w-3.5"})," Ablehnen"]})]})]}),A&&!o&&!x&&e.jsxs("div",{className:"space-y-2 rounded-xl border border-red-500/25 bg-red-500/5 p-3",children:[e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:["Der Branch '",t.branch,"' wird auf Gitea gelöscht (die Arbeit bleibt in der Historie). Sag der Box kurz ",e.jsx("b",{children:"warum"})," — dann schlägt sie dir so etwas nicht wieder vor."]}),e.jsx("input",{value:k,onChange:s=>g(s.target.value),placeholder:"Grund (optional) — z. B. „gibt es schon“ oder „will ich nicht“",maxLength:400,className:"w-full rounded-lg border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-red-400/50 focus:outline-none"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{disabled:!!r["ab:"+i],onClick:()=>{w(!1),n("ab:"+i,"/api/auftragsbuch/ablehnen",{branch:t.branch,repo:u,grund:k.trim()})},className:"flex h-8 items-center gap-1.5 rounded-lg border border-red-500/40 bg-red-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300 transition-all hover:bg-red-500/20 cursor-pointer disabled:opacity-50",children:[e.jsx(D,{className:"h-3.5 w-3.5"})," Wirklich ablehnen"]}),e.jsx("button",{onClick:()=>w(!1),className:"flex h-8 items-center rounded-lg border border-border/60 bg-background/40 px-3 text-[11px] font-semibold text-muted-foreground transition-all hover:text-foreground cursor-pointer",children:"Abbrechen"})]})]}),t.status&&(o||!x)&&t.status.detail&&e.jsx("p",{className:"text-[11px] text-muted-foreground",children:t.status.detail}),t.verwaist&&e.jsxs("p",{className:"rounded-lg border border-red-500/30 bg-red-500/5 px-2 py-1.5 text-[11px] text-red-300/90",children:[e.jsx("b",{children:"Kaputt aufgesetzt:"})," Dieser Branch hat keinen gemeinsamen Ursprung mit main (der Werkstatt-Worker hat nicht richtig geklont) — Annehmen ist technisch unmöglich, deshalb fehlt der Knopf. Am besten ",e.jsx("b",{children:"ablehnen mit Grund"}),"; die Idee kann danach frisch in die Queue."]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-muted-foreground",children:[e.jsxs("span",{className:"rounded bg-background/40 px-1.5 py-0.5 font-mono",children:[t.ahead," Commit",t.ahead===1?"":"s"]}),t.shortstat&&e.jsx("span",{className:"rounded bg-background/40 px-1.5 py-0.5 font-mono",children:t.shortstat.trim()}),t.verwaist&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-red-500/10 px-1.5 py-0.5 text-red-300",title:"Kein gemeinsamer Vorfahre mit main — git kann diesen Branch niemals mergen.",children:[e.jsx(C,{className:"h-3 w-3"})," kein gemeinsamer Ursprung"]}),t.leer&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-amber-500/10 px-1.5 py-0.5 text-amber-300",title:"Der Diff gegen main ist leer — der Branch würde nichts verändern (Inhalt schon in main oder am Repo vorbei gearbeitet).",children:[e.jsx(C,{className:"h-3 w-3"})," Diff leer — bringt nichts"]}),t.behind>0&&!t.verwaist&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-amber-500/10 px-1.5 py-0.5 text-amber-300",title:"main ist seit diesem Vorschlag weitergelaufen — bei Konflikten versucht die Annahme automatisch einen Rebase.",children:[e.jsx(C,{className:"h-3 w-3"})," ",t.behind," hinter main"]}),t.frontend_ohne_build&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-amber-500/10 px-1.5 py-0.5 text-amber-300",title:"Die Box kann kein Frontend bauen (kein Node) — nach dem Annehmen bleibt die Oberfläche alt, bis am PC gebaut wird.",children:[e.jsx(C,{className:"h-3 w-3"})," Frontend ohne Build"]})]}),e.jsxs("div",{children:[e.jsxs("button",{onClick:I,className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[l?e.jsx(M,{className:"h-3.5 w-3.5"}):e.jsx(K,{className:"h-3.5 w-3.5"}),e.jsx(Z,{className:"h-3.5 w-3.5"})," ",t.files.length," Datei",t.files.length===1?"":"en"," — Änderungen ansehen"]}),l&&e.jsxs("div",{className:"mt-2 space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[t.files.map(s=>e.jsxs("span",{className:"rounded bg-background/40 px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground",children:[e.jsx("b",{className:y(s.status.startsWith("A")&&"text-emerald-400",s.status.startsWith("D")&&"text-red-400",s.status.startsWith("M")&&"text-sky-400"),children:s.status})," ",s.path]},s.path)),t.files_truncated&&e.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:"…"})]}),e.jsx("div",{className:"max-h-96 overflow-auto rounded-xl border border-border/50 bg-background/50 p-3",children:B?e.jsx("span",{className:"text-[11px] text-muted-foreground",children:"Diff wird geladen …"}):e.jsx("pre",{className:"text-[10px] leading-relaxed text-foreground/80 whitespace-pre",children:(h??"").split(` -`).map((s,c)=>e.jsx("span",{className:y("block",s.startsWith("+")&&!s.startsWith("+++")&&"text-emerald-300/90 bg-emerald-500/5",s.startsWith("-")&&!s.startsWith("---")&&"text-red-300/90 bg-red-500/5",(s.startsWith("@@")||s.startsWith("diff "))&&"text-sky-300/90"),children:s||" "},c))})})]})]})]})}function se({k:t,busy:r,onAct:n,showConfirm:p}){const[l,f]=b.useState(!1);return e.jsxs("div",{className:"rounded-2xl border border-violet-500/25 bg-violet-500/[0.04] p-4 shadow-lg shadow-black/15 backdrop-blur-md space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"rounded-md border border-violet-500/30 bg-violet-500/10 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-violet-300",children:"Traum-Idee"}),e.jsx("span",{className:"font-mono text-[11px] text-muted-foreground truncate",children:t.file}),e.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(R,{className:"h-3 w-3"}),V(t.mtime)]})]}),e.jsx("p",{className:"mt-1.5 text-sm font-semibold text-foreground",children:t.title})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsxs("button",{disabled:!!r["sk:"+t.file],onClick:()=>p("Werkstatt beauftragen?",`Der Kandidat '${t.title}' geht als Auftrag an die Werkstatt (Orchestrator, propose-only). Das Ergebnis erscheint später als neuer Patch-Vorschlag hier im Auftragsbuch — nichts geht ungefragt live.`,()=>n("sk:"+t.file,"/api/auftragsbuch/skill/annehmen",{file:t.file},"Die Werkstatt arbeitet. Das Ergebnis taucht als neuer Vorschlag im Auftragsbuch auf (das kann einige Minuten dauern).")),className:"flex h-9 items-center gap-1.5 rounded-lg border border-violet-500/40 bg-violet-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-violet-300 transition-all hover:bg-violet-500/20 cursor-pointer disabled:opacity-50",children:[r["sk:"+t.file]?e.jsx(m,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"})," Beauftragen"]}),e.jsxs("button",{disabled:!!r["skab:"+t.file],onClick:()=>p("Kandidat verwerfen?",`'${t.title}' wandert ins Archiv des Wissens-Vaults (verworfen/). Der Traum schlägt ihn nicht erneut vor.`,()=>n("skab:"+t.file,"/api/auftragsbuch/skill/ablehnen",{file:t.file})),className:"flex h-9 items-center gap-1.5 rounded-lg border border-red-500/30 bg-red-500/5 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300/90 transition-all hover:bg-red-500/15 cursor-pointer disabled:opacity-50",children:[r["skab:"+t.file]?e.jsx(m,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(D,{className:"h-3.5 w-3.5"})," Verwerfen"]})]})]}),e.jsxs("button",{onClick:()=>f(h=>!h),className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[l?e.jsx(M,{className:"h-3.5 w-3.5"}):e.jsx(K,{className:"h-3.5 w-3.5"}),e.jsx(q,{className:"h-3.5 w-3.5"})," Vorschlag lesen"]}),l&&e.jsx("pre",{className:"max-h-72 overflow-auto rounded-xl border border-border/50 bg-background/50 p-3 text-[11px] leading-relaxed text-foreground/85 whitespace-pre-wrap",children:t.preview})]})}export{de as AuftragsbuchView}; diff --git a/frontend/dist/assets/ChronikView-BB9XGeGn.js b/frontend/dist/assets/ChronikView-BB9XGeGn.js deleted file mode 100644 index 85500fe..0000000 --- a/frontend/dist/assets/ChronikView-BB9XGeGn.js +++ /dev/null @@ -1,31 +0,0 @@ -import{c as d,ab as S,r as h,j as e,ac as M,L as p,a2 as z,a7 as C,ad as D,ae as A,e as B,af as Z,u as E,b as L,g as k,q}from"./index-CUuKs_1x.js";import{R as j}from"./rotate-ccw-BtnOKhJQ.js";/** - * @license lucide-react v0.460.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=d("AlarmClock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const y=d("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);/** - * @license lucide-react v0.460.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=d("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $=d("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const U=d("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const H=d("Radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]),O={sentry:{icon:A,label:"Health-Wächter",cls:"text-red-300 bg-red-500/10 border-red-500/25"},alarm:{icon:D,label:"Alarm",cls:"text-red-200 bg-red-500/15 border-red-500/40"},notify:{icon:T,label:"Meldung",cls:"text-sky-300 bg-sky-500/10 border-sky-500/25"},"chef-gutachter":{icon:U,label:"Morgenlage",cls:"text-violet-300 bg-violet-500/10 border-violet-500/25"},radar:{icon:H,label:"Radar",cls:"text-teal-300 bg-teal-500/10 border-teal-500/25"},auftragsbuch:{icon:C,label:"Auftragsbuch",cls:"text-primary bg-primary/10 border-primary/25"},zeitmaschine:{icon:j,label:"Zeitmaschine",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},reminder:{icon:R,label:"Erinnerung",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},traum:{icon:z,label:"Traum",cls:"text-violet-300 bg-violet-500/10 border-violet-500/25"}},P={icon:$,label:"Box",cls:"text-muted-foreground bg-background/40 border-border/50"};function W(r){return new Date(r*1e3).toLocaleDateString("de-DE",{weekday:"long",day:"2-digit",month:"long"})}function G(){const{data:r=[],isLoading:u}=S(),[i,x]=h.useState(!0),b=h.useMemo(()=>{const o=[];for(const n of r){const a=W(n.ts),l=o[o.length-1];l&&l.day===a?l.items.push(n):o.push({day:a,items:[n]})}return o},[r]);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Chronik"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Was deine Box von allein getan und gemeldet hat — und die Zeitmaschine, falls du zu einem früheren Stand zurück willst."})]}),e.jsx(J,{}),e.jsxs("section",{className:"space-y-4",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(M,{className:"h-3.5 w-3.5"})," Verlauf"]}),u&&e.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[e.jsx(p,{className:"h-4 w-4 animate-spin"})," Chronik wird geladen …"]}),!u&&r.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:"Noch keine Einträge. Sobald die Box etwas von allein tut oder meldet (Updates, Wächter, Träume), steht es hier."}),b.map(({day:o,items:n})=>e.jsxs("div",{children:[e.jsx("p",{className:"mb-2 text-xs font-bold text-foreground/70",children:o}),e.jsxs("div",{className:"space-y-2 border-l-2 border-border/40 pl-4",children:[(i?n.slice(0,8):n).map(a=>{const l=O[a.source]??P,m=l.icon;return e.jsxs("div",{className:"relative rounded-xl border border-border/50 bg-card/40 p-3 backdrop-blur-sm",children:[e.jsx("span",{className:"absolute -left-[23px] top-4 h-2.5 w-2.5 rounded-full bg-border ring-4 ring-background/60"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:B("flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-bold",l.cls),children:[e.jsx(m,{className:"h-3 w-3"})," ",l.label]}),a.subject&&e.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground",children:a.subject}),e.jsx("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground/60",children:new Date(a.ts*1e3).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"})})]}),e.jsx("p",{className:"mt-1.5 whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:a.text})]},a.id)}),i&&n.length>8&&e.jsxs("button",{onClick:()=>x(!1),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:[n.length-8," weitere anzeigen"]})]})]},o))]})]})}function J(){const{data:r}=Z(),u=E(),{showAlert:i,showConfirm:x,dialogElement:b}=L(),[o,n]=h.useState(null),[a,l]=h.useState(!1),[m,v]=h.useState(!1),c=(r==null?void 0:r.backups)??[],g=m?c:c.slice(0,4);function f(t){const s=t.snapshot.match(/^(\d{4})-?(\d{2})-?(\d{2})[T_-](\d{2})[-:]?(\d{2})/);return s?`${s[3]}.${s[2]}.${s[1]}, ${s[4]}:${s[5]} Uhr`:t.snapshot}async function w(t){n(t.file);try{await k("/api/zeitmaschine/restore",{method:"POST",body:JSON.stringify({file:t.file})}),i("Zeitmaschine läuft","Die Wiederherstellung wurde gestartet. Die Dienste starten gleich neu — die Zentrale ist kurz weg und meldet sich von selbst zurück. Vorher wurde automatisch ein Sicherheits-Backup des jetzigen Zustands gemacht.")}catch(s){i("Start fehlgeschlagen",String((s==null?void 0:s.message)||s))}finally{n(null)}}async function N(){l(!0);try{const t=await k("/api/system/backup",{method:"POST"});t.ok?i("Gesichert",`Snapshot ${t.snapshot} wurde angelegt.`):i("Backup fehlgeschlagen",t.error||"Unbekannter Fehler"),u.invalidateQueries({queryKey:q.zeitmaschine})}catch(t){i("Backup fehlgeschlagen",String((t==null?void 0:t.message)||t))}finally{l(!1)}}return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(y,{className:"h-3.5 w-3.5"})," Zeitmaschine — gesicherte Stände"]}),e.jsxs("button",{onClick:N,disabled:a||!(r!=null&&r.available),className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-card/45 px-2.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground hover:border-primary/40 transition-all cursor-pointer disabled:opacity-50",children:[a?e.jsx(p,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(y,{className:"h-3.5 w-3.5"})," Jetzt sichern"]})]}),r&&!r.available&&e.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Die Snapshots liegen auf der Box — im lokalen Dev-Modus nicht verfügbar."}),(r==null?void 0:r.available)&&c.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-5 text-center text-xs text-muted-foreground",children:'Noch keine Snapshots. Das nächtliche Backup (03:30) legt sie automatisch an — oder „Jetzt sichern".'}),g.length>0&&e.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:g.map((t,s)=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-xl border border-border/50 bg-card/40 p-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"text-xs font-semibold text-foreground",children:[f(t)," ",s===0&&e.jsx("span",{className:"ml-1 rounded bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-bold text-emerald-300",children:"neuester"})]}),e.jsxs("p",{className:"font-mono text-[10px] text-muted-foreground/70 truncate",title:t.file,children:[t.size_mb.toLocaleString("de-DE")," MB · ",t.file]})]}),e.jsxs("button",{disabled:o!==null,onClick:()=>x("Wirklich zu diesem Stand zurück?",`Die Box wird auf den Snapshot vom ${f(t)} zurückgesetzt (Gedächtnis, Hermes-Config, Modell-Router). Der JETZIGE Zustand wird vorher automatisch gesichert — der Schritt ist also umkehrbar. Die Dienste starten neu, die Zentrale ist kurz weg.`,()=>w(t)),className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2.5 text-[10px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[o===t.file?e.jsx(p,{className:"h-3 w-3 animate-spin"}):e.jsx(j,{className:"h-3 w-3"})," Zurück"]})]},t.file))}),c.length>4&&!m&&e.jsxs("button",{onClick:()=>v(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:["Alle ",c.length," Snapshots anzeigen"]}),b]})}export{G as ChronikView}; diff --git a/frontend/dist/assets/ConnectView-nzWBlbXD.js b/frontend/dist/assets/ConnectView-nzWBlbXD.js deleted file mode 100644 index be2858c..0000000 --- a/frontend/dist/assets/ConnectView-nzWBlbXD.js +++ /dev/null @@ -1,26 +0,0 @@ -import{c as x,r as c,D as I,F as A,j as e,G as f,x as B,B as z,I as H,e as M,L as E,J as T,C as F}from"./index-CUuKs_1x.js";import{C as K}from"./chevron-down-MK8qZkE9.js";import{F as O}from"./folder-open-CbSQGCoL.js";/** - * @license lucide-react v0.460.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=x("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const V=x("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 W=x("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 b=x("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 j=x("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]),L={hermes_desktop:"Hermes Desktop: Browser-Login",kilo:"Kilo: Einstellungen → API Provider",claude_code:"env / Übersetzer"};function N({line:s,loading:n}){return n||!s?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(E,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):s.ok?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-emerald-400",children:[e.jsx(T,{className:"h-3 w-3"})," ",s.detail]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-red-400",children:[e.jsx(R,{className:"h-3 w-3"})," ",s.detail]})}function v({tool:s,fileName:n,accent:o,copied:m,onCopy:d}){return e.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80"})]}),e.jsx("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:e.jsx("span",{children:n})}),e.jsxs("button",{onClick:d,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[m?e.jsx(F,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(V,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:m?"Kopiert":"Kopieren"})]})]}),e.jsx("pre",{className:M("p-5 overflow-x-auto text-xs font-mono whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",o==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:s.snippet})})]})}function X(){const s=window.location.hostname;return s&&s!=="localhost"&&s!=="127.0.0.1"?s:"192.168.178.151"}function Z(){const[s,n]=c.useState(localStorage.getItem("mc_host")||X()),[o,m]=c.useState(localStorage.getItem("mc_mcp_path")||""),[d,P]=c.useState("kilo"),[y,G]=c.useState(!1),[u,w]=c.useState(null),k=new URLSearchParams({host:s});o&&k.set("mcp_path",o);const{data:r,error:C}=I(k.toString()),{data:a,isLoading:g}=A(),S=C?String(C):"";function _(t){n(t),t&&localStorage.setItem("mc_host",t)}function D(t){m(t),localStorage.setItem("mc_mcp_path",t)}const l=r==null?void 0:r.tools.hermes_desktop,i=r==null?void 0:r.tools[d];async function h(t,p){p&&(await navigator.clipboard.writeText(p),w(t),setTimeout(()=>w(null),1500))}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("span",{className:"text-foreground",children:"Hermes Desktop"})," ist die Tür zur Box — einmal verbinden, fertig. Für Spezialfälle gibt es darunter die rohen Leitungen (Gateway /v1 + Gedächtnis-MCP) für sonstige Tools."]})]}),e.jsxs("div",{className:"p-5 mc-card",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-[170px_1fr] items-center",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-background/40 p-4 text-center",children:[e.jsx(j,{className:"h-7 w-7 mx-auto text-muted-foreground"}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:"Dein lokaler Agent"}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:"Hermes Desktop · Kilo Code · Claude Code …"})]}),e.jsxs("div",{className:"flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-primary/25 bg-primary/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-primary",children:[e.jsx(B,{className:"h-3.5 w-3.5"})," Leitung 1 — Modell"]}),e.jsx(N,{line:a==null?void 0:a.gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-primary/80",children:"Gateway · :9001/v1 · Modelle coder / heavy / vision"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-violet-500/25 bg-violet-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-violet-300",children:[e.jsx(z,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(N,{line:a==null?void 0:a.memory,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-violet-300/80",children:"MCP · mcp_memory.py · separat"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-emerald-500/25 bg-emerald-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-emerald-300",children:[e.jsx(j,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(N,{line:a==null?void 0:a.desktop_gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-emerald-300/80",children:"Desktop-Gateway · :9119 · API-Status"})]})]})]})]}),e.jsxs("p",{className:"mt-3.5 text-[11px] text-muted-foreground leading-relaxed",children:["Der Gateway liefert ",e.jsx("span",{className:"text-foreground",children:"nur das LLM"}),". Das geteilte Gedächtnis läuft über einen",e.jsx("span",{className:"text-foreground",children:" eigenen MCP-Server"})," und das Desktop-Gateway bietet die Agenten-Schnittstelle — alle drei Leitungen werden unabhängig eingerichtet. IDEs wählen die ",e.jsx("span",{className:"text-foreground",children:"echten Modelle"})," ","(coder · heavy · vision); daneben gibt es die virtuellen Lanes ",e.jsx("span",{className:"text-foreground",children:"chat"})," und"," ",e.jsx("span",{className:"text-foreground",children:"coding"}),", die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools)."]})]}),e.jsx("div",{className:"p-5 mc-card",children:e.jsxs("div",{className:"space-y-1.5 max-w-md",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(W,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse",e.jsx("span",{className:"normal-case font-semibold tracking-normal text-muted-foreground/60",children:"— vorbefüllt aus der Adresse dieser Seite"})]}),e.jsx("input",{value:s,onChange:t=>_(t.target.value),"aria-label":"Box LAN IP-Adresse",spellCheck:!1,placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),e.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Wird in alle Snippets eingebacken. Ändern musst du sie nur, wenn die Box eine neue IP bekommt."})]})}),S&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",S]}),r&&e.jsxs("div",{className:"space-y-5",children:[l&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-emerald-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx(j,{className:"h-4 w-4 text-emerald-400"}),"Hermes Desktop anbinden",e.jsx("span",{className:"text-[10px] font-medium text-emerald-400/90 normal-case",children:"der Hauptweg"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Die Desktop-App dockt remote an die Box an — volle Agent-Oberfläche, Projekte, Review, Gedächtnis inklusive."})]}),l.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-emerald-500/5 border border-emerald-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(v,{tool:l,fileName:L.hermes_desktop,accent:"teal",copied:u==="desktop",onCopy:()=>h("desktop",l.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>G(t=>!t),className:"flex w-full items-center gap-2 p-4 text-sm font-space font-bold text-foreground cursor-pointer hover:text-primary transition-colors",children:[y?e.jsx(K,{className:"h-4 w-4"}):e.jsx(H,{className:"h-4 w-4"}),"Sonstige Tools (roher /v1-Zugang + Gedächtnis-MCP)",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"Kilo Code · Claude Code · Eigenbau"})]}),y&&e.jsxs("div",{className:"grid gap-5 lg:grid-cols-2 p-4 pt-0",children:[e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-primary/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-primary/15 text-primary text-[11px]",children:"1"}),"Modell anbinden"]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Wähle dein Tool — das Snippet zeigt auf den Gateway."})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(r.tools).filter(([t])=>t!=="hermes_desktop").map(([t,p])=>e.jsx("button",{onClick:()=>P(t),className:M("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",d===t?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:p.label},t))}),i&&e.jsxs(e.Fragment,{children:[i.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:i.note})]}),e.jsx(v,{tool:i,fileName:L[d]||"config.json",accent:"teal",copied:u==="model",onCopy:()=>h("model",i.snippet)})]})]}),e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-violet-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-violet-500/15 text-violet-300 text-[11px]",children:"2"}),"Gedächtnis anbinden",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"optional"})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:["Ein MCP-Block — gilt zusätzlich für ",e.jsx("em",{children:"jedes"})," Tool aus Schritt 1."]})]}),e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-violet-500/5 border border-violet-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-violet-400 shrink-0 mt-0.5"}),e.jsx("span",{children:r.memory.note})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(O,{className:"h-3.5 w-3.5 text-violet-400"})," Wo liegt mcp_memory.py auf DIESEM PC?"]}),e.jsx("input",{value:o,onChange:t=>D(t.target.value),"aria-label":"Lokaler MCP-Scriptpfad",spellCheck:!1,placeholder:"z.B. F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-violet-500/50 text-foreground"}),e.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Nur nötig, wenn du das Gedächtnis in einem PC-Tool anschließt — das Script läuft lokal und spricht mit der Box. Der Pfad landet direkt im Snippet unten."})]}),e.jsx(v,{tool:r.memory,fileName:"mcp.json",accent:"violet",copied:u==="memory",onCopy:()=>h("memory",r.memory.snippet)})]})]})]})]})]})}export{Z as ConnectView}; diff --git a/frontend/dist/assets/GuideView-D3weMCzU.js b/frontend/dist/assets/GuideView-D3weMCzU.js deleted file mode 100644 index cee6a39..0000000 --- a/frontend/dist/assets/GuideView-D3weMCzU.js +++ /dev/null @@ -1,36 +0,0 @@ -import{c as u,j as e,r as M,x as C,Z as z,_ as k,$ as y,O as v,a0 as L,R as G,a1 as T,W as D,e as f,a2 as B}from"./index-CUuKs_1x.js";import{a as w,L as P,C as E,Z as R}from"./zap-iWjc7Axa.js";import{L as I}from"./layers-CjyCNjIs.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K=u("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/** - * @license lucide-react v0.460.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=u("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 W=u("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 V=u("LifeBuoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);/** - * @license lucide-react v0.460.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=u("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 F=u("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),i={text:"hsl(var(--foreground))",mut:"hsl(var(--muted-foreground))",border:"hsl(var(--border))",card:"hsl(var(--card) / 0.9)",bg:"hsl(var(--background) / 0.4)",primary:"hsl(var(--primary))",teal:"#2dd4bf",sky:"#38bdf8",violet:"#a78bfa",rose:"#fb7185",amber:"#fbbf24",emerald:"#34d399",indigo:"#818cf8"};function o({x:n,y:r,w:t,h:c,color:h,title:g,sub:d,sub2:x,strong:p}){const b=n+t/2;return e.jsxs("g",{children:[e.jsx("rect",{x:n,y:r,width:t,height:c,rx:12,fill:i.card,stroke:h,strokeOpacity:p?.9:.45,strokeWidth:p?2:1.25}),e.jsx("rect",{x:n,y:r,width:t,height:3,rx:1.5,fill:h,opacity:.8}),e.jsx("text",{x:b,y:r+(d?24:c/2+4),textAnchor:"middle",fill:i.text,fontSize:12.5,fontWeight:700,children:g}),d&&e.jsx("text",{x:b,y:r+40,textAnchor:"middle",fill:i.mut,fontSize:10,children:d}),x&&e.jsx("text",{x:b,y:r+53,textAnchor:"middle",fill:i.mut,fontSize:10,children:x})]})}function j({from:n,to:r,color:t=i.border,dash:c}){const[h,g]=n,[d,x]=r,p=(h+d)/2;return e.jsxs("g",{stroke:t,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:c?"5 4":void 0,children:[e.jsx("path",{d:`M ${h} ${g} C ${p} ${g}, ${p} ${x}, ${d} ${x}`}),e.jsx("path",{d:`M ${d-6} ${x-4} L ${d} ${x} L ${d-6} ${x+4}`,fill:t,fillOpacity:.7,stroke:"none"})]})}function H(){const n=[{y:34,title:"Diese Oberfläche",sub:"Browser · Cockpit & Klick-Gates",color:i.teal},{y:128,title:"Lucy",sub:"Stimme & Begleiterin am PC",color:i.rose},{y:222,title:"Hermes Desktop",sub:"IDE für Projekte (PC + remote)",color:i.violet},{y:316,title:"Telegram",sub:"unterwegs, gleiche Erinnerung",color:i.sky}];return e.jsxs("svg",{viewBox:"0 0 880 432",role:"img","aria-label":"Landkarte: Du erreichst die Box über vier Türen; in der Box arbeiten Mission Control, der Hermes-Agent, der Modell-Stall, das Gedächtnis und der Wissens-Vault.",style:{width:"100%",height:"auto",fontFamily:"var(--font-sans)"},children:[e.jsx(o,{x:16,y:150,w:120,h:92,color:i.primary,strong:!0,title:"Du",sub:"entscheidest —",sub2:"die Box arbeitet"}),e.jsx(o,{x:16,y:330,w:150,h:68,color:i.emerald,title:"PC-Executor",sub:"baut & startet Lucy",sub2:"nach deiner Annahme"}),n.map(r=>e.jsx(o,{x:196,y:r.y,w:186,h:64,color:r.color,title:r.title,sub:r.sub},r.title)),n.map(r=>e.jsx(j,{from:[136,196],to:[196,r.y+32]},r.title)),e.jsx("rect",{x:420,y:14,width:444,height:404,rx:16,fill:i.bg,stroke:i.border,strokeOpacity:.7}),e.jsx("text",{x:642,y:38,textAnchor:"middle",fill:i.text,fontSize:13,fontWeight:800,letterSpacing:.5,children:"DIE BOX · 192.168.178.151"}),e.jsx(o,{x:444,y:54,w:396,h:62,color:i.teal,title:"Mission Control (:9001)",sub:"Cockpit · Auftragsbuch (Klick-Gate) · Chronik · Wissen"}),e.jsx(o,{x:444,y:126,w:396,h:62,color:i.rose,title:"Hermes-Agent",sub:"denkt, nutzt Werkzeuge, betreibt die Werkstatt & Nacht-Crons"}),e.jsx(o,{x:444,y:198,w:396,h:78,color:i.sky,title:"Modell-Stall (llama-swap)",sub:"Hirn · Groß · Coder · Augen · Späher · Kritiker",sub2:"+ Embedding & Sortierer fürs Gedächtnis"}),e.jsx(o,{x:444,y:286,w:190,h:56,color:i.indigo,title:"Mem0-Gedächtnis",sub:"lernt automatisch mit"}),e.jsx(o,{x:650,y:286,w:190,h:56,color:i.amber,title:"Wissens-Vault",sub:"Träume & Notizen (git)"}),e.jsx(o,{x:444,y:352,w:396,h:52,color:i.emerald,title:"Selbstheilung & Backups",sub:"Health-Checks · Auto-Revert bei Rot · PBS-Sicherung"}),n.map(r=>e.jsx(j,{from:[382,r.y+32],to:[420,r.y+46]},r.title)),e.jsx(j,{from:[420,396],to:[166,364],color:i.emerald,dash:!0}),e.jsx("text",{x:272,y:412,textAnchor:"middle",fill:i.mut,fontSize:9.5,fontStyle:"italic",children:"Lucy-Karte angenommen → PC baut neu"})]})}function O(){const n=[{x:14,color:i.amber,title:"Idee",sub:"von dir oder vom",sub2:"Nacht-Radar"},{x:158,color:i.violet,title:"Ideen-Queue",sub:"Kanban sammelt,",sub2:"Specifier plant"},{x:302,color:i.rose,title:"Werkstatt",sub:"Agent baut den",sub2:"Vorschlag (Branch)"},{x:446,color:i.sky,title:"Auftragsbuch",sub:"Karte + Stempel",sub2:"vom Gutachter"},{x:590,color:i.primary,title:"DEIN Klick",sub:"annehmen oder",sub2:"ablehnen (mit Grund)",strong:!0},{x:734,color:i.emerald,title:"Live",sub:"Merge + Deploy,",sub2:"Rot = Auto-Rückbau"}];return e.jsxs("svg",{viewBox:"0 0 880 246",role:"img","aria-label":"Kreislauf: Idee, Ideen-Queue, Werkstatt, Auftragsbuch, dein Klick, live — Chronik und Morgenlage berichten zurück.",style:{width:"100%",height:"auto",fontFamily:"var(--font-sans)"},children:[n.map(r=>e.jsx(o,{x:r.x,y:38,w:132,h:66,color:r.color,title:r.title,sub:r.sub,sub2:r.sub2,strong:r.strong},r.title)),n.slice(0,-1).map((r,t)=>e.jsx(j,{from:[r.x+132,71],to:[n[t+1].x,71]},r.title)),e.jsxs("g",{stroke:i.border,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:"5 4",children:[e.jsx("path",{d:"M 800 104 C 800 150, 720 150, 440 150 C 160 150, 80 150, 80 112"}),e.jsx("path",{d:"M 76 118 L 80 108 L 84 118",fill:i.border,fillOpacity:.7,stroke:"none"})]}),e.jsx("text",{x:440,y:144,textAnchor:"middle",fill:i.mut,fontSize:10,fontStyle:"italic",children:"Chronik & Morgenlage berichten · Ablehnungs-Gründe werden Lern-Futter"}),e.jsx("rect",{x:14,y:176,width:852,height:54,rx:12,fill:i.bg,stroke:i.border,strokeOpacity:.5}),e.jsx("text",{x:440,y:198,textAnchor:"middle",fill:i.text,fontSize:11,fontWeight:700,children:"Nachts, ganz allein:"}),e.jsx("text",{x:440,y:216,textAnchor:"middle",fill:i.mut,fontSize:10,children:"03:15 Traum · 03:35 Selbst-Inventur · 03:45 Idle-Radar · 04:00 Karten-Gutachter · 04:10 Bagatellen · 04:30 Morgenlage · Mo 05:15 Release-Radar"})]})}function U(){return e.jsxs("div",{className:"space-y-5",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsx("div",{className:"min-w-[680px]",children:e.jsx(H,{})})}),e.jsx("div",{className:"border-t border-border/20 pt-4 overflow-x-auto",children:e.jsx("div",{className:"min-w-[680px]",children:e.jsx(O,{})})})]})}const A=[{id:"system",label:"Dein System"},{id:"grundlagen",label:"Grundlagen"},{id:"moe",label:"MoE & Quant"},{id:"lokal",label:"Lokal betreiben"},{id:"modelle",label:"Modell-Landschaft"},{id:"gateway",label:"Gateway-Trick"},{id:"mcp",label:"MCP"},{id:"skills",label:"Skills"},{id:"memory",label:"Gedächtnis & RAG"},{id:"agents",label:"Agenten"},{id:"ide",label:"IDE anbinden"},{id:"tricks",label:"Tricks & Kniffe"},{id:"wartung",label:"Sicherheit & Wartung"},{id:"ressourcen",label:"Ressourcen"},{id:"troubleshooting",label:"Troubleshooting"}];function Q(n){var r;(r=document.getElementById(n))==null||r.scrollIntoView({behavior:"smooth",block:"start"})}function a({id:n,icon:r,color:t,title:c,kicker:h,children:g,wide:d}){return e.jsxs("section",{id:n,className:f("scroll-mt-20 mc-card p-6 space-y-3",d&&"md:col-span-2"),children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(r,{className:f("h-5 w-5 shrink-0",t)}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:c}),h&&e.jsx("span",{className:f("text-[9px] font-mono",t),children:h})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground space-y-2.5 leading-relaxed",children:g})]})}function m({children:n}){return e.jsxs("div",{className:"mt-1 rounded-xl border border-primary/25 bg-primary/[0.06] p-3 text-[11px] leading-relaxed",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-primary mb-1",children:[e.jsx(B,{className:"h-3 w-3"})," Bei dir konkret"]}),e.jsx("div",{className:"text-muted-foreground space-y-1",children:n})]})}function s({children:n}){return e.jsx("code",{className:"rounded bg-background/40 border border-border/30 px-1.5 py-0.5 font-mono text-[10px] text-foreground",children:n})}function l({href:n,name:r,note:t}){return e.jsxs("li",{className:"leading-relaxed",children:[e.jsxs("a",{href:n,target:"_blank",rel:"noopener",className:"text-primary hover:underline font-semibold inline-flex items-center gap-0.5",children:[r,e.jsx(K,{className:"h-3 w-3 opacity-60"})]}),e.jsxs("span",{className:"text-muted-foreground",children:[" — ",t]})]})}function q(){const[n,r]=M.useState(!1);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{className:"mc-card p-6 flex items-start gap-4",children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-primary/15 flex items-center justify-center shrink-0",children:e.jsx(N,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Die AI-Bibel"}),e.jsxs("p",{className:"text-sm text-muted-foreground leading-relaxed max-w-2xl",children:["Erst ",e.jsx("span",{className:"font-semibold text-foreground",children:"dein System auf einen Blick"}),", dann das allgemeine Nachschlagewerk für lokale & agentische AI — Konzepte, Tricks, Kniffe und kuratierte Quellen. ",e.jsx("span",{className:"font-semibold text-foreground",children:"Stand Juli 2026."})," ",e.jsx("span",{className:"text-primary font-semibold",children:'„Bei dir konkret"'}),"-Kästen zeigen, was dein Stack daraus macht."]})]})]}),e.jsx("div",{className:"sticky top-0 z-10 -mx-1 px-1",children:e.jsx("div",{className:"rounded-xl border border-border/50 bg-card/70 backdrop-blur-xl p-2 shadow-lg shadow-black/20",children:e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary ml-1 mr-0.5 shrink-0"}),(n?A:A.slice(0,9)).map(t=>e.jsx("button",{onClick:()=>Q(t.id),className:"rounded-lg px-2.5 py-1 text-[11px] font-semibold text-muted-foreground hover:text-primary hover:bg-primary/10 transition-colors cursor-pointer",children:t.label},t.id)),e.jsx("button",{onClick:()=>r(t=>!t),className:"rounded-lg px-2 py-1 text-[11px] font-semibold text-primary hover:bg-primary/10 transition-colors cursor-pointer",children:n?"weniger":"+ mehr"})]})})}),e.jsxs("section",{id:"system",className:"scroll-mt-20 mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(S,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"So funktioniert dein System"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Landkarte & Kreislauf — das große Bild"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed max-w-3xl",children:["Vier Türen führen zur selben Box: ",e.jsx("strong",{className:"text-foreground",children:"diese Oberfläche"})," zum Steuern und Abnicken, ",e.jsx("strong",{className:"text-foreground",children:"Lucy"})," für Zurufe per Stimme,",e.jsx("strong",{className:"text-foreground",children:" Hermes Desktop"})," für richtige Projekte und",e.jsx("strong",{className:"text-foreground",children:" Telegram"})," für unterwegs. In der Box denken die Modelle, das Gedächtnis lernt automatisch mit — und nachts arbeitet sie allein: Sie träumt, inventarisiert sich selbst, entwickelt Ideen zu fertigen Vorschlägen und legt sie dir als Karten ins Auftragsbuch.",e.jsx("strong",{className:"text-primary",children:" Nichts geht live ohne deinen Klick"})," — und wenn nach einer Annahme etwas rot wird, baut die Box es selbst zurück."]}),e.jsx(U,{})]}),e.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[e.jsxs(a,{id:"grundlagen",icon:C,color:"text-cyan-400",title:"1. Wie LLMs ticken",kicker:"Grundlagen",children:[e.jsxs("p",{children:["Ein LLM ist im Kern ein ",e.jsx("strong",{children:"Wahrscheinlichkeits-Rechner für das nächste Token"}),' (Wortteil). Es „weiß" nichts — es setzt fort, was statistisch am plausibelsten ist. Daraus folgt fast alles andere.']}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Tokens"})," sind die Einheit — ~¾ Wort. Ein- und Ausgabe werden in Tokens gezählt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontextfenster"}),' = wie viele Tokens das Modell gleichzeitig „sehen" kann (Prompt + Antwort). Voll = Anfang fällt raus.']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Parameter"})," = die trainierten Gewichte. Training ist einmalig, ",e.jsx("strong",{children:"Inferenz"})," ist jede Antwort."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Temperatur / Sampling"})," steuert Zufall: niedrig = deterministisch/präzise (Code), hoch = kreativ."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Halluzination"})," ist kein Bug, sondern die Kehrseite des Ratens. Gegenmittel: Grounding via Tools/RAG, Verifikation."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reasoning-/Thinking-Modelle"}),' „denken" in unsichtbaren Tokens vor der Antwort — besser bei Logik, langsamer/teurer.']})]})]}),e.jsxs(a,{id:"moe",icon:I,color:"text-violet-400",title:"2. MoE & Quantisierung",kicker:"Mehr Modell, weniger Last",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Mixture of Experts (MoE):"})," Statt für jedes Token das ganze Netz zu aktivieren, wählt ein",e.jsx("em",{children:" Router"})," nur ein paar spezialisierte ",e.jsx("em",{children:"Experts"}),' aus. So läuft ein 100B-Modell mit der aktiven Rechenlast eines viel kleineren (z.B. „122B total / 10B aktiv").']}),e.jsxs("p",{children:[e.jsx("strong",{children:"Quantisierung:"})," Gewichte von FP16 auf weniger Bits eindampfen — kleiner & schneller bei minimalem Qualitätsverlust. Faustregel:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx(s,{children:"Q8"})," nahezu verlustfrei, größter Footprint"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q6_K"})," sehr gut, guter Mittelweg"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q4_K_M"})," der Sweet-Spot für lokal — viel Modell pro GB"]})]}),e.jsxs(m,{children:["VRAM/RAM ist die harte Grenze — ",e.jsx("strong",{children:"darum"})," ist beides hier zentral: MoE lässt 100B+ überhaupt laufen, Quant entscheidet, was reinpasst. Dein Line-up fährt durchweg ",e.jsx(s,{children:"Q4_K_M"}),"/",e.jsx(s,{children:"Q6_K"}),"."]})]}),e.jsxs(a,{id:"lokal",icon:z,color:"text-emerald-400",title:"3. Lokal betreiben: Engines & Backends",kicker:"llama.cpp, vLLM & Co.",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Inference-Engines"})," — was die Modelle ausführt:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"llama.cpp / GGUF"})," — der De-facto-Standard für lokal, CPU+GPU, läuft überall."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ollama / LM Studio"})," — bequeme Wrapper mit One-Click-Downloads (LM Studio mit GUI)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"vLLM / TGI"})," — Server-Engines für maximalen Durchsatz auf dicken GPUs."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"llama-swap"})," — Proxy, der ",e.jsx("em",{children:"mehrere"})," Modelle hinter ",e.jsx("em",{children:"einem"})," Port hält und je nach Anfrage automatisch ein-/aussattelt."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"GPU-Backends"})," — wie gerechnet wird:"]}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx(s,{children:"CUDA"})," NVIDIA · ",e.jsx(s,{children:"ROCm"})," AMD · ",e.jsx(s,{children:"Vulkan"})," herstellerübergreifend · ",e.jsx(s,{children:"Metal"})," Apple"]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Begriffe, die immer wiederkommen:"})," Kontext (",e.jsx(s,{children:"-c"}),"), Slots/Parallel, KV-Cache, Modell-TTL/Swap, ",e.jsx("strong",{children:"Speculative Decoding"})," (kleines Draft-Modell rät voraus → schneller)."]})]})]}),e.jsxs(m,{children:["Deine Box hat eine AMD-APU (gfx1151). ",e.jsx("strong",{children:"Einschränkung & Trick:"})," dort schlägt ",e.jsx(s,{children:"Vulkan/RADV"})," das offizielle ",e.jsx(s,{children:"ROCm"})," bei Token-Generierung um ~12–22 % — darum läuft die Engine auf Vulkan.",e.jsx(s,{children:"llama-swap"})," hält die Alltags-Hirne dauerwarm; ",e.jsx(s,{children:"coder"})," nutzt Spec-Decoding."]})]}),e.jsxs(a,{id:"modelle",icon:k,color:"text-sky-400",title:"4. Modell-Landschaft",kicker:"Stand Juni 2026",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Open-Weight (lokal nutzbar):"})}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Qwen"})," (Alibaba) — starke Allrounder + Coder + Vision, viele Größen/MoE."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Llama"})," (Meta), ",e.jsx("strong",{children:"Gemma"})," (Google), ",e.jsx("strong",{children:"Phi"})," (Microsoft) — solide Open-Familien."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"DeepSeek"}),", ",e.jsx("strong",{children:"Mistral/Mixtral"})," — kräftige MoE-/Reasoning-Modelle."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Frontier (Cloud-API):"})}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx("strong",{children:"Claude"})," (Anthropic), ",e.jsx("strong",{children:"GPT"})," (OpenAI), ",e.jsx("strong",{children:"Gemini"})," (Google) — die stärksten Allrounder, aber nicht lokal."]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Modellwahl nach Aufgabe:"})," schnelles Alltags-Hirn · großes Logik-Hirn für harte Tasks · dediziertes Code-Modell · multimodal für Bilder · Embedding-Modell fürs Gedächtnis."]})]})]}),e.jsx("p",{className:"text-[11px] italic",children:'Leaderboards (HF, LMArena) sind grobe Orientierung — der einzige Benchmark, der zählt, ist deine eigene Aufgabe. Vorsicht vor „Benchmaxxing".'}),e.jsxs(m,{children:["Dein Line-up via llama-swap (Klartext-Rollen): ",e.jsx(s,{children:"Hirn"})," (Agent, dauerwarm) · ",e.jsx(s,{children:"Groß"})," (schwere Logik) · ",e.jsx(s,{children:"Coder"})," · ",e.jsx(s,{children:"Augen"})," (Bilder) · ",e.jsx(s,{children:"Späher"})," (schnelle Recherche) ·",e.jsx(s,{children:"Kritiker"})," (Fremdblick/Review) · ",e.jsx(s,{children:"Gedächtnis"})," + ",e.jsx(s,{children:"Sortierer"})," (Embedding & Reranking). Verwalten/tauschen im ",e.jsx("strong",{children:"Modelle"}),"-Tab."]})]}),e.jsxs(a,{id:"gateway",icon:S,color:"text-amber-400",title:"5. Der Gateway-Trick",kicker:"OpenAI-kompatibel = überall andocken",children:[e.jsxs("p",{children:["Fast jedes AI-Tool spricht heute das ",e.jsx("strong",{children:"OpenAI-Format"})," (",e.jsx(s,{children:"/v1/chat/completions"}),"). Ein",e.jsx("strong",{children:" Gateway"})," davor gibt dir ",e.jsx("em",{children:"einen"})," Endpunkt für alles: zentrales Key-Management, Logging und transparentes ",e.jsx("strong",{children:"Routing"})," — der Client merkt nicht, welches Modell tatsächlich antwortet."]}),e.jsxs("p",{children:["Die Lane-Idee: du wählst ",e.jsx(s,{children:"chat"})," (Alltag, ",e.jsx(s,{children:"auto"})," geht als Alias weiter) oder"," ",e.jsx(s,{children:"coding"})," (agentisch), das Gateway pickt das passende echte Modell und lädt es bei Bedarf."]}),e.jsxs(m,{children:["Dein Gateway: ",e.jsx(s,{children:"http://192.168.178.151:9001/v1"}),", Model ",e.jsx(s,{children:"chat"})," oder ",e.jsx(s,{children:"coding"}),", API-Key beliebig. Fertige Configs erzeugt dir der ",e.jsx("strong",{children:"Verbinden"}),"-Tab live — eine Wahrheit, kein Abtippen."]})]}),e.jsxs(a,{id:"mcp",icon:y,color:"text-violet-400",title:"6. MCP — Werkzeuge für Agenten",kicker:"USB-C für AI-Tools",children:[e.jsxs("p",{children:["Das ",e.jsx("strong",{children:"Model Context Protocol"})," (offen, von Anthropic initiiert) standardisiert, wie ein AI-Client mit externen Tools & Datenquellen spricht. Ein ",e.jsx("strong",{children:"MCP-Server"})," bringt Fähigkeiten: Dateien, Web-Fetch, Git, Datenbanken, eigene APIs."]}),e.jsx("p",{children:"Statt für jeden Editor eigene Tools zu schreiben, bindet jeder MCP-fähige Agent denselben Server an."}),e.jsxs("div",{className:"flex items-start gap-1.5 rounded-xl border border-amber-500/25 bg-amber-500/[0.06] p-2.5 text-[11px]",children:[e.jsx(P,{className:"h-3.5 w-3.5 text-amber-400 shrink-0 mt-0.5"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Sicherheit:"})," ein MCP-Server hat echten Zugriff (Dateien, Shell). Nur vertrauenswürdige Server laufen lassen, Rechte minimal halten, Quelle prüfen."]})]})]}),e.jsxs(a,{id:"skills",icon:F,color:"text-emerald-400",title:"7. Agent Skills",kicker:"Wiederverwendbare Fähigkeiten",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Skill"})," ist ein Ordner mit einer ",e.jsx(s,{children:"SKILL.md"})," (YAML-Kopf + Anleitung, optional Skripte/Beispiele), den der Agent für eine bestimmte Aufgabe lädt — z.B. TDD, Code-Vereinfachung, API-Design."]}),e.jsx("pre",{className:"p-2.5 bg-background/25 rounded-lg border border-border/30 font-mono text-[9px] text-foreground overflow-x-auto whitespace-pre",children:`--- -name: tdd-pro -description: Treibt Entwicklung mit strikter TDD-Praxis ---- -# Instructions -...`}),e.jsxs("p",{children:["Suchen & installieren über die ",e.jsx("strong",{children:"skills.sh"}),"-Registry: ",e.jsx(s,{children:"npx skills find"})," /",e.jsx(s,{children:"npx skills add owner/repo"}),". Skills liegen projektweit (vom Agent beim Start gelesen) oder global."]})]}),e.jsxs(a,{id:"memory",icon:W,color:"text-indigo-400",title:"8. Gedächtnis & RAG",kicker:"Modelle vergessen — du nicht",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["LLMs sind ",e.jsx("strong",{children:"zustandslos"}),": ohne Hilfe weiß das Modell beim nächsten Turn nichts mehr. Gedächtnis lebt extern."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Embeddings"})," wandeln Text in Vektoren; ein ",e.jsx("strong",{children:"Vektor-Store"})," (Chroma, …) findet semantisch Ähnliches."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"RAG"})," = relevante Fakten vor dem Turn heraussuchen und einblenden statt alles im Prompt zu halten."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Long-Context vs. RAG:"}),' riesige Fenster sind bequem, aber teuer & „lost in the middle" — gezieltes Abrufen skaliert besser.']})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Auto-lernendes Gedächtnis"})," ist die nächste Stufe:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:["extrahiert Fakten ",e.jsx("em",{children:"selbst"})," aus Gesprächen, statt nur abzuspeichern"]}),e.jsx("li",{children:"dedupliziert semantisch (kein 10× derselbe Fakt)"}),e.jsxs("li",{children:[e.jsx("strong",{children:"Graph-Sicht"})," = Fakten ",e.jsx("em",{children:"plus"})," ihre Beziehungen, nicht nur eine flache Liste"]})]})]})]}),e.jsxs(m,{children:["Dein Gedächtnis (Tab ",e.jsx("strong",{children:"Gedächtnis"}),") ist ",e.jsx("strong",{children:"Mem0"}),"-basiert: auto-lernend & semantisch, ",e.jsx("strong",{children:"graph-first"})," dargestellt, mit 4-Typen-Taxonomie (",e.jsx(s,{children:"Identität"})," · ",e.jsx(s,{children:"Wissen"})," · ",e.jsx(s,{children:"Regeln"})," · ",e.jsx(s,{children:"Ereignisse"}),"). Der Agent lernt im Hintergrund nach jedem Turn — egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst.",e.jsx("br",{}),e.jsx("strong",{children:"Gotcha:"})," ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion)."]})]}),e.jsxs(a,{id:"agents",icon:v,color:"text-rose-400",title:"9. Autonome Agenten betreiben",kicker:"LLM in der Schleife",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Agent"})," ist ein LLM in einer Schleife mit Tools:",e.jsx("em",{children:" denken → Tool aufrufen → Ergebnis beobachten → weiter"}),", bis das Ziel erreicht ist."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Guardrails"})," (Hard-Stop, Tool-Limits) verhindern Endlos-Loops, wenn ein Tool fehlt oder hängt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontext-Hygiene"})," ist die wichtigste Disziplin: frische Sessions starten — vollgemüllte Historien werden langsam, driften und halluzinieren."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kanäle:"})," CLI/Terminal, Chat-UI, Messaging (z.B. Telegram), reine API."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Least Privilege:"})," gib einem Agenten nur die Tools, die er wirklich braucht. Kritische Aktionen (Shell auf dem Host, Löschen, Geld/Deploys) hinter menschliche Freigabe."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Was sich vollautomatisch lohnt:"})," Modell-Routing, Hintergrund-Gedächtnis, Recherche. ",e.jsx("strong",{children:"Was Freigabe braucht:"})," Systembefehle, Updates/Reboots, permanentes Löschen."]})]})]}),e.jsxs(m,{children:[e.jsx("strong",{children:"Hermes"})," ist dein Box-Agent mit eigenem Agent-Hirn (Rolle ",e.jsx(s,{children:"Hirn"}),", dauerwarm). Reden tust du mit ihm über ",e.jsx("strong",{children:"Hermes Desktop"})," (am PC, remote via ",e.jsx(s,{children:"/hermes-ui"}),"), die ",e.jsx("strong",{children:"Konsole"})," (Box-Shell im Browser), ",e.jsx("strong",{children:"Telegram"})," — oder per Stimme über",e.jsx("strong",{children:" Lucy"}),". Er hat MCP-Server für Gedächtnis, Stack-Steuerung, Web-Fetch und",e.jsx("strong",{children:" PC-Steuerung"})," (Executor auf deinem Windows-PC). Nachts betreibt er Werkstatt & Radar-Crons — alles Gebaute landet als Karte im ",e.jsx("strong",{children:"Auftragsbuch"}),". Status & Verdrahtung im ",e.jsx("strong",{children:"Hermes"}),"-Tab."]})]}),e.jsxs(a,{id:"ide",icon:E,color:"text-cyan-400",title:"10. IDE / Editor anbinden",kicker:"Vibe-Coding lokal",children:[e.jsxs("p",{children:["Jede ",e.jsx("strong",{children:"OpenAI-kompatible"})," IDE oder Extension lässt sich auf einen lokalen Server umbiegen — Base-URL + Model eintragen, fertig:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Cline"})," & ",e.jsx("strong",{children:"Roo Code"})," (VS-Code-Extensions, voller Agent + MCP)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cursor"})," (VS-Code-Fork mit Top-Autocomplete)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Continue"}),", ",e.jsx("strong",{children:"aider"})," (CLI), ",e.jsx("strong",{children:"OpenCode"})," (Desktop)"]})]}),e.jsxs(m,{children:["Deine Haupt-IDE ist inzwischen ",e.jsx("strong",{children:"Hermes Desktop"})," — sie ist ab Werk mit Box, Gedächtnis und Skills verdrahtet, da ist nichts zu konfigurieren. Für alles andere gilt: Tipp den Kram nicht ab — der",e.jsx("strong",{children:" Verbinden"}),"-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. Essenz: Base ",e.jsx(s,{children:"…:9001/v1"}),", Model ",e.jsx(s,{children:"coder"})," (bauen) / ",e.jsx(s,{children:"heavy"})," (denken) /"," ",e.jsx(s,{children:"vision"})," (Bilder); für simple Chat-Tools tut es die Lane ",e.jsx(s,{children:"chat"}),". Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:L,color:"text-amber-400",title:"11. Tricks & Kniffe",kicker:"Was im Alltag wirklich spart",wide:!0,children:e.jsx("div",{className:"grid md:grid-cols-3 gap-3",children:[["Kontext sauber halten","Neue Session statt Mega-Historie. Drift, Tempo und Halluzination hängen direkt am Kontext-Müll."],["Plan-then-Act","Erst Plan/Vorgehen bestätigen lassen, dann ausführen. Spart teure Holzwege."],["Gezielte Edits","Nie ganze Dateien überschreiben für eine Zeile — Such-/Ersetz-Tools nutzen. Weniger Tokens, weniger Fehler."],["Non-interaktive Befehle","Keine interaktiven Prompts im Agent-Terminal; lange Tasks als Background-Job. Sonst hängt der Loop."],["DevTools koppeln","Browser-/Konsolen-Zugriff geben — der Agent liest echte Fehler statt blind zu raten."],["Richtige Modellwahl","Schnelles Hirn für Alltag, großes für harte Logik, Coder fürs Coden. Nicht alles mit der Kanone."],["Akzeptanzkriterien","Sag konkret, woran „fertig“ erkennbar ist. Vage Prompts → vage Ergebnisse."],["Verifizieren statt vertrauen","Tests/Live-Check fordern. „Sollte funktionieren“ ist kein Beweis."],["Regeln ins Gedächtnis","Wiederkehrende Vorlieben/Konventionen einmal ablegen — der Agent zieht sie selbst."]].map(([t,c])=>e.jsxs("div",{className:"space-y-1 p-3 bg-background/10 rounded-xl border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-foreground text-[11px]",children:[e.jsx(R,{className:"h-3 w-3 text-amber-400"})," ",t]}),e.jsx("p",{className:"text-[11px]",children:c})]},t))})}),e.jsx(a,{id:"wartung",icon:G,color:"text-emerald-400",title:"12. Sicherheit & Wartung",kicker:"Damit's auch morgen noch läuft",wide:!0,children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(T,{className:"h-3.5 w-3.5 text-emerald-400"})," Goldene Regeln"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Ein ungetesteter Restore ist kein Backup."})," Wiederherstellung mindestens einmal echt durchspielen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates können Dinge still zerschießen"})," — gerade bei AI-Stacks (Embeddings, Provider-Interna). Versionen pinnen, Smoke-Test, Post-Check."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Least Privilege"})," für Agenten, MCP-Server und PC-Zugriff. Kritisches hinter Freigabe."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(D,{className:"h-3.5 w-3.5 text-emerald-400"})," Bei dir im SystemDrawer"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Backup:"})," PBS-Backup-Zentrum (Sicherung auf den Proxmox-Server) + tägliche Tarball-Sicherung; Restore echt durchgespielt (",e.jsx(s,{children:"restore.sh"}),", Doku in ",e.jsx(s,{children:"docs/BACKUP.md"}),")."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates:"})," git-basierter Update-Check; ",e.jsx("strong",{children:"Update-Buttons"})," mit anschließendem ",e.jsx("strong",{children:"Gehirn-Check"})," (rot, falls ein Update das Gedächtnis zerschießt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Annahme-Sicherheit:"})," jede Auftragsbuch-Annahme läuft mit Health-Check — wird's rot, baut die Box automatisch zurück (Auto-Revert)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dienste & Gefahrenzone:"})," Restart/Logs pro Dienst, kritische Eingriffe getrennt."]})]}),e.jsx("p",{className:"text-[10px] italic",children:'Erreichbar über das System-Icon → Tab „Wartung".'})]})]})}),e.jsxs("section",{id:"ressourcen",className:"scroll-mt-20 md:col-span-2 mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(w,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"13. Kuratierte Ressourcen & Links"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Sauber geordnet — die guten Quellen"})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-5 text-xs",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(k,{className:"h-3.5 w-3.5 text-sky-400"})," Modelle & Engines"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://huggingface.co/models",name:"Hugging Face",note:"das Repository für offene Modelle (GGUF, Embeddings, Datasets)."}),e.jsx(l,{href:"https://github.com/ggml-org/llama.cpp",name:"llama.cpp",note:"die Referenz-Engine für lokale Inferenz."}),e.jsx(l,{href:"https://github.com/mostlygeek/llama-swap",name:"llama-swap",note:"mehrere Modelle hinter einem Port, Auto-Swap."}),e.jsx(l,{href:"https://ollama.com",name:"Ollama",note:"einfachster Einstieg, One-Command-Modelle."}),e.jsx(l,{href:"https://lmstudio.ai",name:"LM Studio",note:"lokale GUI zum Stöbern, Laden & Chatten."}),e.jsx(l,{href:"https://github.com/vllm-project/vllm",name:"vLLM",note:"Hochdurchsatz-Serving auf dicken GPUs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(y,{className:"h-3.5 w-3.5 text-violet-400"})," MCP & Skills"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://modelcontextprotocol.io",name:"MCP — offizielle Doku",note:"Spezifikation & Einstieg."}),e.jsx(l,{href:"https://github.com/modelcontextprotocol/servers",name:"Offizielle MCP-Server",note:"filesystem, git, postgres, fetch & mehr."}),e.jsx(l,{href:"https://smithery.ai",name:"Smithery",note:"Registry zum Suchen & Auto-Installieren von MCP-Servern."}),e.jsx(l,{href:"https://glama.ai/mcp/servers",name:"Glama MCP Registry",note:"kuratierte Community-Datenbank."}),e.jsx(l,{href:"https://skills.sh",name:"skills.sh",note:"Registry & CLI für Agent-Skills."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(v,{className:"h-3.5 w-3.5 text-rose-400"})," Agenten & Frameworks"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://github.com/NousResearch/hermes-agent",name:"Hermes Agent (Nous)",note:"der Agent, der auf deiner Box läuft."}),e.jsx(l,{href:"https://docs.claude.com",name:"Anthropic / Claude Docs",note:"API, Tool-Use, Agent SDK, MCP."}),e.jsx(l,{href:"https://github.com/cline/cline",name:"Cline",note:"autonomer Coding-Agent für VS Code."}),e.jsx(l,{href:"https://aider.chat",name:"aider",note:"AI-Pair-Programming im Terminal, git-nativ."}),e.jsx(l,{href:"https://continue.dev",name:"Continue",note:"Open-Source-Autopilot für IDEs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(N,{className:"h-3.5 w-3.5 text-amber-400"})," Lernen & Community"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview",name:"Prompt-Engineering (Anthropic)",note:"die beste praktische Anleitung."}),e.jsx(l,{href:"https://github.com/anthropics/anthropic-cookbook",name:"Anthropic Cookbook",note:"lauffähige Rezepte für Tools, RAG, Agenten."}),e.jsx(l,{href:"https://www.promptingguide.ai",name:"Prompt Engineering Guide",note:"herstellerneutrales Nachschlagewerk."}),e.jsx(l,{href:"https://github.com/mem0ai/mem0",name:"Mem0",note:"die auto-lernende Memory-Schicht hinter deinem Gedächtnis."}),e.jsx(l,{href:"https://www.reddit.com/r/LocalLLaMA/",name:"r/LocalLLaMA",note:"der Puls der lokalen-LLM-Szene."})]})]})]})]}),e.jsx(a,{id:"troubleshooting",icon:V,color:"text-rose-400",title:"14. Troubleshooting",kicker:"Wenn's hakt",wide:!0,children:e.jsxs("ul",{className:"space-y-2 list-disc pl-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Keine Verbindung?"})," Selbes LAN wie die Box? IP/Port stimmen (",e.jsx(s,{children:":9001"}),")? Backend-Status im ",e.jsx("strong",{children:"Cockpit"})," prüfen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Modell antwortet nicht / langsam?"})," Im ",e.jsx("strong",{children:"Cockpit → Dienste"})," schauen, ob ",e.jsx(s,{children:"llama-swap"})," grün ist; sonst Restart. Erstes Token nach Swap dauert (Modell lädt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent dreht durch / halluziniert?"})," Frische Session starten (Hermes Desktop oder ",e.jsx("strong",{children:"Konsole"}),") — meist ist es vollgemüllter Kontext."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Gedächtnis findet nichts?"})," Embedding-Dienst online? Semantisch suchen (Sinn statt exaktem Wort)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Angenommene Karte hat etwas zerschossen?"})," Meist fängt es der Auto-Revert; sonst ",e.jsx("strong",{children:"Chronik → Zeitmaschine"})," (Stand von gestern) oder Backup & ",e.jsx(s,{children:"restore.sh"}),"."]})]})})]}),e.jsx("p",{className:"text-center text-[10px] text-muted-foreground/50 pt-2",children:"Mission Control 2 · AI-Bibel · Stand Juli 2026 — lebendes Dokument, wächst mit dem Stack."})]})}export{q as GuideView}; diff --git a/frontend/dist/assets/IdeenView-BpB3-RwB.js b/frontend/dist/assets/IdeenView-BpB3-RwB.js deleted file mode 100644 index 2c0f3f3..0000000 --- a/frontend/dist/assets/IdeenView-BpB3-RwB.js +++ /dev/null @@ -1,35 +0,0 @@ -import{c as R,j as e,e as S,a4 as ve,u as Se,b as De,r as d,g as z,a8 as Ke,a0 as O,L as D,X as Q,a9 as xe,I as T,a5 as he,C as Ce,T as ze,a6 as Ee,aa as pe,q as Ae,U as fe}from"./index-CUuKs_1x.js";import{S as Le,H as U}from"./SectionLabel-SQgndpwc.js";import{C as ee}from"./code-xml-DlqRSqmr.js";import{L as Pe}from"./layers-CjyCNjIs.js";import{C as X}from"./chevron-down-MK8qZkE9.js";import{R as We}from"./rotate-ccw-BtnOKhJQ.js";/** - * @license lucide-react v0.460.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=R("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Re=R("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 Be=R("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Y=R("GitFork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const me=R("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 Ie=R("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);function Oe({text:r,className:c}){const k=(r||"").split(` -`),s=[];let m=[],g=null;const h=p=>{m.length&&(s.push(e.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:m},p)),m=[])};return k.forEach((p,o)=>{const i=`l${o}`;if(g!==null){p.trimEnd()==="```"?(s.push(e.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px] leading-relaxed text-foreground/85",children:g.join(` -`)},i)),g=null):g.push(p);return}if(p.trimStart().startsWith("```")){h(i),g=[];return}const j=p.trimEnd();if(!j.trim()){h(i);return}const w=j.match(/^(#{1,4})\s+(.*)$/);if(w){h(i);const N=w[1].length,u=N===1?"text-base font-bold mt-1 mb-2":N===2?"text-sm font-bold mt-4 mb-1.5":"text-xs font-bold mt-3 mb-1 uppercase tracking-wide text-muted-foreground";s.push(e.jsx("p",{className:S(u,"font-space text-foreground"),children:F(w[2],i)},i));return}const y=j.match(/^\s*[-*•]\s+(.*)$/);if(y){m.push(e.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:F(y[1],i)},i));return}const l=j.match(/^\s*\d+\.\s+(.*)$/);if(l){m.push(e.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:F(l[1],i)},i));return}h(i),s.push(e.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:F(j,i)},i))}),h("end"),g!==null&&s.push(e.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px]",children:g.join(` -`)},"code-end")),e.jsx("div",{className:S("max-w-3xl",c),children:s})}function F(r,c){return r.split(/(\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((s,m)=>{const g=`${c}-${m}`;return/^\*\*[^*]+\*\*$/.test(s)?e.jsx("b",{className:"font-semibold text-foreground",children:s.slice(2,-2)},g):/^\*[^*]+\*$/.test(s)?e.jsx("i",{children:s.slice(1,-1)},g):/^`[^`]+`$/.test(s)?e.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-foreground/90",children:s.slice(1,-1)},g):e.jsx("span",{children:s},g)})}const Te={triage:{label:"wird ausgearbeitet …",cls:"text-violet-300 border-violet-500/40 bg-violet-500/10",spin:!0},todo:{label:"wartet",cls:"text-muted-foreground border-border/60 bg-background/30"},scheduled:{label:"geplant",cls:"text-muted-foreground border-border/60 bg-background/30"},ready:{label:"gleich dran",cls:"text-sky-300/80 border-sky-500/30 bg-sky-500/5"},running:{label:"in Arbeit …",cls:"text-sky-300 border-sky-500/40 bg-sky-500/10",spin:!0},review:{label:"im Review",cls:"text-amber-300 border-amber-500/40 bg-amber-500/10"},blocked:{label:"hängt — braucht dich",cls:"text-red-300 border-red-500/40 bg-red-500/10"},done:{label:"fertig ✓",cls:"text-emerald-300 border-emerald-500/40 bg-emerald-500/10"}},Ve={box:{label:"BOX",icon:U,cls:"border-border/60 bg-background/40 text-muted-foreground",title:"Box-Welt: die Werkstatt baut das selbst. Das Ergebnis kommt als Patch-Vorschlag zurück — nichts geht ohne deinen Klick live."},idee:{label:"IDEE",icon:O,cls:"border-sky-500/40 bg-sky-500/10 text-sky-300",title:"Nur durchdacht: die Box hat die Produkt-Idee mit voller Denk-Kaskade zu einem Konzept ausgearbeitet. Kein Gerüst, kein Bau — du liest es und entscheidest, ob ein Projekt draus wird."},projekt:{label:"IDE",icon:ee,cls:"border-violet-500/40 bg-violet-500/10 text-violet-300",title:"IDE-Welt: die Box bereitet nur vor (Konzept + Repo + Doku, kein Code). Gebaut wird von dir in der Agentic IDE."}},qe={needs_input:"Die Box hat eine Frage:",capability:"Die Box kam hier nicht weiter:",transient:"Die Aufgabe hakt:"},be="mc_ideen_quote";function ke(){try{const r=JSON.parse(localStorage.getItem(be)||"{}");return{gesendet:Number(r.gesendet)||0,geaendert:Number(r.geaendert)||0}}catch{return{gesendet:0,geaendert:0}}}function ge(r){try{const c=ke();c[r]+=1,localStorage.setItem(be,JSON.stringify(c))}catch{}}function _e(){var ie,le;const{data:r,isLoading:c}=ve(),k=Se(),{showAlert:s,showConfirm:m,dialogElement:g}=De(),[h,p]=d.useState(""),[o,i]=d.useState("denken"),[j,w]=d.useState("schlank"),[y,l]=d.useState(!1),[N,u]=d.useState(!1),L=o!=="box",V=o==="repo",[K,je]=d.useState("lxc"),[Z,te]=d.useState(!1),[v,E]=d.useState({}),[B,Ne]=d.useState(null),[H,we]=d.useState(null),[J,re]=d.useState({}),P=(r==null?void 0:r.items)??[],W=()=>k.invalidateQueries({queryKey:Ae.ideen});d.useEffect(()=>{const t=h.trim();if(t.length<12){u(!1);return}let n=!1;const x=setTimeout(async()=>{try{const f=await z("/api/ideen/einordnen",{method:"POST",body:JSON.stringify({text:t})});if(n||!(f!=null&&f.ok))return;i(f.nur_denken?"denken":f.wer==="ide"?"repo":"box"),f.tiefe&&w(f.tiefe),u(!0)}catch{}},700);return()=>{n=!0,clearTimeout(x)}},[h]);const se=B!==null&&(((ie=r==null?void 0:r.items.find(t=>t.id===B))==null?void 0:ie.status)==="triage"||((le=r==null?void 0:r.items.find(t=>t.id===B))==null?void 0:le.status)==="running"),I=Ke(B??"",se);async function ne(){const t=h.trim();if(!(t.length<3||Z)){te(!0);try{const n=t.length>160?t.slice(0,157)+"…":t;await z("/api/ideen",{method:"POST",body:JSON.stringify({titel:n,notiz:t.length>160?t:"",welt:L?"ide":"box",tiefe:V?j==="gruendlich"?"gruendlich":"simpel":"",ziel:V?K:"",art:o==="denken"?"idee":"projekt"})}),ge("gesendet"),p(""),u(!1),l(!1),W()}catch(n){s("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{te(!1)}}}function ae(t,n,x){m(`${n} fertige Karte${n===1?"":"n"} wegräumen?`,`${x} verschwindet aus der Liste. Gelöscht wird nichts — die Karten wandern ins Archiv der Queue und bleiben dort lesbar. Laufende, hängende und wartende Karten bleiben unberührt.`,async()=>{var b;const f="arch:"+(t||"*");E(a=>({...a,[f]:!0}));try{const a=await z("/api/ideen/archivieren-alle",{method:"POST",body:JSON.stringify({projekt:t})});(b=a.fehlgeschlagen)!=null&&b.length&&s("Teilweise erledigt",`${a.archiviert} weggeräumt, ${a.fehlgeschlagen.length} nicht: `+a.fehlgeschlagen.map(A=>A.titel).join(", ")),W()}catch(a){s("Das hat nicht geklappt",String((a==null?void 0:a.message)||a))}finally{E(a=>({...a,[f]:!1}))}})}async function ye(t){E(n=>({...n,[t]:!0}));try{await z("/api/ideen/archivieren",{method:"POST",body:JSON.stringify({id:t})}),W()}catch(n){s("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{E(n=>({...n,[t]:!1}))}}async function q(t,n,x,f){E(b=>({...b,[t+n]:!0}));try{await z(x,{method:"POST",body:JSON.stringify(f)}),W()}catch(b){s("Das hat nicht geklappt",String((b==null?void 0:b.message)||b))}finally{E(b=>({...b,[t+n]:!1}))}}async function oe(t){const n=(J[t]||"").trim();if(!(n.length<1||v["ans:"+t])){E(x=>({...x,["ans:"+t]:!0}));try{await z("/api/ideen/antwort",{method:"POST",body:JSON.stringify({id:t,antwort:n})}),re(x=>({...x,[t]:""})),W()}catch(x){s("Das hat nicht geklappt",String((x==null?void 0:x.message)||x))}finally{E(x=>({...x,["ans:"+t]:!1}))}}}const _=t=>{var ce,ue;const n=Te[t.status]??{label:t.status,cls:"text-muted-foreground border-border/60 bg-background/30"},x=B===t.id,f=t.status==="triage"||t.status==="running"||t.status==="done",b=t.status==="blocked",a=!!v["ans:"+t.id],A=t.status==="running"&&(t.puls_alter??0)>600,de=t.status==="todo"||t.status==="ready"||t.status==="scheduled";return e.jsxs("li",{className:S("flex flex-col gap-2 rounded-xl border bg-background/30 px-3 py-2",b?"border-red-500/30":A?"border-amber-500/40":"border-border/40"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:S("flex shrink-0 items-center gap-1.5 rounded-lg border px-2 py-0.5 text-[10px] font-bold",n.cls),children:[n.spin&&e.jsx(D,{className:"h-3 w-3 animate-spin"}),n.label]}),A&&e.jsxs("span",{className:"flex shrink-0 items-center gap-1 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[10px] font-bold text-amber-300",title:"Der Worker lebt, gibt aber kein Lebenszeichen mehr — vermutlich wartet er auf etwas, das nie kommt. „Neuer Versuch“ startet die Karte frisch.",children:[e.jsx(ze,{className:"h-3 w-3"})," ",Math.round((t.puls_alter??0)/60)," min ohne Regung"]}),(t.prio??0)!==0&&e.jsxs("span",{className:"shrink-0 rounded bg-background/50 px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground",title:"Priorität — höher kommt zuerst dran (bei gleicher Prio: Erstellzeit)",children:["P",t.prio]}),(()=>{const C=Ve[t.art||(t.welt==="ide"?"projekt":"box")];if(!C)return null;const M=C.icon;return e.jsxs("span",{className:S("flex shrink-0 items-center gap-1 rounded-lg border px-2 py-0.5 text-[10px] font-bold",C.cls),title:C.title,children:[e.jsx(M,{className:"h-3 w-3"})," ",C.label]})})(),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-foreground",title:t.titel,children:t.titel}),e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(he,{className:"h-3 w-3"}),Ee(t.erstellt)]}),de&&e.jsxs("span",{className:"flex shrink-0 items-center",children:[e.jsx("button",{disabled:!!v["pr:"+t.id],onClick:()=>q("pr:",t.id,"/api/ideen/prio",{id:t.id,richtung:"hoch"}),title:"Vorziehen (Prio +1)",className:"rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:e.jsx(Re,{className:"h-3.5 w-3.5"})}),e.jsx("button",{disabled:!!v["pr:"+t.id],onClick:()=>q("pr:",t.id,"/api/ideen/prio",{id:t.id,richtung:"runter"}),title:"Zurückstellen (Prio −1)",className:"rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:e.jsx($e,{className:"h-3.5 w-3.5"})})]}),(t.status==="running"||b)&&e.jsx("button",{disabled:!!v["rt:"+t.id],onClick:()=>m("Neuer Versuch?",t.status==="running"?`Der laufende Worker von '${t.titel.slice(0,60)}' wird beendet (samt gestarteter Test-Prozesse) und die Karte frisch gestartet. Bisheriger Zwischenstand im Workspace bleibt liegen.`:`Die Karte '${t.titel.slice(0,60)}' wird entsperrt und läuft weiter, sobald ein Platz frei ist.`,()=>q("rt:",t.id,"/api/ideen/retry",{id:t.id})),title:"Neuer Versuch — Karte frisch starten",className:S("shrink-0 rounded-md p-1 transition-colors cursor-pointer disabled:opacity-50",A?"text-amber-300 hover:text-amber-200":"text-muted-foreground/60 hover:text-foreground"),children:v["rt:"+t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(We,{className:"h-3.5 w-3.5"})}),(t.status==="running"||de||t.status==="triage")&&e.jsx("button",{disabled:!!v["st:"+t.id],onClick:()=>m("Karte stoppen?",`'${t.titel.slice(0,60)}' wird angehalten${t.status==="running"?" und der laufende Worker beendet":""}. Sie bleibt als gestoppt im Board und kann jederzeit per „Neuer Versuch“ weiterlaufen.`,()=>q("st:",t.id,"/api/ideen/stopp",{id:t.id})),title:"Stoppen — Karte anhalten",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-red-300 cursor-pointer disabled:opacity-50",children:v["st:"+t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Ie,{className:"h-3.5 w-3.5"})}),(t.status==="done"||b)&&e.jsx("button",{disabled:!!v[t.id],onClick:()=>ye(t.id),title:b?"Aufgeben und aus der Liste räumen (wandert ins Kanban-Archiv)":"Aus der Liste räumen (wandert ins Kanban-Archiv)",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:v[t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"})}),t.welt==="ide"&&(t.status==="running"||t.status==="done")&&e.jsxs("button",{onClick:()=>we(H===t.id?null:t.id),title:"Konzept ansehen (das ausgearbeitete KONZEPT.md)",className:S("flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-[10px] font-bold transition-colors cursor-pointer",H===t.id?"text-violet-300":"text-violet-300/70 hover:text-violet-200"),children:[e.jsx(pe,{className:"h-3.5 w-3.5"})," Konzept"]}),f&&e.jsx("button",{onClick:()=>Ne(x?null:t.id),title:t.status==="done"?"Ergebnis anzeigen":"Worker-Log anzeigen",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer",children:x?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"})})]}),H===t.id&&e.jsx(Ge,{id:t.id,istIdee:t.art==="idee"&&t.status==="done",onWeiter:W}),t.status==="running"&&t.notiz&&e.jsxs("p",{className:"-mt-1 ml-1 text-[11px] italic leading-relaxed text-sky-200/80",title:"Jüngste Zwischenmeldung des Workers (Heartbeat)",children:["„",t.notiz,"“"]}),(t.status==="todo"||t.status==="scheduled"||t.status==="ready")&&(((ce=t.wartet_auf)==null?void 0:ce.length)??0)>0&&e.jsxs("p",{className:"-mt-1 ml-1 text-[10px] text-muted-foreground/70",children:["→ wartet auf: ",t.wartet_auf.join(" · ")]}),b&&e.jsxs("div",{className:"space-y-2 border-t border-red-500/20 pt-2",children:[e.jsxs("p",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-red-200/90",children:[e.jsx(xe,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-300"}),e.jsxs("span",{children:[e.jsx("b",{children:qe[t.frage_kind||""]??"Die Aufgabe hängt und wartet auf dich:"})," ",t.frage?e.jsx("span",{className:"text-foreground/90",children:t.frage}):e.jsx("span",{className:"text-muted-foreground italic",children:"kein genauer Grund hinterlegt — antworte einfach mit einer Entscheidung, dann läuft sie weiter."})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:J[t.id]||"",onChange:C=>re(M=>({...M,[t.id]:C.target.value})),onKeyDown:C=>{C.key==="Enter"&&oe(t.id)},placeholder:"Deine Antwort — die Box macht damit weiter",maxLength:2e3,className:"h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/60 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-red-400/50 focus:outline-none"}),e.jsxs("button",{onClick:()=>oe(t.id),disabled:a||(J[t.id]||"").trim().length<1,className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-emerald-500/40 bg-emerald-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-emerald-300 transition-all hover:bg-emerald-500/20 cursor-pointer disabled:opacity-50",children:[a?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(me,{className:"h-3.5 w-3.5"})," Antworten & weiter"]})]})]}),x&&f&&t.status!=="done"&&e.jsx("div",{className:"ml-2 -mt-1",children:e.jsx("div",{className:"rounded-lg border border-border/50 bg-background/50 p-2",children:se&&I.isLoading?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Log wird geladen …"}):I.error?e.jsx("p",{className:"text-[10px] text-red-400",children:"Log nicht ladbar"}):(ue=I.data)!=null&&ue.available&&I.data.lines.length>0?e.jsx("pre",{className:"max-h-64 overflow-auto font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap",children:I.data.lines.join(` -`)}):e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Kein Log verfügbar"})})}),x&&t.status==="done"&&e.jsx(He,{id:t.id})]},t.id)};return r&&!r.available?null:e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Le,{icon:O,children:(()=>{if(!r)return"Ideen-Queue";const t=x=>P.filter(f=>x.includes(f.status)).length,n=[t(["blocked"])>0?`${t(["blocked"])} braucht dich`:"",t(["running","triage","review"])>0?`${t(["running","triage","review"])} in Arbeit`:"",t(["todo","scheduled","ready"])>0?`${t(["todo","scheduled","ready"])} wartet`:"",t(["done"])>0?`${t(["done"])} fertig`:""].filter(Boolean);return n.length?n.join(" · "):"noch nichts in der Queue"})()}),(()=>{const t=P.filter(n=>n.status==="done").length;return t===0?null:e.jsxs("button",{disabled:!!v["arch:*"],onClick:()=>ae("",t,`Alle ${t} fertigen Karten`),title:"Räumt ALLE fertigen Karten weg — auch die in abgeschlossenen Projekt-Ketten. Laufende, hängende und wartende bleiben unberührt.",className:"flex shrink-0 items-center gap-1.5 rounded-lg border border-border/60 px-2.5 py-1 text-[11px] font-semibold text-muted-foreground transition-all hover:border-primary/40 hover:text-foreground disabled:opacity-50 cursor-pointer",children:[v["arch:*"]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"}),t," fertige wegräumen"]})})()]}),e.jsxs("div",{className:"mc-card p-4 space-y-4",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:h,onChange:t=>{p(t.target.value),u(!1)},onKeyDown:t=>{t.key==="Enter"&&ne()},placeholder:"Was soll entstehen?",className:"h-10 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/50 px-3 text-sm text-foreground placeholder:text-muted-foreground/50 focus:border-primary/50 focus:outline-none"}),e.jsxs("button",{onClick:ne,disabled:Z||h.trim().length<3,className:"flex h-10 shrink-0 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-4 text-xs font-semibold text-primary transition-all hover:bg-primary/20 disabled:opacity-40 cursor-pointer",children:[Z?e.jsx(D,{className:"h-4 w-4 animate-spin"}):e.jsx(me,{className:"h-4 w-4"}),"Los"]})]}),y?e.jsxs("div",{className:"space-y-3 rounded-xl border border-border/40 bg-background/20 p-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-1.5 text-[11px] text-muted-foreground/70",children:"Wer baut das?"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsx(G,{aktiv:o!=="box",onWahl:()=>i(o==="box"?"denken":o),k:{id:"ide",icon:ee,titel:"Ich, in der Agentic IDE",text:"Du bekommst Konzept und Repo — den Code schreibst du selbst."}}),e.jsx(G,{aktiv:o==="box",onWahl:()=>i("box"),k:{id:"box",icon:U,titel:"Die Box, allein",text:"Für dein Heimlabor. Das Ergebnis kommt als Patch-Vorschlag ins Auftragsbuch."}})]})]}),o!=="box"&&e.jsxs("div",{className:"border-l-2 border-primary/40 pl-3",children:[e.jsx("p",{className:"mb-1.5 text-[11px] text-muted-foreground/70",children:"Und wie startest du?"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsx(G,{aktiv:o==="denken",onWahl:()=>i("denken"),k:{id:"denken",icon:O,titel:"Erst durchdenken",text:"Konzept zuerst — auf dein Ja wird ein Repo daraus."}}),e.jsx(G,{aktiv:o==="repo",onWahl:()=>i("repo"),k:{id:"repo",icon:Y,titel:"Direkt ein Repo",text:"Konzept und Gitea-Repo in einem Zug."}})]}),o==="repo"?e.jsxs("div",{className:"mt-2.5 flex flex-wrap items-center gap-x-3 gap-y-2",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Wie gründlich?"}),e.jsx("div",{className:"flex rounded-lg border border-border/60 p-0.5",children:[["schlank","schlank"],["gruendlich","gründlich"]].map(([t,n])=>e.jsx("button",{onClick:()=>w(t),className:S("rounded px-2.5 py-1 text-[10px] font-bold uppercase tracking-wide transition-all cursor-pointer",j===t?"bg-primary/15 text-primary":"text-muted-foreground/60 hover:text-foreground"),children:n},t))}),e.jsxs("span",{className:"ml-auto flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Läuft als"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:[["lxc","LXC"],["docker","Docker"]].map(([t,n])=>e.jsx("button",{onClick:()=>je(t),title:t==="lxc"?"Dienst in einem eigenen Proxmox-LXC (systemd, kein Docker). Wird vom Backup-Server mitgesichert.":"Natives Docker: Dockerfile + compose, portabel und pipeline-tauglich.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",K===t?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:n},t))})]})]}):e.jsxs("p",{className:"mt-2 flex items-start gap-1.5 text-[10px] leading-relaxed text-muted-foreground/60",children:[e.jsx(xe,{className:"mt-px h-3 w-3 shrink-0"}),'Wie gründlich und wo es läuft, fragt die Box erst beim „gefällt mir" — dann weißt du mehr.']})]}),(()=>{const t=ke();return t.gesendet<3?null:e.jsxs("p",{className:"border-t border-border/30 pt-2 text-[10px] text-muted-foreground/50",children:["Du hast ",t.geaendert," von ",t.gesendet," Vorschlägen geändert. Wird das die Regel, bauen wir hier einen richtigen Schritt-für-Schritt-Assistenten."]})})()]}):e.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-border/40 bg-background/20 px-3 py-2.5 text-xs",children:[o==="box"?e.jsx(U,{className:"h-4 w-4 shrink-0 text-primary"}):o==="repo"?e.jsx(Y,{className:"h-4 w-4 shrink-0 text-primary"}):e.jsx(O,{className:"h-4 w-4 shrink-0 text-primary"}),!N&&e.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wider text-muted-foreground/50",children:"Voreingestellt"}),e.jsx("span",{className:"text-muted-foreground",children:o==="box"?"Ich baue das selbst und lege dir das Ergebnis als Vorschlag hin.":o==="repo"?"Du baust selbst — ich lege dir Konzept und Repo an.":"Du baust selbst — ich arbeite erst ein Konzept aus."}),N&&e.jsx("span",{className:"shrink-0 rounded border border-primary/40 bg-primary/10 px-1.5 py-0.5 text-[10px] font-bold text-primary",children:"gelesen"}),e.jsx("button",{onClick:()=>{l(!0),ge("geaendert")},className:"ml-auto shrink-0 text-[11px] text-muted-foreground/60 underline underline-offset-2 transition-colors hover:text-foreground cursor-pointer",children:"anders"})]}),c&&e.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"})," Queue wird geladen …"]}),(r==null?void 0:r.fehler)&&e.jsx("p",{className:"text-xs text-amber-300",children:"Queue gerade nicht lesbar — neuer Versuch läuft."}),P.length>0&&e.jsxs("div",{className:"space-y-3",children:[((r==null?void 0:r.projekte)??[]).map(t=>e.jsx(Fe,{projekt:t,karten:P.filter(n=>n.projekt===t.key),zeile:_,onArchivAlle:ae,raeumt:!!v["arch:"+t.key]},t.key)),(()=>{const t=new Set(((r==null?void 0:r.projekte)??[]).map(a=>a.key)),n=P.filter(a=>!a.projekt||!t.has(a.projekt));if(n.length===0)return null;const x=n.filter(a=>$[a.status]!==void 0).sort((a,A)=>$[a.status]-$[A.status]||(a.erstellt??0)-(A.erstellt??0)),f=n.filter(a=>["todo","scheduled"].includes(a.status)),b=n.filter(a=>a.status==="done");return e.jsxs("div",{className:"space-y-2",children:[x.length>0&&e.jsx("ul",{className:"space-y-1.5",children:x.map(a=>_(a))}),f.length>0&&e.jsxs("details",{className:"group",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 py-1 text-[11px] text-muted-foreground/70 hover:text-foreground",children:[e.jsx(T,{className:"h-3 w-3 transition-transform group-open:rotate-90"}),e.jsx(he,{className:"h-3 w-3"})," Wartet (",f.length,")"]}),e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:f.map(a=>_(a))})]}),b.length>0&&e.jsxs("details",{className:"group",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 py-1 text-[11px] text-muted-foreground/70 hover:text-foreground",children:[e.jsx(T,{className:"h-3 w-3 transition-transform group-open:rotate-90"}),e.jsx(Ce,{className:"h-3 w-3 text-emerald-400/70"})," Fertig (",b.length,")"]}),e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:b.map(a=>_(a))})]})]})})()]}),(r==null?void 0:r.available)&&!c&&P.length===0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground/70",children:"Noch nichts hier. Zum Beispiel:"}),["Ein kleines Werkzeug, das meine Fotos nach Aufnahmedatum in Ordner sortiert","Rippy soll die Untertitel-Spur automatisch auswählen statt zu fragen","Lohnt sich ein Dashboard für die Stromzähler, oder reicht Home Assistant?"].map(t=>e.jsxs("button",{onClick:()=>p(t),className:"flex w-full items-center gap-2 rounded-lg border border-border/40 bg-background/20 px-3 py-2 text-left text-xs text-muted-foreground transition-all hover:border-primary/40 hover:text-foreground cursor-pointer",children:[e.jsx(O,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground/50"}),t]},t))]})]}),g]})}function G({k:r,aktiv:c,onWahl:k}){return e.jsxs("button",{onClick:k,className:S("rounded-xl border p-3 text-left transition-all cursor-pointer",c?"border-primary/60 bg-primary/5":"border-border/50 hover:border-border"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(r.icon,{className:S("h-4 w-4 shrink-0",c?"text-primary":"text-muted-foreground")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:r.titel})]}),e.jsx("p",{className:"mt-1 text-[11px] leading-relaxed text-muted-foreground",children:r.text})]})}const $={blocked:0,running:1,review:2,ready:3,triage:4};function Fe({projekt:r,karten:c,zeile:k,onArchivAlle:s,raeumt:m}){const[g,h]=d.useState(!1),[p,o]=d.useState(!1),i=c.filter(l=>$[l.status]!==void 0).sort((l,N)=>$[l.status]-$[N.status]||(l.erstellt??0)-(N.erstellt??0)),j=c.filter(l=>l.status==="todo"||l.status==="scheduled").sort((l,N)=>{var u,L;return((u=l.wartet_auf)!=null&&u.length?1:0)-((L=N.wartet_auf)!=null&&L.length?1:0)||(l.erstellt??0)-(N.erstellt??0)}),w=c.filter(l=>l.status==="done").sort((l,N)=>(N.fertig??0)-(l.fertig??0)),y=r.gesamt>0?Math.round(r.fertig/r.gesamt*100):0;return e.jsxs("div",{className:"space-y-2 rounded-xl border border-border/50 bg-background/20 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Pe,{className:"h-4 w-4 shrink-0 text-primary/70"}),e.jsx("p",{className:"min-w-0 flex-1 truncate text-xs font-semibold text-foreground",title:r.titel,children:r.titel}),e.jsxs("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:[r.fertig," von ",r.gesamt," fertig"]})]}),e.jsx("div",{className:"h-1 overflow-hidden rounded-full bg-background/60",title:`${y}%`,children:e.jsx("div",{className:"h-1 rounded-full bg-primary/70 transition-all",style:{width:`${y}%`}})}),i.length>0&&e.jsx("ul",{className:"space-y-1.5",children:i.map(l=>k(l))}),j.length>0&&e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>h(l=>!l),className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[g?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"}),j.length," Karte",j.length===1?"":"n"," in der Kette — laufen automatisch der Reihe nach"]}),g&&e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:j.map(l=>k(l))})]}),w.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>o(l=>!l),className:"flex items-center gap-1.5 text-[11px] font-semibold text-emerald-300/70 hover:text-emerald-300 transition-colors cursor-pointer",children:[p?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"}),w.length," fertig"]}),s&&e.jsxs("button",{disabled:m,onClick:()=>s(r.key,w.length,`„${r.titel}"`),title:"Räumt die fertigen Karten dieser Kette weg (Archiv, nichts wird gelöscht).",className:"flex items-center gap-1 text-[11px] text-muted-foreground/60 transition-colors hover:text-foreground disabled:opacity-50 cursor-pointer",children:[m?e.jsx(D,{className:"h-3 w-3 animate-spin"}):e.jsx(Q,{className:"h-3 w-3"}),"wegräumen"]})]}),p&&e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:w.map(l=>k(l))})]})]})}function Ge({id:r,istIdee:c,onWeiter:k}){const[s,m]=d.useState(null),[g,h]=d.useState(!1),[p,o]=d.useState(0);return d.useEffect(()=>{let i=!1;return m(null),h(!1),z(`/api/ideen/${r}/konzept`).then(j=>{i||m(j)}).catch(()=>{i||h(!0)}),()=>{i=!0}},[r,p]),e.jsx("div",{className:"ml-2 -mt-1",children:e.jsxs("div",{className:"rounded-lg border border-violet-500/25 bg-violet-500/[0.04] p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-wide text-violet-300",children:[e.jsx(pe,{className:"h-3 w-3"})," Konzept"]}),(s==null?void 0:s.repo)&&e.jsxs("a",{href:`https://git.tobisniceshomelab.ddnsfree.com/${s.repo}`,className:"flex items-center gap-1 text-[10px] text-violet-300/70 hover:text-violet-200",children:[e.jsx(Y,{className:"h-3 w-3"})," ",s.repo]}),!(s!=null&&s.repo)&&(s==null?void 0:s.quelle)==="datei"&&e.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/70",title:"Der Worker hat kein Repo angelegt — das Konzept liegt als Datei auf der Box.",children:s.pfad}),e.jsx("button",{onClick:()=>o(i=>i+1),title:"Neu laden",className:"ml-auto rounded p-0.5 text-muted-foreground/50 hover:text-foreground cursor-pointer",children:e.jsx(fe,{className:"h-3 w-3"})})]}),g?e.jsx("p",{className:"text-[11px] text-red-400",children:"Konzept nicht ladbar — später nochmal versuchen."}):s===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Konzept wird geladen …"}):s.konzept?e.jsx("div",{className:"max-h-[28rem] overflow-y-auto pr-1",children:e.jsx(Oe,{text:s.konzept})}):e.jsx("p",{className:"text-[11px] text-muted-foreground italic",children:s.error||"Noch kein Konzept — das Projekt wird gerade vorbereitet."}),c&&(s==null?void 0:s.konzept)&&e.jsx(Ze,{id:r,onFertig:k})]})})}function Ze({id:r,onFertig:c}){const[k,s]=d.useState("lxc"),[m,g]=d.useState("simpel"),[h,p]=d.useState(!1),[o,i]=d.useState(null),[j,w]=d.useState(""),[y,l]=d.useState(""),N=async(u,L,V)=>{p(!0),w("");try{const K=await z(u,{method:"POST",body:JSON.stringify(L)});i({id:K.id,art:V}),c==null||c()}catch(K){w(String((K==null?void 0:K.message)||K))}finally{p(!1)}};return o?e.jsx("p",{className:"mt-3 border-t border-violet-500/20 pt-2 text-[11px] text-emerald-300",children:o.art==="projekt"?e.jsxs(e.Fragment,{children:["Projekt-Karte ",e.jsx("span",{className:"font-mono",children:o.id})," ist angelegt — die Box bereitet das Repo vor (Konzept übernimmt sie, sie denkt es nicht neu). Danach öffnest du es in der Agentic IDE."]}):e.jsxs(e.Fragment,{children:["Überarbeitung ",e.jsx("span",{className:"font-mono",children:o.id}),' läuft — die Box arbeitet deine Rückmeldung ein und schreibt die neue Fassung an dieselbe Stelle. Danach hier wieder „Konzept" öffnen.']})}):e.jsxs("div",{className:"mt-3 space-y-3 border-t border-violet-500/20 pt-2.5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[e.jsx("b",{className:"text-sky-300/90",children:"Passt etwas nicht?"})," Schreib hin, was anders werden soll — die Box arbeitet es ein und lässt den Rest stehen. Beliebig oft wiederholbar."]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:y,onChange:u=>l(u.target.value),onKeyDown:u=>{u.key==="Enter"&&y.trim().length>=3&&!h&&N("/api/ideen/nachschaerfen",{id:r,hinweis:y},"runde")},placeholder:"z. B. „Punkt 3: kein WebSocket, das ist mir zu fragil — nimm Polling“",maxLength:2e3,className:"h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/60 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-sky-400/50 focus:outline-none"}),e.jsxs("button",{onClick:()=>N("/api/ideen/nachschaerfen",{id:r,hinweis:y},"runde"),disabled:h||y.trim().length<3,className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-sky-500/40 bg-sky-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-sky-300 transition-all hover:bg-sky-500/20 cursor-pointer disabled:opacity-50",children:[h?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(fe,{className:"h-3.5 w-3.5"}),"Nachschärfen"]})]})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[e.jsx("b",{className:"text-violet-300/90",children:"Passt es so?"})," Dann macht die Box daraus ein startklares Repo — Konzept wird übernommen (nicht neu gedacht), dazu Roadmap, AGENTS.md & Co. Gebaut wird danach von dir in der Agentic IDE."]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Ziel"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:["lxc","docker"].map(u=>e.jsx("button",{onClick:()=>s(u),title:u==="lxc"?"Dienst in einem eigenen Proxmox-LXC (systemd, kein Docker) — wird automatisch mitgesichert.":"Natives Docker: Dockerfile + compose, portabel und pipeline-tauglich.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",k===u?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:u==="lxc"?"LXC":"Docker"},u))}),e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Aufwand"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:["simpel","gruendlich"].map(u=>e.jsx("button",{onClick:()=>g(u),title:u==="simpel"?"Konzept ist schon gehärtet — nur kurz auf die Bau-Sicht nachschärfen (empfohlen).":"Nochmal volle Kaskade über die Bau-Sicht: mehrere Rollen, Härtetests. Dauert entsprechend.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",m===u?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:u==="simpel"?"schlank":"gründlich"},u))}),e.jsxs("button",{onClick:()=>N("/api/ideen/weiterfuehren",{id:r,ziel:k,tiefe:m},"projekt"),disabled:h,className:"ml-auto flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-violet-500/40 bg-violet-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-violet-300 transition-all hover:bg-violet-500/20 cursor-pointer disabled:opacity-50",children:[h?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ee,{className:"h-3.5 w-3.5"}),"Gefällt mir — Projekt daraus machen"]})]}),j&&e.jsx("p",{className:"text-[11px] text-red-400",children:j})]})}function He({id:r}){const[c,k]=d.useState(null),[s,m]=d.useState(!1),[g,h]=d.useState(0);d.useEffect(()=>{let o=!1;return m(!1),k(null),z(`/api/ideen/${r}/ergebnis`).then(i=>{o||k(i)}).catch(()=>{o||m(!0)}),()=>{o=!0}},[r,g]);const p=c?c.summary||c.result:"";return e.jsx("div",{className:"ml-2 -mt-1",children:e.jsxs("div",{className:"rounded-lg border border-emerald-500/25 bg-emerald-500/5 p-2.5",children:[e.jsxs("p",{className:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-wide text-emerald-300",children:[e.jsx(Be,{className:"h-3 w-3"})," Ergebnis des Workers"]}),s?e.jsx("button",{type:"button",onClick:()=>h(o=>o+1),className:"text-[10px] text-red-400 underline decoration-dotted underline-offset-2 hover:text-red-300",children:"Ergebnis nicht ladbar — nochmal versuchen"}):c===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Wird geladen …"}):p?e.jsx("p",{className:"max-h-64 overflow-y-auto whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:p}):e.jsx("p",{className:"text-[10px] text-muted-foreground italic",children:"Der Worker hat keine Abschluss-Zusammenfassung hinterlassen (ältere Karte oder Protokollverstoß)."})]})})}function et(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Ideen"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Schreib hin, was entstehen soll. Die Box liest mit und schlägt vor, wie es weitergeht — ändern kannst du das immer."})]}),e.jsx(_e,{})]})}export{et as IdeenView}; diff --git a/frontend/dist/assets/KonsoleView-BJCYPWry.js b/frontend/dist/assets/KonsoleView-BJCYPWry.js deleted file mode 100644 index db6ba44..0000000 --- a/frontend/dist/assets/KonsoleView-BJCYPWry.js +++ /dev/null @@ -1 +0,0 @@ -import{K as b,u as f,N as h,r as d,j as e,e as c,M as g,T as p,U as j,V as N,g as v,Y as w,q as x}from"./index-CUuKs_1x.js";function y(){const{data:s}=b(),m=f(),r=s!=null&&s.box_console_url?h(s.box_console_url):void 0,a=s==null?void 0:s.box_console_reachable,[l,o]=d.useState(!1),[i,n]=d.useState("");async function u(){o(!0),n("");try{const t=await v("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:"box-console"})});n(t.ok?"Neu gestartet — einen Moment, dann lädt das Terminal.":`Fehlgeschlagen: ${t.err||"Unbekannter Fehler"}`),w(m,x.agentStatus,x.services)}catch(t){n(`Fehlgeschlagen: ${(t==null?void 0:t.message)||t}`)}finally{o(!1)}}return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Konsole"}),e.jsx("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:"Direkte Shell auf der Box — wie ein SSH-Fenster, mitten im Browser."})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground",children:[e.jsx("span",{className:c("h-2 w-2 rounded-full",a?"bg-emerald-500 animate-pulse":"bg-amber-500")}),a?"online":"offline"]}),r&&e.jsxs("a",{href:r,target:"_blank",rel:"noopener",className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-background/20 px-3 text-xs font-semibold text-muted-foreground transition-all hover:border-primary/50 hover:text-foreground",children:[e.jsx(g,{className:"h-3.5 w-3.5"})," In neuem Tab"]})]})]}),r?e.jsxs("div",{className:"relative min-h-[58vh] flex-1 overflow-hidden rounded-2xl border border-border/60 bg-black/50 shadow-lg shadow-black/25",children:[a===!1&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-black/70 text-center",children:[e.jsx(p,{className:"h-8 w-8 text-amber-400"}),e.jsx("div",{className:"text-sm font-semibold text-amber-300",children:"Konsole nicht erreichbar"}),e.jsxs("p",{className:"max-w-sm text-[11px] leading-normal text-muted-foreground",children:["Der Terminal-Dienst (",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),") läuft gerade nicht."]}),e.jsxs("button",{onClick:u,disabled:l,className:"flex h-9 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-4 text-[11px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[e.jsx(j,{className:c("h-3.5 w-3.5",l&&"animate-spin")})," Dienst neu starten"]}),i&&e.jsx("p",{className:"max-w-sm text-[11px] text-muted-foreground",children:i})]}),e.jsx("iframe",{src:r,title:"Box-Konsole",className:"h-full w-full border-0",style:{minHeight:"58vh"}})]}):e.jsxs("div",{className:"flex min-h-[58vh] flex-1 items-center justify-center rounded-2xl border border-border/60 bg-background/20 text-xs text-muted-foreground",children:[e.jsx(N,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{y as KonsoleView}; diff --git a/frontend/dist/assets/ModelsView-vX0ckGpG.js b/frontend/dist/assets/ModelsView-vX0ckGpG.js deleted file mode 100644 index 7615863..0000000 --- a/frontend/dist/assets/ModelsView-vX0ckGpG.js +++ /dev/null @@ -1,83 +0,0 @@ -import{c as E,u as oe,a as Fe,b as ge,j as e,f as ue,d as Re,e as w,g as K,q as T,h as Ie,r as N,C as Y,L as Pe,i as Te,B as le,k as Oe,E as Be,l as de,m as $e,n as Ge,o as He,p as ee,X as pe,H as fe,T as re,s as Qe,t as Ue,v as V,w as Ve,S as ye,x as We,P as Ze,y as Je,z as Xe,A as Ye}from"./index-CUuKs_1x.js";import{C as et}from"./code-xml-DlqRSqmr.js";import{R as tt}from"./rotate-ccw-BtnOKhJQ.js";import{C as he,Z as ie,L as rt,a as st}from"./zap-iWjc7Axa.js";import{C as De}from"./chevron-down-MK8qZkE9.js";import{L as nt}from"./layers-CjyCNjIs.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const at=E("BrainCircuit",[["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:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["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:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ot=E("BrainCog",[["path",{d:"M12 5a3 3 0 1 0-5.997.142 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588 4 4 0 0 0 7.636 2.106 3.2 3.2 0 0 0 .164-.546c.028-.13.306-.13.335 0a3.2 3.2 0 0 0 .163.546 4 4 0 0 0 7.636-2.106 4 4 0 0 0 .556-6.588 4 4 0 0 0-2.526-5.77A3 3 0 1 0 12 5",key:"1kgmhc"}],["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"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m15.7 10.4-.9.4",key:"ayzo6p"}],["path",{d:"m9.2 13.2-.9.4",key:"1uzb3g"}],["path",{d:"m13.6 15.7-.4-.9",key:"11ifqf"}],["path",{d:"m10.8 9.2-.4-.9",key:"1pmk2v"}],["path",{d:"m15.7 13.5-.9-.4",key:"7ng02m"}],["path",{d:"m9.2 10.9-.9-.4",key:"1x66zd"}],["path",{d:"m10.5 15.7.4-.9",key:"3js94g"}],["path",{d:"m13.1 9.2.4-.9",key:"18n7mc"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ee=E("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ne=E("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 lt=E("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dt=E("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const it=E("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ct=E("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 xt=E("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mt=E("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 ut=E("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qe=E("Scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pt=E("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ht=E("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bt=E("Telescope",[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]);/** - * @license lucide-react v0.460.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=E("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"}]]);function ft(){const t=oe(),{data:r=[]}=Fe(),{showAlert:b,dialogElement:n}=ge();async function x(d){try{await K(`/api/jobs/${d}/cancel`,{method:"POST"}),t.invalidateQueries({queryKey:T.jobs})}catch(S){b("Fehler",S.message)}}const M=r.filter(d=>d.state==="running"||d.state==="queued"),v=r.filter(d=>d.state!=="running"&&d.state!=="queued").slice(-3);return M.length===0&&v.length===0?null:e.jsxs("div",{className:"space-y-3 mc-card p-4",children:[e.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),M.map(d=>e.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[e.jsxs("div",{className:"flex justify-between items-center text-xs",children:[e.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:d.label}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"text-muted-foreground font-mono",children:[d.progress??0,"% • ",ue(d.done_bytes),"/",ue(d.total_bytes),d.eta_s?` • ETA ${Re(d.eta_s)}`:""]}),e.jsx("button",{onClick:()=>x(d.id),className:"text-[10px] text-red-400 hover:text-red-300 font-semibold border border-red-500/25 bg-red-500/5 px-2 py-0.5 rounded transition-all cursor-pointer",children:"Abbrechen"})]})]}),e.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:e.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${d.progress??0}%`}})})]},d.id)),v.map(d=>e.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[e.jsx("span",{className:"truncate",children:d.label}),e.jsx("span",{className:w("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",d.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:d.state})]},d.id)),n]})}const yt=["fast","heavy","heavy_chars"],jt=["coder_lite","coder","coding_escalate_chars"];function vt(){const t=oe(),{data:r,isLoading:b}=Ie(),[n,x]=N.useState(null),[M,v]=N.useState(!1),[d,S]=N.useState(""),[g,z]=N.useState(0);if(N.useEffect(()=>{r!=null&&r.policy&&!n&&x({...r.policy})},[r,n]),b||!r||!n)return e.jsx("div",{className:"mc-card p-5 text-xs text-muted-foreground",children:"Lade Routing-Policy…"});const m=s=>r.fields.find(o=>o.key===s),f=Object.keys(n).some(s=>n[s]!==r.policy[s]),h=(s,o)=>{x(i=>i&&{...i,[s]:o}),S("")},c=s=>h(s,r.defaults[s]);async function L(){if(!n)return;const s={};for(const o of Object.keys(n))n[o]!==r.policy[o]&&(s[o]=n[o]);if(Object.keys(s).length!==0){v(!0),S("");try{const{policy:o}=await Te(s);x({...o}),t.invalidateQueries({queryKey:T.routingPolicy}),t.invalidateQueries({queryKey:T.routing}),z(Date.now()),setTimeout(()=>z(0),2e3)}catch(o){S(o.message||String(o))}finally{v(!1)}}}function B({k:s}){const o=m(s),i=n[s],$=n[s]===r.defaults[s];return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("label",{className:"text-[10px] font-semibold text-muted-foreground",children:o.label}),!$&&e.jsxs("button",{onClick:()=>c(s),className:"flex items-center gap-0.5 text-[9px] text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",title:`Auf Default zurücksetzen (${String(r.defaults[s])||"leer"})`,children:[e.jsx(tt,{className:"h-2.5 w-2.5"})," Default"]})]}),o.type==="bool"?e.jsxs("button",{onClick:()=>h(s,!i),className:w("flex h-8 w-full items-center justify-between rounded-lg border px-3 text-[11px] font-semibold transition-all cursor-pointer",i?"border-emerald-500/40 bg-emerald-500/10 text-emerald-300":"border-border/40 bg-background/40 text-muted-foreground"),children:[e.jsx("span",{children:i?"An":"Aus"}),e.jsx("span",{className:w("h-3.5 w-3.5 rounded-full transition-colors",i?"bg-emerald-400":"bg-muted-foreground/40")})]}):o.type==="int"?e.jsx("input",{type:"number",value:i,min:o.min,max:o.max,"aria-label":o.label,onChange:A=>h(s,Number(A.target.value)),className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 px-3 font-mono text-[11px] text-foreground outline-none focus:border-primary/50"}):e.jsx("input",{type:"text",value:i,"aria-label":o.label,spellCheck:!1,placeholder:s==="coder_lite"?"(leer = aus)":"",onChange:A=>h(s,A.target.value),className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 px-3 font-mono text-[11px] text-foreground outline-none focus:border-primary/50"})]})}return e.jsxs("div",{className:"mc-card p-5 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pt,{className:"h-4.5 w-4.5 text-primary"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"Lane-Routing & Policy"}),e.jsx("span",{className:"text-[9px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-300 border border-emerald-500/20",children:"hot-reload"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[d&&e.jsx("span",{className:"text-[10px] text-red-400 max-w-[280px] truncate",title:d,children:d}),g>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-emerald-400",children:[e.jsx(Y,{className:"h-3.5 w-3.5"})," gespeichert"]}),e.jsxs("button",{onClick:L,disabled:!f||M,className:w("h-8 px-4 rounded-lg text-[10px] font-bold uppercase tracking-wide transition-all flex items-center gap-1.5",f&&!M?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer shadow-md shadow-primary/10":"bg-background/40 text-muted-foreground/50 border border-border/40 cursor-not-allowed"),children:[M?e.jsx(Pe,{className:"h-3.5 w-3.5 animate-spin"}):null,"Speichern"]})]})]}),e.jsxs("p",{className:"text-[10px] text-muted-foreground/70 leading-relaxed -mt-1",children:["Welches echte Modell hinter den virtuellen Lanes ",e.jsx("code",{className:"text-cyan-300",children:"chat"})," und"," ",e.jsx("code",{className:"text-cyan-300",children:"coding"})," steckt. Änderungen greifen sofort (kein Neustart). Die Keyword-Heuristiken bleiben im Code."]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-border/30 pb-2",children:[e.jsx(ct,{className:"h-4 w-4 text-teal-400"}),e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-foreground",children:"chat"}),e.jsx("span",{className:"text-[9px] text-muted-foreground/60 font-mono",children:"(= auto)"})]}),yt.map(s=>e.jsx(B,{k:s},s))]}),e.jsxs("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-border/30 pb-2",children:[e.jsx(et,{className:"h-4 w-4 text-indigo-400"}),e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-foreground",children:"coding"}),e.jsx("span",{className:"text-[9px] text-muted-foreground/60 font-mono",children:"(agentisch → immer Coder)"})]}),jt.map(s=>e.jsx(B,{k:s},s))]})]}),e.jsx("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4",children:e.jsx("div",{className:"max-w-xs",children:e.jsx(B,{k:"fast_no_think"})})})]})}const je=[{role:"hermes",label:"Lucys Hirn",short:"Hirn",icon:le,desc:"Lucys Alltags-Verstand — denkt und redet mit dir. Immer bereit.",tone:"bg-indigo-500/15 text-indigo-400 border-indigo-500/25",protected:!0},{role:"embed",label:"Lucys Gedächtnis",short:"Gedächtnis",icon:Oe,desc:"Merkt sich Wichtiges und findet es später wieder.",tone:"bg-emerald-500/15 text-emerald-400 border-emerald-500/25",protected:!0},{role:"reranker",label:"Gedächtnis-Sortierer",short:"Sortierer",icon:it,desc:"Ordnet gefundene Erinnerungen nach echter Relevanz — die Feinsortierung hinter dem Gedächtnis.",tone:"bg-lime-500/15 text-lime-400 border-lime-500/25"},{role:"vision",label:"Lucys Augen",short:"Augen",icon:Be,desc:"Sieht Bilder und Screenshots und beschreibt, was drauf ist.",tone:"bg-pink-500/15 text-pink-400 border-pink-500/25"},{role:"heavy",label:"Großes Hirn",short:"Groß",icon:ot,desc:"Das schwere Geschütz — wird für besonders knifflige Fragen dazugeholt.",tone:"bg-amber-500/15 text-amber-400 border-amber-500/25"},{role:"coder-lite",label:"Programmierer (schnell)",short:"Code schnell",icon:he,desc:"Schnelles Programmieren im Alltag.",tone:"bg-violet-500/15 text-violet-400 border-violet-500/25"},{role:"coder",label:"Programmierer",short:"Code",icon:he,desc:"Baut und plant. Der Kopf der Coding-Mannschaft — er hält den Faden und verteilt Zuarbeit.",tone:"bg-fuchsia-500/15 text-fuchsia-400 border-fuchsia-500/25",protected:!0},{role:"scout",label:"Späher",short:"Späher",icon:bt,desc:"Schneller erster Blick und grobe Einschätzung.",tone:"bg-teal-500/15 text-teal-400 border-teal-500/25"},{role:"kritiker",label:"Kritiker",short:"Kritiker",icon:qe,desc:"Liest dem Programmierer nach jeder Etappe gegen — bewusst aus einer FREMDEN Modellfamilie (Mistral statt Qwen), damit er andere blinde Flecken hat.",tone:"bg-cyan-500/15 text-cyan-400 border-cyan-500/25"}];je.map(t=>t.role);const Ne=Object.fromEntries(je.map(t=>[t.role,t])),ke=t=>({role:t||"?",label:t||"unbekannt",short:t||"?",icon:le,desc:"Rolle ohne hinterlegten Klartext-Namen.",tone:"bg-slate-500/15 text-slate-300 border-slate-500/25"}),Nt={fast:"hermes",coder_lite:"coder-lite"};function F(t){return t&&(Ne[t]||Ne[Nt[t]])||ke(t)}function be({role:t,dense:r=!1,className:b}){const n=F(t),x=n.icon;return e.jsxs("span",{className:w("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-semibold border tracking-wide",n.tone,b),title:`${n.desc} (${n.role})`,children:[e.jsx(x,{className:"h-3 w-3 shrink-0","aria-hidden":"true"}),r?n.short:n.label]})}function kt({fit:t}){const r={perfect:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/20",marginal:"bg-amber-500/15 text-amber-400 border border-amber-500/20",too_tight:"bg-red-500/15 text-red-400 border border-red-500/20"}[t.level];return e.jsxs("span",{className:w("rounded px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider font-mono",r),children:[t.text," • ",t.req_gb," GB RAM"]})}function Ke(t){const r=t.toLowerCase();return r.includes("qwen")?{name:"Qwen",color:"bg-purple-500/20 text-purple-300 border-purple-500/30",initial:"Q"}:r.includes("gemma")?{name:"Gemma",color:"bg-blue-500/20 text-blue-300 border-blue-500/30",initial:"G"}:r.includes("llama")?{name:"Llama",color:"bg-red-500/20 text-red-300 border-red-500/30",initial:"🦙"}:r.includes("mistral")||r.includes("mixtral")?{name:"Mistral",color:"bg-orange-500/20 text-orange-300 border-orange-500/30",initial:"M"}:r.includes("deepseek")?{name:"DeepSeek",color:"bg-cyan-500/20 text-cyan-300 border-cyan-500/30",initial:"D"}:r.includes("hermes")||r.includes("nous")?{name:"Hermes",color:"bg-amber-500/20 text-amber-300 border-amber-500/30",initial:"H"}:r.includes("phi")?{name:"Phi",color:"bg-emerald-500/20 text-emerald-300 border-emerald-500/30",initial:"Φ"}:{name:"Other",color:"bg-slate-500/20 text-slate-300 border-slate-500/30",initial:"AI"}}function wt(){var te,H,G;const t=oe(),{data:r}=de(),{data:b}=$e(),{data:n}=Ge(),{data:x}=He(),{showAlert:M,dialogElement:v}=ge(),[d,S]=N.useState(!1),[g,z]=N.useState(!1),m=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],h=(te=b==null?void 0:b.groups)==null?void 0:te.brains,c=(h==null?void 0:h.members)??[],L=p=>m.find(_=>_.name===p),B=p=>{var _;return((_=p.split("/").pop())==null?void 0:_.replace(/\.gguf$/i,""))||p},s=c.map(L).filter(Boolean),o=1024**3,i=x==null?void 0:x.budget,$=s.reduce((p,_)=>p+(_.size_bytes||0),0)/o,A=((H=n==null?void 0:n.gpu)==null?void 0:H.gtt_total)||((G=n==null?void 0:n.gpu)==null?void 0:G.vram_total)||0,C=(i==null?void 0:i.gtt_gb)||(A?A/o:0),k=(i==null?void 0:i.warm_projected_gb)??$,R=C>0?Math.min(100,k/C*100):0,q=m.filter(p=>!c.includes(p.name)&&!p.incomplete);async function I(p){z(!0);try{await Qe("brains",p,(h==null?void 0:h.swap)??!1,(h==null?void 0:h.persist)??!0),t.invalidateQueries({queryKey:T.groups}),t.invalidateQueries({queryKey:T.models}),t.invalidateQueries({queryKey:T.hermesBrain})}catch(_){M("Fehler",`Immer-bereit-Set konnte nicht geändert werden: ${(_==null?void 0:_.message)||_}`)}finally{z(!1)}}function O(p){const _=L(p);if(_&&F(_.role).protected){M("Geschützt",`„${F(_.role).label}" ist lebenswichtig und bleibt immer bereit.`);return}I(c.filter(Q=>Q!==p))}function W(p){S(!1),I([...c,p])}return h?e.jsxs("div",{className:"mc-card p-5 space-y-4",children:[e.jsx(we,{}),e.jsxs("div",{className:"space-y-1.5",children:[s.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"Noch keine Modelle im Set."}),s.map(p=>{const _=f.includes(p.name),Q=F(p.role).protected;return e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-xl border border-border/30 bg-background/20 p-2.5",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx("span",{className:w("h-2 w-2 shrink-0 rounded-full ring-2 ring-black/40",_?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40"),title:_?"Gerade warm (bereit)":"Reserviert — lädt bei Bedarf sofort"}),p.role&&e.jsx(be,{role:p.role,dense:!0,className:"shrink-0"}),e.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",title:p.name,children:B(p.name)}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/70",children:ee(p.size_bytes)})]}),Q?e.jsx("span",{className:"shrink-0 text-[10px] font-semibold text-muted-foreground",title:"Lebenswichtig — bleibt immer im Set.",children:"🔒"}):e.jsx("button",{onClick:()=>O(p.name),disabled:g,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:bg-red-500/5 hover:text-red-400 cursor-pointer disabled:opacity-50",title:"Aus dem Immer-bereit-Set nehmen (lädt dann nur noch bei Bedarf)",children:e.jsx(pe,{className:"h-3.5 w-3.5"})})]},p.name)})]}),e.jsxs("button",{onClick:()=>S(!0),disabled:g||q.length===0,className:"flex h-8 w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-border/50 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground transition-colors hover:border-primary/40 hover:text-primary cursor-pointer disabled:opacity-50",children:[e.jsx(mt,{className:"h-3.5 w-3.5"})," Modell dauerhaft bereithalten"]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",title:"Modellgewichte + KV-Cache, berechnet aus den echten Architektur-Daten jedes Modells (Layer × KV-Köpfe × Kontext) und seiner KV-Quantisierung. So viel legt llama.cpp beim Laden wirklich für den eingestellten Kontext an — kein Aufschlag mehr.",children:[e.jsx(fe,{className:"h-3.5 w-3.5"})," Reserviert fürs Set"]}),e.jsxs("span",{className:"font-mono font-bold text-foreground",children:[k.toFixed(1),C>0?` / ${C.toFixed(0)}`:""," GB"]})]}),e.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:e.jsx("div",{className:w("h-full rounded-full transition-all duration-500",R>=85?"bg-red-500":R>=65?"bg-amber-500":"bg-teal-500"),style:{width:`${R}%`}})}),i&&!i.fits&&e.jsxs("p",{className:"mt-2 flex items-start gap-1.5 text-[11px] text-amber-400",children:[e.jsx(re,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),e.jsxs("span",{children:["Zusammen mit dem größten Gelegenheits-Modell (~",i.largest_ondemand_gb," GB) wird der Speicher knapp. Das Set bleibt dabei immer geladen — wird es wirklich eng, schlägt das Laden des großen Modells fehl (es wartet dann, statt das Set zu verdrängen)."]})]}),i&&i.fits&&e.jsxs("p",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-emerald-400",children:[e.jsx(Y,{className:"h-3.5 w-3.5 shrink-0"})," Passt auch neben dem größten Gelegenheits-Modell — nichts wird verdrängt."]})]}),d&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4 backdrop-blur-sm",role:"dialog","aria-modal":"true","aria-label":"Modell zum Immer-bereit-Set hinzufügen",children:e.jsxs("div",{className:"w-full max-w-md space-y-3 rounded-2xl border border-border/80 bg-card p-6 shadow-2xl animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:"Dauerhaft bereithalten"}),e.jsx("button",{onClick:()=>S(!1),className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground cursor-pointer",children:e.jsx(pe,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Wähle ein Modell, das ohne Ladezeit bereitstehen soll:"}),e.jsx("div",{className:"max-h-60 space-y-1.5 overflow-y-auto pr-1",children:q.map(p=>e.jsxs("button",{onClick:()=>W(p.name),className:"flex w-full items-center justify-between gap-2 rounded-lg border border-border/30 bg-background/20 px-3 py-2.5 text-left transition-colors hover:bg-accent cursor-pointer",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[p.role&&e.jsx(be,{role:p.role,dense:!0,className:"shrink-0"}),e.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",children:B(p.name)})]}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/70",children:ee(p.size_bytes)})]},p.name))})]})}),v]}):e.jsxs("div",{className:"mc-card p-5",children:[e.jsx(we,{}),e.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Es gibt noch kein Immer-bereit-Set. Es entsteht automatisch, sobald Lucys Hirn zugewiesen ist."}),v]})}function we(){return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ie,{className:"h-4.5 w-4.5 text-primary"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-bold uppercase tracking-wide text-foreground",children:"Immer-bereit-Set"}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Diese Modelle hält Lucy immer bereit — sie antworten ohne Ladezeit."})]})]})}function J({children:t,tone:r="muted"}){const b={muted:"bg-muted text-muted-foreground",primary:"bg-primary/15 text-primary",warn:"bg-amber-500/15 text-amber-500"};return e.jsx("span",{className:`rounded px-1.5 py-0.5 text-[11px] font-medium ${b[r]}`,children:t})}function Mt({caps:t}){return t?e.jsxs("span",{className:"inline-flex flex-wrap gap-1",children:[t.coder&&e.jsx(J,{children:"💻 Code"}),t.vision&&e.jsx(J,{children:"👁 Bild"}),t.reasoning&&e.jsx(J,{children:"🧠 Reason"}),t.moe&&e.jsxs(J,{tone:"primary",children:["🧩 MoE",t.active_b?`·${t.active_b}b`:""]}),t.tools==="yes"&&e.jsx(J,{tone:"primary",children:"🛠 Tools"}),t.tools==="likely"&&e.jsx(J,{tone:"warn",children:"🛠 Tools?"}),t.embedding&&e.jsx(J,{children:"🔢 Embed"})]}):null}function St({model:t,onClose:r,onChanged:b}){var L,B;const{data:n,isLoading:x}=Ue(t.gguf_path),[M,v]=N.useState(null),[d,S]=N.useState(""),g=n==null?void 0:n.target_vocab,z=(n==null?void 0:n.drafts)??[],m=z.filter(s=>s.compatible===!0),f=t.spec_draft_model;async function h(s){v(s??"__clear__"),S("");try{await K(`/api/models/${encodeURIComponent(t.name)}/draft`,{method:"POST",body:JSON.stringify({draft_path:s})}),b(),r()}catch(o){S(String((o==null?void 0:o.message)||o)),v(null)}}const c=s=>{var o;return s?`${s.pre??"?"} · ${((o=s.n_vocab)==null?void 0:o.toLocaleString())??"?"} Tokens`:"—"};return e.jsx("div",{className:"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm flex items-center justify-center p-4",children:e.jsxs("div",{className:"w-full max-w-lg rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsxs("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary flex items-center gap-2",children:[e.jsx(ie,{className:"h-4 w-4"})," Speculative Draft"]}),e.jsx("button",{onClick:r,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:e.jsx(pe,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"text-xs text-muted-foreground leading-relaxed",children:['Beschleunigt die Token-Generierung mit einem kleinen "Draft"-Modell. Voraussetzung: der Draft muss den ',e.jsx("strong",{className:"text-foreground",children:"exakt gleichen Tokenizer (Vocab)"})," haben wie das Modell — sonst lehnt llama.cpp es ab."]}),e.jsxs("div",{className:"rounded-lg border border-border/40 bg-background/30 px-3 py-2 text-[11px] font-mono flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:(L=t.name.split("/").pop())==null?void 0:L.replace(/\.gguf$/i,"")}),e.jsxs("span",{className:"text-foreground",children:["Vocab: ",c(g)]})]}),t.spec_active&&f&&e.jsxs("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-500/5 px-3 py-2 flex items-center justify-between gap-2",children:[e.jsxs("span",{className:"text-[11px] text-emerald-400 font-mono flex items-center gap-1.5 truncate",children:[e.jsx(Y,{className:"h-3.5 w-3.5 shrink-0"})," Aktiv: ",f]}),e.jsx("button",{onClick:()=>h(null),disabled:M!==null,className:"h-6 px-2.5 rounded border border-amber-500/30 bg-amber-500/5 hover:bg-amber-500/10 text-amber-400 text-[9px] font-bold uppercase shrink-0 cursor-pointer disabled:opacity-50",children:"Deaktivieren"})]}),!(n!=null&&n.target_exists)&&e.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] text-amber-400 flex items-center gap-2",children:[e.jsx(re,{className:"h-3.5 w-3.5 shrink-0"}),"Modell-GGUF noch nicht vorhanden — Spec-Draft ist nach dem Download konfigurierbar."]}),e.jsx("div",{className:"space-y-1.5 max-h-64 overflow-y-auto pr-1",children:x?e.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Prüfe Vocab-Kompatibilität…"}):z.length===0?e.jsxs("div",{className:"text-[11px] text-muted-foreground border border-dashed border-border/50 rounded-lg p-4 text-center",children:["Keine Draft-Modelle in ",e.jsx("code",{className:"font-mono",children:"/srv/models/drafts"}),". Lade ein kleines same-family-Modell (z.B. Qwen3-0.6B) und lege es dort ab."]}):z.map(s=>{var $,A;const o=s.filename===f,i=s.compatible===!0;return e.jsxs("div",{className:w("rounded-lg border px-3 py-2 flex items-center justify-between gap-2 text-left",i?"border-border/40 bg-background/20":"border-border/20 bg-background/10 opacity-60",o&&"border-primary/40 bg-primary/10"),children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"text-[11px] font-mono font-semibold text-foreground truncate flex items-center gap-1.5",children:[s.filename,s.mtp&&e.jsx("span",{className:"shrink-0 rounded bg-indigo-500/15 px-1.5 py-0.5 text-[8px] font-bold uppercase tracking-wider text-indigo-400 border border-indigo-500/25",title:"MTP-Kopf (Multi-Token-Prediction) — by-construction vocab-identisch, höchste Akzeptanzrate",children:"MTP"})]}),e.jsxs("div",{className:"text-[9px] text-muted-foreground font-mono",children:[ee(s.size_bytes)," · Vocab: ",c(s.vocab)]})]}),i?o?e.jsxs("span",{className:"text-[9px] font-bold uppercase text-primary flex items-center gap-1 shrink-0",children:[e.jsx(Y,{className:"h-3.5 w-3.5"})," Aktiv"]}):e.jsx("button",{onClick:()=>h(s.path),disabled:M!==null,className:"h-7 px-3 rounded-lg border border-emerald-500/30 bg-emerald-500/5 hover:bg-emerald-500/15 text-emerald-400 text-[9px] font-bold uppercase shrink-0 cursor-pointer disabled:opacity-50",children:"Aktivieren"}):e.jsxs("span",{className:"text-[9px] font-bold uppercase text-amber-400/80 flex items-center gap-1 shrink-0",title:s.compatible===!1?`Inkompatibel: Tokenizer/Vocab weicht ab (Draft ${($=s.vocab)==null?void 0:$.pre}/${(A=s.vocab)==null?void 0:A.n_vocab} ≠ Modell ${g==null?void 0:g.pre}/${g==null?void 0:g.n_vocab}).`:"Kompatibilität nicht prüfbar (Datei fehlt).",children:[e.jsx(re,{className:"h-3.5 w-3.5"})," ",s.compatible===!1?"Vocab ≠":"n/a"]})]},s.path)})}),!x&&(n==null?void 0:n.target_exists)&&z.length>0&&m.length===0&&e.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] text-amber-400 leading-relaxed",children:["Kein vocab-kompatibler Draft verfügbar — Speculative Decoding ist für dieses Modell nicht möglich. Es braucht einen Draft mit identischem Tokenizer (pre=",e.jsx("span",{className:"font-mono",children:g==null?void 0:g.pre}),", n_vocab=",e.jsx("span",{className:"font-mono",children:(B=g==null?void 0:g.n_vocab)==null?void 0:B.toLocaleString()}),")."]}),d&&e.jsx("div",{className:"text-[10px] text-red-400 font-mono",children:d})]})})}const Me={hermes:{bar:"bg-indigo-500",dot:"bg-indigo-500",text:"text-indigo-400"},embed:{bar:"bg-emerald-500",dot:"bg-emerald-500",text:"text-emerald-400"},vision:{bar:"bg-pink-500",dot:"bg-pink-500",text:"text-pink-400"},heavy:{bar:"bg-amber-500",dot:"bg-amber-500",text:"text-amber-400"},"coder-lite":{bar:"bg-violet-500",dot:"bg-violet-500",text:"text-violet-400"},coder:{bar:"bg-fuchsia-500",dot:"bg-fuchsia-500",text:"text-fuchsia-400"},scout:{bar:"bg-teal-500",dot:"bg-teal-500",text:"text-teal-400"},kritiker:{bar:"bg-cyan-500",dot:"bg-cyan-500",text:"text-cyan-400"},reranker:{bar:"bg-lime-500",dot:"bg-lime-500",text:"text-lime-400"}},Ct={fast:"hermes",coder_lite:"coder-lite"},Se={bar:"bg-slate-400",dot:"bg-slate-400",text:"text-slate-300"};function ae(t){return t&&(Me[t]||Me[Ct[t]])||Se}const Ce=1024**3,_e=t=>{var r;return((r=t.split("/").pop())==null?void 0:r.replace(/\.gguf$/i,""))??t};function _t({running:t,capacityBytes:r,realUsedBytes:b,selected:n,onSelect:x}){const M=r>2*Ce?r:124*Ce,v=t.reduce((m,f)=>m+(f.size_bytes||0),0),d=Math.max(0,b-v),S=Math.max(0,M-Math.max(v,b)),g=S/M*100,z=d/M*100;return e.jsxs("div",{className:"mc-card p-5",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-end justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(fe,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Modell-Speicher (GPU-Pool)"}),e.jsxs("div",{className:"font-space text-xl font-bold tracking-tight text-foreground",children:[V(M)," GB ",e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"gesamt"})]})]})]}),e.jsxs("div",{className:"text-right text-[11px] font-mono text-muted-foreground",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"font-bold text-foreground",children:[V(v)," GB"]})," Modell-Gewichte"]}),d>0&&e.jsxs("div",{children:[V(d)," GB KV-Cache & Betrieb"]}),e.jsxs("div",{className:"text-emerald-400",children:[V(S)," GB frei"]})]})]}),e.jsx("div",{className:"flex h-12 w-full overflow-hidden rounded-xl border border-border/40 bg-background/50 p-1",children:t.length===0?e.jsx("div",{className:"flex w-full items-center justify-center text-[11px] italic text-muted-foreground/60",children:"Kein Modell geladen — Auto-Swap holt bei Anfrage automatisch das passende."}):e.jsxs(e.Fragment,{children:[t.map(m=>{const f=(m.size_bytes||0)/M*100,h=ae(m.role),c=n===m.name;return e.jsxs("button",{onClick:()=>x==null?void 0:x(m.name),style:{width:`${f}%`},title:`${F(m.role).label} · ${_e(m.name)} · ${ee(m.size_bytes)}`,className:w("group flex h-full min-w-[2.5rem] shrink-0 flex-col justify-center gap-0.5 rounded-lg px-2 text-left text-white transition-all",h.bar,c?"ring-2 ring-white/70":"opacity-90 hover:opacity-100"),children:[e.jsx("span",{className:"truncate font-space text-[10px] font-bold leading-tight tracking-wide",children:F(m.role).short}),e.jsx("span",{className:"truncate font-mono text-[9px] leading-tight opacity-85",children:ee(m.size_bytes)})]},m.name)}),z>1.5&&e.jsx("div",{style:{width:`${z}%`},className:"flex h-full min-w-[2rem] items-center justify-center rounded-lg border border-dashed border-border/60 bg-background/40 text-[9px] font-mono text-muted-foreground/70",title:`${V(d)} GB KV-Cache & Betrieb (reale Belegung über den Modell-Gewichten)`,children:"KV"}),g>1.5&&e.jsx("div",{style:{width:`${g}%`},className:"flex h-full min-w-[2rem] items-center justify-center rounded-lg text-[9px] font-mono text-muted-foreground/50",title:`${V(S)} GB frei`,children:"frei"})]})}),t.length>0&&e.jsxs("div",{className:"mt-3 flex flex-wrap gap-x-4 gap-y-1.5",children:[t.map(m=>{const f=ae(m.role);return e.jsxs("button",{onClick:()=>x==null?void 0:x(m.name),className:"flex items-center gap-1.5 text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:[e.jsx("span",{className:w("h-2.5 w-2.5 rounded-sm",f.dot)}),e.jsx("span",{className:w("font-semibold",f.text),children:F(m.role).short}),e.jsx("span",{className:"font-mono text-muted-foreground/70",children:_e(m.name)})]},m.name)}),d>0&&e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground/60",title:"Reale Belegung über den Modell-Gewichten (Kontext-Speicher der laufenden Modelle)",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm border border-dashed border-border/60 bg-background/40"})," KV-Cache & Betrieb · ",V(d)," GB"]}),e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground/60",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm border border-border/50 bg-background/50"})," frei · ",V(S)," GB"]})]})]})}const Le=1024**3,X=t=>{var r;return((r=t.split("/").pop())==null?void 0:r.replace(/\.gguf$/i,""))??t};function Lt(){var a,y,D,U;const t=oe(),{data:r,isLoading:b,error:n}=de(),{data:x}=Ge(),{data:M}=$e(),{showAlert:v,showConfirm:d,showPrompt:S,dialogElement:g}=ge(),z=Ve(),m=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],h=l=>!!F(l).protected,c=(a=M==null?void 0:M.groups)==null?void 0:a.brains,L=(c==null?void 0:c.members)??[],B=l=>L.includes(l),[s,o]=N.useState(null),[i,$]=N.useState(""),[A,C]=N.useState("all"),[k,R]=N.useState(null),q=()=>{t.invalidateQueries({queryKey:T.models}),t.invalidateQueries({queryKey:T.routing}),t.invalidateQueries({queryKey:T.groups})},I=m.filter(l=>f.includes(l.name)),O=((y=x==null?void 0:x.gpu)==null?void 0:y.gtt_total)||((D=x==null?void 0:x.gpu)==null?void 0:D.vram_total)||0,W=((U=x==null?void 0:x.gpu)==null?void 0:U.gtt_used)||0,te=O>2*Le?O:124*Le,H=N.useMemo(()=>{const l=i.trim().toLowerCase();return m.filter(u=>A==="in_use"?!!u.role||f.includes(u.name):!0).filter(u=>l?u.name.toLowerCase().includes(l):!0).sort((u,j)=>{const P=f.includes(u.name)?0:1,Z=f.includes(j.name)?0:1;return P!==Z?P-Z:X(u.name).localeCompare(X(j.name))})},[m,f,A,i]),G=m.find(l=>l.name===s)??null;async function p(l){try{await K(`/api/models/${encodeURIComponent(l)}/load`,{method:"POST"}),q()}catch(u){v("Fehler",`Laden fehlgeschlagen: ${u.message||u}`)}}async function _(l){const u=L.some(j=>f.includes(j));if(c&&u&&!B(l)){const j=L.filter(P=>f.includes(P)).map(X).join(", ");d("Verdrängt das Hirn?",`„${X(l)}" ist nicht ko-resident. Beim Laden wirft es das warme Hirn (${j}) raus — Lucy verliert Hirn bzw. Augen. - -Trotzdem exklusiv laden?`,()=>p(l));return}p(l)}async function Q(l){const u=m.find(j=>j.name===l);if(u&&h(u.role)){v("Geschützt",`„${F(u.role).label}" ist lebenswichtig und bleibt geladen.`);return}try{await K(`/api/models/${encodeURIComponent(l)}/unload`,{method:"POST"}),q()}catch(j){v("Fehler",`Entladen fehlgeschlagen: ${j.message||j}`)}}async function ce(l,u){try{const j=await K(`/api/models/${encodeURIComponent(u)}/role`,{method:"POST",body:JSON.stringify({role:l||null})});q(),j!=null&&j.warning&&v("Rolle gesetzt — Hinweis",j.warning)}catch(j){v("Fehler",`Rolle zuweisen fehlgeschlagen: ${j.message||j}`)}}async function xe(l,u){let j=null;try{j=await K(`/api/models/${encodeURIComponent(l)}/ctx/auto`)}catch{}const P=j?`Optimal für dein Setup: ${(j.ctx/1024).toFixed(0)}k (${j.ctx}). »Auto« trägt diesen Wert ein.`:"Gib die gewünschte Kontextlänge in Tokens an:";S("Kontextlänge anpassen",P,String(u||32768),async Z=>{if(Z)try{await K(`/api/models/${encodeURIComponent(l)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(Z,10)})}),q()}catch(ve){v("Fehler",`Kontext setzen fehlgeschlagen: ${ve.message||ve}`)}},void 0,j?{autoValue:String(j.ctx),autoLabel:`Auto (${(j.ctx/1024).toFixed(0)}k)`}:void 0)}async function me(l){const u=m.find(j=>j.name===l);if(u&&h(u.role)){v("Geschützt",`„${F(u.role).label}" kann nicht gelöscht werden. Weise die Rolle zuerst einem anderen Modell zu.`);return}d("Modell löschen?",`„${X(l)}" und alle GGUF-Dateien unwiderruflich von der Box löschen?`,async()=>{try{await K(`/api/models/${encodeURIComponent(l)}`,{method:"DELETE"}),s===l&&o(null),q()}catch(j){v("Fehler",`Löschen fehlgeschlagen: ${j.message||j}`)}})}return b?e.jsx("div",{className:"py-16 text-center text-xs text-muted-foreground",children:"Werkbank wird geladen …"}):n?e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Gateway oder Engine nicht erreichbar (",String(n),")."]}):e.jsxs("div",{className:"space-y-5",children:[e.jsx(_t,{running:I,capacityBytes:te,realUsedBytes:W,selected:s,onSelect:o}),e.jsxs("div",{className:"grid gap-5 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]",children:[e.jsxs("div",{className:"mc-card p-4",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(ye,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/60"}),e.jsx("input",{value:i,onChange:l=>$(l.target.value),placeholder:"Modell suchen …",className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 pl-8 pr-2 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-primary/50 focus:outline-none"})]}),e.jsx("div",{className:"flex rounded-lg border border-border/40 bg-background/30 p-0.5",children:["all","in_use"].map(l=>e.jsx("button",{onClick:()=>C(l),className:w("rounded-md px-2 py-1 text-[9px] font-bold uppercase transition-all cursor-pointer",A===l?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:l==="all"?"Alle":"In Benutzung"},l))})]}),e.jsx("div",{className:"max-h-[60vh] space-y-1.5 overflow-y-auto scrollbar-thin pr-1",children:H.length===0?e.jsx("div",{className:"rounded-xl border border-dashed border-border/50 p-8 text-center text-xs text-muted-foreground",children:"Keine Modelle."}):H.map(l=>{const u=f.includes(l.name),j=s===l.name,P=Ke(l.name),Z=ae(l.role);return e.jsxs("button",{onClick:()=>o(l.name),className:w("flex w-full items-center gap-2.5 rounded-xl border p-2.5 text-left transition-all cursor-pointer",j?"border-primary/60 bg-primary/10":"border-border/40 bg-background/20 hover:border-primary/30 hover:bg-background/40"),children:[e.jsx("span",{className:w("flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border text-[10px] font-bold",P.color),children:P.initial}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate font-mono text-xs font-semibold text-foreground",children:X(l.name)}),e.jsxs("div",{className:"mt-0.5 flex items-center gap-1.5",children:[l.role&&e.jsx("span",{className:w("h-2 w-2 rounded-sm",Z.dot)}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:l.role?F(l.role).short:"keine Rolle"}),e.jsxs("span",{className:"text-[10px] text-muted-foreground/50",children:["· ",ee(l.size_bytes)]})]})]}),u?e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[9px] font-bold uppercase text-emerald-400",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"warm"]}):l.incomplete?e.jsx("span",{className:"shrink-0 text-[9px] font-bold uppercase text-amber-400",children:"⚠ fehlt"}):e.jsx("span",{className:"shrink-0 text-[9px] font-semibold uppercase text-muted-foreground/50",children:"bereit"})]},l.name)})})]}),e.jsx("div",{className:"mc-card p-5",children:G?e.jsx(zt,{m:G,warm:f.includes(G.name),expert:z,protectedRole:h(G.role),coresident:B(G.name),onLoad:()=>_(G.name),onUnload:()=>Q(G.name),onRole:l=>ce(l,G.name),onCtx:()=>xe(G.name,G.ctx),onSpec:()=>R(G),onDelete:()=>me(G.name)}):e.jsxs("div",{className:"flex h-full min-h-[16rem] flex-col items-center justify-center gap-2 text-center text-muted-foreground",children:[e.jsx(We,{className:"h-8 w-8 opacity-40"}),e.jsx("p",{className:"text-sm font-semibold",children:"Links ein Modell wählen"}),e.jsx("p",{className:"text-xs",children:"Dann verwaltest du es hier — laden, Rolle, Kontext, löschen."})]})})]}),k&&e.jsx(St,{model:k,onClose:()=>R(null),onChanged:q}),g]})}function zt({m:t,warm:r,expert:b,protectedRole:n,coresident:x,onLoad:M,onUnload:v,onRole:d,onCtx:S,onSpec:g,onDelete:z}){const m=Ke(t.name),f=r&&n;return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:w("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border text-sm font-bold",m.color),children:m.initial}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h2",{className:"break-all font-mono text-sm font-bold text-foreground",children:X(t.name)}),e.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[t.role?e.jsx(be,{role:t.role}):e.jsx("span",{className:"rounded border border-dashed border-border/50 px-1.5 py-0.5 text-[10px] text-muted-foreground",children:"keine Rolle"}),n&&e.jsxs("span",{className:"rounded bg-background/40 px-1.5 py-0.5 text-[10px] text-muted-foreground",title:"Lebenswichtig — geschützt",children:[e.jsx(rt,{className:"mr-0.5 inline h-3 w-3"}),"geschützt"]}),x&&e.jsxs("span",{className:"rounded border border-fuchsia-500/30 bg-fuchsia-500/10 px-1.5 py-0.5 text-[10px] font-bold uppercase text-fuchsia-300",children:[e.jsx(le,{className:"mr-0.5 inline h-3 w-3"}),"Ko-resident"]}),r&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] font-bold uppercase text-emerald-400",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"warm"]})]})]})]}),e.jsxs("button",{onClick:r?v:M,disabled:t.incomplete&&!r||f,className:w("flex h-11 w-full items-center justify-center gap-2 rounded-xl border text-sm font-bold transition-all cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",r?"border-amber-500/40 bg-amber-500/10 text-amber-300 hover:bg-amber-500/20":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/20"),title:f?`„${F(t.role).label}" bleibt geladen (geschützt).`:void 0,children:[r?e.jsx(ut,{className:"h-4 w-4"}):e.jsx(Ze,{className:"h-4 w-4"}),f?"🔒 bleibt geladen":r?"Entladen":"Ins Warm-Set laden"]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:[e.jsx("span",{children:"Rolle"}),n&&e.jsx("span",{className:"normal-case font-medium tracking-normal text-muted-foreground/70",children:"🔒 lebenswichtig — zum Tausch die Rolle woanders zuweisen"})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx(ze,{active:!t.role,onClick:()=>d(""),dot:"bg-slate-400",label:"keine",disabled:n}),je.map(h=>e.jsx(ze,{active:t.role===h.role,onClick:()=>d(h.role),dot:ae(h.role).dot,label:h.short,disabled:n&&t.role!==h.role},h.role))]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsx(At,{icon:fe,label:"Größe",value:ee(t.size_bytes)}),e.jsxs("button",{onClick:S,className:"group flex items-center gap-2 rounded-lg border border-border/30 bg-background/20 p-2.5 text-left transition-colors hover:border-primary/40 cursor-pointer",children:[e.jsx(xt,{className:"h-4 w-4 text-primary/80"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:"Kontext · ändern"}),e.jsx("div",{className:"font-semibold text-foreground",children:Je(t.ctx)})]})]})]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Beschleuniger"}),b&&e.jsxs("button",{onClick:g,className:w("flex h-6 items-center gap-1 rounded-lg border px-2 text-[9px] font-bold uppercase transition-colors cursor-pointer",t.spec_active?"border-emerald-500/30 text-emerald-400 hover:bg-emerald-500/10":t.spec_draft_model?"border-amber-500/30 text-amber-400 hover:bg-amber-500/10":"border-border/40 text-muted-foreground hover:bg-accent"),children:[e.jsx(ie,{className:"h-3 w-3"})," Spec"]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[t.spec_active&&e.jsx(se,{tone:"emerald",label:"Spec-Decoding aktiv"}),!t.spec_active&&t.spec_draft_model&&e.jsx(se,{tone:"amber",label:"Spec inaktiv"}),t.prompt_cache&&e.jsx(se,{tone:"cyan",label:"Prompt-Cache"}),t.parallel_slots>1&&e.jsx(se,{tone:"violet",label:`${t.parallel_slots} Slots`}),!t.spec_active&&!t.spec_draft_model&&!t.prompt_cache&&t.parallel_slots<=1&&e.jsx("span",{className:"text-[11px] text-muted-foreground/60",children:"keine aktiv"})]})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:e.jsx(Mt,{caps:t.capabilities})}),e.jsxs("button",{onClick:z,disabled:n,className:w("mt-auto flex h-9 items-center justify-center gap-1.5 rounded-lg border text-xs font-semibold transition-colors",n?"cursor-not-allowed border-border/30 text-muted-foreground/40":"border-red-500/30 text-red-400 hover:bg-red-500/10 cursor-pointer"),children:[e.jsx(gt,{className:"h-3.5 w-3.5"})," ",n?"geschützt — nicht löschbar":"Modell löschen"]})]})}function ze({active:t,onClick:r,dot:b,label:n,disabled:x}){return e.jsxs("button",{onClick:r,disabled:x,title:x?"Gesperrt: dieses Modell hält eine lebenswichtige Rolle.":void 0,className:w("flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[10px] font-semibold transition-all",x?"cursor-not-allowed opacity-40 border-border/40 bg-background/20 text-muted-foreground":t?"cursor-pointer border-primary/60 bg-primary/15 text-foreground":"cursor-pointer border-border/40 bg-background/20 text-muted-foreground hover:border-primary/30"),children:[e.jsx("span",{className:w("h-2 w-2 rounded-sm",b)}),n,t&&e.jsx(Y,{className:"h-3 w-3 text-primary"})]})}function At({icon:t,label:r,value:b}){return e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border/30 bg-background/20 p-2.5",children:[e.jsx(t,{className:"h-4 w-4 text-primary/80"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:r}),e.jsx("div",{className:"font-semibold text-foreground",children:b})]})]})}function se({tone:t,label:r}){const b={emerald:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20",amber:"bg-amber-500/10 text-amber-400 border-amber-500/20",cyan:"bg-cyan-500/10 text-cyan-400 border-cyan-500/20",violet:"bg-violet-500/10 text-violet-400 border-violet-500/20"}[t];return e.jsx("span",{className:w("rounded border px-1.5 py-0.5 text-[10px] font-semibold",b),children:r})}const Bt=[{key:"popular",label:"Beliebt",q:""},{key:"coder",label:"Coder",q:"coder"},{key:"vision",label:"Vision",q:"vision"},{key:"reasoning",label:"Reasoning",q:"reasoning"},{key:"small",label:"Klein (≤4B)",q:"3B"}],$t=["fast","heavy","coder","vision","hermes","scout"],Gt=new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1});function Ae(t){return Gt.format(t)}function Dt(){const{data:t}=de(),r=(t==null?void 0:t.models)??[],[b,n]=N.useState(""),[x,M]=N.useState([]),[v,d]=N.useState(!1),[S,g]=N.useState(""),[z,m]=N.useState("popular"),[f,h]=N.useState(""),[c,L]=N.useState(null),[B,s]=N.useState([]),[o,i]=N.useState("Q4_K_M"),[$,A]=N.useState(""),[C,k]=N.useState(null),[R,q]=N.useState(!1),[I,O]=N.useState({});async function W(a){d(!0),g("");try{const y=await K(`/api/hf/search?q=${encodeURIComponent(a)}`);M(y.results),y.results.length||g("Keine Ergebnisse.")}catch(y){g(`Suche fehlgeschlagen: ${y}`)}finally{d(!1)}}N.useEffect(()=>{W("")},[]);function te(a){m(a.key),n(""),W(a.q)}function H(){m(""),W(b)}async function G(a,y,D){q(!1);try{const U=await K(`/api/fit?params_b=0&quant=${encodeURIComponent(y)}&ctx=8192&name=${encodeURIComponent(a)}&role=${encodeURIComponent(D)}`);k(U)}catch{k(null)}}async function p(a){if(c===a){L(null);return}L(a),s([]),k(null),A(""),q(!1),g("Analysiere Repository…");try{const y=await K(`/api/hf/quants?repo=${encodeURIComponent(a)}`);s(y.quants);const D=y.quants.includes("Q4_K_M")?"Q4_K_M":y.quants[0]||"Q4_K_M";i(D),g(y.quants.length?"":"Keine GGUF-Dateien in diesem Repo gefunden."),y.quants.length&&G(y.repo,D,"")}catch(y){g(`Fehler: ${y}`)}}function _(){const a=f.trim();a&&(M(y=>y.some(D=>D.repo===a)?y:[{repo:a,downloads:0,likes:0},...y]),h(""),p(a))}const Q=$?r.find(a=>(a.role||"").toLowerCase()===$):void 0;async function ce(a){if((C==null?void 0:C.fit.level)==="too_tight"&&!R){q(!0);return}O(y=>({...y,[a]:"Starte…"}));try{await K("/api/models/install",{method:"POST",body:JSON.stringify({repo:a,quant:o,role:$||void 0,jinja:!0})}),O(y=>({...y,[a]:"Download läuft"})),q(!1)}catch{O(D=>({...D,[a]:"Fehler"}))}}const xe=a=>{var D;const y=((D=a.split("/").pop())==null?void 0:D.toLowerCase().replace(/-gguf$/i,""))||"";return y.length>3&&r.some(U=>U.name.toLowerCase().includes(y))},me=a=>a==="perfect"?"text-emerald-400 border-emerald-500/40 bg-emerald-500/10":a==="marginal"?"text-amber-400 border-amber-500/40 bg-amber-500/10":"text-red-400 border-red-500/40 bg-red-500/10";return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(ye,{className:"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx("input",{value:b,onChange:a=>n(a.target.value),onKeyDown:a=>a.key==="Enter"&&H(),"aria-label":"HuggingFace durchsuchen",type:"search",spellCheck:!1,placeholder:"HuggingFace durchsuchen (z.B. Qwen Coder, Llama-3.1, gemma)…",className:"w-full h-10 pl-9 pr-3 rounded-xl border border-border/60 bg-background/40 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]}),e.jsx("button",{onClick:H,className:"h-10 px-5 rounded-xl bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all cursor-pointer",children:"Suchen"})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:Bt.map(a=>e.jsxs("button",{onClick:()=>te(a),className:w("flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[11px] font-semibold transition-all cursor-pointer border",z===a.key?"bg-primary/15 text-primary border-primary/30":"border-border/50 text-muted-foreground hover:text-foreground hover:border-border"),children:[a.key==="popular"&&e.jsx(lt,{className:"h-3 w-3"}),a.label]},a.key))}),v?e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:"Lade GGUF-Modelle von HuggingFace…"}):e.jsxs("div",{className:"space-y-2",children:[x.map(a=>{const y=c===a.repo,D=xe(a.repo),U=a.repo.includes("/")?a.repo.split("/")[0]:"—",l=a.repo.split("/").pop();return e.jsxs("div",{className:w("mc-card-sm",y?"border-primary/40 shadow-lg shadow-primary/5":"border-border/50 hover:border-primary/30"),children:[e.jsxs("button",{onClick:()=>p(a.repo),className:"w-full flex items-center gap-3 p-3.5 text-left cursor-pointer",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs font-bold font-mono text-foreground truncate max-w-[280px]",title:a.repo,children:l}),D&&e.jsxs("span",{className:"flex items-center gap-1 text-[8px] font-bold text-emerald-400 uppercase tracking-wider bg-emerald-500/10 border border-emerald-500/20 px-1.5 py-0.5 rounded",children:[e.jsx(Y,{className:"h-2.5 w-2.5"})," installiert"]})]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-3 mt-0.5 font-mono",children:[e.jsx("span",{children:U}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ne,{className:"h-3 w-3"})," ",Ae(a.downloads)]}),a.likes>0&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(dt,{className:"h-3 w-3"})," ",Ae(a.likes)]})]})]}),y?e.jsx(Ee,{className:"h-4 w-4 text-muted-foreground shrink-0"}):e.jsx(De,{className:"h-4 w-4 text-muted-foreground shrink-0"})]}),y&&e.jsx("div",{className:"border-t border-border/30 p-3.5 space-y-3",children:B.length===0?e.jsx("div",{className:"text-[11px] text-muted-foreground font-mono",children:S||"Lade Quants…"}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Quant"}),e.jsx("select",{value:o,onChange:u=>{i(u.target.value),G(a.repo,u.target.value,$)},"aria-label":"Quantisierung",className:"h-8 rounded-lg border border-border/60 bg-background/40 px-2 text-xs text-foreground font-semibold outline-none",children:B.map(u=>e.jsx("option",{value:u,className:"bg-popover text-foreground",children:u},u))}),e.jsx("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground ml-1",children:"Rolle"}),e.jsxs("select",{value:$,onChange:u=>{A(u.target.value),G(a.repo,o,u.target.value)},"aria-label":"Rolle",title:"Optional — bestimmt Auto-Konfiguration + setup-bewussten Kontext",className:"h-8 rounded-lg border border-border/60 bg-background/40 px-2 text-xs text-foreground font-semibold outline-none",children:[e.jsx("option",{value:"",className:"bg-popover text-foreground",children:"keine"}),$t.map(u=>e.jsx("option",{value:u,className:"bg-popover text-foreground",children:u},u))]}),e.jsx("button",{onClick:()=>ce(a.repo),disabled:!!I[a.repo]&&I[a.repo]==="Download läuft",className:w("h-8 px-3.5 ml-auto rounded-lg text-xs font-semibold transition-all cursor-pointer flex items-center gap-1.5",R?"bg-red-500 text-white hover:opacity-90":"bg-primary text-primary-foreground hover:opacity-90"),children:I[a.repo]?I[a.repo]:R?e.jsxs(e.Fragment,{children:[e.jsx(re,{className:"h-3.5 w-3.5"})," OOM — trotzdem laden"]}):e.jsxs(e.Fragment,{children:[e.jsx(ne,{className:"h-3.5 w-3.5"})," Herunterladen"]})})]}),C&&e.jsxs("div",{className:w("flex flex-wrap items-center gap-x-3 gap-y-1 rounded-lg border px-3 py-2 text-[11px] font-medium",me(C.fit.level)),children:[e.jsx("span",{className:"font-bold uppercase tracking-wide",children:C.fit.text}),e.jsxs("span",{className:"font-mono opacity-90",children:["~",C.params_b,"B · ~",C.fit.req_gb," GB / ",C.sys_ram_gb," GB · ~",C.fit.tps," t/s"]}),C.fit.level!=="too_tight"?e.jsxs("span",{className:"font-mono opacity-80",children:["ctx → ",(C.assigned_ctx/1024).toFixed(0),"k"]}):e.jsx("span",{className:"opacity-90",children:"— passt nicht, würde beim Laden abstürzen (OOM)."})]}),Q&&e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-400",children:[e.jsx(re,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),e.jsxs("span",{children:["Rolle ",e.jsxs("strong",{children:["„",$,'"']})," hält aktuell ",e.jsx("strong",{children:Q.name.split("/").pop()})," — wird beim Download übernommen."]})]})]})})]},a.repo)}),!x.length&&!v&&e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:S||"Keine Ergebnisse."})]}),e.jsxs("div",{className:"border-t border-border/30 pt-4 flex flex-col sm:flex-row gap-2 items-stretch sm:items-center",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground shrink-0",children:"Direkt:"}),e.jsx("input",{value:f,onChange:a=>h(a.target.value),onKeyDown:a=>a.key==="Enter"&&_(),"aria-label":"Repository oder URL direkt eingeben",spellCheck:!1,placeholder:"org/repo oder HF-URL (z.B. unsloth/Qwen2.5-Coder-7B-Instruct-GGUF)",className:"flex-1 h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground font-mono"}),e.jsx("button",{onClick:_,className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer whitespace-nowrap",children:"Laden"})]})]})}const Et={fast:{title:"Schnelles Alltags-Hirn",desc:"Schnelle MoE-Antworten für Chat, Zusammenfassungen und alltägliche Aufgaben.",icon:ie},heavy:{title:"Schweres Reasoning",desc:"Große Modelle für komplexe Logik, Mathematik und tiefgründiges Planen.",icon:le},coder:{title:"Coden & Entwicklung",desc:"Autovervollständigung, Refactoring und Codegenerierung direkt in deiner IDE.",icon:he},vision:{title:"Bilder & Vision",desc:"Verarbeitet Bilder, Screenshots und visuelle Diagramme in multimodalen Chats.",icon:Be},hermes:{title:"Lucys Hirn (Agent)",desc:"Lucys dauer-warmes Agent-Hirn mit Tool-Calling — bleibt ko-resident, lädt nie kalt nach.",icon:at},scout:{title:"Multimodal-Allrounder",desc:"Multimodaler Allrounder für schnelle Antworten, Übersetzungen und Alltag.",icon:st},kritiker:{title:"Kritisches Prüf-Hirn",desc:"Schärfer Blick für Fehler, Schwachstellen und Sicherheitslücken — denkt skeptisch, bevor du deployst.",icon:qe},reranker:{title:"Gedächtnis-Sortierer",desc:"Sortiert und gewichtet gespeicherte Fakten nach Relevanz — damit die richtige Info sofort da ist.",icon:ye}};function qt(){const{data:t,isLoading:r,error:b}=Xe(),{data:n}=de(),{data:x}=Ye(),M=(n==null?void 0:n.models)??[],v=b?String(b):"",[d,S]=N.useState({}),[g,z]=N.useState({}),[m,f]=N.useState("recommended");async function h(c,L,B,s){S(o=>({...o,[c]:"Starte..."}));try{await K("/api/models/install",{method:"POST",body:JSON.stringify({repo:c,role:L,quant:B,jinja:s})}),S(o=>({...o,[c]:"Download läuft"}))}catch{S(i=>({...i,[c]:"Fehler"}))}}return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex mc-card-sm p-1 w-fit",children:[["recommended","Empfohlen"],["browse","Stöbern & Suchen"]].map(([c,L])=>e.jsx("button",{onClick:()=>f(c),className:w("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide transition-all cursor-pointer",m===c?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:L},c))}),m==="browse"?e.jsx(Dt,{}):r?e.jsx("div",{className:"text-xs text-muted-foreground py-12 text-center",children:"Analysiere Hardware und suche passende GGUF-Empfehlungen…"}):v||!t?e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Empfehlungsdienst temporär nicht erreichbar (",v,")."]}):e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-4 rounded-xl flex flex-col sm:flex-row sm:items-center justify-between gap-3 shadow-sm",children:[e.jsxs("div",{children:["Modell-Registry geladen für ",e.jsxs("span",{className:"text-foreground font-bold",children:[t.sys_ram_gb," GB"]})," System-RAM."]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(ht,{className:"h-3.5 w-3.5 text-primary fill-primary/20"}),e.jsx("span",{children:"Empfehlungen sind automatisch auf deine Box-Hardware optimiert."})]})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:t.categories.map(c=>{const L=Et[c.role]||{title:c.title||c.role,desc:"Spezifisches Modell für diese Systemrolle.",icon:nt},B=L.icon,s=M.find(k=>k.role===c.role||(k.aliases||[]).includes(c.role)),o=x==null?void 0:x.model_list.find(k=>k.role===c.role),i=c.models.find(k=>k.repo===c.recommended)||c.models[0];if(!i)return null;const $=d[i.repo],A=c.models.filter(k=>k.repo!==c.recommended),C=!!g[c.role];return e.jsxs("div",{className:w("mc-card p-5 flex flex-col justify-between gap-5",s?"border-border/60":"border-primary/20 shadow-primary/5"),children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center text-primary shadow-sm shrink-0",children:e.jsx(B,{className:"h-5.5 w-5.5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-bold tracking-tight text-foreground",children:L.title}),e.jsxs("span",{className:"text-[9px] font-mono text-muted-foreground uppercase bg-background/50 px-1.5 py-0.5 rounded border border-border/30 inline-block mt-0.5",children:["Rolle: ",c.role]})]})]}),s?e.jsxs("span",{className:"flex items-center gap-1.5 text-[9px] font-bold text-emerald-400 uppercase tracking-wider bg-emerald-500/10 border border-emerald-500/20 px-2.5 py-1 rounded-lg",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Aktiviert"]}):e.jsx("span",{className:"text-[9px] font-bold text-primary/70 uppercase tracking-wider bg-primary/10 border border-primary/20 px-2.5 py-1 rounded-lg",children:"Frei"})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:L.desc}),e.jsx("div",{className:"p-3.5 rounded-xl bg-background/35 border border-border/30 space-y-2.5",children:s?e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[9px] font-bold uppercase tracking-wider text-muted-foreground/60",children:"Aktive GGUF-Belegung"}),e.jsx("div",{className:"text-xs font-mono font-bold text-foreground truncate",title:s.name,children:s.name.split("/").pop()}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2",children:[e.jsxs("span",{children:["Größe: ",ue(s.size_bytes||0)]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",s.quant||"GGUF"]})]})]}):e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[9px] font-bold uppercase tracking-wider text-primary/80",children:"Empfohlenes Modell"}),e.jsx("div",{className:"text-xs font-mono font-bold text-foreground truncate",title:i.name,children:i.name}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{children:["Ersteller: ",i.author]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",i.quant]})]}),e.jsx("div",{className:"flex items-center gap-1.5 pt-0.5",children:e.jsx(kt,{fit:i.fit})})]})}),e.jsx("div",{className:"pt-1",children:s?o?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"text-[9px] font-semibold text-amber-400 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400 animate-ping shrink-0"}),e.jsxs("span",{children:["Bessere Version in der Registry: ",o.repo.split("/").pop()]})]}),e.jsxs("button",{onClick:()=>h(o.repo,c.role,o.repo===i.repo&&i.quant||"Q4_K_M",i.caps.tools!=="no"),disabled:!!d[o.repo],className:"h-8 w-full flex items-center justify-center gap-1.5 rounded-lg bg-amber-500 text-black text-xs font-bold hover:bg-amber-400 disabled:opacity-50 transition-all cursor-pointer shadow-md shadow-amber-500/10",children:[e.jsx(ne,{className:"h-3.5 w-3.5"}),d[o.repo]||"Auf neue Version aktualisieren"]})]}):e.jsxs("div",{className:"h-8 flex items-center justify-center gap-1.5 text-[10px] font-bold text-emerald-400 uppercase tracking-wide bg-emerald-500/5 border border-emerald-500/10 rounded-lg select-none",children:[e.jsx(Y,{className:"h-4 w-4"})," Auf neuestem Stand"]}):e.jsxs("button",{onClick:()=>h(i.repo,c.role,i.quant||"Q4_K_M",i.caps.tools!=="no"),disabled:!!$,className:w("h-8 w-full flex items-center justify-center gap-1.5 rounded-lg text-xs font-bold transition-all cursor-pointer border",$?"border-primary/40 bg-primary/5 text-primary":"bg-primary text-primary-foreground hover:opacity-90 shadow-md shadow-primary/10"),children:[e.jsx(ne,{className:"h-3.5 w-3.5"}),$||"Optimales Modell einsetzen"]})})]}),A.length>0&&e.jsxs("div",{className:"border-t border-border/20 pt-3",children:[e.jsxs("button",{onClick:()=>z(k=>({...k,[c.role]:!C})),className:"flex items-center gap-1.5 text-[10px] text-muted-foreground/80 hover:text-foreground transition-colors cursor-pointer",children:[C?e.jsx(Ee,{className:"h-3 w-3"}):e.jsx(De,{className:"h-3 w-3"}),e.jsxs("span",{children:["Alternative Empfehlungen anzeigen (",A.length,")"]})]}),C&&e.jsx("div",{className:"mt-2.5 space-y-2 max-h-36 overflow-y-auto pr-1 scrollbar-thin",children:A.map(k=>e.jsxs("div",{className:"p-2 rounded-lg bg-background/25 border border-border/20 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[10px] font-mono font-bold text-foreground truncate",title:k.name,children:k.name}),e.jsxs("div",{className:"text-[9px] text-muted-foreground flex items-center gap-1.5 mt-0.5",children:[e.jsxs("span",{children:["Quant: ",k.quant]}),e.jsx("span",{children:"•"}),e.jsx("span",{children:k.fit.text})]})]}),e.jsx("button",{onClick:()=>h(k.repo,c.role,k.quant||"Q4_K_M",k.caps.tools!=="no"),disabled:!!d[k.repo],className:"h-6 px-2.5 rounded bg-background/40 hover:bg-background/80 border border-border/40 text-[9px] font-bold text-foreground transition-all cursor-pointer shrink-0 disabled:opacity-50",children:d[k.repo]||"Installieren"})]},k.repo))})]})]},c.role)})})]})]})}const Kt=[{id:"werkbank",label:"Werkbank"},{id:"routing",label:"Routing & Warm-Set"},{id:"discover",label:"Modelle finden"}];function Ht(){const[t,r]=N.useState("werkbank");return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Modell-Manager"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Modelle verwalten, das Lane-Routing einstellen und Neues von HuggingFace holen."})]}),e.jsx("div",{className:"flex mc-card-sm p-1 self-start",children:Kt.map(b=>e.jsx("button",{onClick:()=>r(b.id),className:w("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",t===b.id?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:b.label},b.id))})]}),e.jsx(ft,{}),e.jsxs("div",{className:"transition-all duration-300",children:[t==="werkbank"&&e.jsx(Lt,{}),t==="routing"&&e.jsxs("div",{className:"space-y-5",children:[e.jsx(vt,{}),e.jsx(wt,{})]}),t==="discover"&&e.jsx(qt,{})]})]})}export{Ht as ModelsView}; diff --git a/frontend/dist/assets/SectionLabel-SQgndpwc.js b/frontend/dist/assets/SectionLabel-SQgndpwc.js deleted file mode 100644 index fe89ff7..0000000 --- a/frontend/dist/assets/SectionLabel-SQgndpwc.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as s,j as e}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=s("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);function c({icon:a,children:t}){return e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(a,{className:"h-3.5 w-3.5"})," ",t]})}export{r as H,c as S}; diff --git a/frontend/dist/assets/WissenView-DgtrXx57.js b/frontend/dist/assets/WissenView-DgtrXx57.js deleted file mode 100644 index f1caf38..0000000 --- a/frontend/dist/assets/WissenView-DgtrXx57.js +++ /dev/null @@ -1,47 +0,0 @@ -var to=Object.defineProperty;var eo=(e,n,r)=>n in e?to(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var Bn=(e,n,r)=>eo(e,typeof n!="symbol"?n+"":n,r);import{ag as Ft,r as W,ah as no,ai as Xn,aj as Yn,ak as ro,al as io,am as Zn,an as Kn,ao as oo,j as $,U as ao,ap as so,aq as uo,g as lo,e as Ae,L as Ke,S as co,aa as fo,a2 as ho,ar as po}from"./index-CUuKs_1x.js";import{F as go}from"./folder-open-CbSQGCoL.js";function yo(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var Qn=180/Math.PI,fn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yr(e,n,r,i,o,a){var s,u,c;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(c=e*r+n*i)&&(r-=e*c,i-=n*c),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,c/=u),e*i180?f+=360:f-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Ft(l,f)})):f&&h.push(o(h)+"rotate("+f+i)}function u(l,f,h,d){l!==f?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Ft(l,f)}):f&&h.push(o(h)+"skewX("+f+i)}function c(l,f,h,d,p,y){if(l!==h||f!==d){var x=p.push(o(p)+"scale(",null,",",null,")");y.push({i:x-4,x:Ft(l,h)},{i:x-2,x:Ft(f,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,f){var h=[],d=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,h,d),s(l.rotate,f.rotate,h,d),u(l.skewX,f.skewX,h,d),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,h,d),l=f=null,function(p){for(var y=-1,x=d.length,m;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);ra,methodNames:i=[],initPropNames:o=[]}={}){return W.forwardRef((a,s)=>{const u=W.useRef(),c=W.useMemo(()=>{const h=Object.fromEntries(o.filter(d=>a.hasOwnProperty(d)).map(d=>[d,a[d]]));return e(h)},[]);er(()=>{c(r(u.current))},W.useLayoutEffect),er(()=>c._destructor instanceof Function?c._destructor:void 0);const l=W.useCallback((h,...d)=>c[h]instanceof Function?c[h](...d):void 0,[c]),f=W.useRef({});return Object.keys(jo(a,[...i,...o])).filter(h=>f.current[h]!==a[h]).forEach(h=>l(h,a[h])),f.current=a,W.useImperativeHandle(s,()=>Object.fromEntries(i.map(h=>[h,(...d)=>l(h,...d)])),[l]),no.createElement(n,{ref:u})})}function er(e,n=W.useEffect){const r=W.useRef(),i=W.useRef(!1),o=W.useRef(!1),[a,s]=W.useState(0);i.current&&(o.current=!0),n(()=>(i.current||(r.current=e(),i.current=!0),s(u=>u+1),()=>{o.current&&(r.current&&r.current(),r.current=void 0,i.current=!1,o.current=!1)}),[])}var dn="http://www.w3.org/1999/xhtml";const nr={svg:"http://www.w3.org/2000/svg",xhtml:dn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function We(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nr.hasOwnProperty(n)?{space:nr[n],local:e}:e}function Io(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===dn&&n.documentElement.namespaceURI===dn?n.createElement(e):n.createElementNS(r,e)}}function $o(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Qr(e){var n=We(e);return(n.local?$o:Io)(n)}function Lo(){}function Tn(e){return e==null?Lo:function(){return this.querySelector(e)}}function Fo(e){typeof e!="function"&&(e=Tn(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o=w&&(w=k+1);!(v=m[w])&&++w=0;)(s=i[o])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function fa(e){e||(e=ha);function n(h,d){return h&&d?e(h.__data__,d.__data__):!h-!d}for(var r=this._groups,i=r.length,o=new Array(i),a=0;an?1:e>=n?0:NaN}function da(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function pa(){return Array.from(this)}function ga(){for(var e=this._groups,n=0,r=e.length;n1?this.each((n==null?Sa:typeof n=="function"?Ta:Ma)(e,n,r??"")):Bt(this.node(),e)}function Bt(e,n){return e.style.getPropertyValue(n)||ri(e).getComputedStyle(e,null).getPropertyValue(n)}function Oa(e){return function(){delete this[e]}}function Ea(e,n){return function(){this[e]=n}}function za(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function Na(e,n){return arguments.length>1?this.each((n==null?Oa:typeof n=="function"?za:Ea)(e,n)):this.node()[e]}function ii(e){return e.trim().split(/^|\s+/)}function Pn(e){return e.classList||new oi(e)}function oi(e){this._node=e,this._names=ii(e.getAttribute("class")||"")}oi.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ai(e,n){for(var r=Pn(e),i=-1,o=n.length;++i=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function ss(e){return function(){var n=this.__on;if(n){for(var r=0,i=-1,o=n.length,a;r{}};function ve(){for(var e=0,n=arguments.length,r={},i;e=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}Se.prototype=ve.prototype={constructor:Se,on:function(e,n){var r=this._,i=_s(e+"",r),o,a=-1,s=i.length;if(arguments.length<2){for(;++a0)for(var r=new Array(o),i=0,o,a;i()=>e;function pn(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:a,x:s,y:u,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xs(e){return!e.ctrlKey&&!e.button}function bs(){return this.parentNode}function ws(e,n){return n??{x:e.x,y:e.y}}function ks(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cs(){var e=xs,n=bs,r=ws,i=ks,o={},a=ve("start","drag","end"),s=0,u,c,l,f,h=0;function d(_){_.on("mousedown.drag",p).filter(i).on("touchstart.drag",m).on("touchmove.drag",g,ms).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(_,v){if(!(f||!e.call(this,_,v))){var A=w(this,n.call(this,_,v),_,v,"mouse");A&&(pt(_.view).on("mousemove.drag",y,pe).on("mouseup.drag",x,pe),ci(_.view),Qe(_),l=!1,u=_.clientX,c=_.clientY,A("start",_))}}function y(_){if(Vt(_),!l){var v=_.clientX-u,A=_.clientY-c;l=v*v+A*A>h}o.mouse("drag",_)}function x(_){pt(_.view).on("mousemove.drag mouseup.drag",null),fi(_.view,l),Vt(_),o.mouse("end",_)}function m(_,v){if(e.call(this,_,v)){var A=_.changedTouches,M=n.call(this,_,v),T=A.length,R,P;for(R=0;R=0&&e._call.call(void 0,n),e=e._next;--Xt}function ir(){Ht=(Re=ge.now())+Ge,Xt=ae=0;try{Ss()}finally{Xt=0,Ts(),Ht=0}}function Ms(){var e=ge.now(),n=e-Re;n>hi&&(Ge-=n,Re=e)}function Ts(){for(var e,n=Ne,r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Ne=r);se=e,gn(i)}function gn(e){if(!Xt){ae&&(ae=clearTimeout(ae));var n=e-Ht;n>24?(e<1/0&&(ae=setTimeout(ir,e-ge.now()-Ge)),Qt&&(Qt=clearInterval(Qt))):(Qt||(Re=ge.now(),Qt=setInterval(Ms,hi)),Xt=1,di(ir))}}function or(e,n,r){var i=new je;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var Ps=ve("start","end","cancel","interrupt"),Os=[],pi=0,ar=1,yn=2,Me=3,sr=4,_n=5,Te=6;function Ve(e,n,r,i,o,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;Es(e,r,{name:n,index:i,group:o,on:Ps,tween:Os,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:pi})}function zn(e,n){var r=vt(e,n);if(r.state>pi)throw new Error("too late; already scheduled");return r}function Ct(e,n){var r=vt(e,n);if(r.state>Me)throw new Error("too late; already running");return r}function vt(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function Es(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=En(a,0,r.time);function a(l){r.state=ar,r.timer.restart(s,r.delay,r.time),r.delay<=l&&s(l-r.delay)}function s(l){var f,h,d,p;if(r.state!==ar)return c();for(f in i)if(p=i[f],p.name===r.name){if(p.state===Me)return or(s);p.state===sr?(p.state=Te,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete i[f]):+fyn&&i.state<_n,i.state=Te,i.timer.stop(),i.on.call(o?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[s]}a&&delete e.__transition}}function zs(e){return this.each(function(){Pe(this,e)})}function Ns(e,n){var r,i;return function(){var o=Ct(this,e),a=o.tween;if(a!==r){i=r=a;for(var s=0,u=i.length;s=0&&(n=n.slice(0,r)),!n||n==="start"})}function su(e,n,r){var i,o,a=au(n)?zn:Ct;return function(){var s=a(this,e),u=s.on;u!==i&&(o=(i=u).copy()).on(n,r),s.on=o}}function uu(e,n){var r=this._id;return arguments.length<2?vt(this.node(),r).on.on(e):this.each(su(r,e,n))}function lu(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function cu(){return this.on("end.remove",lu(this._id))}function fu(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Tn(e));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s()=>e;function Du(e,{sourceEvent:n,target:r,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Et(e,n,r){this.k=e,this.x=n,this.y=r}Et.prototype={constructor:Et,scale:function(e){return e===1?this:new Et(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Et(this.k,this.x+this.k*e,this.y+this.k*n)},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 Rn=new Et(1,0,0);mt.prototype=Et.prototype;function mt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Rn;return e.__zoom}function Je(e){e.stopImmediatePropagation()}function Jt(e){e.preventDefault(),e.stopImmediatePropagation()}function Iu(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function $u(){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 ur(){return this.__zoom||Rn}function Lu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Fu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Uu(e,n,r){var i=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],a=e.invertY(n[0][1])-r[0][1],s=e.invertY(n[1][1])-r[1][1];return e.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s))}function Hu(){var e=Iu,n=$u,r=Uu,i=Lu,o=Fu,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,c=Co,l=ve("start","zoom","end"),f,h,d,p=500,y=150,x=0,m=10;function g(S){S.property("__zoom",ur).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",N).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(S,j,E,C){var O=S.selection?S.selection():S;O.property("__zoom",ur),S!==O?v(S,j,E,C):O.interrupt().each(function(){A(this,arguments).event(C).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},g.scaleBy=function(S,j,E,C){g.scaleTo(S,function(){var O=this.__zoom.k,I=typeof j=="function"?j.apply(this,arguments):j;return O*I},E,C)},g.scaleTo=function(S,j,E,C){g.transform(S,function(){var O=n.apply(this,arguments),I=this.__zoom,L=E==null?_(O):typeof E=="function"?E.apply(this,arguments):E,H=I.invert(L),F=typeof j=="function"?j.apply(this,arguments):j;return r(w(k(I,F),L,H),O,s)},E,C)},g.translateBy=function(S,j,E,C){g.transform(S,function(){return r(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof E=="function"?E.apply(this,arguments):E),n.apply(this,arguments),s)},null,C)},g.translateTo=function(S,j,E,C,O){g.transform(S,function(){var I=n.apply(this,arguments),L=this.__zoom,H=C==null?_(I):typeof C=="function"?C.apply(this,arguments):C;return r(Rn.translate(H[0],H[1]).scale(L.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof E=="function"?-E.apply(this,arguments):-E),I,s)},C,O)};function k(S,j){return j=Math.max(a[0],Math.min(a[1],j)),j===S.k?S:new Et(j,S.x,S.y)}function w(S,j,E){var C=j[0]-E[0]*S.k,O=j[1]-E[1]*S.k;return C===S.x&&O===S.y?S:new Et(S.k,C,O)}function _(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function v(S,j,E,C){S.on("start.zoom",function(){A(this,arguments).event(C).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(C).end()}).tween("zoom",function(){var O=this,I=arguments,L=A(O,I).event(C),H=n.apply(O,I),F=E==null?_(H):typeof E=="function"?E.apply(O,I):E,G=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=O.__zoom,X=typeof j=="function"?j.apply(O,I):j,tt=c(V.invert(F).concat(G/V.k),X.invert(F).concat(G/X.k));return function(Z){if(Z===1)Z=X;else{var st=tt(Z),et=G/st[2];Z=new Et(et,F[0]-st[0]*et,F[1]-st[1]*et)}L.zoom(null,Z)}})}function A(S,j,E){return!E&&S.__zooming||new M(S,j)}function M(S,j){this.that=S,this.args=j,this.active=0,this.sourceEvent=null,this.extent=n.apply(S,j),this.taps=0}M.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,j){return this.mouse&&S!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var j=pt(this.that).datum();l.call(S,this.that,new Du(S,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:l}),j)}};function T(S,...j){if(!e.apply(this,arguments))return;var E=A(this,j).event(S),C=this.__zoom,O=Math.max(a[0],Math.min(a[1],C.k*Math.pow(2,i.apply(this,arguments)))),I=xt(S);if(E.wheel)(E.mouse[0][0]!==I[0]||E.mouse[0][1]!==I[1])&&(E.mouse[1]=C.invert(E.mouse[0]=I)),clearTimeout(E.wheel);else{if(C.k===O)return;E.mouse=[I,C.invert(I)],Pe(this),E.start()}Jt(S),E.wheel=setTimeout(L,y),E.zoom("mouse",r(w(k(C,O),E.mouse[0],E.mouse[1]),E.extent,s));function L(){E.wheel=null,E.end()}}function R(S,...j){if(d||!e.apply(this,arguments))return;var E=S.currentTarget,C=A(this,j,!0).event(S),O=pt(S.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",G,!0),I=xt(S,E),L=S.clientX,H=S.clientY;ci(S.view),Je(S),C.mouse=[I,this.__zoom.invert(I)],Pe(this),C.start();function F(V){if(Jt(V),!C.moved){var X=V.clientX-L,tt=V.clientY-H;C.moved=X*X+tt*tt>x}C.event(V).zoom("mouse",r(w(C.that.__zoom,C.mouse[0]=xt(V,E),C.mouse[1]),C.extent,s))}function G(V){O.on("mousemove.zoom mouseup.zoom",null),fi(V.view,C.moved),Jt(V),C.event(V).end()}}function P(S,...j){if(e.apply(this,arguments)){var E=this.__zoom,C=xt(S.changedTouches?S.changedTouches[0]:S,this),O=E.invert(C),I=E.k*(S.shiftKey?.5:2),L=r(w(k(E,I),C,O),n.apply(this,j),s);Jt(S),u>0?pt(this).transition().duration(u).call(v,L,C,S):pt(this).call(g.transform,L,C,S)}}function N(S,...j){if(e.apply(this,arguments)){var E=S.touches,C=E.length,O=A(this,j,S.changedTouches.length===C).event(S),I,L,H,F;for(Je(S),L=0;L=n||M<0||h&&T>=a}function g(){var A=tn();if(m(A))return k(A);u=setTimeout(g,x(A))}function k(A){return u=void 0,d&&i?p(A):(i=o=void 0,s)}function w(){u!==void 0&&clearTimeout(u),l=0,i=c=o=u=void 0}function _(){return u===void 0?s:k(tn())}function v(){var A=tn(),M=m(A);if(i=arguments,o=this,c=A,M){if(u===void 0)return y(c);if(h)return clearTimeout(u),u=setTimeout(g,n),p(c)}return u===void 0&&(u=setTimeout(g,n)),s}return v.cancel=w,v.flush=_,v}var pl="Expected a function";function gl(e,n,r){var i=!0,o=!0;if(typeof e!="function")throw new TypeError(pl);return Ie(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),xi(e,n,{leading:i,maxWait:n,trailing:o})}var Ut=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Ut.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Ut.Bounce.In(e*2)*.5:Ut.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),ue=function(){return performance.now()},bi=(function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,r){n===void 0&&(n=ue()),r===void 0&&(r=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?a(e[r],e[r-1],r-i):a(e[o],e[o+1>r?r:o+1],i-o)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},wi=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),mn=new bi,hr=(function(){function e(n,r){r===void 0&&(r=mn),this._object=n,this._group=r,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ut.Linear.None,this._interpolationFunction=vn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=wi.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=ue()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var a in this._valuesEnd)o[a]=this._valuesEnd[a];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,i,o,a){for(var s in i){var u=n[s],c=Array.isArray(u),l=c?"array":typeof u,f=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(f){var h=i[s];if(h.length===0)continue;for(var d=[u],p=0,y=h.length;p"u"||a)&&(r[s]=u),c||(r[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=ue()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=ue()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;ns)return!1;r&&this.start(n,!0)}if(this._goToEnd=!1,nl)return 1;var m=Math.trunc(u/c),g=u-m*c,k=Math.min(g/i._duration,1);return k===0&&u===i._duration?1:k},h=f(),d=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||u>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((u-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var y=0,x=this._chainedTweens.length;ye.length)&&(n=e.length);for(var r=0,i=Array(n);r=0,a=!r&&o&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(i=this.toRgbString()),n==="prgb"&&(i=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(i=this.toHexString()),n==="hex3"&&(i=this.toHexString(!0)),n==="hex4"&&(i=this.toHex8String(!0)),n==="hex8"&&(i=this.toHex8String()),n==="name"&&(i=this.toName()),n==="hsl"&&(i=this.toHslString()),n==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return q(this.toString())},_applyModification:function(n,r){var i=n.apply(null,[this].concat([].slice.call(r)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(Rl,arguments)},brighten:function(){return this._applyModification(jl,arguments)},darken:function(){return this._applyModification(Dl,arguments)},desaturate:function(){return this._applyModification(El,arguments)},saturate:function(){return this._applyModification(zl,arguments)},greyscale:function(){return this._applyModification(Nl,arguments)},spin:function(){return this._applyModification(Il,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Fl,arguments)},complement:function(){return this._applyCombination($l,arguments)},monochromatic:function(){return this._applyCombination(Ul,arguments)},splitcomplement:function(){return this._applyCombination(Ll,arguments)},triad:function(){return this._applyCombination(vr,[3])},tetrad:function(){return this._applyCombination(vr,[4])}};q.fromRatio=function(e,n){if($e(e)=="object"){var r={};for(var i in e)e.hasOwnProperty(i)&&(i==="a"?r[i]=e[i]:r[i]=le(e[i]));e=r}return q(e,n)};function Sl(e){var n={r:0,g:0,b:0},r=1,i=null,o=null,a=null,s=!1,u=!1;return typeof e=="string"&&(e=Vl(e)),$e(e)=="object"&&(Mt(e.r)&&Mt(e.g)&&Mt(e.b)?(n=Ml(e.r,e.g,e.b),s=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Mt(e.h)&&Mt(e.s)&&Mt(e.v)?(i=le(e.s),o=le(e.v),n=Pl(e.h,i,o),s=!0,u="hsv"):Mt(e.h)&&Mt(e.s)&&Mt(e.l)&&(i=le(e.s),a=le(e.l),n=Tl(e.h,i,a),s=!0,u="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ki(r),{ok:s,format:e.format||u,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function Ml(e,n,r){return{r:Q(e,255)*255,g:Q(n,255)*255,b:Q(r,255)*255}}function pr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=(i+o)/2;if(i==o)a=s=0;else{var c=i-o;switch(s=u>.5?c/(2-i-o):c/(i+o),i){case e:a=(n-r)/c+(n1&&(h-=1),h<1/6?l+(f-l)*6*h:h<1/2?f:h<2/3?l+(f-l)*(2/3-h)*6:l}if(n===0)i=o=a=r;else{var u=r<.5?r*(1+n):r+n-r*n,c=2*r-u;i=s(c,u,e+1/3),o=s(c,u,e),a=s(c,u,e-1/3)}return{r:i*255,g:o*255,b:a*255}}function gr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=i,c=i-o;if(s=i===0?0:c/i,i==o)a=0;else{switch(i){case e:a=(n-r)/c+(n>1)+720)%360;--n;)i.h=(i.h+o)%360,a.push(q(i));return a}function Ul(e,n){n=n||6;for(var r=q(e).toHsv(),i=r.h,o=r.s,a=r.v,s=[],u=1/n;n--;)s.push(q({h:i,s:o,v:a})),a=(a+u)%1;return s}q.mix=function(e,n,r){r=r===0?0:r||50;var i=q(e).toRgb(),o=q(n).toRgb(),a=r/100,s={r:(o.r-i.r)*a+i.r,g:(o.g-i.g)*a+i.g,b:(o.b-i.b)*a+i.b,a:(o.a-i.a)*a+i.a};return q(s)};q.readability=function(e,n){var r=q(e),i=q(n);return(Math.max(r.getLuminance(),i.getLuminance())+.05)/(Math.min(r.getLuminance(),i.getLuminance())+.05)};q.isReadable=function(e,n,r){var i=q.readability(e,n),o,a;switch(a=!1,o=Bl(r),o.level+o.size){case"AAsmall":case"AAAlarge":a=i>=4.5;break;case"AAlarge":a=i>=3;break;case"AAAsmall":a=i>=7;break}return a};q.mostReadable=function(e,n,r){var i=null,o=0,a,s,u,c;r=r||{},s=r.includeFallbackColors,u=r.level,c=r.size;for(var l=0;lo&&(o=a,i=q(n[l]));return q.isReadable(e,i,{level:u,size:c})||!s?i:(r.includeFallbackColors=!1,q.mostReadable(e,["#fff","#000"],r))};var xn=q.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Hl=q.hexNames=ql(xn);function ql(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ki(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Q(e,n){Wl(e)&&(e="100%");var r=Gl(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Be(e){return Math.min(1,Math.max(0,e))}function ct(e){return parseInt(e,16)}function Wl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Gl(e){return typeof e=="string"&&e.indexOf("%")!=-1}function _t(e){return e.length==1?"0"+e:""+e}function le(e){return e<=1&&(e=e*100+"%"),e}function Ci(e){return Math.round(parseFloat(e)*255).toString(16)}function mr(e){return ct(e)/255}var yt=(function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Mt(e){return!!yt.CSS_UNIT.exec(e)}function Vl(e){e=e.replace(Cl,"").replace(Al,"").toLowerCase();var n=!1;if(xn[e])e=xn[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=yt.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=yt.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=yt.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=yt.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=yt.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=yt.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=yt.hex8.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),a:mr(r[4]),format:n?"name":"hex8"}:(r=yt.hex6.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),format:n?"name":"hex"}:(r=yt.hex4.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),a:mr(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=yt.hex3.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function Bl(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function bn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:6;Zl(this,e),xr(this,Lt,void 0),xr(this,Tt,void 0),br(Tt,this,n),this.reset()}return Ql(e,[{key:"reset",value:function(){br(Lt,this,["__reserved for background__"])}},{key:"register",value:function(r){if(ht(Lt,this).length>=Math.pow(2,24-ht(Tt,this)))return null;var i=ht(Lt,this).length,o=wr(i,ht(Tt,this)),a=ac(i+(o<<24-ht(Tt,this)));return ht(Lt,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var i=typeof r=="string"?sc(r):Si.apply(void 0,ec(r));if(!i)return null;var o=i&Math.pow(2,24-ht(Tt,this))-1,a=i>>24-ht(Tt,this)&Math.pow(2,ht(Tt,this))-1;return wr(o,ht(Tt,this))!==a||o>=ht(Lt,this).length?null:ht(Lt,this)[o]}}])})(),me,J,Mi,Ti,$t,kr,Pi,Oi,en,Oe,ce,Ei,Dn,wn,kn,Le={},Fe=[],lc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Xe=Array.isArray;function bt(e,n){for(var r in n)e[r]=n[r];return e}function In(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function cc(e,n,r){var i,o,a,s={};for(a in n)a=="key"?i=n[a]:a=="ref"?o=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?me.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return fe(e,s,i,o,null)}function fe(e,n,r,i,o){var a={type:e,props:n,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++Mi,__i:-1,__u:0};return o==null&&J.vnode!=null&&J.vnode(a),a}function Ye(e){return e.children}function Ee(e,n){this.props=e,this.context=n}function Yt(e,n){if(n==null)return e.__?Yt(e.__,e.__i+1):null;for(var r;nn&&$t.sort(Oi),e=$t.shift(),n=$t.length,fc(e)}finally{$t.length=Ue.__r=0}}function Ni(e,n,r,i,o,a,s,u,c,l,f){var h,d,p,y,x,m,g,k=i&&i.__k||Fe,w=n.length;for(c=hc(r,n,k,c,w),h=0;h0?s=e.__k[a]=fe(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,c=a+d,s.__=e,s.__b=e.__b+1,u=null,(l=s.__i=dc(s,r,c,h))!=-1&&(h--,(u=r[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(o>f?d--:oc?d--:d++,s.__u|=4))):e.__k[a]=null;if(h)for(a=0;a(f?1:0)){for(o=r-1,a=r+1;o>=0||a=0?o--:a++])!=null&&(2&l.__u)==0&&u==l.key&&c==l.type)return s}return-1}function Ar(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||lc.test(n)?r:r+"px"}function ke(e,n,r,i,o){var a,s;t:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(n in i)r&&n in r||Ar(e.style,n,"");if(r)for(n in r)i&&r[n]==i[n]||Ar(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Ei,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?i?r[ce]=i[ce]:(r[ce]=Dn,e.addEventListener(n,a?kn:wn,a)):e.removeEventListener(n,a?kn:wn,a);else{if(o=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break t}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function Sr(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[Oe]==null)n[Oe]=Dn++;else if(n[Oe]0?e:Xe(e)?e.map(Ii):e.constructor!==void 0?null:bt({},e)}function pc(e,n,r,i,o,a,s,u,c){var l,f,h,d,p,y,x,m=r.props||Le,g=n.props,k=n.type;if(k=="svg"?o="http://www.w3.org/2000/svg":k=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l2&&(u.children=arguments.length>3?me.call(arguments,2):r),fe(e.type,u,i||e.key,o||e.ref,null)}me=Fe.slice,J={__e:function(e,n,r,i){for(var o,a,s;n=n.__;)if((o=n.__c)&&!o.__)try{if((a=o.constructor)&&a.getDerivedStateFromError!=null&&(o.setState(a.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,i||{}),s=o.__d),s)return o.__E=o}catch(u){e=u}throw e}},Mi=0,Ti=function(e){return e!=null&&e.constructor===void 0},Ee.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=bt({},this.state),typeof e=="function"&&(e=e(bt({},r),this.props)),e&&bt(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),Cr(this))},Ee.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Cr(this))},Ee.prototype.render=Ye,$t=[],Pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Oi=function(e,n){return e.__v.__b-n.__v.__b},Ue.__r=0,en=Math.random().toString(8),Oe="__d"+en,ce="__a"+en,Ei=/(PointerCapture)$|Capture$/i,Dn=0,wn=Sr(!1),kn=Sr(!0);function Mr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Pc=`.float-tooltip-kap { - position: absolute; - width: max-content; /* prevent shrinking near right edge */ - max-width: max(50%, 150px); - padding: 3px 5px; - border-radius: 3px; - font: 12px sans-serif; - color: #eee; - background: rgba(0,0,0,0.6); - pointer-events: none; -} -`;Tc(Pc);var Oc=jn({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.style,a=o===void 0?{}:o,s=!!n&&He(n)==="object"&&!!n.node&&typeof n.node=="function",u=pt(s?n.node():n);u.style("position")==="static"&&u.style("position","relative"),r.tooltipEl=u.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(l){var f=wc(l,2),h=f[0],d=f[1];return r.tooltipEl.style(h,d)}),r.tooltipEl.style("left","-10000px").style("display","none");var c="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,u.on("mousemove.".concat(c),function(l){r.mouseInside=!0;var f=xt(l),h=u.node(),d=h.offsetWidth,p=h.offsetHeight,y=[r.offsetX===null||r.offsetX===void 0?"-".concat(f[0]/d*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-f[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",f[0]+"px").style("top",f[1]+"px").style("transform","translate(".concat(y.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseover.".concat(c),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseout.".concat(c),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):Sc(n.content)?(n.tooltipEl.text(""),Mc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function Ec(e,n,r){var i,o=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,u=i.length,c,l=0,f=0,h=0;for(s=0;s=(c=(s+u)/2))?s=c:u=c,i=o,!(o=o[h=+f]))return i[h]=a,e;if(l=+e._x.call(null,o.data),n===l)return a.next=o,i?i[h]=a:e._root=a,e;do i=i?i[h]=new Array(2):e._root=new Array(2),(f=n>=(c=(s+u)/2))?s=c:u=c;while((h=+f)==(d=+(l>=c)));return i[d]=o,i[h]=a,e}function Nc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let i=1/0,o=-1/0;for(let a=0,s;ao&&(o=s));if(i>o)return this;this.cover(i).cover(o);for(let a=0;ae||e>=r;)switch(s=+(es||(a=l.x1)=h))&&(l=u[u.length-1],u[u.length-1]=u[u.length-1-f],u[u.length-1-f]=l)}else{var d=Math.abs(e-+this._x.call(null,c.data));d=(l=(s+u)/2))?s=l:u=l,n=r,!(r=r[h=+f]))return this;if(!r.length)break;n[h+1&1]&&(i=n,d=h)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[h]=a:delete n[h],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(i?i[d]=r:this._root=r),this):(this._root=a,this)}function Lc(e){for(var n=0,r=e.length;n=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d,o=a,!(a=a[g=m<<1|x]))return o[g]=s,e;if(p=+e._x.call(null,a.data),y=+e._y.call(null,a.data),n===p&&r===y)return s.next=a,o?o[g]=s:e._root=s,e;do o=o?o[g]=new Array(4):e._root=new Array(4),(x=n>=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d;while((g=m<<1|x)===(k=(y>=d)<<1|p>=h));return o[k]=a,o[g]=s,e}function Bc(e){var n,r,i=e.length,o,a,s=new Array(i),u=new Array(i),c=1/0,l=1/0,f=-1/0,h=-1/0;for(r=0;rf&&(f=o),ah&&(h=a));if(c>f||l>h)return this;for(this.cover(c,l).cover(f,h),r=0;re||e>=o||i>n||n>=a;)switch(l=(nf||(u=y.y0)>h||(c=y.x1)=g)<<1|e>=m)&&(y=d[d.length-1],d[d.length-1]=d[d.length-1-x],d[d.length-1-x]=y)}else{var k=e-+this._x.call(null,p.data),w=n-+this._y.call(null,p.data),_=k*k+w*w;if(_=(d=(s+c)/2))?s=d:c=d,(x=h>=(p=(u+l)/2))?u=p:l=p,n=r,!(r=r[m=x<<1|y]))return this;if(!r.length)break;(n[m+1&3]||n[m+2&3]||n[m+3&3])&&(i=n,g=m)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[m]=a:delete n[m],(r=n[0]||n[1]||n[2]||n[3])&&r===(n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[g]=r:this._root=r),this):(this._root=a,this)}function Jc(e){for(var n=0,r=e.length;n=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m,a=s,!(s=s[M=A<<2|v<<1|_]))return a[M]=u,e;if(g=+e._x.call(null,s.data),k=+e._y.call(null,s.data),w=+e._z.call(null,s.data),n===g&&r===k&&i===w)return u.next=s,a?a[M]=u:e._root=u,e;do a=a?a[M]=new Array(8):e._root=new Array(8),(_=n>=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m;while((M=A<<2|v<<1|_)===(T=(w>=m)<<2|(k>=x)<<1|g>=y));return a[T]=s,a[M]=u,e}function cf(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),i=new Float64Array(n),o=new Float64Array(n);let a=1/0,s=1/0,u=1/0,c=-1/0,l=-1/0,f=-1/0;for(let h=0,d,p,y,x;hc&&(c=p),yl&&(l=y),xf&&(f=x));if(a>c||s>l||u>f)return this;this.cover(a,s,u).cover(c,l,f);for(let h=0;he||e>=s||o>n||n>=u||a>r||r>=c;)switch(d=(ry||(l=w.y0)>x||(f=w.z0)>m||(h=w.x1)=M)<<2|(n>=A)<<1|e>=v)&&(w=g[g.length-1],g[g.length-1]=g[g.length-1-_],g[g.length-1-_]=w)}else{var T=e-+this._x.call(null,k.data),R=n-+this._y.call(null,k.data),P=r-+this._z.call(null,k.data),N=T*T+R*R+P*P;if(NMath.sqrt((e-i)**2+(n-o)**2+(r-a)**2);function yf(e,n,r,i){const o=[],a=e-i,s=n-i,u=r-i,c=e+i,l=n+i,f=r+i;return this.visit((h,d,p,y,x,m,g)=>{if(!h.length)do{const k=h.data;gf(e,n,r,this._x(k),this._y(k),this._z(k))<=i&&o.push(k)}while(h=h.next);return d>c||p>l||y>f||x=(x=(s+l)/2))?s=x:l=x,(w=p>=(m=(u+f)/2))?u=m:f=m,(_=y>=(g=(c+h)/2))?c=g:h=g,n=r,!(r=r[v=_<<2|w<<1|k]))return this;if(!r.length)break;(n[v+1&7]||n[v+2&7]||n[v+3&7]||n[v+4&7]||n[v+5&7]||n[v+6&7]||n[v+7&7])&&(i=n,A=v)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[v]=a:delete n[v],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[A]=r:this._root=r),this):(this._root=a,this)}function vf(e){for(var n=0,r=e.length;n1&&(R=M.y+M.vy-A.y-A.vy||Ot(f)),u>2&&(P=M.z+M.vz-A.z-A.vz||Ot(f)),N=Math.sqrt(T*T+R*R+P*P),N=(N-a[_])/N*g*i[_],T*=N,R*=N,P*=N,M.vx-=T*(D=l[_]),u>1&&(M.vy-=R*D),u>2&&(M.vz-=P*D),A.vx+=T*(D=1-D),u>1&&(A.vy+=R*D),u>2&&(A.vz+=P*D)}function y(){if(s){var g,k=s.length,w=e.length,_=new Map(s.map((A,M)=>[n(A,M,s),A])),v;for(g=0,c=new Array(k);gtypeof w=="function")||Math.random,u=k.find(w=>[1,2,3].includes(w))||2,y()},p.links=function(g){return arguments.length?(e=g,y(),p):e},p.id=function(g){return arguments.length?(n=g,p):n},p.iterations=function(g){return arguments.length?(h=+g,p):h},p.strength=function(g){return arguments.length?(r=typeof g=="function"?g:zt(+g),x(),p):r},p.distance=function(g){return arguments.length?(o=typeof g=="function"?g:zt(+g),m(),p):o},p}const Ef=1664525,zf=1013904223,Nr=4294967296;function Nf(){let e=1;return()=>(e=(Ef*e+zf)%Nr)/Nr}var Rr=3;function nn(e){return e.x}function jr(e){return e.y}function Rf(e){return e.z}var jf=10,Df=Math.PI*(3-Math.sqrt(5)),If=Math.PI*20/(9+Math.sqrt(221));function $f(e,n){n=n||2;var r=Math.min(Rr,Math.max(1,Math.round(n))),i,o=1,a=.001,s=1-Math.pow(a,1/300),u=0,c=.6,l=new Map,f=En(p),h=ve("tick","end"),d=Nf();e==null&&(e=[]);function p(){y(),h.call("tick",i),o1&&(_.fy==null?_.y+=_.vy*=c:(_.y=_.fy,_.vy=0)),r>2&&(_.fz==null?_.z+=_.vz*=c:(_.z=_.fz,_.vz=0));return i}function x(){for(var g=0,k=e.length,w;g1&&isNaN(w.y)||r>2&&isNaN(w.z)){var _=jf*(r>2?Math.cbrt(.5+g):r>1?Math.sqrt(.5+g):g),v=g*Df,A=g*If;r===1?w.x=_:r===2?(w.x=_*Math.cos(v),w.y=_*Math.sin(v)):(w.x=_*Math.sin(v)*Math.cos(A),w.y=_*Math.cos(v),w.z=_*Math.sin(v)*Math.sin(A))}(isNaN(w.vx)||r>1&&isNaN(w.vy)||r>2&&isNaN(w.vz))&&(w.vx=0,r>1&&(w.vy=0),r>2&&(w.vz=0))}}function m(g){return g.initialize&&g.initialize(e,d,r),g}return x(),i={tick:y,restart:function(){return f.restart(p),i},stop:function(){return f.stop(),i},numDimensions:function(g){return arguments.length?(r=Math.min(Rr,Math.max(1,Math.round(g))),l.forEach(m),i):r},nodes:function(g){return arguments.length?(e=g,x(),l.forEach(m),i):e},alpha:function(g){return arguments.length?(o=+g,i):o},alphaMin:function(g){return arguments.length?(a=+g,i):a},alphaDecay:function(g){return arguments.length?(s=+g,i):+s},alphaTarget:function(g){return arguments.length?(u=+g,i):u},velocityDecay:function(g){return arguments.length?(c=1-g,i):1-c},randomSource:function(g){return arguments.length?(d=g,l.forEach(m),i):d},force:function(g,k){return arguments.length>1?(k==null?l.delete(g):l.set(g,m(k)),i):l.get(g)},find:function(){var g=Array.prototype.slice.call(arguments),k=g.shift()||0,w=(r>1?g.shift():null)||0,_=(r>2?g.shift():null)||0,v=g.shift()||1/0,A=0,M=e.length,T,R,P,N,D,U;for(v*=v,A=0;A1?(h.on(g,k),i):h.on(g)}}}function Lf(){var e,n,r,i,o,a=zt(-30),s,u=1,c=1/0,l=.81;function f(y){var x,m=e.length,g=(n===1?Ui(e,nn):n===2?Un(e,nn,jr):n===3?Wi(e,nn,jr,Rf):null).visitAfter(d);for(o=y,x=0;x1&&(y.y=_/k),n>2&&(y.z=v/k)}else{m=y,m.x=m.data.x,n>1&&(m.y=m.data.y),n>2&&(m.z=m.data.z);do x+=s[m.data.index];while(m=m.next)}y.value=x}function p(y,x,m,g,k){if(!y.value)return!0;var w=[m,g,k][n-1],_=y.x-r.x,v=n>1?y.y-r.y:0,A=n>2?y.z-r.z:0,M=w-x,T=_*_+v*v+A*A;if(M*M/l1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*y.value*o/T),n>2&&(r.vz+=A*y.value*o/T)),!0;if(y.length||T>=c)return;(y.data!==r||y.next)&&(_===0&&(_=Ot(i),T+=_*_),n>1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*M),n>2&&(r.vz+=A*M));while(y=y.next)}return f.initialize=function(y,...x){e=y,i=x.find(m=>typeof m=="function")||Math.random,n=x.find(m=>[1,2,3].includes(m))||2,h()},f.strength=function(y){return arguments.length?(a=typeof y=="function"?y:zt(+y),h(),f):a},f.distanceMin=function(y){return arguments.length?(u=y*y,f):Math.sqrt(u)},f.distanceMax=function(y){return arguments.length?(c=y*y,f):Math.sqrt(c)},f.theta=function(y){return arguments.length?(l=y*y,f):Math.sqrt(l)},f}function Ff(e,n,r,i){var o,a,s=zt(.1),u,c;typeof e!="function"&&(e=zt(+e)),n==null&&(n=0),r==null&&(r=0),i==null&&(i=0);function l(h){for(var d=0,p=o.length;d1&&(y.vy+=m*w),a>2&&(y.vz+=g*w)}}function f(){if(o){var h,d=o.length;for(u=new Array(d),c=new Array(d),h=0;h[1,2,3].includes(p))||2,f()},l.strength=function(h){return arguments.length?(s=typeof h=="function"?h:zt(+h),f(),l):s},l.radius=function(h){return arguments.length?(e=typeof h=="function"?h:zt(+h),f(),l):e},l.x=function(h){return arguments.length?(n=+h,l):n},l.y=function(h){return arguments.length?(r=+h,l):r},l.z=function(h){return arguments.length?(i=+h,l):i},l}const{abs:ee,cos:Pt,sin:Wt,acos:Uf,atan2:ne,sqrt:Dt,pow:dt}=Math;function re(e){return e<0?-dt(-e,1/3):dt(e,1/3)}const Gi=Math.PI,Ce=2*Gi,It=Gi/2,Hf=1e-6,rn=Number.MAX_SAFE_INTEGER||9007199254740991,on=Number.MIN_SAFE_INTEGER||-9007199254740991,qf={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let i=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(i+=r.z*r.z),Dt(i)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const i=n.length-1;if(e===1)return n[i].t=1,n[i];const o=1-e;let a=n;if(i===0)return n[0].t=e,n[0];if(i===1){const u={x:o*a[0].x+e*a[1].x,y:o*a[0].y+e*a[1].y,t:e};return r&&(u.z=o*a[0].z+e*a[1].z),u}if(i<4){let u=o*o,c=e*e,l,f,h,d=0;i===2?(a=[a[0],a[1],a[2],qf],l=u,f=o*e*2,h=c):i===3&&(l=u*o,f=u*e*3,h=o*c*3,d=e*c);const p={x:l*a[0].x+f*a[1].x+h*a[2].x+d*a[3].x,y:l*a[0].y+f*a[1].y+h*a[2].y+d*a[3].y,t:e};return r&&(p.z=l*a[0].z+f*a[1].z+h*a[2].z+d*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let u=0;u1;o--,a--){const s=[];for(let u=0,c;u"u")e=.5;else if(e===0||e===1)return e;const r=dt(e,n)+dt(1-e,n),i=r-1;return ee(i/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=dt(1-e,n),i=dt(e,n)+r;return r/i},lli8:function(e,n,r,i,o,a,s,u){const c=(e*i-n*r)*(o-s)-(e-r)*(o*u-a*s),l=(e*i-n*r)*(a-u)-(n-i)*(o*u-a*s),f=(e-r)*(a-u)-(n-i)*(o-s);return f==0?!1:{x:c/f,y:l/f}},lli4:function(e,n,r,i){const o=e.x,a=e.y,s=n.x,u=n.y,c=r.x,l=r.y,f=i.x,h=i.y;return z.lli8(o,a,s,u,c,l,f,h)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new K(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=rn,r=rn,i=on,o=on;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),i0&&(f.c1=c,f.c2=l,f.s1=e,f.s2=r,a.push(f))})}),a},makeshape:function(e,n,r){const i=n.points.length,o=e.points.length,a=z.makeline(n.points[i-1],e.points[0]),s=z.makeline(e.points[o-1],n.points[0]),u={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return u.intersections=function(c){return z.shapeintersections(u,u.bbox,c,c.bbox,r)},u},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let i=rn,o=on,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let u=0,c=r.length;uo&&(o=s[n]);return{min:i,mid:(i+o)/2,max:o,size:o-i}},align:function(e,n){const r=n.p1.x,i=n.p1.y,o=-ne(n.p2.y-i,n.p2.x-r),a=function(s){return{x:(s.x-r)*Pt(o)-(s.y-i)*Wt(o),y:(s.x-r)*Wt(o)+(s.y-i)*Pt(o)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,i=z.align(e,n),o=function(M){return 0<=M&&M<=1};if(r===2){const M=i[0].y,T=i[1].y,R=i[2].y,P=M-2*T+R;if(P!==0){const N=-Dt(T*T-M*R),D=-M+T,U=-(N+D)/P,S=-(-N+D)/P;return[U,S].filter(o)}else if(T!==R&&P===0)return[(2*T-R)/(2*T-2*R)].filter(o);return[]}const a=i[0].y,s=i[1].y,u=i[2].y,c=i[3].y;let l=-a+3*s-3*u+c,f=3*a-6*s+3*u,h=-3*a+3*s,d=a;if(z.approximately(l,0)){if(z.approximately(f,0))return z.approximately(h,0)?[]:[-d/h].filter(o);const M=Dt(h*h-4*f*d),T=2*f;return[(M-h)/T,(-h-M)/T].filter(o)}f/=l,h/=l,d/=l;const p=(3*h-f*f)/3,y=p/3,x=(2*f*f*f-9*f*h+27*d)/27,m=x/2,g=m*m+y*y*y;let k,w,_,v,A;if(g<0){const M=-p/3,T=M*M*M,R=Dt(T),P=-x/(2*R),N=P<-1?-1:P>1?1:P,D=Uf(N),U=re(R),S=2*U;return _=S*Pt(D/3)-f/3,v=S*Pt((D+Ce)/3)-f/3,A=S*Pt((D+2*Ce)/3)-f/3,[_,v,A].filter(o)}else{if(g===0)return k=m<0?re(-m):-re(m),_=2*k-f/3,v=-k-f/3,[_,v].filter(o);{const M=Dt(g);return k=re(-m+M),w=re(m+M),[k-w-f/3].filter(o)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],i=e[2],o=n-2*r+i;if(o!==0){const a=-Dt(r*r-n*i),s=-n+r,u=-(a+s)/o,c=-(-a+s)/o;return[u,c]}else if(r!==i&&o===0)return[(2*r-i)/(2*(r-i))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,i,o){let a,s,u,c,l=0,f=0;const h=z.compute(e,n),d=z.compute(e,r),p=h.x*h.x+h.y*h.y;if(i?(a=Dt(dt(h.y*d.z-d.y*h.z,2)+dt(h.z*d.x-d.z*h.x,2)+dt(h.x*d.y-d.x*h.y,2)),s=dt(p+h.z*h.z,3/2)):(a=h.x*d.y-h.y*d.x,s=dt(p,3/2)),a===0||s===0)return{k:0,r:0};if(l=a/s,f=s/a,!o){const y=z.curvature(e-.001,n,r,i,!0).k,x=z.curvature(e+.001,n,r,i,!0).k;c=(x-l+(l-y))/2,u=(ee(x-l)+ee(l-y))/2}return{k:l,r:f,dk:c,adk:u}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,i=n[3].x*n[1].y,o=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*i+3*o-a),u=18*(3*r-i-3*o),c=18*(o-r);if(z.approximately(s,0)){if(!z.approximately(u,0)){let d=-c/u;if(0<=d&&d<=1)return[d]}return[]}const l=2*s;if(z.approximately(l,0))return[];const f=u*u-4*s*c;if(f<0)return[];const h=Math.sqrt(f);return[(h-u)/l,-(u+h)/l].filter(function(d){return 0<=d&&d<=1})},bboxoverlap:function(e,n){const r=["x","y"],i=r.length;for(let o=0,a,s,u,c;o=c)return!1;return!0},expandbox:function(e,n){n.x.mine.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const i=e.bbox(),o=n.bbox(),a=1e5,s=r||.5;if(i.x.size+i.y.sizeA||A>M)&&(v+=Ce),v>M&&(T=M,M=v,v=T)):M4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");o=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!o&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",u=this.points=[];for(let p=0,y=s?3:2;pp+ie(y.y),0)"u"&&(o=.5),o===0)return new K(r,r,i);if(o===1)return new K(n,r,r);const a=K.getABC(2,n,r,i,o);return new K(n,a.A,i)}static cubicFromPoints(n,r,i,o,a){typeof o>"u"&&(o=.5);const s=K.getABC(3,n,r,i,o);typeof a>"u"&&(a=z.dist(r,s.C));const u=a*(1-o)/o,c=z.dist(n,i),l=(i.x-n.x)/c,f=(i.y-n.y)/c,h=a*l,d=a*f,p=u*l,y=u*f,x={x:r.x-h,y:r.y-d},m={x:r.x+p,y:r.y+y},g=s.A,k={x:g.x+(x.x-g.x)/(1-o),y:g.y+(x.y-g.y)/(1-o)},w={x:g.x+(m.x-g.x)/o,y:g.y+(m.y-g.y)/o},_={x:n.x+(k.x-n.x)/o,y:n.y+(k.y-n.y)/o},v={x:i.x+(w.x-i.x)/(1-o),y:i.y+(w.y-i.y)/(1-o)};return new K(n,_,v,i)}static getUtils(){return z}getUtils(){return K.getUtils()}static get PolyBezier(){return he}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,i=n[0].y,o=["M",r,i,this.order===2?"Q":"C"];for(let a=1,s=n.length;a0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,i,o,a=.5){const s=z.projectionratio(a,n),u=1-s,c={x:s*r.x+u*o.x,y:s*r.y+u*o.y},l=z.abcratio(a,n);return{A:{x:i.x+(i.x-c.x)/l,y:i.y+(i.y-c.y)/l},B:i,C:c,S:r,E:o}}getABC(n,r){r=r||this.get(n);let i=this.points[0],o=this.points[this.order];return K.getABC(this.order,i,r,o,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,i,o;r1?1:h,d=this.compute(h),d.t=h,d.d=l,d}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],i=n.length;for(let o=1,a,s;o1;){i=[];for(let s=0,u,c=r.length-1;s=0&&s<=1}),r=r.concat(n[i].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(i,o){return r.indexOf(i)===o}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(i){r[i]=z.getminmax(this,i,n[i])}).bind(this)),r}overlaps(n){const r=this.bbox(),i=n.bbox();return z.bboxoverlap(r,i)}offset(n,r){if(typeof r<"u"){const i=this.get(n),o=this.normal(n),a={c:i,n:o,x:i.x+o.x*r,y:i.y+o.y*r};return this._3d&&(a.z=i.z+o.z*r),a}if(this._linear){const i=this.normal(0),o=this.points.map(function(a){const s={x:a.x+n*i.x,y:a.y+n*i.y};return a.z&&i.z&&(s.z=a.z+n*i.z),s});return[new K(o)]}return this.reduce().map(function(i){return i._linear?i.offset(n)[0]:i.scale(n)})}simple(){if(this.order===3){const o=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(o>0&&a<0||o<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let i=n.x*r.x+n.y*r.y;return this._3d&&(i+=n.z*r.z),ie(Vf(i))(1-u/o)*r+u/o*i);return new K(this.points.map((s,u)=>({x:s.x+n.x*a[u],y:s.y+n.y*a[u]})))}scale(n){const r=this.order;let i=!1;if(typeof n=="function"&&(i=n),i&&r===2)return this.raise().scale(i);const o=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):n,i?i(1):n);const s=i?i(0):n,u=i?i(1):n,c=[this.offset(0,10),this.offset(1,10)],l=[],f=z.lli4(c[0],c[0].c,c[1],c[1].c);if(!f)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(h){const d=l[h*r]=z.copy(a[h*r]);d.x+=(h?u:s)*c[h].n.x,d.y+=(h?u:s)*c[h].n.y}),i?([0,1].forEach(function(h){if(!(r===2&&h)){var d=a[h+1],p={x:d.x-f.x,y:d.y-f.y},y=i?i((h+1)/r):n;i&&!o&&(y=-y);var x=oe(p.x*p.x+p.y*p.y);p.x/=x,p.y/=x,l[h+1]={x:d.x+y*p.x,y:d.y+y*p.y}}}),new K(l)):([0,1].forEach(h=>{if(r===2&&h)return;const d=l[h*r],p=this.derivative(h),y={x:d.x+p.x,y:d.y+p.y};l[h+1]=z.lli4(d,y,f,a[h+1])}),new K(l))}outline(n,r,i,o){if(r=r===void 0?n:r,this._linear){const v=this.normal(0),A=this.points[0],M=this.points[this.points.length-1];let T,R,P;i===void 0&&(i=n,o=r),T={x:A.x+v.x*n,y:A.y+v.y*n},P={x:M.x+v.x*i,y:M.y+v.y*i},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const N=[T,R,P];T={x:A.x-v.x*r,y:A.y-v.y*r},P={x:M.x-v.x*o,y:M.y-v.y*o},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const D=[P,R,T],U=z.makeline(D[2],N[0]),S=z.makeline(N[2],D[0]),j=[U,new K(N),S,new K(D)];return new he(j)}const a=this.reduce(),s=a.length,u=[];let c=[],l,f=0,h=this.length();const d=typeof i<"u"&&typeof o<"u";function p(v,A,M,T,R){return function(P){const N=T/M,D=(T+R)/M,U=A-v;return z.map(P,0,1,v+N*U,v+D*U)}}a.forEach(function(v){const A=v.length();d?(u.push(v.scale(p(n,i,h,f,A))),c.push(v.scale(p(-r,-o,h,f,A)))):(u.push(v.scale(n)),c.push(v.scale(-r))),f+=A}),c=c.map(function(v){return l=v.points,l[3]?v.points=[l[3],l[2],l[1],l[0]]:v.points=[l[2],l[1],l[0]],v}).reverse();const y=u[0].points[0],x=u[s-1].points[u[s-1].points.length-1],m=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],k=z.makeline(m,y),w=z.makeline(x,g),_=[k].concat(u).concat([w]).concat(c);return new he(_)}outlineshapes(n,r,i){r=r||n;const o=this.outline(n,r).curves,a=[];for(let s=1,u=o.length;s1,c.endcap.virtual=s{var u=this.get(s);return z.between(u.x,r,o)&&z.between(u.y,i,a)})}selfintersects(n){const r=this.reduce(),i=r.length-2,o=[];for(let a=0,s,u,c;a0&&(a=a.concat(u))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,i,o){const a=(o-i)/4,s=this.get(i+a),u=this.get(o-a),c=z.dist(n,r),l=z.dist(n,s),f=z.dist(n,u);return ie(l-c)+ie(f-c)}_iterate(n,r){let i=0,o=1,a;do{a=0,o=1;let s=this.get(i),u,c,l,f,h=!1,d=!1,p,y=o,x=1;do if(d=h,f=l,y=(i+o)/2,u=this.get(y),c=this.get(o),l=z.getccenter(s,u,c),l.interval={start:i,end:o},h=this._error(l,s,i,o)<=n,p=d&&!h,p||(x=o),h){if(o>=1){if(l.interval.end=x=1,f=l,o>1){let g={x:l.x+l.r*Wf(l.e),y:l.y+l.r*Gf(l.e)};l.e+=z.angle({x:l.x,y:l.y},g,this.get(1))}break}o=o+(o-i)/2}else o=y;while(!p&&a++<100);if(a>=100)break;f=f||l,r.push(f),i=x}while(o<1);return r}}function An(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(u){return{keyAccessor:u,isProp:!(u instanceof Function)}}),a=e.reduce(function(u,c){var l=u,f=c;return o.forEach(function(h,d){var p=h.keyAccessor,y=h.isProp,x;if(y){var m=f,g=m[p],k=th(m,[p].map(oh));x=g,f=k}else x=p(f,d);d+11&&arguments[1]!==void 0?arguments[1]:1;l===o.length?Object.keys(c).forEach(function(f){return c[f]=r(c[f])}):Object.values(c).forEach(function(f){return u(f,l+1)})})(a);var s=a;return i&&(s=[],(function u(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];l.length===o.length?s.push({keys:l,vals:c}):Object.entries(c).forEach(function(f){var h=nh(f,2),d=h[0],p=h[1];return u(p,[].concat(rh(l),[d]))})})(a),n instanceof Array&&n.length===0&&s.length===1&&(s[0].keys=[])),s});function sh(e){for(var n=e.length/6|0,r=new Array(n),i=0;i"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var ch=`.force-graph-container canvas { - display: block; - user-select: none; - outline: none; - -webkit-tap-highlight-color: transparent; -} - -.force-graph-container .clickable { - cursor: pointer; -} - -.force-graph-container .grabbable { - cursor: move; - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} - -.force-graph-container .grabbable:active { - cursor: grabbing; - cursor: -moz-grabbing; - cursor: -webkit-grabbing; -} -`;lh(ch);function Sn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,c=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,l={};r.forEach(function(p){return l[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,x=p.target,m=_(y),g=_(x);if(!l.hasOwnProperty(m))throw"Missing source node with id: ".concat(m);if(!l.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var k=l[m],w=l[g];k.out.push(w);function _(v){return Mn(v)==="object"?n(v):v}});var f=[];d(Object.values(l));var h=Object.assign.apply(Object,[{}].concat(gt(Object.entries(l).filter(function(p){var y=de(p,2),x=y[1];return!x.skip}).map(function(p){var y=de(p,2),x=y[0],m=y[1];return ye({},x,m.depth)}))));return h;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,m=function(){var _=p[g];if(y.indexOf(_)!==-1){var v=[].concat(gt(y.slice(y.indexOf(_))),[_]).map(function(A){return n(A.data)});return f.some(function(A){return A.length===v.length&&A.every(function(M,T){return M===v[T]})})||(f.push(v),c(v)),1}x>_.depth&&(_.depth=x,d(_.out,[].concat(gt(y),[_]),x+(_.skip?0:1)))},g=0,k=p.length;gn.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()0){var D=Math.atan2(P.y-R.y,P.x-R.x),U=N*T,S={x:(R.x+P.x)/2+U*Math.cos(D-Math.PI/2),y:(R.y+P.y)/2+U*Math.sin(D-Math.PI/2)};M.__controlPoints=[S.x,S.y]}else{var j=T*70;M.__controlPoints=[P.x,P.y-j,P.x+j,P.y]}}}}function a(){var u=1.6,c=.2,l=B(n.linkDirectionalArrowLength),f=B(n.linkDirectionalArrowRelPos),h=B(n.linkVisibility),d=B(n.linkDirectionalArrowColor||n.linkColor),p=B(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(h).forEach(function(x){var m=l(x);if(!(!m||m<0)){var g=x.source,k=x.target;if(!(!g||!k||!g.hasOwnProperty("x")||!k.hasOwnProperty("x"))){var w=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,_=Math.sqrt(Math.max(0,p(k)||1))*n.nodeRelSize,v=Math.min(1,Math.max(0,f(x))),A=d(x)||"rgba(0,0,0,0.28)",M=m/u/2,T=x.__controlPoints&&$r(K,[g.x,g.y].concat(gt(x.__controlPoints),[k.x,k.y])),R=T?function(E){return T.get(E)}:function(E){return{x:g.x+(k.x-g.x)*E||0,y:g.y+(k.y-g.y)*E||0}},P=T?T.length():Math.sqrt(Math.pow(k.x-g.x,2)+Math.pow(k.y-g.y,2)),N=w+m+(P-w-_-m)*v,D=R(N/P),U=R((N-m)/P),S=R((N-m*(1-c))/P),j=Math.atan2(D.y-U.y,D.x-U.x)-Math.PI/2;y.beginPath(),y.moveTo(D.x,D.y),y.lineTo(U.x+M*Math.cos(j),U.y+M*Math.sin(j)),y.lineTo(S.x,S.y),y.lineTo(U.x-M*Math.cos(j),U.y-M*Math.sin(j)),y.fillStyle=A,y.fill()}}}),y.restore()}function s(){var u=B(n.linkDirectionalParticles),c=B(n.linkDirectionalParticleSpeed),l=B(n.linkDirectionalParticleOffset),f=B(n.linkDirectionalParticleWidth),h=B(n.linkVisibility),d=B(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(h).forEach(function(y){var x=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var m=y.source,g=y.target;if(!(!m||!g||!m.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var k=c(y),w=Math.abs(l(y)),_=y.__photons||[],v=Math.max(0,f(y)/2)/Math.sqrt(n.globalScale),A=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=A;var M=y.__controlPoints?$r(K,[m.x,m.y].concat(gt(y.__controlPoints),[g.x,g.y])):null,T=0,R=!1;_.forEach(function(P){var N=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=N?k<0?1:0:(T+w)/x),!N&&T++,P.__progressRatio+=k,P.__progressRatio>=1||P.__progressRatio<0)if(!N)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{R=!0;return}var D=P.__progressRatio,U=M?M.get(D):{x:m.x+(g.x-m.x)*D||0,y:m.y+(g.y-m.y)*D||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(U.x,U.y,y,p,n.globalScale):(p.beginPath(),p.arc(U.x,U.y,v,0,2*Math.PI,!1),p.fill())}),R&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:$f().force("link",Of()).force("charge",Lf()).force("center",Ec()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fr(n.graphData.nodes,B(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fr(n.graphData.links,B(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&xh(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,gt(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*bh*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var c=["rl","bu"].includes(n.dagMode),l=function(p){return(o[p[n.nodeId]]-a/2)*s*(c?-1:1)},f=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[f]=l(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?Ff(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var h=0;h0&&n.forceLayout.alpha()1?u-1:0),l=1;l1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=B(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Zn(a,function(s){return s.x-s.r}),Kn(a,function(s){return s.x+s.r})],y:[Zn(a,function(s){return s.y-s.r}),Kn(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Mh),stateInit:function(){return{lastSetZoom:1,zoom:Hu(),forceGraph:new qe,shadowGraph:new qe().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new uc,tweenGroup:new bi}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},c=function(){var h=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(h=r.colorTracker.lookup(p.data)),h};pt(r.canvas).call(Cs().subject(function(){if(!r.enableNodeDrag)return null;var f=c();return f&&f.type==="Node"?f.d:null}).on("start",function(f){var h=f.subject;h.__initialDragPos={x:h.x,y:h.y,fx:h.fx,fy:h.fy},f.active||(h.fx=h.x,h.fy=h.y),r.canvas.classList.add("grabbable")}).on("drag",function(f){var h=f.subject,d=h.__initialDragPos,p=f,y=mt(r.canvas).k,x={x:d.x+(p.x-d.x)/y-h.x,y:d.y+(p.y-d.y)/y-h.y};["x","y"].forEach(function(m){return h["f".concat(m)]=h[m]=d[m]+(p[m]-d[m])/y}),!(!h.__dragged&&Ch>=Math.sqrt(yo(["x","y"].map(function(m){return Math.pow(f[m]-d[m],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,h.__dragged=!0,r.onNodeDrag(h,x))}).on("end",function(f){var h=f.subject,d=h.__initialDragPos,p={x:h.x-d.x,y:h.y-d.y};d.fx===void 0&&(h.fx=void 0),d.fy===void 0&&(h.fy=void 0),delete h.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,h.__dragged&&(delete h.__dragged,r.onNodeDragEnd(h,p))})),r.zoom(r.zoom.__baseElem=pt(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(f){return!f.button&&r.enableZoomPanInteraction&&(f.type!=="wheel"||B(r.enableZoomInteraction)(f))&&(f.type==="wheel"||B(r.enablePanInteraction)(f))}).on("zoom",function(f){var h=f.transform;[a,s].forEach(function(d){Ki(d),d.translate(h.x,h.y),d.scale(h.k,h.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Gt(Gt({},h),i.centerAt())),r.needsRedraw=!0}).on("end",function(f){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Gt(Gt({},f.transform),i.centerAt()))}),an(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){mt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=kh/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new Oc(o),["pointermove","pointerdown"].forEach(function(f){return o.addEventListener(f,function(h){f==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=h),!r.isPointerDragging&&h.type==="pointermove"&&r.onBackgroundClick&&(h.pressure>0||r.isPointerPressed)&&(h.pointerType==="mouse"||h.movementX===void 0||[h.movementX,h.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=h.pageX-d.left,u.y=h.pageY-d.top;function p(y){var x=y.getBoundingClientRect(),m=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:x.top+g,left:x.left+m}}},{passive:!0})}),o.addEventListener("pointerup",function(f){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var h=[f,r.pointerDownEvent];requestAnimationFrame(function(){if(f.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,h);if(f.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,h)})}},{passive:!0}),o.addEventListener("contextmenu",function(f){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(f.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var l=gl(function(){Hr(s,r.width,r.height),r.shadowGraph.linkWidth(function(h){return B(r.linkWidth)(h)+r.linkHoverPrecision});var f=mt(r.canvas);r.shadowGraph.globalScale(f.k).tickFrame()},wh);r.flushShadowCanvas=l.flush,(this._animationCycle=function f(){var h=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(w){return w.__photons&&w.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:c();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,x=d?d.type:null;if(y&&y!==x){var m=r["on".concat(y,"Hover")];m&&m(null,p.d)}if(x){var g=r["on".concat(x,"Hover")];g&&g(d.d,y===x?p.d:null)}r.tooltip.content(d&&B(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(x,"Click")]||!d&&r.onBackgroundClick)&&B(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}h&&l()}if(h){Hr(a,r.width,r.height);var k=mt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,k),r.forceGraph.globalScale(k).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,k)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(f)})()},update:function(n){}}),sn={exports:{}},un,qr;function Ph(){if(qr)return un;qr=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return un=e,un}var ln,Wr;function Oh(){if(Wr)return ln;Wr=1;var e=Ph();function n(){}function r(){}return r.resetWarningCache=n,ln=function(){function i(s,u,c,l,f,h){if(h!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},ln}var Gr;function Eh(){return Gr||(Gr=1,sn.exports=Oh()()),sn.exports}var zh=Eh();const b=oo(zh),Ze={width:b.number,height:b.number,graphData:b.shape({nodes:b.arrayOf(b.object).isRequired,links:b.arrayOf(b.object).isRequired}),backgroundColor:b.string,nodeRelSize:b.number,nodeId:b.string,nodeLabel:b.oneOfType([b.string,b.func]),nodeVal:b.oneOfType([b.number,b.string,b.func]),nodeVisibility:b.oneOfType([b.bool,b.string,b.func]),nodeColor:b.oneOfType([b.string,b.func]),nodeAutoColorBy:b.oneOfType([b.string,b.func]),onNodeHover:b.func,onNodeClick:b.func,linkSource:b.string,linkTarget:b.string,linkLabel:b.oneOfType([b.string,b.func]),linkVisibility:b.oneOfType([b.bool,b.string,b.func]),linkColor:b.oneOfType([b.string,b.func]),linkAutoColorBy:b.oneOfType([b.string,b.func]),linkWidth:b.oneOfType([b.number,b.string,b.func]),linkCurvature:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowLength:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowColor:b.oneOfType([b.string,b.func]),linkDirectionalArrowRelPos:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticles:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleSpeed:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleOffset:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleWidth:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleColor:b.oneOfType([b.string,b.func]),onLinkHover:b.func,onLinkClick:b.func,dagMode:b.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:b.number,dagNodeFilter:b.func,onDagError:b.func,d3AlphaMin:b.number,d3AlphaDecay:b.number,d3VelocityDecay:b.number,warmupTicks:b.number,cooldownTicks:b.number,cooldownTime:b.number,onEngineTick:b.func,onEngineStop:b.func,getGraphBbox:b.func},Qi={zoomToFit:b.func,onNodeRightClick:b.func,onNodeDrag:b.func,onNodeDragEnd:b.func,onLinkRightClick:b.func,linkHoverPrecision:b.number,onBackgroundClick:b.func,onBackgroundRightClick:b.func,showPointerCursor:b.oneOfType([b.bool,b.func]),enablePointerInteraction:b.bool,enableNodeDrag:b.bool},Wn={showNavInfo:b.bool,nodeOpacity:b.number,nodeResolution:b.number,nodeThreeObject:b.oneOfType([b.object,b.string,b.func]),nodeThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),nodePositionUpdate:b.func,linkOpacity:b.number,linkResolution:b.number,linkCurveRotation:b.oneOfType([b.number,b.string,b.func]),linkMaterial:b.oneOfType([b.object,b.string,b.func]),linkThreeObject:b.oneOfType([b.object,b.string,b.func]),linkThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),linkPositionUpdate:b.func,linkDirectionalArrowResolution:b.number,linkDirectionalParticleResolution:b.number,linkDirectionalParticleThreeObject:b.oneOfType([b.object,b.string,b.func]),forceEngine:b.oneOf(["d3","ngraph"]),ngraphPhysics:b.object,numDimensions:b.oneOf([1,2,3])},Nh=Object.assign({},Ze,Qi,{linkLineDash:b.oneOfType([b.arrayOf(b.number),b.string,b.func]),nodeCanvasObjectMode:b.oneOfType([b.string,b.func]),nodeCanvasObject:b.func,nodePointerAreaPaint:b.func,linkCanvasObjectMode:b.oneOfType([b.string,b.func]),linkCanvasObject:b.func,linkPointerAreaPaint:b.func,linkDirectionalParticleCanvasObject:b.func,autoPauseRedraw:b.bool,minZoom:b.number,maxZoom:b.number,enableZoomInteraction:b.oneOfType([b.bool,b.func]),enablePanInteraction:b.oneOfType([b.bool,b.func]),onZoom:b.func,onZoomEnd:b.func,onRenderFramePre:b.func,onRenderFramePost:b.func});Object.assign({},Ze,Qi,Wn,{enableNavigationControls:b.bool,controlType:b.oneOf(["trackball","orbit","fly"]),rendererConfig:b.object,extraRenderers:b.arrayOf(b.shape({render:b.func.isRequired}))});Object.assign({},Ze,Wn,{nodeDesc:b.oneOfType([b.string,b.func]),linkDesc:b.oneOfType([b.string,b.func])});Object.assign({},Ze,Wn,{markerAttrs:b.object,yOffset:b.number,glScale:b.number});const Gn=Do(Th,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Gn.displayName="ForceGraph2D";Gn.propTypes=Nh;function wt(e){return function(){return e}}function Vr(e){return(e()-.5)*1e-6}function Rh(e){return e.x+e.vx}function jh(e){return e.y+e.vy}function Dh(e){var n,r,i,o=1,a=1;typeof e!="function"&&(e=wt(e==null?1:+e));function s(){for(var l,f=n.length,h,d,p,y,x,m,g=0;gd.index){var N=p-T.x-T.vx,D=y-T.y-T.vy,U=N*N+D*D;Up+P||Ay+P||Ml.r&&(l.r=l[f].r)}function c(){if(n){var l,f=n.length,h;for(r=new Array(f),l=0;la[0]-s[0]||a[1]-s[1]),r=(a,s,u)=>(s[0]-a[0])*(u[1]-a[1])-(s[1]-a[1])*(u[0]-a[0]),i=[];for(const a of n){for(;i.length>=2&&r(i[i.length-2],i[i.length-1],a)<=0;)i.pop();i.push(a)}const o=[];for(let a=n.length-1;a>=0;a--){const s=n[a];for(;o.length>=2&&r(o[o.length-2],o[o.length-1],s)<=0;)o.pop();o.push(s)}return i.pop(),o.pop(),i.concat(o)}function Bh({data:e,selectedNodeId:n,onNodeSelect:r}){const[i,o]=W.useState(null),[a,s]=W.useState(.75),u=W.useRef(null),c=W.useRef(null),[l,f]=W.useState({width:500,height:560});W.useEffect(()=>{if(!u.current)return;const C=new ResizeObserver(O=>{for(let I of O)I.contentRect.width>0&&I.contentRect.height>0&&f({width:Math.floor(I.contentRect.width),height:Math.floor(I.contentRect.height)})});return C.observe(u.current),()=>C.disconnect()},[]);const h=W.useRef(new Map),d=W.useMemo(()=>{const C=h.current,O=new Set,I=e.nodes.map(F=>{O.add(F.id);let G=C.get(F.id);return G?(G.content!==F.content||G.category!==F.category)&&(G.content=F.content,G.category=F.category,G.__baseTextWidth=void 0):(G={...F},C.set(F.id,G)),G});for(const F of Array.from(C.keys()))O.has(F)||C.delete(F);const L=new Map(e.nodes.map(F=>[F.id,F.category])),H=e.edges.map(F=>({source:F.source,target:F.target,weight:F.weight||0,__sid:F.source,__tid:F.target,__sameCat:L.get(F.source)===L.get(F.target),__restColor:Uh[L.get(F.source)??""]??Fh}));return{nodes:I,links:H}},[e]),p=W.useMemo(()=>{const C={};return e.edges.forEach(O=>{C[O.source]=(C[O.source]||0)+1,C[O.target]=(C[O.target]||0)+1}),C},[e]),y=C=>({identity:-240,knowledge:240,rules:-240,events:240})[C]||0,x=C=>({identity:-240,knowledge:-240,rules:240,events:240})[C]||0,m=W.useMemo(()=>`${e.nodes.map(C=>C.id).sort().join(",")}#${e.edges.length}`,[e]);W.useEffect(()=>{const C=c.current;if(!C)return;C.d3Force("center",null),C.d3Force("x",Ih().x(L=>y(L.category)).strength(.1)),C.d3Force("y",$h().y(L=>x(L.category)).strength(.1));const O=C.d3Force("charge");O&&O.strength(-380),C.d3Force("collide",Dh().radius(28).iterations(2));const I=C.d3Force("link");I&&I.distance(L=>L.__sameCat?70:200).strength(L=>L.__sameCat?.3*(L.weight||.6):.01),C.d3ReheatSimulation()},[m]);const g=i||n,k=W.useMemo(()=>d.links.filter(C=>C.__sameCat&&(C.weight||0)>=a).length,[d,a]),w=()=>{c.current&&c.current.zoomToFit(400,40)},_=W.useMemo(()=>{if(!g)return new Set;const C=new Set;return e.edges.forEach(O=>{O.source===g&&C.add(O.target),O.target===g&&C.add(O.source)}),C},[g,e]),v=W.useCallback(C=>g?C.__sid===g||C.__tid===g:C.__sameCat&&(C.weight||0)>=a,[g,a]),A=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?Lh:C.__restColor,[g]),M=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?2.5:1.4,[g]),T=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?4:0,[g]),R=W.useCallback((C,O)=>{const I=c.current,L=u.current;if(!I||!L)return null;const H=L.getBoundingClientRect(),{x:F,y:G}=I.screen2GraphCoords(C-H.left,O-H.top),V=Math.max(I.zoom()||1,.01);let X=null,tt=1/0;for(const Z of d.nodes){if(Z.x==null||Z.y==null)continue;const st=6+Math.min(p[Z.id]||0,15)*.8,et=Math.max(st+3,16/V),qt=Z.x-F,At=Z.y-G,nt=qt*qt+At*At;nt<=et*et&&nt{const O=C.target instanceof HTMLCanvasElement?R(C.clientX,C.clientY):null;o(O?O.id:null),u.current&&(u.current.style.cursor=O?"pointer":"default")},[R]),N=W.useCallback(()=>{o(null),u.current&&(u.current.style.cursor="default")},[]),D=W.useRef(null),U=W.useCallback(C=>{D.current={x:C.clientX,y:C.clientY}},[]),S=W.useCallback(C=>{if(!(C.target instanceof HTMLCanvasElement))return;const O=D.current;if(O&&Math.hypot(C.clientX-O.x,C.clientY-O.y)>6)return;const I=R(C.clientX,C.clientY);r(I?I.id:null)},[R,r]),j=W.useCallback((C,O)=>{var L;const I={};for(const H of d.nodes)H.x==null||H.y==null||(I[L=H.category]??(I[L]=[])).push([H.x,H.y]);for(const[H,F]of Object.entries(I)){const G=qh[H];if(!G||F.length===0)continue;const V=Vh(F);let X=0,tt=0;V.forEach(et=>{X+=et[0],tt+=et[1]}),X/=V.length,tt/=V.length;const Z=34;if(C.beginPath(),V.length<3)C.arc(X,tt,Z+16,0,2*Math.PI);else{const et=V.map(([nt,lt])=>{const jt=nt-X,Zt=lt-tt,Kt=Math.hypot(jt,Zt)||1;return[nt+jt/Kt*Z,lt+Zt/Kt*Z]}),qt=(nt,lt)=>[(nt[0]+lt[0])/2,(nt[1]+lt[1])/2],At=qt(et[et.length-1],et[0]);C.moveTo(At[0],At[1]);for(let nt=0;ntet[1]));C.font='600 26px "Space Grotesk", sans-serif',C.textAlign="center",C.textBaseline="bottom",C.fillStyle=Gh[H],C.fillText(Xr[H]||H,X,st-Z-8)}},[d]),E=W.useCallback((C,O,I)=>{const L=C.x??0,H=C.y??0,F=6+Math.min(p[C.id]||0,15)*.8,G=Br[C.category]||"#64748b",V=C.id===i,X=C.id===n,tt=g&&C.id!==g&&!_.has(C.id),Z=tt?"#1e293b":G;if(tt||(O.beginPath(),O.arc(L,H,F*1.9,0,2*Math.PI,!1),O.fillStyle=Hh[C.category]||"rgba(100, 116, 139, 0.14)",O.fill()),(V||X)&&(O.shadowColor=G,O.shadowBlur=15),O.beginPath(),O.arc(L,H,F,0,2*Math.PI,!1),O.fillStyle=Z,O.fill(),O.shadowBlur=0,(V||X)&&(O.beginPath(),O.arc(L,H,F+2.5,0,2*Math.PI,!1),O.strokeStyle=X?"#ffffff":"rgba(255, 255, 255, 0.7)",O.lineWidth=1.5,O.stroke()),V||X||g&&_.has(C.id)){const et=C.content.length>35?C.content.slice(0,34)+"…":C.content;if(C.__baseTextWidth===void 0){const Ji=O.font;O.font='500 10px "Space Grotesk", sans-serif',C.__baseTextWidth=O.measureText(et).width,O.font=Ji}const At=(V||X?10.5:9.5)/Math.max(.5,I);O.font=`${V||X?"bold":"500"} ${At}px "Space Grotesk", sans-serif`;const nt=C.__baseTextWidth*(At/10),lt=4.5/Math.max(.5,I),jt=L-nt/2-lt,Zt=H+F+6/Math.max(.5,I),Kt=nt+lt*2,Vn=At+lt*1.6;O.fillStyle=tt?"rgba(10, 15, 25, 0.45)":"rgba(8, 12, 20, 0.88)",O.fillRect(jt,Zt,Kt,Vn),O.strokeStyle=V||X?"rgba(255, 255, 255, 0.2)":"rgba(255, 255, 255, 0.08)",O.lineWidth=.6/Math.max(.5,I),O.strokeRect(jt,Zt,Kt,Vn),O.textAlign="center",O.textBaseline="top",O.fillStyle=tt?"#475569":V||X?"#ffffff":"#cbd5e1",O.fillText(et,L,H+F+7/Math.max(.5,I))}},[p,i,n,g,_]);return $.jsxs("div",{className:"absolute inset-0",ref:u,onPointerMove:P,onPointerLeave:N,onPointerDown:U,onClick:S,style:{background:"radial-gradient(circle at center, rgba(59, 130, 246, 0.08) 0%, #030712 100%)"},children:[$.jsx(Gn,{ref:c,width:l.width,height:l.height,graphData:d,backgroundColor:"rgba(0,0,0,0)",cooldownTicks:120,enablePointerInteraction:!1,enableNodeDrag:!1,onRenderFramePre:j,linkVisibility:v,linkColor:A,linkWidth:M,linkDirectionalParticles:T,linkDirectionalParticleWidth:2.2,linkDirectionalParticleSpeed:.006,nodeCanvasObject:E}),$.jsxs("button",{onClick:w,title:"Zentrieren",className:"absolute right-3 top-3 z-10 flex items-center gap-1.5 rounded-lg border border-border/60 bg-background/50 px-2.5 py-1.5 text-[11px] text-muted-foreground hover:text-foreground backdrop-blur-sm transition-colors cursor-pointer",children:[$.jsx(ao,{className:"h-3.5 w-3.5"})," Zentrieren"]}),$.jsxs("div",{className:"absolute left-3 bottom-3 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-background/40 px-2.5 py-1.5 backdrop-blur-sm",children:[Object.entries(Xr).map(([C,O])=>$.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[$.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:Br[C]}}),O]},C)),$.jsxs("label",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground border-l border-border/40 pl-3",children:[$.jsx("span",{children:"Verbindungen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"alle"}),$.jsx("input",{type:"range",min:.45,max:.95,step:.05,value:a,onChange:C=>s(Number(C.target.value)),className:"w-20 accent-primary cursor-pointer",title:"Nur Verbindungen ab dieser Stärke zeigen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"stark"}),$.jsx("span",{className:"font-mono text-[9px] text-muted-foreground/80 min-w-[3ch] text-right",children:k})]})]})]})}class Xh extends W.Component{constructor(){super(...arguments);Bn(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}render(){return this.state.error?$.jsxs("div",{className:"h-[480px] rounded-2xl border border-red-500/20 bg-red-500/5 p-6 text-xs text-red-400 overflow-auto",children:[$.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),$.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const Yh={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function td(){const{data:e,isLoading:n}=so(),[r,i]=W.useState(null),[o,a]=W.useState(null),[s,u]=W.useState(!1),[c,l]=W.useState(""),[f,h]=W.useState(!1),{data:d,isLoading:p}=uo(f),y=W.useMemo(()=>(e==null?void 0:e.files)??[],[e]),x=W.useMemo(()=>{const w=new Map;for(const _ of y)w.set(_.name.toLowerCase(),_.path);return w},[y]),m=W.useMemo(()=>{if(!c.trim())return y;const w=c.toLowerCase();return y.filter(_=>_.title.toLowerCase().includes(w)||_.path.toLowerCase().includes(w))},[y,c]),g=W.useMemo(()=>{const w=[];for(const _ of m){const v=w.find(A=>A.dir===_.dir);v?v.files.push(_):w.push({dir:_.dir,files:[_]})}return w.sort((_,v)=>_.dir===""?-1:v.dir===""?1:_.dir.localeCompare(v.dir))},[m]);W.useEffect(()=>{if(!r&&y.length){const w=y.find(_=>_.path.toLowerCase()==="index.md");i((w==null?void 0:w.path)??y[0].path)}},[y,r]),W.useEffect(()=>{r&&(u(!0),lo(`/api/wissen/datei?pfad=${encodeURIComponent(r)}`).then(a).catch(()=>a({path:r,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>u(!1)))},[r]);const k=w=>{const _=x.get(w.toLowerCase());_&&i(_)};return $.jsxs("div",{className:"space-y-5",children:[$.jsxs("div",{className:"flex items-center justify-between",children:[$.jsxs("div",{children:[$.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Wissen"}),$.jsx("p",{className:"text-sm text-muted-foreground",children:"Was sich die Box nachts erschließt — Traum-Notizen, Muster und Skill-Ideen aus dem Wissens-Vault, verlinkt wie ein Wiki."})]}),y.length>0&&$.jsxs("div",{className:"flex rounded-lg border border-border/60 bg-card p-1",children:[$.jsx("button",{onClick:()=>h(!1),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"text-muted-foreground hover:bg-muted":"bg-primary text-primary-foreground shadow"),children:"Liste"}),$.jsx("button",{onClick:()=>h(!0),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:bg-muted"),children:"Graph"})]})]}),e&&!e.available&&$.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Der Wissens-Vault liegt auf der Box (~/wissens-vault) — im lokalen Dev-Modus nicht verfügbar."}),n&&$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(e==null?void 0:e.available)&&y.length===0&&$.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:"Noch keine Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),f?$.jsxs("div",{className:"mc-card flex h-[70vh] flex-col overflow-hidden p-0 relative",children:[p&&$.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Graph wird berechnet …"]})}),$.jsx(Xh,{children:d&&$.jsx(Bh,{data:d,selectedNodeId:r,onNodeSelect:w=>{w&&(i(w),h(!1))}})})]}):y.length>0&&$.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[$.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[$.jsxs("div",{className:"relative",children:[$.jsx("input",{value:c,onChange:w=>l(w.target.value),type:"search",placeholder:"Notizen durchsuchen…","aria-label":"Notizen durchsuchen",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 pl-8 pr-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),$.jsx(co,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),$.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:g.map(({dir:w,files:_})=>$.jsxs("div",{children:[$.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[$.jsx(go,{className:"h-3 w-3"})," ",Yh[w]??w]}),$.jsx("div",{className:"space-y-0.5",children:_.map(v=>$.jsxs("button",{onClick:()=>i(v.path),className:Ae("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",r===v.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[$.jsx(fo,{className:"h-3.5 w-3.5 shrink-0"}),$.jsx("span",{className:"truncate",title:v.title,children:v.name}),v.neu&&$.jsxs("span",{className:"ml-auto flex items-center gap-0.5 rounded bg-violet-500/15 px-1 py-0.5 text-[8px] font-bold uppercase text-violet-300",children:[$.jsx(ho,{className:"h-2.5 w-2.5"}),"neu"]})]},v.path))})]},w||"__root"))})]}),$.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:s?$.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):o?$.jsxs($.Fragment,{children:[$.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[$.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[$.jsx(po,{className:"h-3.5 w-3.5"})," ",o.path]}),o.mtime>0&&$.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(o.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),$.jsx(Zh,{text:o.content,onWikiLink:k,known:x})]}):null})]})]})}function Zh({text:e,onWikiLink:n,known:r}){const i=e.split(` -`),o=[];let a=[],s=null;const u=c=>{a.length&&(o.push($.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:a},c)),a=[])};return i.forEach((c,l)=>{const f=`l${l}`;if(s!==null){c.trimEnd()==="```"?(o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px] leading-relaxed text-foreground/85",children:s.join(` -`)},f)),s=null):s.push(c);return}if(c.trimStart().startsWith("```")){u(f),s=[];return}const h=c.trimEnd();if(!h.trim()){u(f);return}const d=h.match(/^(#{1,4})\s+(.*)$/);if(d){u(f);const y=d[1].length,x=y===1?"text-lg font-bold mt-1 mb-3":y===2?"text-base font-bold mt-4 mb-2":"text-sm font-bold mt-3 mb-1.5";o.push($.jsx("p",{className:Ae(x,"font-space text-foreground"),children:cn(d[2],n,r,f)},f));return}const p=h.match(/^\s*[-*•]\s+(.*)$/);if(p){a.push($.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:cn(p[1],n,r,f)},f));return}u(f),o.push($.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:cn(h,n,r,f)},f))}),u("end"),s!==null&&o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px]",children:s.join(` -`)},"code-end")),$.jsx("div",{className:"max-w-3xl",children:o})}function cn(e,n,r,i){return e.split(/(\[\[[^\]]+\]\]|\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((a,s)=>{const u=`${i}-${s}`,c=a.match(/^\[\[([^\]|]+)(?:\|([^\]]+))?\]\]$/);if(c){const l=c[1].trim(),f=(c[2]??c[1]).trim();return r.has(l.toLowerCase())?$.jsx("button",{onClick:()=>n(l),className:"rounded bg-primary/10 px-1 text-primary underline decoration-primary/40 underline-offset-2 hover:bg-primary/20 cursor-pointer",children:f},u):$.jsx("span",{className:"rounded bg-background/40 px-1 text-muted-foreground",title:"Notiz existiert (noch) nicht",children:f},u)}return a.startsWith("**")&&a.endsWith("**")?$.jsx("b",{className:"font-semibold text-foreground",children:a.slice(2,-2)},u):a.startsWith("*")&&a.endsWith("*")&&a.length>2?$.jsx("i",{children:a.slice(1,-1)},u):a.startsWith("`")&&a.endsWith("`")?$.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-teal-300",children:a.slice(1,-1)},u):$.jsx("span",{children:a},u)})}export{td as WissenView}; diff --git a/frontend/dist/assets/chevron-down-MK8qZkE9.js b/frontend/dist/assets/chevron-down-MK8qZkE9.js deleted file mode 100644 index 33d4fbc..0000000 --- a/frontend/dist/assets/chevron-down-MK8qZkE9.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as o}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=o("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);export{n as C}; diff --git a/frontend/dist/assets/code-xml-DlqRSqmr.js b/frontend/dist/assets/code-xml-DlqRSqmr.js deleted file mode 100644 index c36713d..0000000 --- a/frontend/dist/assets/code-xml-DlqRSqmr.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as e}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=e("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"}]]);export{o as C}; diff --git a/frontend/dist/assets/folder-open-CbSQGCoL.js b/frontend/dist/assets/folder-open-CbSQGCoL.js deleted file mode 100644 index ba0c184..0000000 --- a/frontend/dist/assets/folder-open-CbSQGCoL.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as a}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=a("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);export{o as F}; diff --git a/frontend/dist/assets/index-C6A98ZpJ.css b/frontend/dist/assets/index-C6A98ZpJ.css deleted file mode 100644 index f0470ee..0000000 --- a/frontend/dist/assets/index-C6A98ZpJ.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2)format("woff2"),url(/assets/inter-cyrillic-300-normal-LR1W_oT8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2)format("woff2"),url(/assets/inter-greek-ext-300-normal-DLbbeei1.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-greek-300-normal-DmGD3g_f.woff2)format("woff2"),url(/assets/inter-greek-300-normal-BrhSP0vQ.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2)format("woff2"),url(/assets/inter-vietnamese-300-normal-DDGmYYdT.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2)format("woff2"),url(/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/inter-latin-300-normal-BVlfKGgI.woff2)format("woff2"),url(/assets/inter-latin-300-normal-i8F0SvXL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAbUAA8AAAAACOgAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAHgAAAB5EdEx1R1NVQgAAAZAAAAAnAAAAKLj8uOpPUy8yAAABuAAAAFEAAABgFwRca1NUQVQAAAIMAAAARgAAAF7mY9MfY21hcAAAAlQAAABRAAAAdAyHCodnYXNwAAACqAAAAAgAAAAIAAAAEGdseWYAAAKwAAAB6QAAAl7g5OpvaGVhZAAABJwAAAA2AAAANhSQ8UNoaGVhAAAE1AAAAB8AAAAkAcoBImhtdHgAAAT0AAAAHgAAADofBAM2bG9jYQAABRQAAAAgAAAAIATcBZ9tYXhwAAAFNAAAABwAAAAgAIcCb25hbWUAAAVQAAABEgAAAoA4pV3kcG9zdAAABmQAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAAoAHAAcAAFERkxUAAgABAAAAAD//wAAAAAAAHjaY2BkYGDgYlADQiYXN58QBqGcxJI8Bj4GEGABEf//g0gAWkkFVQB42mNgYYpinMDAysDA1MUUwcDA4A2hGeMYjBgdgKIMDJwMUMDEzoAEvJyAxAEGXpaXzH/+XWFgYP7DqKPAwDj//nWgSjWmW0BZBQZWABNDDdYAAAB42kXIIQIBARQFwHl/QQIkWXInUAANXMOBJCcTd+KIGCjMNViq9/H0CM6P/S0j0bOwUqh08iEb8kPTXn3RiMoYhD90Nwc3AAB42lXIRwHCQBAF0JceehWAlTjhjikUgAVQA4mJLbdk5neUqHBVKWSv3XF2VCnt3AyevkVZv+sxBBbbq/6HfFP4hEcYQgEK82v1aHQ5RTs3FRQAAAAAAQAB//8AD3jabZA1tNRAFEDfTGDdfXHI2QQnZJJvK5ngDs13Welwt/78CtcS7xvcrcHKbXCtceh+wgtu437nXRCgC4BY9AGOXOAFYNHR0dzoKCGju8gJ6xiZaF3DWqcPBiSV5i2geaCgAlAJ77ghgjfiLC7KojvOZEmSXS63emXr5W7lsTLtXFMkRmks4ly+cYOEnvO2YLDNANv+9oJwhkpAAJAcHPG/1RC2BERc1ZGGMxYVWDyVSjc0NMaZELUf9e4JhCgNB3b2PiJRctuqZ0WPR8zilxutN/ji97vUBYMAnGjtzxjtK3wrDaMABo+R9KjWwNRUMppwuWS1QdfFZCIlMF2TxDGuJJlYW7OmVlvD+sx86b1hvC/l8yXf2hqZ66xbZ80yWzyD9/fzGaRzA58+nSOzYC+gw9AP+vyNqUAUhoD4lSnputbgUFPJ5O9Y+ReWlxkrc96naX08b3zk/KORb+E+VjYPmH1M6+UHeVlDtCzzGZ9FY8YMA8gPMsQA0jqaGkHT6cYSdVwl7Zs9Wzx+DyWUugPujd03T52ikrUvM26kF9PIcRmycuDBKcd3XRhPDgtnQACINzJ3fVl1tTB++3bc2S7kyD3cCQIQNMcSKaY2YOciE+d0zFbGjps6u0PILTFlRZHNJfAFnfeHtgAAAAABAAAAAjYEro52gl8PPPUAAwPoAAAAANvSppoAAAAA29rQ8vk5/tQEkgP8AAAABgACAAAAAAAAeNpjYGRgYP7z7woDA8uGn5Z/+1kmAUVQAR8Ar8AG6gB42mOKYIgCYiMkrAzCUHEbJJoBikHgCkMPAPDwCFUAAAAAABoAOwBGAFEAbwB3AKkAsQDmAQkBCQEJAQkBFgEveNpjYGRgYOBn3MGQx7CFgQ3MQwBmBiYALRoB+HjajJADbgVQEEXPZ20bQW3bthvXbr8Vp4to1KV0AV1Wb9JvZzJvzhvcB6CQL0wYzHnAj6E/yAYaDeVBNlJsMAfZxCy/QTbTy3eQLdTzGWQr3VwGuZhx2v/ZAIVUB9kc0TSUKJ8f5FIRHGPjnWs+2MKt+MYzt1xwr/jIk3JymR0X0wzIXKo7VbXjFvfLn3lTtCn7qPoB6+yyzb3qy8pdq/6hrj11fMj7OFbtEY+mrlU/516rVFCdVobplw/JEjVaCaqIYlUiUzOaW9aa/Q1idmlPXZHbCagW/B10XwaRi06VuVdMf+9DnIov6rlF8yzhUXxC/4c66Uz48UepqEN9N/Tzt2RwjOljsUUfj581AbaEXsIAAHjaY2BiAIP/qQxGQIqRAR3wA7EKw0lGJgYbRmZGFkZWRjZGdgZmRg5GTkYuRm42x6Si1LJU9tK8TAMTR1cI7WoB5btB+Zas6Ym5uYlgnoGjAZNzEF9icmlJanJ+bpJecmJxKg9IxtjADMwBAKDtHJg=)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA9UABAAAAAALMAAAA7zAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhWocghYGYD9TVEFUXgCDBBEICrBAp3ILgjgAATYCJAOEKAQgBYUAB4xODAcbIiYzo8LGAQCKfn4o/usELQ4rdj22ABHwitFYjZPqB3XSqAbV3C5dFkHYtTehxpeGbU+3+QexdERCkxARw9oNxAyetvXzdhdjl/7aiBiHgcqBjZywaGPSh4mNFccpF3DHlfyO8Jc/OiSe/kb7/iQYRAE23iScpHngiRRBFETNiZzQwc2HOllJ0fqXIjTY8RTYbDsklKc81hGPQcOJojhD/w80ll1aG/qiQErbzqOXjmvOVKd14tuv+Hxrlbarq/5xH7CiMPjaZXlrfNSp7uqaroZXvYAzc8A0kH2zs3MvHQBUORcJ2GG2cdFRgArh+Sgb7yOsjImpmgM0kq1FwhQCQzQ1Mt+j7at5GSAAIQAAKFLk6uMul4pIl4HIpEEUK0dUMiCMmhFWNoSDC+Exghgzi5i3hNhtN9qaINo+EbQj1tEIgJVLj5oebQ6I1/fyLMQYALYgALKS0yEOQCJG89uIiEPKyeRDVCmC0HgZ203jIg7kk6cHxfEKeBSDXtxd6n5yJzqpfSgXs9xMri1fPezlKMAVcCGEIhmwHiDRtJOyKfXkGsAVqI7ohIZs0rsDM/IU4fuQgkppCk2n+VRHy6mFttJ26t16mBjQPyIeYhvZnyXaiDSeaAYYXLiKPIm4uKh1zIq6gSRVU7WNPIV5v1PwBOy07RrrT6skwoEAtYyZeYgpBUABaDEmtPWRGP/UGABFgUUjchFXAghAgAYQpyPkCIBBoRwQgU/g3kQcyqTY9KSDItmjjmmkP+qJHG3C66hjXhtlhzwglI+1+4Be+T77hYQxxeNkCIDaKU+ANXhkMqePOVAQr7uwCjoBlCdtHQE8TNRd17//A/evkhSpkOMDA9VTmwAVAbLNlwMkoAG5qG2bWCYA/h3uEYgEhFqSmJJPpCIFbJHg1Aw5GaAujjqMzIHc8NrIHBEJJjGZP3cuFQZD9PvzLvZIaCIjBcTvEnIzTWiGjqdzlD+VAO2TUERK8smEi8lNNOguiAM9P6Gfo6bX8bD0v7V/cPwA/fDBi0BaGgUllWy5AATy6X9gAZqRVIsMLuVmqQ3QmrBbiFgTiWbxLDj1hBqINGLVYewQwySWWRyeQK1kXVJ0S2UjZ5WgXaIOSTodp42CUzqHXH226ZfJI4tXth45eqnslGdQgSGFhmmMyOdTbEyJcdv56U0pNa3MDJ1JVRZUmldtkcESglQkAOA8AMgAoBeYLQi+wDxAtwAAGlXJUdVLPLmo/TLRystE3SsqO29LUY0hsrtvBoXUw1Fy+XjIhqbj4rEZISsUysW1L68PlGRwyWImjWXjS9LFyUzjC7v7Z5hYsYKRhIH49EyxTJxutwOy2PRxp1R63SVViB+eNFYRywlEzJBIMDIl5Aa4PtbFOno416WTTkfVQwSPgIve66BCbLAuLmpCh59ln5uFECODSuUIJ2CJCCzDwbf+DV2/3yTtan5J1gEVuilcVASHULO9Bt+nWkIEHMMit5gOxaO4JpWjvdzOcySeFek9q4dy3jxi2BxHwsuuo2CzbQ+KJWxyqPUJljVCU3WT8JwlhZyLkKODRhZkQByHu8ERJIcGBexSmdwGPfMPbjnC0SwRUTyCAIwY4Mdr9zxJTKE5yp0mcEe9s3Umm/TZp2s4X/27cQUmhrd4Ow4ibPOTOxxT6w+S8ENc9AGE7meFOlNbuzjngJtzjFKcrMsxtf4G4UIPcNGXbvwNaeDea6+1L7kaYG+M13a455pruOh5Ww0HlhllPy/PsqS9Zr7ZV9cSLODAoItzBt2cI5i1brCxQRIcH6yr9wV5+XjhtlxuziH7LiqGTXVnkfCZntd1doJ5liyIno6X3GqH56fcnGNwE2IXvYhw5a/MJGsMns/TOawd+2HX5kOXxQZFsYkwmMetzGtqKDKSe+h9h7jX77z2Snb98vyL7rjmil1N3B/cCBfsC5rymA/ExpPlni/DL9i7eflmn66oxrSlMRRB/8Dbq/e/3aN95L3BG+dFd1d+uCVzKhQy5/+I77CmWJ/o2Hygaay8yleXU1c1NH2IpqHOYUtriyWHf3iZwxjZvNxm/Ti/O5+22uC3nVFxhu1wvQc08ZZ+nb5/9oBF38ehJXaKPt7K6/v34Ltqai21rbXDXI3BRDa+9XDSGp8gzZZarV2ag9v3RBzSNfFjU/M+uVduNDTsMNY0GCOHDU3O4dazeb3zFXjg0rlPuiV75+m+kzV3v5qc/PHdJ2j6pI+wDP+U7mFPW/uw23ltZemTVTo+3+KNa1yyuwdmfI41j1/yvbG3oaLR3G3Sd1xdrNOUfAou3jYw0z860D9jr+9sqU1IIHve9W56/fIEU2fztvaqHQ213trhKauqjXVmr/kFxP1m7bdCE88Plpb1m840l/VNQz72QvvMPlc5z9fvKPt1xBtXv9yVZ9nGmxscXiDfwGcI4LQ9duBaG7Nxjw2aWMuArp7In2qxObTwKfr40/iy/j34zhqeN59qHuZqDBaysQWiL/PZsk4cyV13mvbwWw7phfEDC/O+fm9/ram+sspcXxs5hm9pHjufSujGRbKXaTPmBAPPfMm45bau15+jR/bbBx80mR7sCth94rfB6Q6sngJcuO1v4a7Lu157ad9GKIlypuEea9GDnXs0IytDmZ2Rka2cVv4jrIHmaFZ3O9OWlWX7gLuRH1mMjsxE8VrEH/XNRrErsh61R6PD3e2d7dDsb3Z38k15W/kFkrwmHk+PhWNKx3nLMhHkSl5ZLMvHWPGPfwRB9AKr2QoSUb4qSlB18X715zkqwRI0G3lvUOptugtcID+tsKQForrC+pqxS4X1dcof21bf4OQcbZ2Le6y53kKao3rxNWE9f1a+S3t2tiIu5yej2d/W12RozBwrLh7LbDT0NkUDi+HBQPj0xIlAoKHFFxAMPB8Vce+KKo28Rq0SHV3LUk6MNLv35DMrCzVNmbxBeCGCKzMtu20y8f+SVD4h31Sosky03Upl9YJxzh+L0ZFANLR4LOpYj452tne145E/wok2e6JX/xBX/vH8WaFQojdWlrhzuOXjs1Zn3cCkT4qWSmZeqX/B4tciE4HBmUBZwGxtMDaqnCpdllPVaIzdNw9ZqfDU30ppYDgw2B+A5JP5L8bj4tgWoy/t6WRRcO2P8uFDakiP2fMWaviyaOYFr94gE0nEsXysWligOuHRC2TiH0XSJ/4WqQcjE4GxmUAocKlG+jECgZHFwGX8vabVzf8f4KQSi8Gp6laIdgV0q8OzbmjyaWdnW1MQXZoJDb7ZaEdzVzMoNQiAGESUwszDAIzTDIqSxGFoxoRZ/vTKM8CfyZ9V/ZAPfzZ/Ds4tMHm0dSxCkOPaNpKlK8/KwGQVCdzqbPDn1HKuiT8WHUnStEQYZB2TC6WJ6spymNIjBV7JK5lSs1C5qDoRSYBUSlgH31LlM7X5O4o8eBxrX3MDwtOG1iZdZ/NjXsu0gBJohRVmlQNfwVfQmsReAdZEAahljqkMaxLHg/gT+BONkwxcgT0CH/5k/pQrcCpMUYiGtPqbDGvVgALfitYyTHyI7iP25WqsSqAlstCbcmZ3k0PcRZlgbs0KCrwb7lImBTqQCCawVEpMWHur0DRm3+9sVAOK6UQiqESr8NaEtY8Vu86AIjK3KRZhXNwqD34Oc38umLZM7/33+38/uOj7///Z9yMAAHqAUtN3Bsa/l9rSiKVxlONqqbKozYWfYMRMRkicEE2FhIs4TuWQJL0RDNwCPy0hP1CbGAVY9Mb6W+DZ2p14CIQoIBjqGKpe6lOONhDJTUFBXMgZYOPct8C7Ffmf2jR2ksQ72U7f6SBu5gywoW8x2Qhy1APl1CZGAQ4ksGGD8loGsjY0UQKXmhdvpBboCNglmiU2XUCieL2dF1bDaTacoykaTjgFAhquyoFkiSk0LZyooeM7gQDVIlmNOwCPlICNKQpatkhBhUQJpdLCVwFqWj3FQ8sWeajTWbJiLeRJQlRmsyh1YLRZtAzVNr0dAoCqYN6wXLhzQGL8LY6mvwSAd1698ly88s2Xfwa7FbVA/wsgBhQAgABfG3dQHs2o/066DhB0wWo68NIlpR8Rtqkj9flbwtMc3oZyWoIn3n+L86o5vA1V8ng6L4C9+Ax3YgMBHN8Er4rV97ZRXgdo2vF244hH35wAzlOM0Y1BABGNnNCZ4UFNPID7U9KeSCgiP5EiDnMizejpExlFzj9RIM2BE2MU8pwgViH7TAQQSqpgnDuJJAk2kHIaYDNnhs+sFsvBuaf5DXMbXT9uwvLIbk49b4mBNm3JsEV+85YtKUHWb5rT5ywap9WpUZtWo6q5Fot8W89a0m4OaXOK2Ywat2KaD3NdRi1S/+eloldCT0fn1K5q61Mpa6eaNrKMB6WMQqn83IfXmTNv1eIRiaKj7aOsikMmoxej+EfqsmjOpFHDLnneylGLQxT66vnHnh/n12VXDN1Hw6/bcNpctWo3vrwApZvfrdEDiP8IzgPkeiYUoQlzDvYWB0cnZ6uLq5t7+aRk5I6TIFGS5IqkSJWWXjqFDEqZVLJky5FrG7W8quQrUEijSLESWtsz0tErVVa9chUqValmUMNoh1omZjxSM4s69Ro0atKspTe1smrLpl2HTl262dg5OLm4eezMw6tHrz79BgzyGarXsBGjxqJtJvhNmjJtxqw58xYsWrJsxS4Bu61aE7THXvvsFxJ2wEERhxx2xFHHrIs6fuE/r+1vm6/8jhhtDCwnASDGR1h4SGhYwEGU1Y/Xffk5G4u9XgIAYtxyGpZ5y9sDdNbyP142W5DgAhoE7i3q0c5x2vm9v24aZuNohdcxqSEAz8up00My03HSwmqPa8bMecG3Tjzb+f9EelEtg2vpzPeiIEEBwSA8IEDBwAE9F5Z6vQIQjAnLGTgWLO+uZTL/qwGEAYOAQpg3TefgwBCQgBDzqukKDBAOoU3KVtqIbBXK9XpEAAujuudkZN724kIGmrtVaS38ZZLrS9/4fsKMQhN3yXK5gvSBvJ2Y9/Nydbcvb0bm58+e3FhmGfGLJ9u7axl1F1LQTbaCeyrbu7wFCsorFgV4qnh+GUrWtaczqkSBB96AEeKRB94k2SyLuyw3qwrxeg3P5FNR1Av1Gsq2/ds6dPPkBAAA)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAbQAA8AAAAACMAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABgAAAAcABQABEdQT1MAAAFwAAAAHgAAAB5EdEx1R1NVQgAAAZAAAAAnAAAAKLj8uOpPUy8yAAABuAAAAFEAAABgF2hca1NUQVQAAAIMAAAAPQAAAEzpM8woY21hcAAAAkwAAABRAAAAdAyHCodnYXNwAAACoAAAAAgAAAAIAAAAEGdseWYAAAKoAAAB8AAAAl604cJFaGVhZAAABJgAAAA2AAAANhSS8UNoaGVhAAAE0AAAAB8AAAAkAcwBEGhtdHgAAATwAAAAHwAAADoe/QLmbG9jYQAABRAAAAAgAAAAIATcBZ9tYXhwAAAFMAAAABwAAAAgAIcCb25hbWUAAAVMAAABEwAAAmo0OV08cG9zdAAABmAAAABwAAAAlNdzMTB42mNgZGBg4GGAAEYgZAWTjCAeAAG0ABkAAQAAAAoAHAAcAAFERkxUAAgABAAAAAD//wAAAAAAAHjaY2BkYGDgYlADQiYXN58QBqGcxJI8Bj4GEGABEf//g0gAWkkFVQB42mNgYYpi/MLAysDA1MUUwcDA4A2hGeMYjBgdgKIMDJwMUMDEzoAEvJyAxAEGXpaXzH/+XWFgYP7DqKPAwDj//nWgSjWmW0BZBQZWADbPDjoAAAB42gXBsQ1AABQFwHsfiY5CYQBDaVVIlBL7mckA7kT0CpPCop79uIPz3q4MojUrSJePvNSKRlRGEH74hwYNAAAAeNpVyEcBwkAQBdCXHnoVgJU44Y4pFIAFUAOJiS23ZOZ3lKhwVSlkr91xdlQp7dwMnr5FWb/rMQQW26v+h3xT+IRHGEIBCvNr9Wh0OUU7NxUUAAAAAAEAAf//AA942mzQNZTUQAAG4H9mIDlbySoOt5I9HHZiL+vS4VDh7u40OFRo3+FQ464V7tbiUmHdJczicsm4fe/9YBgDEIc+BYOEeoArzUqyWSGkeQzZ6+wmfZwLot6nT1vVNM04oBlQ9AZoX3FHhh/gQR6Mp+JykKdUNSVJcu9T20/N73OrT3F/2qMw5vfWLp88SQL3rFE+3ygTrvv9BXaMqiCAkD3d2lr1ipagK4QqNDHjCuPBSCRqGGaQM+XLk0XrPX5GlaY1i54QD7nhvO/c3+Pp35mEHO58dN2fd6mEdgAYRrhfqEyfi7ei6AG0j6m6ohk8HQkrIUlKpQ1dj4dDEcZ1TY3HpDDpM3PZspkzl+lTqlbmZUYUy8o0LJtKSlOXLp3qnC9N1ieU7FWr7BIZPssuFm1hpt3BVBW/yPMPcwAUdEL8m6nqumbU1Eg4/Ceb+s2WpxrG1HKtnVKxcm9zolhWrkGbVN5RmqQJdGdpkj6ukGluzhTed7ULBRvkp4wAENVFUt1oNGrmaS2r8JcrCxfJjXWUUCo3yvMXXDlyhKrO3mhLj/qGhvoeLREyvvXpEYDgGutFDrFjYEDQ5PK1OcsWs15bt4JgM0uQe2LHAxCRHA9FeNoQnUS+Tsc7JkRXVV03JIZZJcBJRUdHxSmAAQCFZYU3AAEAAAACNgQJCtdkXw889QADA+gAAAAA29KmmgAAAADb2tDy+Tv+1ASSA/wAAAAGAAIAAAAAAAB42mNgZGBg/vPvCgMDy4af1n9rWSYBRVABHwCudAbaAHjaY4pgiAJibSQsC8WBQGyERDNAMQicZmgFAOeFB/4AAAAAGgA7AEYAUQBvAHcAqQCxAOYBCQEJAQkBCQEWAS942mNgZGBg4GfcwZDHsIWBDcxDAGYGJgAtGgH4eNqM0IFGQ2EUB/DfqqJMBZLAFUh0V0MoUBGllKQArHVtN9vu3HuH3iEAPUJP0cP0BD1D3D6zKQqHH9/5n885qHs1qza3iPfaenDNts/gGcs+gmcdeAuem+iZt+EleMGWx+Bl++Jv16jbDJ5Xtxa8om4peNUSbmT6WgbOlFp6Um2XEo9SI333EqmOrrKq0lDhQENDoS2XGioVYoVUTyyT62i4curCuUTpWK4lNVC4lBnI7Ez9dCeRK6TVa6Qp1rRnb0KHzh07/PfMG4mOkZ6W/JdUNM5FU7kTmaFn+Xj3SNNuVZFbXYnoj3nXcpkniXaVPzKqbpjJq86tH/fsSKuOkQextkzf1/Sx2KKPx/+aADN1XKsAeNpjYGIAg/+pDEZAipEBHfADsQrDSUYmBhtGZkYWRlZGNkZ2BmZGDkZORi5GbjbHpKLUslT20rxMAxNHVwjtagHlu0H5lqzpibm5iWCegaMBk3MQX2JyaUlqcn5ukl5yYnEqD0jG2MAMzAEAoO0cmA==)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAA/IABAAAAAALMwAAA9mAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhXAcghYGYD9TVEFUTACDBBEICrA8p1ILgjgAATYCJAOEKAQgBYUeB4xODAcbFCYzA/aDkxp0RMXmTMH/IcEUkaXZhe7qAVQoRhtRmOhkzaUYXs3lyzTUlwptwwNGy28PLP/oZewn39g4Jjp8YusISWZ9eNpW788MNQMI7jZprgsqRiJ7imCBYlEWIBhgoWjj7uJGcddednnRIQ/fX77n7i8NtLf08UwEQl3jq59XJCShypU4lMyz3Hb3X0omkAkZCYVNhfN/c3Pmf1nJcDqnj2VE35fYAx+8WYIJhZj4znn1Qbjp9+f4Pab0wOi7JSECzG0o6DRWu/MBgfu/NdPu5O8cUssKSJ1wUyTjq6oWZic7nUsKuIEySsIkzXvdKzArVNkCwvP1lQCgK4yu0BVWFp6vrWVm/6Nt7H82JGhxDyAteCbHZLRdzTsxJqNEUxb+txHysoxjwQzz2p8tU5uFtC4RmcGouCRX3v1195cCAYgBAECRIWSIVNsQCiqEhh6RpxRRzogwaUTYdSCc3AivAcSQCcSkacSCBbQlcbQ9DqAddgyNAFiZilAX9c1OSB/6ZyYgxQCwDgGQoVQGIYAIRvVlRAiR7Ax+jsqKIDacjVExNGWA/MQLk8VzJshTmOztrVbySNyHVnaAiUVpcgdvmnh9FNeAYYXkMl4AqisEoDtIZK0zs6lsSM8yAboEhZ5CFVqD23kNfor49QgAGWwFBeRAIZRCLdigBbqPFSIF+ABeQAfotUU0g+rL1gCMOnSNn4S0PWEL5Nw2QBqyIVvBT2Fe9wCSYDa3QH3Vt4cSaWSAug+NT0JKDgAKQOMLa96EFIKf/gOUWDQiE3EFgAB4aACxikhFAAwKZZ8DgHeiRQixRghm5n4HrCOOSrQAtqJU3LzpFAr/6TAHnDo8QQgszNHZ77FXwgom85JfwQOqMC8Ae/gYkSsURQ1AgQgAQAutAAoAALCdA3gIkv619L//vwb0H8nVgjz+bwLUlFoDaPGQkfqBjQcpc4R8ODxDAPwurhVJMbRRa7ksFTJAUJERK+RXgDxDi8az0D39NBJmMjGZP5MWgyH5+mYXeZg0kZOdJEIu5k1OaIYW0Rnqv/S2DtQxKCIjOSRMLuKNDjpwIXDRE0Y407zODF3/W/ovnvbiAz6YIOC0nZKaVrpMADK9/g8sQDORaaLiVmpCNj+DsAUJUg1SNBKpxbESqyNRj2XB2IWvmkANITOe42zRZqt223RIZbdRi00cNmu1QTMlFwWnTH2y+Gh4pemWrkeGXlpddgjYKUgnRG9Ajn55huQbViCiyKhiY0qMKzSiwpRykyrFGE0jSCIFAJwLADkD0AtMDvBegHkHug0AoFGJVK2qhCXG61AIrWWr8aYYT2zhWkVVD6EX62dQyHJqVGLicdAyTQtFjJgVi1Olw0wdI6eouC1SZjvL3umikG5h3BSHrTOMQKpkUgQu/aGoVC5VKLOjXKBIrWSy2FqmlB+dTKAUcDwJE5TwBkbFnJ/rY92ss4dzXxKbV1/T9hAJvBUu+bwOaq/XWDeXTEKvBMv+HYDYtSMXHI8lErBlDv1FvCF2yDfJcie3f1oWe+wCtb9HCZdshHBIfLC9FrNf60J4HGMKYkfC5TJ+lSNHd3NdZ5dNZ96o6OG8lOvpt5IcR3r2z61suaFBNQmrT0wrCXkvwKkNWenURddyk4+u1FuSiQRtRvQxxhEfxFo411PBvfbTQ1aCPSbA0yIczRIJRXEEQyYS4ocX/of1WiiyaY7SI3Z54u6pUe8m+30ZXB4f13V23XbupYoeLhwa5QqcRIKRdhwtDjdHX7sj8SSWqhgd2s25/B7OuTu4WLdz9FgQLtG55HhMlbFN/J5rrmGPXQWwZOVVLnn31VevgnPrfKt+IsHWeS5ZYVnCJZ9HIqem3z+aeAsjx92cK+7hnPGyVcarN47i9QctdADS864Xl+f2cM6E6W7jwyDLmWTlDNfAWRtN3eLupy1VuUoXA0Y9nDMwDm0aWWy8vkY6yniPTKmax1mFMSPTY+OyNo5gvPrMaWh+d6Yocqzobrh2BM+xO665gj12WQPSixm3X325OHNpey4+FiI+ViG4n+0mtkeDT6J77bK1vsLcqur1aMyF/u63T4xFx/V3vXhzq+VXFL7ypKwjPz+l4w2I7O1b21+wrz3XGCkzhqwKi3EwUtbo7w+YrLVVCuM8U1MAvrXrA5YXtX7tt5YAgoHTtp8WWF0eGHqRNVhUEjBba0v8h+bWaAV+c525JPC7Y/GXH19hrUyWl51baa04D0cn7Sp5qsze1VrwV7OyZHfSiyJTsZB0TFoerSjfW97MUD0Yt59oL3Kd4SNndY35u+St5yYTG575P1cpvWf3hskypgS/yB30tjjC3t6zi/Om4l/vjtYRYdOcpyc4FXQtRAZTN5h66vUdRpsxv/FMnSRHdzIYUWcg6vcHAtFOq8NmDm+l9r49tjYS2RI2O2zqvuITK5wVJxaXLhudxmXyUWt/K/Qiy0BJqb/mZHOpb6DEYg2VlPrMQWf+rheNhpOjo1zdfIfKkm6qMhsrTeZd234B2oMPB68Kyh+7OQi90BoqLvWbT6wt9YWKrdEKfLUnmkv9J2fxld9XeaLx3vKyZ40nVj6HfU/YdfKw79i9rQU1lSWHXuzBSScKzcZC3WPdlRcUl9xQeTh2aC6G9md6xnorxgsKd1f0dvkr/e7KQtNT/YHYFK691fHqc7z5WGnoTXPhm6HR0mnubTCFnYEJf7bfP+G0Ouw1k4QvuOw/rPsO97uflSxXKCuWS0rjlcrKePHlrYZWnH9AY9VoL03tATMa+kB/IGO1LLqakbF6sqvQHJhOLowm8cyBSHJmMonogaPJATpOOOweE/o99p7WWmfms1k7ns101lZHxtRBTefZMzIJkSsaNIZ6PReT/ohVl1uGg2e7ml3474DkI8kGTVtDZOe2TO2ONujXMk7TagqPrtGehm2f5GksNUqWOMsAC1JpXVMB8a265dwCWrecb+qjmcuF3pKhX/qEodrl80v5RPPuq9xGdUu9x3B2pnqrdvnB6Pe2BBpN7ap0nS5d1W7yN56QiB0YXTzQIWMqsVit2E1IJJ65TsI+KzVZbHmN6dJzkiro99t7Gqscyl/8nbTSUVWdjOByTedCSCZdr0kNW3MHcrWWxWmp1cp+yE6c98d0jC0lz4gdGXjRaLO92ffUHysp8pF3giv+eOcGjvsbGa11hkiW+PB5hmPdht38S67pmA9my+IbNmXULvS3VG07Lq136q4xnKz01oPhuZGJueMWrK31JofKklae1qlqKba7vg5yWnz3hzAuBOeGe+aQ8ur03gWhSNxQ3a/htqUcWzqxZsgptuwTcY3NaGzZLlTUKP8UW4zHk6oxHFFf9+F9MrFUwq/n52j06vNeGlmS9eyJU7A8ejA8F5uYO2Oh2i5K+uDcaxPRubvf6vbTxu85m5WnWqo9WbdqJUcOf3tSoNvCbrn09HJ9io6MjZ4Xny5qb2puApUNggl8KLVU1ACQTpMomG2HoEriLLkaejrIM8gzIx90Is8iz8bnjGNjNLQADHJcM4VcEXqXkOUhG7nIA5BvNJ+N9MKmYbuN05Tq5ZrWhcjqhmQ1IzdINamW1V4WrBhk29RG6FoDqfIt9wjkbNfvcq4XYOw1PHUJmquCZ03r3q6PSYNswHBLUJbKWbcHWUaWQZUN89AnAsi+EPxQrrIlEJnJIlUJM7HMcyIb2WdiwCYYhdkKuBjZ5gUYSBu2TYSNZEBQZ/dsLMogZAlqcMnlTpcszNOWC7LHy0oMpAd7JmhjAL8NbmRdayAVvDU+WxL5XR70AowhbINbkc7/KgLwLmPqTfwNBEUHCMBxmUhdQj6WUlkZlKnxu6pO1d9/v//3Q7rw+///2fMjAAB6oDb0HaH0b6GUJU8Y0eR64ojqUqm14Od8duRDHPKhFfZpiGupUNnzetjxdgRbK/5+l4IJ5JeSir8t3R+1IaFaa9AZitANXTvqUxavQ2TYeNmrYwP4det2tGuWgFpDejL9euYAfQfK28gGGIvbgQRcpXesotZIABUK/LoCMgX5tBzoUFiWbADfCNfMu98PsCghbdyeq6jgel07qoCDJjjsyIFY7MAODSYL1alQ9phCIRt3Ri4tbQVgE5dpkfhjGAkZMAWRYzPLNioh68Amvwwd4zGzodCRGaTlUjZqVdaBTSBDfJ6vWzoqG6lZhQKbFK6EAKgz5unB00f9KabfIE1/CcA764pzcPbvSz+DTdl+/xcAHwUACHwM3JK6lBL+d88HxAVfFHh3m1b6a8TWqK9qwVrRVjPaq6WqFSbUXqOOqrXXCkfN6KhWPgnndsCsD3CdZzHpoEPOX6wjz67FHso9aAqWW+ynpyeAc+VhtGMQgKDhk7pBGKUsAnBflEhlCV2wnFLxv2VpRo+QTFme7a4qy5cjUVaqjK2sjFJ+GTmx9FYE4M2hvDRKwSyXLSegQ9S4fhOazOT8YyJCPAaHHhY2o8XyD4iYNc7mNKNWTL+ICdO0Go+aiFqsGZM3ZyMDg2khMRGTZqrMfNN8LD/nqJhhBq3qNXN2r8LzGkBuHpMgYmkV2dpFChUKu08Vm1pVR9TBh+FjevSxMYZr7aNbRE1aFJsrvS1RcG1pOS9ocBJ8rTYx4yMuQj6W2WwW4VnSDJFz5tU/LKK0ZgWXCD2/qRmKRWuYh+47US6adX1FAOIfwbmATE+T2t4wLVab3eF0uT1eXz6MQKLQGCyuGE8gVpLIFCqNzmCy2Bwur54vEIrEEqlM3qxQqtTdSrU6vcFoMlusNjsz0q+WhVWdeg0aNfUmG7vmOrRwaNWmXYdOTi5uHl5deXXr0auPj19Av2C9QgYMGor2C4sYMWrMuAlRk6bETJsxa868BYuWxC3bbY+9EjhBUjTDcrwgSih88/y+eq/C13kHnXKhbTUDgISUCgNDoABXKLCL+2X27E/c2jAAQEKsFigx1qgLEbSeu+NyhcJGIECQNm9L567c3l7uZ5Wo3pkx4tYOhJANKw9dEonovRqVDb5dMKz515Ng+hci23hm4UQEs8eChwPB0BZYOBINbH3Erw0HECzUaokWa42eyGD3PIBIMBSOrfryBQ3G4oHQKi+/kEA0tuaDV40GP3h0+wuAAgXTKy0v5428xUDwksfm538juY9ni9fz2Ggy4iWLMz4qLklle7kcZvOLwy5bXp7fdYrRJlP4l5NDdZPiKVeLnJV7Ohg2VAs/aQwZNVtodX2jki6RU1e/j6GkgZbgAmmogZafuF4mZlb1t+COUyrcnF/CCZzS4MO/dX1T6QQAAAA=)format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[23px\]{left:-23px}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.-z-50{z-index:-50}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[99\]{z-index:99}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-3{margin-block:calc(var(--spacing) * 3)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-44{height:calc(var(--spacing) * 44)}.h-64{height:calc(var(--spacing) * 64)}.h-\[70vh\]{height:70vh}.h-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-full{height:100%}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.min-h-\[16rem\]{min-height:16rem}.min-h-\[58vh\]{min-height:58vh}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[85vw\]{max-width:85vw}.max-w-\[250px\]{max-width:250px}.max-w-\[280px\]{max-width:280px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-\[2\.5rem\]{min-width:2.5rem}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3ch\]{min-width:3ch}.min-w-\[680px\]{min-width:680px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 7) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 7) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}:where(.divide-border\/20>:not(:last-child)){border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\/20>:not(:last-child)){border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/25{border-color:color-mix(in oklab,var(--color-amber-500) 25%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/50{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/20{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.border-border\/30{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,hsl(var(--border)) 30%,transparent)}}.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,hsl(var(--border)) 50%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-border\/70{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,hsl(var(--border)) 70%,transparent)}}.border-border\/80{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/80{border-color:color-mix(in oklab,hsl(var(--border)) 80%,transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/20{border-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/25{border-color:color-mix(in oklab,var(--color-cyan-500) 25%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/10{border-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/10{border-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/25{border-color:color-mix(in oklab,var(--color-emerald-500) 25%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.border-fuchsia-500\/25{border-color:#e12afb40}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/25{border-color:color-mix(in oklab,var(--color-fuchsia-500) 25%,transparent)}}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab,var(--color-fuchsia-500) 30%,transparent)}}.border-indigo-500\/25{border-color:#625fff40}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/25{border-color:color-mix(in oklab,var(--color-indigo-500) 25%,transparent)}}.border-indigo-500\/40{border-color:#625fff66}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/40{border-color:color-mix(in oklab,var(--color-indigo-500) 40%,transparent)}}.border-lime-500\/25{border-color:#80cd0040}@supports (color:color-mix(in lab,red,red)){.border-lime-500\/25{border-color:color-mix(in oklab,var(--color-lime-500) 25%,transparent)}}.border-neutral-700{border-color:var(--color-neutral-700)}.border-orange-500\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/30{border-color:color-mix(in oklab,var(--color-orange-500) 30%,transparent)}}.border-pink-500\/25{border-color:#f6339a40}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/25{border-color:color-mix(in oklab,var(--color-pink-500) 25%,transparent)}}.border-pink-500\/40{border-color:#f6339a66}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/40{border-color:color-mix(in oklab,var(--color-pink-500) 40%,transparent)}}.border-primary,.border-primary\/20{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.border-primary\/25{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/25{border-color:color-mix(in oklab,hsl(var(--primary)) 25%,transparent)}}.border-primary\/30{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-primary\/60{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab,red,red)){.border-red-500\/40{border-color:color-mix(in oklab,var(--color-red-500) 40%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500) 60%,transparent)}}.border-sky-500\/25{border-color:#00a5ef40}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/25{border-color:color-mix(in oklab,var(--color-sky-500) 25%,transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-sky-500) 30%,transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/40{border-color:color-mix(in oklab,var(--color-sky-500) 40%,transparent)}}.border-slate-500\/25{border-color:#62748e40}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/25{border-color:color-mix(in oklab,var(--color-slate-500) 25%,transparent)}}.border-slate-500\/30{border-color:#62748e4d}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/30{border-color:color-mix(in oklab,var(--color-slate-500) 30%,transparent)}}.border-teal-500\/25{border-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.border-teal-500\/25{border-color:color-mix(in oklab,var(--color-teal-500) 25%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/20{border-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/20{border-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/25{border-color:color-mix(in oklab,var(--color-violet-500) 25%,transparent)}}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500) 30%,transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/40{border-color:color-mix(in oklab,var(--color-violet-500) 40%,transparent)}}.border-t-emerald-500\/70{border-top-color:#00bb7fb3}@supports (color:color-mix(in lab,red,red)){.border-t-emerald-500\/70{border-top-color:color-mix(in oklab,var(--color-emerald-500) 70%,transparent)}}.border-t-primary\/70{border-top-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-t-primary\/70{border-top-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.border-t-violet-500\/70{border-top-color:#8d54ffb3}@supports (color:color-mix(in lab,red,red)){.border-t-violet-500\/70{border-top-color:color-mix(in oklab,var(--color-violet-500) 70%,transparent)}}.bg-\[hsl\(224\,28\%\,8\%\)\]{background-color:#0f121a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/80{background-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.bg-amber-500\/\[0\.06\]{background-color:#f99c000f}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-amber-500) 6%,transparent)}}.bg-background\/10{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--background)) 10%,transparent)}}.bg-background\/20{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/20{background-color:color-mix(in oklab,hsl(var(--background)) 20%,transparent)}}.bg-background\/25{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/25{background-color:color-mix(in oklab,hsl(var(--background)) 25%,transparent)}}.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/35{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/35{background-color:color-mix(in oklab,hsl(var(--background)) 35%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/50{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,hsl(var(--background)) 50%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:hsl(var(--border))}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.bg-card\/45{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/45{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.bg-card\/70{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/70{background-color:color-mix(in oklab,hsl(var(--card)) 70%,transparent)}}.bg-card\/85{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,hsl(var(--card)) 85%,transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/15{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/20{background-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-emerald-500\/80{background-color:#00bb7fcc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/80{background-color:color-mix(in oklab,var(--color-emerald-500) 80%,transparent)}}.bg-foreground\/10{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/10{background-color:color-mix(in oklab,hsl(var(--foreground)) 10%,transparent)}}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500) 10%,transparent)}}.bg-fuchsia-500\/15{background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/15{background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.bg-lime-500{background-color:var(--color-lime-500)}.bg-lime-500\/15{background-color:#80cd0026}@supports (color:color-mix(in lab,red,red)){.bg-lime-500\/15{background-color:color-mix(in oklab,var(--color-lime-500) 15%,transparent)}}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/30{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 30%,transparent)}}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.bg-muted-foreground\/45{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/45{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 45%,transparent)}}.bg-muted\/25{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/25{background-color:color-mix(in oklab,hsl(var(--muted)) 25%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500) 20%,transparent)}}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/15{background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.bg-popover,.bg-popover\/95{background-color:hsl(var(--popover))}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,hsl(var(--popover)) 95%,transparent)}}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-primary\/70{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/70{background-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.bg-primary\/\[0\.06\]{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/\[0\.06\]{background-color:color-mix(in oklab,hsl(var(--primary)) 6%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/15{background-color:color-mix(in oklab,var(--color-rose-500) 15%,transparent)}}.bg-sky-500\/5{background-color:#00a5ef0d}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/5{background-color:color-mix(in oklab,var(--color-sky-500) 5%,transparent)}}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500) 10%,transparent)}}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-500\/15{background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/15{background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.bg-slate-500\/20{background-color:#62748e33}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/20{background-color:color-mix(in oklab,var(--color-slate-500) 20%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500) 10%,transparent)}}.bg-teal-500\/15{background-color:#00baa726}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/15{background-color:color-mix(in oklab,var(--color-teal-500) 15%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/5{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/5{background-color:color-mix(in oklab,var(--color-violet-500) 5%,transparent)}}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-violet-500\/\[0\.04\]{background-color:#8d54ff0a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-violet-500) 4%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground{--tw-gradient-from:hsl(var(--foreground));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-foreground{--tw-gradient-via:hsl(var(--foreground));--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:hsl(var(--primary));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.fill-primary\/20{fill:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.fill-primary\/20{fill:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.font-space{font-family:Space Grotesk,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/70{color:#ffd236b3}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/70{color:color-mix(in oklab,var(--color-amber-300) 70%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/90{color:color-mix(in oklab,var(--color-amber-400) 90%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-cyan-200\/90{color:#a2f4fde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-200\/90{color:color-mix(in oklab,var(--color-cyan-200) 90%,transparent)}}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-300\/80{color:#53eafdcc}@supports (color:color-mix(in lab,red,red)){.text-cyan-300\/80{color:color-mix(in oklab,var(--color-cyan-300) 80%,transparent)}}.text-cyan-400{color:var(--color-cyan-400)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-300\/70{color:#5ee9b5b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/70{color:color-mix(in oklab,var(--color-emerald-300) 70%,transparent)}}.text-emerald-300\/80{color:#5ee9b5cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/80{color:color-mix(in oklab,var(--color-emerald-300) 80%,transparent)}}.text-emerald-300\/90{color:#5ee9b5e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/90{color:color-mix(in oklab,var(--color-emerald-300) 90%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/70{color:#00d294b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/70{color:color-mix(in oklab,var(--color-emerald-400) 70%,transparent)}}.text-emerald-400\/90{color:#00d294e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/90{color:color-mix(in oklab,var(--color-emerald-400) 90%,transparent)}}.text-foreground,.text-foreground\/70{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,hsl(var(--foreground)) 70%,transparent)}}.text-foreground\/80{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.text-foreground\/85{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/85{color:color-mix(in oklab,hsl(var(--foreground)) 85%,transparent)}}.text-foreground\/90{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,hsl(var(--foreground)) 90%,transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-lime-400{color:var(--color-lime-400)}.text-muted-foreground,.text-muted-foreground\/40{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.text-muted-foreground\/50{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.text-muted-foreground\/55{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/55{color:color-mix(in oklab,hsl(var(--muted-foreground)) 55%,transparent)}}.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/70{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,hsl(var(--muted-foreground)) 70%,transparent)}}.text-muted-foreground\/75{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/75{color:color-mix(in oklab,hsl(var(--muted-foreground)) 75%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-400{color:var(--color-neutral-400)}.text-orange-300{color:var(--color-orange-300)}.text-pink-300{color:var(--color-pink-300)}.text-pink-400{color:var(--color-pink-400)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/70{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.text-primary\/80{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-red-200{color:var(--color-red-200)}.text-red-200\/90{color:#ffcacae6}@supports (color:color-mix(in lab,red,red)){.text-red-200\/90{color:color-mix(in oklab,var(--color-red-200) 90%,transparent)}}.text-red-300{color:var(--color-red-300)}.text-red-300\/70{color:#ffa3a3b3}@supports (color:color-mix(in lab,red,red)){.text-red-300\/70{color:color-mix(in oklab,var(--color-red-300) 70%,transparent)}}.text-red-300\/90{color:#ffa3a3e6}@supports (color:color-mix(in lab,red,red)){.text-red-300\/90{color:color-mix(in oklab,var(--color-red-300) 90%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-200\/80{color:#b8e6fecc}@supports (color:color-mix(in lab,red,red)){.text-sky-200\/80{color:color-mix(in oklab,var(--color-sky-200) 80%,transparent)}}.text-sky-300{color:var(--color-sky-300)}.text-sky-300\/80{color:#77d4ffcc}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/80{color:color-mix(in oklab,var(--color-sky-300) 80%,transparent)}}.text-sky-300\/90{color:#77d4ffe6}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/90{color:color-mix(in oklab,var(--color-sky-300) 90%,transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-slate-300{color:var(--color-slate-300)}.text-teal-300{color:var(--color-teal-300)}.text-teal-400{color:var(--color-teal-400)}.text-transparent{color:#0000}.text-violet-200\/90{color:#ddd6ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-200\/90{color:color-mix(in oklab,var(--color-violet-200) 90%,transparent)}}.text-violet-300{color:var(--color-violet-300)}.text-violet-300\/70{color:#c4b4ffb3}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/70{color:color-mix(in oklab,var(--color-violet-300) 70%,transparent)}}.text-violet-300\/80{color:#c4b4ffcc}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/80{color:color-mix(in oklab,var(--color-violet-300) 80%,transparent)}}.text-violet-300\/90{color:#c4b4ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/90{color:color-mix(in oklab,var(--color-violet-300) 90%,transparent)}}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-primary\/40{-webkit-text-decoration-color:hsl(var(--primary));text-decoration-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.decoration-primary\/40{-webkit-text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent);text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#10b98166);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(239\,68\,68\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#ef444466);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(245\,158\,11\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#f59e0b66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab,red,red)){.shadow-black\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab,red,red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/25{--tw-shadow-color:#00000040}@supports (color:color-mix(in lab,red,red)){.shadow-black\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-background\/60{--tw-ring-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.ring-background\/60{--tw-ring-color:color-mix(in oklab, hsl(var(--background)) 60%, transparent)}}.ring-black\/40{--tw-ring-color:#0006}@supports (color:color-mix(in lab,red,red)){.ring-black\/40{--tw-ring-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.ring-white\/70{--tw-ring-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.ring-white\/70{--tw-ring-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media(hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-foreground:is(:where(.group):hover *){color:hsl(var(--foreground))}.group-hover\:text-primary:is(:where(.group):hover *){color:hsl(var(--primary))}}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.first\:mt-0:first-child{margin-top:0}.first\:rounded-l-sm:first-child{border-top-left-radius:calc(var(--radius) - 4px);border-bottom-left-radius:calc(var(--radius) - 4px)}@media(hover:hover){.hover\:border-amber-500\/50:hover{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-500\/50:hover{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.hover\:border-border:hover,.hover\:border-border\/60:hover{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/60:hover{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.hover\:border-emerald-500\/40:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/40:hover{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/45:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/45:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-400:hover{background-color:var(--color-amber-400)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-background\/40:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/40:hover{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.hover\:bg-background\/60:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.hover\:bg-background\/80:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/80:hover{background-color:color-mix(in oklab,hsl(var(--background)) 80%,transparent)}}.hover\:bg-card\/45:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/45:hover{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.hover\:bg-emerald-500\/15:hover{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/15:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-neutral-700:hover{background-color:var(--color-neutral-700)}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 90%,transparent)}}.hover\:bg-primary\/95:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/95:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 95%,transparent)}}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:bg-red-500\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/15:hover{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.hover\:bg-sky-500\/20:hover{background-color:#00a5ef33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-500\/20:hover{background-color:color-mix(in oklab,var(--color-sky-500) 20%,transparent)}}.hover\:bg-violet-500\/20:hover{background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-violet-500\/20:hover{background-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-foreground:hover,.hover\:text-foreground\/80:hover{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:text-foreground\/80:hover{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.hover\:text-primary:hover,.hover\:text-primary\/80:hover{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-violet-200:hover{color:var(--color-violet-200)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:border-primary:focus,.focus\:border-primary\/50:focus{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/50:focus{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.focus\:border-red-400\/50:focus{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.focus\:border-red-400\/50:focus{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.focus\:border-sky-400\/50:focus{border-color:#00bcfe80}@supports (color:color-mix(in lab,red,red)){.focus\:border-sky-400\/50:focus{border-color:color-mix(in oklab,var(--color-sky-400) 50%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary\/50:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.focus\:ring-violet-500\/50:focus{--tw-ring-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.focus\:ring-violet-500\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-violet-500) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:w-36{width:calc(var(--spacing) * 36)}.sm\:w-\[640px\]{width:640px}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[170px_1fr\]{grid-template-columns:170px 1fr}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:w-40{width:calc(var(--spacing) * 40)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.lg\:flex-row{flex-direction:row}.lg\:items-stretch{align-items:stretch}}}:root{--background:224 30% 6%;--foreground:210 20% 92%;--card:224 25% 10%;--card-foreground:210 20% 94%;--popover:224 28% 9%;--popover-foreground:210 20% 94%;--primary:172 72% 50%;--primary-foreground:224 47% 8%;--muted:220 16% 14%;--muted-foreground:215 14% 64%;--accent:220 16% 16%;--accent-foreground:210 20% 94%;--border:222 18% 23%;--input:222 18% 23%;--ring:172 72% 50%;--radius:.75rem;color-scheme:dark}html,body,#root{height:100%;overflow:hidden}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}*{border-color:hsl(var(--border) / .85);outline-color:hsl(var(--primary) / .5)}:focus-visible{outline:2px solid hsl(var(--primary) / .7);outline-offset:2px}input:focus,textarea:focus,select:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 2px hsl(var(--primary) / .15);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--primary) / .25);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary) / .5)}.mc-card{border:1px solid hsl(var(--border) / .95);background-color:hsl(var(--card) / .85);border-radius:1rem;transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 10px 30px -15px #00000073,inset 0 1px #ffffff0d}.mc-card:before{content:"";background:linear-gradient(90deg,hsl(var(--primary)),#6366f1,#a855f7);opacity:.75;height:3.5px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.mc-card:hover{background-color:hsl(var(--card) / .92);border-color:hsl(var(--primary) / .35);box-shadow:0 20px 40px -20px #000000a6,0 0 18px 2px hsl(var(--primary) / .05);transform:translateY(-3px)}.mc-card:hover:before{opacity:1}.mc-card-sm{border:1px solid hsl(var(--border) / .9);background-color:hsl(var(--card) / .88);border-radius:.75rem;transition:background-color .2s,border-color .2s}.mc-card-sm:hover{background-color:hsl(var(--card) / .95);border-color:hsl(var(--primary) / .3)}.nav-active{background:linear-gradient(90deg,hsl(var(--primary) / .18),#6366f11f);color:hsl(var(--primary));border-left:3.5px solid hsl(var(--primary));border-radius:0 var(--radius) var(--radius) 0;padding-left:calc(.75rem - 3.5px);box-shadow:inset 0 1px #ffffff05}.nav-active-collapsed{background:hsl(var(--primary) / .18);color:hsl(var(--primary));box-shadow:0 0 12px 1px hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3)}@keyframes flow-cyan{0%{stroke-dasharray:6 3;stroke-dashoffset:18px}to{stroke-dasharray:6 3;stroke-dashoffset:0}}.animate-flow-cyan{animation:1.2s linear infinite flow-cyan}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(min-width:1440px){html{font-size:16.5px}}@media(min-width:1920px){html{font-size:17.5px}}@media(min-width:2560px){html{font-size:19px}}@media(min-width:3440px){html{font-size:20px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}} diff --git a/frontend/dist/assets/index-CUuKs_1x.js b/frontend/dist/assets/index-CUuKs_1x.js deleted file mode 100644 index 4573c31..0000000 --- a/frontend/dist/assets/index-CUuKs_1x.js +++ /dev/null @@ -1,435 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelsView-vX0ckGpG.js","assets/code-xml-DlqRSqmr.js","assets/rotate-ccw-BtnOKhJQ.js","assets/zap-iWjc7Axa.js","assets/chevron-down-MK8qZkE9.js","assets/layers-CjyCNjIs.js","assets/ConnectView-nzWBlbXD.js","assets/folder-open-CbSQGCoL.js","assets/GuideView-D3weMCzU.js","assets/AuftragsbuchView-C2dG-lAH.js","assets/SectionLabel-SQgndpwc.js","assets/IdeenView-BpB3-RwB.js","assets/ChronikView-BB9XGeGn.js","assets/WissenView-DgtrXx57.js"])))=>i.map(i=>d[i]); -var KI=Object.defineProperty;var b1=e=>{throw TypeError(e)};var VI=(e,t,r)=>t in e?KI(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var xs=(e,t,r)=>VI(e,typeof t!="symbol"?t+"":t,r),mm=(e,t,r)=>t.has(e)||b1("Cannot "+r);var $=(e,t,r)=>(mm(e,t,"read from private field"),r?r.call(e):t.get(e)),Ce=(e,t,r)=>t.has(e)?b1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),pe=(e,t,r,n)=>(mm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Le=(e,t,r)=>(mm(e,t,"access private method"),r);var Hc=(e,t,r,n)=>({set _(i){pe(e,t,i,r)},get _(){return $(e,t,n)}});function qI(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();function Ty(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vm={exports:{}},bs={},ym={exports:{}},$e={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var w1;function GI(){if(w1)return $e;w1=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.iterator;function v(R){return R===null||typeof R!="object"?null:(R=m&&R[m]||R["@@iterator"],typeof R=="function"?R:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,S={};function E(R,M,J){this.props=R,this.context=M,this.refs=S,this.updater=J||x}E.prototype.isReactComponent={},E.prototype.setState=function(R,M){if(typeof R!="object"&&typeof R!="function"&&R!=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,R,M,"setState")},E.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function P(){}P.prototype=E.prototype;function O(R,M,J){this.props=R,this.context=M,this.refs=S,this.updater=J||x}var j=O.prototype=new P;j.constructor=O,k(j,E.prototype),j.isPureReactComponent=!0;var _=Array.isArray,N=Object.prototype.hasOwnProperty,C={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function F(R,M,J){var se,te={},ce=null,ye=null;if(M!=null)for(se in M.ref!==void 0&&(ye=M.ref),M.key!==void 0&&(ce=""+M.key),M)N.call(M,se)&&!D.hasOwnProperty(se)&&(te[se]=M[se]);var _e=arguments.length-2;if(_e===1)te.children=J;else if(1<_e){for(var Z=Array(_e),we=0;we<_e;we++)Z[we]=arguments[we+2];te.children=Z}if(R&&R.defaultProps)for(se in _e=R.defaultProps,_e)te[se]===void 0&&(te[se]=_e[se]);return{$$typeof:e,type:R,key:ce,ref:ye,props:te,_owner:C.current}}function z(R,M){return{$$typeof:e,type:R.type,key:M,ref:R.ref,props:R.props,_owner:R._owner}}function q(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function X(R){var M={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(J){return M[J]})}var B=/\/+/g;function ue(R,M){return typeof R=="object"&&R!==null&&R.key!=null?X(""+R.key):M.toString(36)}function Y(R,M,J,se,te){var ce=typeof R;(ce==="undefined"||ce==="boolean")&&(R=null);var ye=!1;if(R===null)ye=!0;else switch(ce){case"string":case"number":ye=!0;break;case"object":switch(R.$$typeof){case e:case t:ye=!0}}if(ye)return ye=R,te=te(ye),R=se===""?"."+ue(ye,0):se,_(te)?(J="",R!=null&&(J=R.replace(B,"$&/")+"/"),Y(te,M,J,"",function(we){return we})):te!=null&&(q(te)&&(te=z(te,J+(!te.key||ye&&ye.key===te.key?"":(""+te.key).replace(B,"$&/")+"/")+R)),M.push(te)),1;if(ye=0,se=se===""?".":se+":",_(R))for(var _e=0;_e>>1,M=K[R];if(0>>1;Ri(te,Q))cei(ye,te)?(K[R]=ye,K[ce]=Q,R=ce):(K[R]=te,K[se]=Q,R=se);else if(cei(ye,Q))K[R]=ye,K[ce]=Q,R=ce;else break e}}return ie}function i(K,ie){var Q=K.sortIndex-ie.sortIndex;return Q!==0?Q:K.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,u=s.now();e.unstable_now=function(){return s.now()-u}}var d=[],f=[],h=1,m=null,v=3,x=!1,k=!1,S=!1,E=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function j(K){for(var ie=r(f);ie!==null;){if(ie.callback===null)n(f);else if(ie.startTime<=K)n(f),ie.sortIndex=ie.expirationTime,t(d,ie);else break;ie=r(f)}}function _(K){if(S=!1,j(K),!k)if(r(d)!==null)k=!0,fe(N);else{var ie=r(f);ie!==null&&de(_,ie.startTime-K)}}function N(K,ie){k=!1,S&&(S=!1,P(F),F=-1),x=!0;var Q=v;try{for(j(ie),m=r(d);m!==null&&(!(m.expirationTime>ie)||K&&!X());){var R=m.callback;if(typeof R=="function"){m.callback=null,v=m.priorityLevel;var M=R(m.expirationTime<=ie);ie=e.unstable_now(),typeof M=="function"?m.callback=M:m===r(d)&&n(d),j(ie)}else n(d);m=r(d)}if(m!==null)var J=!0;else{var se=r(f);se!==null&&de(_,se.startTime-ie),J=!1}return J}finally{m=null,v=Q,x=!1}}var C=!1,D=null,F=-1,z=5,q=-1;function X(){return!(e.unstable_now()-qK||125R?(K.sortIndex=Q,t(f,K),r(d)===null&&K===r(f)&&(S?(P(F),F=-1):S=!0,de(_,Q-R))):(K.sortIndex=M,t(d,K),k||x||(k=!0,fe(N))),K},e.unstable_shouldYield=X,e.unstable_wrapCallback=function(K){var ie=v;return function(){var Q=v;v=ie;try{return K.apply(this,arguments)}finally{v=Q}}}})(bm)),bm}var A1;function ZI(){return A1||(A1=1,xm.exports=XI()),xm.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var O1;function JI(){if(O1)return fr;O1=1;var e=wl(),t=ZI();function r(a){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,f=/^[: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]*$/,h={},m={};function v(a){return d.call(m,a)?!0:d.call(h,a)?!1:f.test(a)?m[a]=!0:(h[a]=!0,!1)}function x(a,l,c,p){if(c!==null&&c.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return p?!1:c!==null?!c.acceptsBooleans:(a=a.toLowerCase().slice(0,5),a!=="data-"&&a!=="aria-");default:return!1}}function k(a,l,c,p){if(l===null||typeof l>"u"||x(a,l,c,p))return!0;if(p)return!1;if(c!==null)switch(c.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function S(a,l,c,p,y,b,A){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=p,this.attributeNamespace=y,this.mustUseProperty=c,this.propertyName=a,this.type=l,this.sanitizeURL=b,this.removeEmptyString=A}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){E[a]=new S(a,0,!1,a,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var l=a[0];E[l]=new S(l,1,!1,a[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){E[a]=new S(a,2,!1,a.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){E[a]=new S(a,2,!1,a,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(a){E[a]=new S(a,3,!1,a.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(a){E[a]=new S(a,3,!0,a,null,!1,!1)}),["capture","download"].forEach(function(a){E[a]=new S(a,4,!1,a,null,!1,!1)}),["cols","rows","size","span"].forEach(function(a){E[a]=new S(a,6,!1,a,null,!1,!1)}),["rowSpan","start"].forEach(function(a){E[a]=new S(a,5,!1,a.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function O(a){return a[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(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!1,!1)}),E.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!0,!0)});function j(a,l,c,p){var y=E.hasOwnProperty(l)?E[l]:null;(y!==null?y.type!==0:p||!(2I||y[A]!==b[I]){var T=` -`+y[A].replace(" at new "," at ");return a.displayName&&T.includes("")&&(T=T.replace("",a.displayName)),T}while(1<=A&&0<=I);break}}}finally{J=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?M(a):""}function te(a){switch(a.tag){case 5:return M(a.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return a=se(a.type,!1),a;case 11:return a=se(a.type.render,!1),a;case 1:return a=se(a.type,!0),a;default:return""}}function ce(a){if(a==null)return null;if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case D:return"Fragment";case C:return"Portal";case z:return"Profiler";case F:return"StrictMode";case ue:return"Suspense";case Y:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case X:return(a.displayName||"Context")+".Consumer";case q:return(a._context.displayName||"Context")+".Provider";case B:var l=a.render;return a=a.displayName,a||(a=l.displayName||l.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case le:return l=a.displayName||null,l!==null?l:ce(a.type)||"Memo";case fe:l=a._payload,a=a._init;try{return ce(a(l))}catch{}}return null}function ye(a){var l=a.type;switch(a.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=l.render,a=a.displayName||a.name||"",l.displayName||(a!==""?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ce(l);case 8:return l===F?"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 l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function _e(a){switch(typeof a){case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function Z(a){var l=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function we(a){var l=Z(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,l),p=""+a[l];if(!a.hasOwnProperty(l)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var y=c.get,b=c.set;return Object.defineProperty(a,l,{configurable:!0,get:function(){return y.call(this)},set:function(A){p=""+A,b.call(this,A)}}),Object.defineProperty(a,l,{enumerable:c.enumerable}),{getValue:function(){return p},setValue:function(A){p=""+A},stopTracking:function(){a._valueTracker=null,delete a[l]}}}}function Pe(a){a._valueTracker||(a._valueTracker=we(a))}function ne(a){if(!a)return!1;var l=a._valueTracker;if(!l)return!0;var c=l.getValue(),p="";return a&&(p=Z(a)?a.checked?"true":"false":a.value),a=p,a!==c?(l.setValue(a),!0):!1}function lt(a){if(a=a||(typeof document<"u"?document:void 0),typeof a>"u")return null;try{return a.activeElement||a.body}catch{return a.body}}function Re(a,l){var c=l.checked;return Q({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??a._wrapperState.initialChecked})}function Ee(a,l){var c=l.defaultValue==null?"":l.defaultValue,p=l.checked!=null?l.checked:l.defaultChecked;c=_e(l.value!=null?l.value:c),a._wrapperState={initialChecked:p,initialValue:c,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function vt(a,l){l=l.checked,l!=null&&j(a,"checked",l,!1)}function or(a,l){vt(a,l);var c=_e(l.value),p=l.type;if(c!=null)p==="number"?(c===0&&a.value===""||a.value!=c)&&(a.value=""+c):a.value!==""+c&&(a.value=""+c);else if(p==="submit"||p==="reset"){a.removeAttribute("value");return}l.hasOwnProperty("value")?G(a,l.type,c):l.hasOwnProperty("defaultValue")&&G(a,l.type,_e(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(a.defaultChecked=!!l.defaultChecked)}function fi(a,l,c){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var p=l.type;if(!(p!=="submit"&&p!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+a._wrapperState.initialValue,c||l===a.value||(a.value=l),a.defaultValue=l}c=a.name,c!==""&&(a.name=""),a.defaultChecked=!!a._wrapperState.initialChecked,c!==""&&(a.name=c)}function G(a,l,c){(l!=="number"||lt(a.ownerDocument)!==a)&&(c==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c))}var Ie=Array.isArray;function Xe(a,l,c,p){if(a=a.options,l){l={};for(var y=0;y"+l.valueOf().toString()+"",l=Ru.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}});function Dl(a,l){if(l){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=l;return}}a.textContent=l}var Rl={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},Yj=["Webkit","ms","Moz","O"];Object.keys(Rl).forEach(function(a){Yj.forEach(function(l){l=l+a.charAt(0).toUpperCase()+a.substring(1),Rl[l]=Rl[a]})});function D0(a,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Rl.hasOwnProperty(a)&&Rl[a]?(""+l).trim():l+"px"}function R0(a,l){a=a.style;for(var c in l)if(l.hasOwnProperty(c)){var p=c.indexOf("--")===0,y=D0(c,l[c],p);c==="float"&&(c="cssFloat"),p?a.setProperty(c,y):a[c]=y}}var Qj=Q({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 Oh(a,l){if(l){if(Qj[a]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(r(137,a));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(r(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(r(61))}if(l.style!=null&&typeof l.style!="object")throw Error(r(62))}}function Ch(a,l){if(a.indexOf("-")===-1)return typeof l.is=="string";switch(a){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 _h=null;function jh(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var Nh=null,ro=null,no=null;function $0(a){if(a=is(a)){if(typeof Nh!="function")throw Error(r(280));var l=a.stateNode;l&&(l=ac(l),Nh(a.stateNode,a.type,l))}}function L0(a){ro?no?no.push(a):no=[a]:ro=a}function z0(){if(ro){var a=ro,l=no;if(no=ro=null,$0(a),l)for(a=0;a>>=0,a===0?32:31-(lN(a)/sN|0)|0}var Bu=64,Uu=4194304;function Fl(a){switch(a&-a){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 a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return a}}function Wu(a,l){var c=a.pendingLanes;if(c===0)return 0;var p=0,y=a.suspendedLanes,b=a.pingedLanes,A=c&268435455;if(A!==0){var I=A&~y;I!==0?p=Fl(I):(b&=A,b!==0&&(p=Fl(b)))}else A=c&~y,A!==0?p=Fl(A):b!==0&&(p=Fl(b));if(p===0)return 0;if(l!==0&&l!==p&&(l&y)===0&&(y=p&-p,b=l&-l,y>=b||y===16&&(b&4194240)!==0))return l;if((p&4)!==0&&(p|=c&16),l=a.entangledLanes,l!==0)for(a=a.entanglements,l&=p;0c;c++)l.push(a);return l}function Bl(a,l,c){a.pendingLanes|=l,l!==536870912&&(a.suspendedLanes=0,a.pingedLanes=0),a=a.eventTimes,l=31-qr(l),a[l]=c}function fN(a,l){var c=a.pendingLanes&~l;a.pendingLanes=l,a.suspendedLanes=0,a.pingedLanes=0,a.expiredLanes&=l,a.mutableReadLanes&=l,a.entangledLanes&=l,l=a.entanglements;var p=a.eventTimes;for(a=a.expirationTimes;0=Yl),hx=" ",px=!1;function mx(a,l){switch(a){case"keyup":return FN.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vx(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var oo=!1;function UN(a,l){switch(a){case"compositionend":return vx(l);case"keypress":return l.which!==32?null:(px=!0,hx);case"textInput":return a=l.data,a===hx&&px?null:a;default:return null}}function WN(a,l){if(oo)return a==="compositionend"||!Yh&&mx(a,l)?(a=lx(),Gu=Wh=yi=null,oo=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:c,offset:l-a};a=p}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=kx(c)}}function Px(a,l){return a&&l?a===l?!0:a&&a.nodeType===3?!1:l&&l.nodeType===3?Px(a,l.parentNode):"contains"in a?a.contains(l):a.compareDocumentPosition?!!(a.compareDocumentPosition(l)&16):!1:!1}function Ax(){for(var a=window,l=lt();l instanceof a.HTMLIFrameElement;){try{var c=typeof l.contentWindow.location.href=="string"}catch{c=!1}if(c)a=l.contentWindow;else break;l=lt(a.document)}return l}function Zh(a){var l=a&&a.nodeName&&a.nodeName.toLowerCase();return l&&(l==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||l==="textarea"||a.contentEditable==="true")}function ZN(a){var l=Ax(),c=a.focusedElem,p=a.selectionRange;if(l!==c&&c&&c.ownerDocument&&Px(c.ownerDocument.documentElement,c)){if(p!==null&&Zh(c)){if(l=p.start,a=p.end,a===void 0&&(a=l),"selectionStart"in c)c.selectionStart=l,c.selectionEnd=Math.min(a,c.value.length);else if(a=(l=c.ownerDocument||document)&&l.defaultView||window,a.getSelection){a=a.getSelection();var y=c.textContent.length,b=Math.min(p.start,y);p=p.end===void 0?b:Math.min(p.end,y),!a.extend&&b>p&&(y=p,p=b,b=y),y=Ex(c,b);var A=Ex(c,p);y&&A&&(a.rangeCount!==1||a.anchorNode!==y.node||a.anchorOffset!==y.offset||a.focusNode!==A.node||a.focusOffset!==A.offset)&&(l=l.createRange(),l.setStart(y.node,y.offset),a.removeAllRanges(),b>p?(a.addRange(l),a.extend(A.node,A.offset)):(l.setEnd(A.node,A.offset),a.addRange(l)))}}for(l=[],a=c;a=a.parentNode;)a.nodeType===1&&l.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c=document.documentMode,lo=null,Jh=null,Jl=null,ep=!1;function Ox(a,l,c){var p=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;ep||lo==null||lo!==lt(p)||(p=lo,"selectionStart"in p&&Zh(p)?p={start:p.selectionStart,end:p.selectionEnd}:(p=(p.ownerDocument&&p.ownerDocument.defaultView||window).getSelection(),p={anchorNode:p.anchorNode,anchorOffset:p.anchorOffset,focusNode:p.focusNode,focusOffset:p.focusOffset}),Jl&&Zl(Jl,p)||(Jl=p,p=rc(Jh,"onSelect"),0ho||(a.current=fp[ho],fp[ho]=null,ho--)}function Ye(a,l){ho++,fp[ho]=a.current,a.current=l}var wi={},Kt=bi(wi),lr=bi(!1),aa=wi;function po(a,l){var c=a.type.contextTypes;if(!c)return wi;var p=a.stateNode;if(p&&p.__reactInternalMemoizedUnmaskedChildContext===l)return p.__reactInternalMemoizedMaskedChildContext;var y={},b;for(b in c)y[b]=l[b];return p&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=l,a.__reactInternalMemoizedMaskedChildContext=y),y}function sr(a){return a=a.childContextTypes,a!=null}function oc(){Je(lr),Je(Kt)}function Ux(a,l,c){if(Kt.current!==wi)throw Error(r(168));Ye(Kt,l),Ye(lr,c)}function Wx(a,l,c){var p=a.stateNode;if(l=l.childContextTypes,typeof p.getChildContext!="function")return c;p=p.getChildContext();for(var y in p)if(!(y in l))throw Error(r(108,ye(a)||"Unknown",y));return Q({},c,p)}function lc(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||wi,aa=Kt.current,Ye(Kt,a),Ye(lr,lr.current),!0}function Hx(a,l,c){var p=a.stateNode;if(!p)throw Error(r(169));c?(a=Wx(a,l,aa),p.__reactInternalMemoizedMergedChildContext=a,Je(lr),Je(Kt),Ye(Kt,a)):Je(lr),Ye(lr,c)}var Dn=null,sc=!1,hp=!1;function Kx(a){Dn===null?Dn=[a]:Dn.push(a)}function cI(a){sc=!0,Kx(a)}function Si(){if(!hp&&Dn!==null){hp=!0;var a=0,l=qe;try{var c=Dn;for(qe=1;a>=A,y-=A,Rn=1<<32-qr(l)+y|c<Ne?(Ct=Oe,Oe=null):Ct=Oe.sibling;var He=ee(U,Oe,W[Ne],oe);if(He===null){Oe===null&&(Oe=Ct);break}a&&Oe&&He.alternate===null&&l(U,Oe),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He,Oe=Ct}if(Ne===W.length)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;NeNe?(Ct=Oe,Oe=null):Ct=Oe.sibling;var Ni=ee(U,Oe,He.value,oe);if(Ni===null){Oe===null&&(Oe=Ct);break}a&&Oe&&Ni.alternate===null&&l(U,Oe),L=b(Ni,L,Ne),Ae===null?Se=Ni:Ae.sibling=Ni,Ae=Ni,Oe=Ct}if(He.done)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;!He.done;Ne++,He=W.next())He=ae(U,He.value,oe),He!==null&&(L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return nt&&la(U,Ne),Se}for(Oe=p(U,Oe);!He.done;Ne++,He=W.next())He=he(Oe,U,Ne,He.value,oe),He!==null&&(a&&He.alternate!==null&&Oe.delete(He.key===null?Ne:He.key),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return a&&Oe.forEach(function(HI){return l(U,HI)}),nt&&la(U,Ne),Se}function mt(U,L,W,oe){if(typeof W=="object"&&W!==null&&W.type===D&&W.key===null&&(W=W.props.children),typeof W=="object"&&W!==null){switch(W.$$typeof){case N:e:{for(var Se=W.key,Ae=L;Ae!==null;){if(Ae.key===Se){if(Se=W.type,Se===D){if(Ae.tag===7){c(U,Ae.sibling),L=y(Ae,W.props.children),L.return=U,U=L;break e}}else if(Ae.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===fe&&Xx(Se)===Ae.type){c(U,Ae.sibling),L=y(Ae,W.props),L.ref=as(U,Ae,W),L.return=U,U=L;break e}c(U,Ae);break}else l(U,Ae);Ae=Ae.sibling}W.type===D?(L=ma(W.props.children,U.mode,oe,W.key),L.return=U,U=L):(oe=Rc(W.type,W.key,W.props,null,U.mode,oe),oe.ref=as(U,L,W),oe.return=U,U=oe)}return A(U);case C:e:{for(Ae=W.key;L!==null;){if(L.key===Ae)if(L.tag===4&&L.stateNode.containerInfo===W.containerInfo&&L.stateNode.implementation===W.implementation){c(U,L.sibling),L=y(L,W.children||[]),L.return=U,U=L;break e}else{c(U,L);break}else l(U,L);L=L.sibling}L=cm(W,U.mode,oe),L.return=U,U=L}return A(U);case fe:return Ae=W._init,mt(U,L,Ae(W._payload),oe)}if(Ie(W))return ge(U,L,W,oe);if(ie(W))return xe(U,L,W,oe);fc(U,W)}return typeof W=="string"&&W!==""||typeof W=="number"?(W=""+W,L!==null&&L.tag===6?(c(U,L.sibling),L=y(L,W),L.return=U,U=L):(c(U,L),L=um(W,U.mode,oe),L.return=U,U=L),A(U)):c(U,L)}return mt}var go=Zx(!0),Jx=Zx(!1),hc=bi(null),pc=null,xo=null,xp=null;function bp(){xp=xo=pc=null}function wp(a){var l=hc.current;Je(hc),a._currentValue=l}function Sp(a,l,c){for(;a!==null;){var p=a.alternate;if((a.childLanes&l)!==l?(a.childLanes|=l,p!==null&&(p.childLanes|=l)):p!==null&&(p.childLanes&l)!==l&&(p.childLanes|=l),a===c)break;a=a.return}}function bo(a,l){pc=a,xp=xo=null,a=a.dependencies,a!==null&&a.firstContext!==null&&((a.lanes&l)!==0&&(ur=!0),a.firstContext=null)}function Ir(a){var l=a._currentValue;if(xp!==a)if(a={context:a,memoizedValue:l,next:null},xo===null){if(pc===null)throw Error(r(308));xo=a,pc.dependencies={lanes:0,firstContext:a}}else xo=xo.next=a;return l}var sa=null;function kp(a){sa===null?sa=[a]:sa.push(a)}function eb(a,l,c,p){var y=l.interleaved;return y===null?(c.next=c,kp(l)):(c.next=y.next,y.next=c),l.interleaved=c,Ln(a,p)}function Ln(a,l){a.lanes|=l;var c=a.alternate;for(c!==null&&(c.lanes|=l),c=a,a=a.return;a!==null;)a.childLanes|=l,c=a.alternate,c!==null&&(c.childLanes|=l),c=a,a=a.return;return c.tag===3?c.stateNode:null}var ki=!1;function Ep(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function tb(a,l){a=a.updateQueue,l.updateQueue===a&&(l.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zn(a,l){return{eventTime:a,lane:l,tag:0,payload:null,callback:null,next:null}}function Ei(a,l,c){var p=a.updateQueue;if(p===null)return null;if(p=p.shared,(We&2)!==0){var y=p.pending;return y===null?l.next=l:(l.next=y.next,y.next=l),p.pending=l,Ln(a,c)}return y=p.interleaved,y===null?(l.next=l,kp(p)):(l.next=y.next,y.next=l),p.interleaved=l,Ln(a,c)}function mc(a,l,c){if(l=l.updateQueue,l!==null&&(l=l.shared,(c&4194240)!==0)){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}function rb(a,l){var c=a.updateQueue,p=a.alternate;if(p!==null&&(p=p.updateQueue,c===p)){var y=null,b=null;if(c=c.firstBaseUpdate,c!==null){do{var A={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};b===null?y=b=A:b=b.next=A,c=c.next}while(c!==null);b===null?y=b=l:b=b.next=l}else y=b=l;c={baseState:p.baseState,firstBaseUpdate:y,lastBaseUpdate:b,shared:p.shared,effects:p.effects},a.updateQueue=c;return}a=c.lastBaseUpdate,a===null?c.firstBaseUpdate=l:a.next=l,c.lastBaseUpdate=l}function vc(a,l,c,p){var y=a.updateQueue;ki=!1;var b=y.firstBaseUpdate,A=y.lastBaseUpdate,I=y.shared.pending;if(I!==null){y.shared.pending=null;var T=I,V=T.next;T.next=null,A===null?b=V:A.next=V,A=T;var re=a.alternate;re!==null&&(re=re.updateQueue,I=re.lastBaseUpdate,I!==A&&(I===null?re.firstBaseUpdate=V:I.next=V,re.lastBaseUpdate=T))}if(b!==null){var ae=y.baseState;A=0,re=V=T=null,I=b;do{var ee=I.lane,he=I.eventTime;if((p&ee)===ee){re!==null&&(re=re.next={eventTime:he,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var ge=a,xe=I;switch(ee=l,he=c,xe.tag){case 1:if(ge=xe.payload,typeof ge=="function"){ae=ge.call(he,ae,ee);break e}ae=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=xe.payload,ee=typeof ge=="function"?ge.call(he,ae,ee):ge,ee==null)break e;ae=Q({},ae,ee);break e;case 2:ki=!0}}I.callback!==null&&I.lane!==0&&(a.flags|=64,ee=y.effects,ee===null?y.effects=[I]:ee.push(I))}else he={eventTime:he,lane:ee,tag:I.tag,payload:I.payload,callback:I.callback,next:null},re===null?(V=re=he,T=ae):re=re.next=he,A|=ee;if(I=I.next,I===null){if(I=y.shared.pending,I===null)break;ee=I,I=ee.next,ee.next=null,y.lastBaseUpdate=ee,y.shared.pending=null}}while(!0);if(re===null&&(T=ae),y.baseState=T,y.firstBaseUpdate=V,y.lastBaseUpdate=re,l=y.shared.interleaved,l!==null){y=l;do A|=y.lane,y=y.next;while(y!==l)}else b===null&&(y.shared.lanes=0);da|=A,a.lanes=A,a.memoizedState=ae}}function nb(a,l,c){if(a=l.effects,l.effects=null,a!==null)for(l=0;lc?c:4,a(!0);var p=_p.transition;_p.transition={};try{a(!1),l()}finally{qe=c,_p.transition=p}}function Sb(){return Mr().memoizedState}function pI(a,l,c){var p=Ci(a);if(c={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null},kb(a))Eb(l,c);else if(c=eb(a,l,c,p),c!==null){var y=er();Jr(c,a,p,y),Pb(c,l,p)}}function mI(a,l,c){var p=Ci(a),y={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null};if(kb(a))Eb(l,y);else{var b=a.alternate;if(a.lanes===0&&(b===null||b.lanes===0)&&(b=l.lastRenderedReducer,b!==null))try{var A=l.lastRenderedState,I=b(A,c);if(y.hasEagerState=!0,y.eagerState=I,Gr(I,A)){var T=l.interleaved;T===null?(y.next=y,kp(l)):(y.next=T.next,T.next=y),l.interleaved=y;return}}catch{}finally{}c=eb(a,l,y,p),c!==null&&(y=er(),Jr(c,a,p,y),Pb(c,l,p))}}function kb(a){var l=a.alternate;return a===ut||l!==null&&l===ut}function Eb(a,l){us=xc=!0;var c=a.pending;c===null?l.next=l:(l.next=c.next,c.next=l),a.pending=l}function Pb(a,l,c){if((c&4194240)!==0){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}var Sc={readContext:Ir,useCallback:Vt,useContext:Vt,useEffect:Vt,useImperativeHandle:Vt,useInsertionEffect:Vt,useLayoutEffect:Vt,useMemo:Vt,useReducer:Vt,useRef:Vt,useState:Vt,useDebugValue:Vt,useDeferredValue:Vt,useTransition:Vt,useMutableSource:Vt,useSyncExternalStore:Vt,useId:Vt,unstable_isNewReconciler:!1},vI={readContext:Ir,useCallback:function(a,l){return hn().memoizedState=[a,l===void 0?null:l],a},useContext:Ir,useEffect:pb,useImperativeHandle:function(a,l,c){return c=c!=null?c.concat([a]):null,bc(4194308,4,yb.bind(null,l,a),c)},useLayoutEffect:function(a,l){return bc(4194308,4,a,l)},useInsertionEffect:function(a,l){return bc(4,2,a,l)},useMemo:function(a,l){var c=hn();return l=l===void 0?null:l,a=a(),c.memoizedState=[a,l],a},useReducer:function(a,l,c){var p=hn();return l=c!==void 0?c(l):l,p.memoizedState=p.baseState=l,a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:l},p.queue=a,a=a.dispatch=pI.bind(null,ut,a),[p.memoizedState,a]},useRef:function(a){var l=hn();return a={current:a},l.memoizedState=a},useState:fb,useDebugValue:Rp,useDeferredValue:function(a){return hn().memoizedState=a},useTransition:function(){var a=fb(!1),l=a[0];return a=hI.bind(null,a[1]),hn().memoizedState=a,[l,a]},useMutableSource:function(){},useSyncExternalStore:function(a,l,c){var p=ut,y=hn();if(nt){if(c===void 0)throw Error(r(407));c=c()}else{if(c=l(),Ot===null)throw Error(r(349));(ca&30)!==0||lb(p,l,c)}y.memoizedState=c;var b={value:c,getSnapshot:l};return y.queue=b,pb(ub.bind(null,p,b,a),[a]),p.flags|=2048,fs(9,sb.bind(null,p,b,c,l),void 0,null),c},useId:function(){var a=hn(),l=Ot.identifierPrefix;if(nt){var c=$n,p=Rn;c=(p&~(1<<32-qr(p)-1)).toString(32)+c,l=":"+l+"R"+c,c=cs++,0<\/script>",a=a.removeChild(a.firstChild)):typeof p.is=="string"?a=A.createElement(c,{is:p.is}):(a=A.createElement(c),c==="select"&&(A=a,p.multiple?A.multiple=!0:p.size&&(A.size=p.size))):a=A.createElementNS(a,c),a[dn]=l,a[ns]=p,Kb(a,l,!1,!1),l.stateNode=a;e:{switch(A=Ch(c,p),c){case"dialog":Ze("cancel",a),Ze("close",a),y=p;break;case"iframe":case"object":case"embed":Ze("load",a),y=p;break;case"video":case"audio":for(y=0;yPo&&(l.flags|=128,p=!0,hs(b,!1),l.lanes=4194304)}else{if(!p)if(a=yc(A),a!==null){if(l.flags|=128,p=!0,c=a.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),hs(b,!0),b.tail===null&&b.tailMode==="hidden"&&!A.alternate&&!nt)return qt(l),null}else 2*pt()-b.renderingStartTime>Po&&c!==1073741824&&(l.flags|=128,p=!0,hs(b,!1),l.lanes=4194304);b.isBackwards?(A.sibling=l.child,l.child=A):(c=b.last,c!==null?c.sibling=A:l.child=A,b.last=A)}return b.tail!==null?(l=b.tail,b.rendering=l,b.tail=l.sibling,b.renderingStartTime=pt(),l.sibling=null,c=st.current,Ye(st,p?c&1|2:c&1),l):(qt(l),null);case 22:case 23:return om(),p=l.memoizedState!==null,a!==null&&a.memoizedState!==null!==p&&(l.flags|=8192),p&&(l.mode&1)!==0?(Sr&1073741824)!==0&&(qt(l),l.subtreeFlags&6&&(l.flags|=8192)):qt(l),null;case 24:return null;case 25:return null}throw Error(r(156,l.tag))}function EI(a,l){switch(mp(l),l.tag){case 1:return sr(l.type)&&oc(),a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 3:return wo(),Je(lr),Je(Kt),Cp(),a=l.flags,(a&65536)!==0&&(a&128)===0?(l.flags=a&-65537|128,l):null;case 5:return Ap(l),null;case 13:if(Je(st),a=l.memoizedState,a!==null&&a.dehydrated!==null){if(l.alternate===null)throw Error(r(340));yo()}return a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 19:return Je(st),null;case 4:return wo(),null;case 10:return wp(l.type._context),null;case 22:case 23:return om(),null;case 24:return null;default:return null}}var Ac=!1,Gt=!1,PI=typeof WeakSet=="function"?WeakSet:Set,me=null;function ko(a,l){var c=a.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(p){ct(a,l,p)}else c.current=null}function Gp(a,l,c){try{c()}catch(p){ct(a,l,p)}}var Gb=!1;function AI(a,l){if(op=Vu,a=Ax(),Zh(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else e:{c=(c=a.ownerDocument)&&c.defaultView||window;var p=c.getSelection&&c.getSelection();if(p&&p.rangeCount!==0){c=p.anchorNode;var y=p.anchorOffset,b=p.focusNode;p=p.focusOffset;try{c.nodeType,b.nodeType}catch{c=null;break e}var A=0,I=-1,T=-1,V=0,re=0,ae=a,ee=null;t:for(;;){for(var he;ae!==c||y!==0&&ae.nodeType!==3||(I=A+y),ae!==b||p!==0&&ae.nodeType!==3||(T=A+p),ae.nodeType===3&&(A+=ae.nodeValue.length),(he=ae.firstChild)!==null;)ee=ae,ae=he;for(;;){if(ae===a)break t;if(ee===c&&++V===y&&(I=A),ee===b&&++re===p&&(T=A),(he=ae.nextSibling)!==null)break;ae=ee,ee=ae.parentNode}ae=he}c=I===-1||T===-1?null:{start:I,end:T}}else c=null}c=c||{start:0,end:0}}else c=null;for(lp={focusedElem:a,selectionRange:c},Vu=!1,me=l;me!==null;)if(l=me,a=l.child,(l.subtreeFlags&1028)!==0&&a!==null)a.return=l,me=a;else for(;me!==null;){l=me;try{var ge=l.alternate;if((l.flags&1024)!==0)switch(l.tag){case 0:case 11:case 15:break;case 1:if(ge!==null){var xe=ge.memoizedProps,mt=ge.memoizedState,U=l.stateNode,L=U.getSnapshotBeforeUpdate(l.elementType===l.type?xe:Qr(l.type,xe),mt);U.__reactInternalSnapshotBeforeUpdate=L}break;case 3:var W=l.stateNode.containerInfo;W.nodeType===1?W.textContent="":W.nodeType===9&&W.documentElement&&W.removeChild(W.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(oe){ct(l,l.return,oe)}if(a=l.sibling,a!==null){a.return=l.return,me=a;break}me=l.return}return ge=Gb,Gb=!1,ge}function ps(a,l,c){var p=l.updateQueue;if(p=p!==null?p.lastEffect:null,p!==null){var y=p=p.next;do{if((y.tag&a)===a){var b=y.destroy;y.destroy=void 0,b!==void 0&&Gp(l,c,b)}y=y.next}while(y!==p)}}function Oc(a,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&a)===a){var p=c.create;c.destroy=p()}c=c.next}while(c!==l)}}function Yp(a){var l=a.ref;if(l!==null){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}typeof l=="function"?l(a):l.current=a}}function Yb(a){var l=a.alternate;l!==null&&(a.alternate=null,Yb(l)),a.child=null,a.deletions=null,a.sibling=null,a.tag===5&&(l=a.stateNode,l!==null&&(delete l[dn],delete l[ns],delete l[dp],delete l[sI],delete l[uI])),a.stateNode=null,a.return=null,a.dependencies=null,a.memoizedProps=null,a.memoizedState=null,a.pendingProps=null,a.stateNode=null,a.updateQueue=null}function Qb(a){return a.tag===5||a.tag===3||a.tag===4}function Xb(a){e:for(;;){for(;a.sibling===null;){if(a.return===null||Qb(a.return))return null;a=a.return}for(a.sibling.return=a.return,a=a.sibling;a.tag!==5&&a.tag!==6&&a.tag!==18;){if(a.flags&2||a.child===null||a.tag===4)continue e;a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}function Qp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.nodeType===8?c.parentNode.insertBefore(a,l):c.insertBefore(a,l):(c.nodeType===8?(l=c.parentNode,l.insertBefore(a,c)):(l=c,l.appendChild(a)),c=c._reactRootContainer,c!=null||l.onclick!==null||(l.onclick=ic));else if(p!==4&&(a=a.child,a!==null))for(Qp(a,l,c),a=a.sibling;a!==null;)Qp(a,l,c),a=a.sibling}function Xp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.insertBefore(a,l):c.appendChild(a);else if(p!==4&&(a=a.child,a!==null))for(Xp(a,l,c),a=a.sibling;a!==null;)Xp(a,l,c),a=a.sibling}var Dt=null,Xr=!1;function Pi(a,l,c){for(c=c.child;c!==null;)Zb(a,l,c),c=c.sibling}function Zb(a,l,c){if(cn&&typeof cn.onCommitFiberUnmount=="function")try{cn.onCommitFiberUnmount(Fu,c)}catch{}switch(c.tag){case 5:Gt||ko(c,l);case 6:var p=Dt,y=Xr;Dt=null,Pi(a,l,c),Dt=p,Xr=y,Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?a.parentNode.removeChild(c):a.removeChild(c)):Dt.removeChild(c.stateNode));break;case 18:Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?cp(a.parentNode,c):a.nodeType===1&&cp(a,c),Vl(a)):cp(Dt,c.stateNode));break;case 4:p=Dt,y=Xr,Dt=c.stateNode.containerInfo,Xr=!0,Pi(a,l,c),Dt=p,Xr=y;break;case 0:case 11:case 14:case 15:if(!Gt&&(p=c.updateQueue,p!==null&&(p=p.lastEffect,p!==null))){y=p=p.next;do{var b=y,A=b.destroy;b=b.tag,A!==void 0&&((b&2)!==0||(b&4)!==0)&&Gp(c,l,A),y=y.next}while(y!==p)}Pi(a,l,c);break;case 1:if(!Gt&&(ko(c,l),p=c.stateNode,typeof p.componentWillUnmount=="function"))try{p.props=c.memoizedProps,p.state=c.memoizedState,p.componentWillUnmount()}catch(I){ct(c,l,I)}Pi(a,l,c);break;case 21:Pi(a,l,c);break;case 22:c.mode&1?(Gt=(p=Gt)||c.memoizedState!==null,Pi(a,l,c),Gt=p):Pi(a,l,c);break;default:Pi(a,l,c)}}function Jb(a){var l=a.updateQueue;if(l!==null){a.updateQueue=null;var c=a.stateNode;c===null&&(c=a.stateNode=new PI),l.forEach(function(p){var y=DI.bind(null,a,p);c.has(p)||(c.add(p),p.then(y,y))})}}function Zr(a,l){var c=l.deletions;if(c!==null)for(var p=0;py&&(y=A),p&=~b}if(p=y,p=pt()-p,p=(120>p?120:480>p?480:1080>p?1080:1920>p?1920:3e3>p?3e3:4320>p?4320:1960*CI(p/1960))-p,10a?16:a,Oi===null)var p=!1;else{if(a=Oi,Oi=null,Ic=0,(We&6)!==0)throw Error(r(331));var y=We;for(We|=4,me=a.current;me!==null;){var b=me,A=b.child;if((me.flags&16)!==0){var I=b.deletions;if(I!==null){for(var T=0;Tpt()-em?ha(a,0):Jp|=c),dr(a,l)}function f1(a,l){l===0&&((a.mode&1)===0?l=1:(l=Uu,Uu<<=1,(Uu&130023424)===0&&(Uu=4194304)));var c=er();a=Ln(a,l),a!==null&&(Bl(a,l,c),dr(a,c))}function TI(a){var l=a.memoizedState,c=0;l!==null&&(c=l.retryLane),f1(a,c)}function DI(a,l){var c=0;switch(a.tag){case 13:var p=a.stateNode,y=a.memoizedState;y!==null&&(c=y.retryLane);break;case 19:p=a.stateNode;break;default:throw Error(r(314))}p!==null&&p.delete(l),f1(a,c)}var h1;h1=function(a,l,c){if(a!==null)if(a.memoizedProps!==l.pendingProps||lr.current)ur=!0;else{if((a.lanes&c)===0&&(l.flags&128)===0)return ur=!1,SI(a,l,c);ur=(a.flags&131072)!==0}else ur=!1,nt&&(l.flags&1048576)!==0&&Vx(l,cc,l.index);switch(l.lanes=0,l.tag){case 2:var p=l.type;Pc(a,l),a=l.pendingProps;var y=po(l,Kt.current);bo(l,c),y=Np(null,l,p,a,y,c);var b=Ip();return l.flags|=1,typeof y=="object"&&y!==null&&typeof y.render=="function"&&y.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,sr(p)?(b=!0,lc(l)):b=!1,l.memoizedState=y.state!==null&&y.state!==void 0?y.state:null,Ep(l),y.updater=kc,l.stateNode=y,y._reactInternals=l,Lp(l,p,a,c),l=Up(null,l,p,!0,b,c)):(l.tag=0,nt&&b&&pp(l),Jt(null,l,y,c),l=l.child),l;case 16:p=l.elementType;e:{switch(Pc(a,l),a=l.pendingProps,y=p._init,p=y(p._payload),l.type=p,y=l.tag=$I(p),a=Qr(p,a),y){case 0:l=Bp(null,l,p,a,c);break e;case 1:l=zb(null,l,p,a,c);break e;case 11:l=Tb(null,l,p,a,c);break e;case 14:l=Db(null,l,p,Qr(p.type,a),c);break e}throw Error(r(306,p,""))}return l;case 0:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Bp(a,l,p,y,c);case 1:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),zb(a,l,p,y,c);case 3:e:{if(Fb(l),a===null)throw Error(r(387));p=l.pendingProps,b=l.memoizedState,y=b.element,tb(a,l),vc(l,p,null,c);var A=l.memoizedState;if(p=A.element,b.isDehydrated)if(b={element:p,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},l.updateQueue.baseState=b,l.memoizedState=b,l.flags&256){y=So(Error(r(423)),l),l=Bb(a,l,p,c,y);break e}else if(p!==y){y=So(Error(r(424)),l),l=Bb(a,l,p,c,y);break e}else for(wr=xi(l.stateNode.containerInfo.firstChild),br=l,nt=!0,Yr=null,c=Jx(l,null,p,c),l.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(yo(),p===y){l=Fn(a,l,c);break e}Jt(a,l,p,c)}l=l.child}return l;case 5:return ib(l),a===null&&yp(l),p=l.type,y=l.pendingProps,b=a!==null?a.memoizedProps:null,A=y.children,sp(p,y)?A=null:b!==null&&sp(p,b)&&(l.flags|=32),Lb(a,l),Jt(a,l,A,c),l.child;case 6:return a===null&&yp(l),null;case 13:return Ub(a,l,c);case 4:return Pp(l,l.stateNode.containerInfo),p=l.pendingProps,a===null?l.child=go(l,null,p,c):Jt(a,l,p,c),l.child;case 11:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Tb(a,l,p,y,c);case 7:return Jt(a,l,l.pendingProps,c),l.child;case 8:return Jt(a,l,l.pendingProps.children,c),l.child;case 12:return Jt(a,l,l.pendingProps.children,c),l.child;case 10:e:{if(p=l.type._context,y=l.pendingProps,b=l.memoizedProps,A=y.value,Ye(hc,p._currentValue),p._currentValue=A,b!==null)if(Gr(b.value,A)){if(b.children===y.children&&!lr.current){l=Fn(a,l,c);break e}}else for(b=l.child,b!==null&&(b.return=l);b!==null;){var I=b.dependencies;if(I!==null){A=b.child;for(var T=I.firstContext;T!==null;){if(T.context===p){if(b.tag===1){T=zn(-1,c&-c),T.tag=2;var V=b.updateQueue;if(V!==null){V=V.shared;var re=V.pending;re===null?T.next=T:(T.next=re.next,re.next=T),V.pending=T}}b.lanes|=c,T=b.alternate,T!==null&&(T.lanes|=c),Sp(b.return,c,l),I.lanes|=c;break}T=T.next}}else if(b.tag===10)A=b.type===l.type?null:b.child;else if(b.tag===18){if(A=b.return,A===null)throw Error(r(341));A.lanes|=c,I=A.alternate,I!==null&&(I.lanes|=c),Sp(A,c,l),A=b.sibling}else A=b.child;if(A!==null)A.return=b;else for(A=b;A!==null;){if(A===l){A=null;break}if(b=A.sibling,b!==null){b.return=A.return,A=b;break}A=A.return}b=A}Jt(a,l,y.children,c),l=l.child}return l;case 9:return y=l.type,p=l.pendingProps.children,bo(l,c),y=Ir(y),p=p(y),l.flags|=1,Jt(a,l,p,c),l.child;case 14:return p=l.type,y=Qr(p,l.pendingProps),y=Qr(p.type,y),Db(a,l,p,y,c);case 15:return Rb(a,l,l.type,l.pendingProps,c);case 17:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Pc(a,l),l.tag=1,sr(p)?(a=!0,lc(l)):a=!1,bo(l,c),Ob(l,p,y),Lp(l,p,y,c),Up(null,l,p,!0,a,c);case 19:return Hb(a,l,c);case 22:return $b(a,l,c)}throw Error(r(156,l.tag))};function p1(a,l){return q0(a,l)}function RI(a,l,c,p){this.tag=a,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=p,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(a,l,c,p){return new RI(a,l,c,p)}function sm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function $I(a){if(typeof a=="function")return sm(a)?1:0;if(a!=null){if(a=a.$$typeof,a===B)return 11;if(a===le)return 14}return 2}function ji(a,l){var c=a.alternate;return c===null?(c=Dr(a.tag,l,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=l,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=a.flags&14680064,c.childLanes=a.childLanes,c.lanes=a.lanes,c.child=a.child,c.memoizedProps=a.memoizedProps,c.memoizedState=a.memoizedState,c.updateQueue=a.updateQueue,l=a.dependencies,c.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},c.sibling=a.sibling,c.index=a.index,c.ref=a.ref,c}function Rc(a,l,c,p,y,b){var A=2;if(p=a,typeof a=="function")sm(a)&&(A=1);else if(typeof a=="string")A=5;else e:switch(a){case D:return ma(c.children,y,b,l);case F:A=8,y|=8;break;case z:return a=Dr(12,c,l,y|2),a.elementType=z,a.lanes=b,a;case ue:return a=Dr(13,c,l,y),a.elementType=ue,a.lanes=b,a;case Y:return a=Dr(19,c,l,y),a.elementType=Y,a.lanes=b,a;case de:return $c(c,y,b,l);default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case q:A=10;break e;case X:A=9;break e;case B:A=11;break e;case le:A=14;break e;case fe:A=16,p=null;break e}throw Error(r(130,a==null?a:typeof a,""))}return l=Dr(A,c,l,y),l.elementType=a,l.type=p,l.lanes=b,l}function ma(a,l,c,p){return a=Dr(7,a,p,l),a.lanes=c,a}function $c(a,l,c,p){return a=Dr(22,a,p,l),a.elementType=de,a.lanes=c,a.stateNode={isHidden:!1},a}function um(a,l,c){return a=Dr(6,a,null,l),a.lanes=c,a}function cm(a,l,c){return l=Dr(4,a.children!==null?a.children:[],a.key,l),l.lanes=c,l.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},l}function LI(a,l,c,p,y){this.tag=l,this.containerInfo=a,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$h(0),this.expirationTimes=$h(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$h(0),this.identifierPrefix=p,this.onRecoverableError=y,this.mutableSourceEagerHydrationData=null}function dm(a,l,c,p,y,b,A,I,T){return a=new LI(a,l,c,I,T),l===1?(l=1,b===!0&&(l|=8)):l=0,b=Dr(3,null,null,l),a.current=b,b.stateNode=a,b.memoizedState={element:p,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ep(b),a}function zI(a,l,c){var p=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),gm.exports=JI(),gm.exports}var _1;function eM(){if(_1)return Kc;_1=1;var e=EP();return Kc.createRoot=e.createRoot,Kc.hydrateRoot=e.hydrateRoot,Kc}var tM=eM();const rM=Ty(tM);var gu=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},ja,Fi,Xo,pP,nM=(pP=class extends gu{constructor(){super();Ce(this,ja);Ce(this,Fi);Ce(this,Xo);pe(this,Xo,t=>{if(typeof window<"u"&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){$(this,Fi)||this.setEventListener($(this,Xo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Fi))==null||t.call(this),pe(this,Fi,void 0))}setEventListener(t){var r;pe(this,Xo,t),(r=$(this,Fi))==null||r.call(this),pe(this,Fi,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){$(this,ja)!==t&&(pe(this,ja,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof $(this,ja)=="boolean"?$(this,ja):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ja=new WeakMap,Fi=new WeakMap,Xo=new WeakMap,pP),Ry=new nM,iM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Bi,My,mP,aM=(mP=class{constructor(){Ce(this,Bi,iM);Ce(this,My,!1)}setTimeoutProvider(e){pe(this,Bi,e)}setTimeout(e,t){return $(this,Bi).setTimeout(e,t)}clearTimeout(e){$(this,Bi).clearTimeout(e)}setInterval(e,t){return $(this,Bi).setInterval(e,t)}clearInterval(e){$(this,Bi).clearInterval(e)}},Bi=new WeakMap,My=new WeakMap,mP),ka=new aM;function oM(e){setTimeout(e,0)}var lM=typeof window>"u"||"Deno"in globalThis;function pr(){}function sM(e,t){return typeof e=="function"?e(t):e}function hv(e){return typeof e=="number"&&e>=0&&e!==1/0}function PP(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Yi(e,t){return typeof e=="function"?e(t):e}function Er(e,t){return typeof e=="function"?e(t):e}function j1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:u}=e;if(s){if(n){if(t.queryHash!==$y(s,t.options))return!1}else if(!Vs(t.queryKey,s))return!1}if(r!=="all"){const d=t.isActive();if(r==="active"&&!d||r==="inactive"&&d)return!1}return!(typeof u=="boolean"&&t.isStale()!==u||i&&i!==t.state.fetchStatus||o&&!o(t))}function N1(e,t){const{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(Ks(t.options.mutationKey)!==Ks(o))return!1}else if(!Vs(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function $y(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ks)(e)}function Ks(e){return JSON.stringify(e,(t,r)=>mv(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function Vs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Vs(e[r],t[r])):!1}var uM=Object.prototype.hasOwnProperty;function AP(e,t,r=0){if(e===t)return e;if(r>500)return t;const n=I1(e)&&I1(t);if(!n&&!(mv(e)&&mv(t)))return t;const o=(n?e:Object.keys(e)).length,s=n?t:Object.keys(t),u=s.length,d=n?new Array(u):{};let f=0;for(let h=0;h{ka.setTimeout(t,e)})}function vv(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?AP(e,t):t}function dM(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function fM(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var Ly=Symbol();function OP(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Ly?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function CP(e,t){return typeof e=="function"?e(...t):!!e}function hM(e,t,r){let n=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??(i=t()),n||(n=!0,i.aborted?r():i.addEventListener("abort",r,{once:!0})),i)}),e}var qs=(()=>{let e=()=>lM;return{isServer(){return e()},setIsServer(t){e=t}}})();function yv(){let e,t;const r=new Promise((i,o)=>{e=i,t=o});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}var pM=oM;function mM(){let e=[],t=0,r=u=>{u()},n=u=>{u()},i=pM;const o=u=>{t?e.push(u):i(()=>{r(u)})},s=()=>{const u=e;e=[],u.length&&i(()=>{n(()=>{u.forEach(d=>{r(d)})})})};return{batch:u=>{let d;t++;try{d=u()}finally{t--,t||s()}return d},batchCalls:u=>(...d)=>{o(()=>{u(...d)})},schedule:o,setNotifyFunction:u=>{r=u},setBatchNotifyFunction:u=>{n=u},setScheduler:u=>{i=u}}}var Ft=mM(),Zo,Ui,Jo,vP,vM=(vP=class extends gu{constructor(){super();Ce(this,Zo,!0);Ce(this,Ui);Ce(this,Jo);pe(this,Jo,t=>{if(typeof window<"u"&&window.addEventListener){const r=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){$(this,Ui)||this.setEventListener($(this,Jo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Ui))==null||t.call(this),pe(this,Ui,void 0))}setEventListener(t){var r;pe(this,Jo,t),(r=$(this,Ui))==null||r.call(this),pe(this,Ui,t(this.setOnline.bind(this)))}setOnline(t){$(this,Zo)!==t&&(pe(this,Zo,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return $(this,Zo)}},Zo=new WeakMap,Ui=new WeakMap,Jo=new WeakMap,vP),Ad=new vM;function yM(e){return Math.min(1e3*2**e,3e4)}function _P(e){return(e??"online")==="online"?Ad.isOnline():!0}var gv=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function jP(e){let t=!1,r=0,n;const i=yv(),o=()=>i.status!=="pending",s=S=>{var E;if(!o()){const P=new gv(S);v(P),(E=e.onCancel)==null||E.call(e,P)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Ry.isFocused()&&(e.networkMode==="always"||Ad.isOnline())&&e.canRun(),h=()=>_P(e.networkMode)&&e.canRun(),m=S=>{o()||(n==null||n(),i.resolve(S))},v=S=>{o()||(n==null||n(),i.reject(S))},x=()=>new Promise(S=>{var E;n=P=>{(o()||f())&&S(P)},(E=e.onPause)==null||E.call(e)}).then(()=>{var S;n=void 0,o()||(S=e.onContinue)==null||S.call(e)}),k=()=>{if(o())return;let S;const E=r===0?e.initialPromise:void 0;try{S=E??e.fn()}catch(P){S=Promise.reject(P)}Promise.resolve(S).then(m).catch(P=>{var C;if(o())return;const O=e.retry??(qs.isServer()?0:3),j=e.retryDelay??yM,_=typeof j=="function"?j(r,P):j,N=O===!0||typeof O=="number"&&rf()?void 0:x()).then(()=>{t?v(P):k()})})};return{promise:i,status:()=>i.status,cancel:s,continue:()=>(n==null||n(),i),cancelRetry:u,continueRetry:d,canStart:h,start:()=>(h()?k():x().then(k),i)}}var Na,yP,NP=(yP=class{constructor(){Ce(this,Na)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),hv(this.gcTime)&&pe(this,Na,ka.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(qs.isServer()?1/0:300*1e3))}clearGcTimeout(){$(this,Na)!==void 0&&(ka.clearTimeout($(this,Na)),pe(this,Na,void 0))}},Na=new WeakMap,yP);function gM(e){return{onFetch:(t,r)=>{var h,m,v,x,k;const n=t.options,i=(v=(m=(h=t.fetchOptions)==null?void 0:h.meta)==null?void 0:m.fetchMore)==null?void 0:v.direction,o=((x=t.state.data)==null?void 0:x.pages)||[],s=((k=t.state.data)==null?void 0:k.pageParams)||[];let u={pages:[],pageParams:[]},d=0;const f=async()=>{let S=!1;const E=j=>{hM(j,()=>t.signal,()=>S=!0)},P=OP(t.options,t.fetchOptions),O=async(j,_,N)=>{if(S)return Promise.reject(t.signal.reason);if(_==null&&j.pages.length)return Promise.resolve(j);const D=(()=>{const X={client:t.client,queryKey:t.queryKey,pageParam:_,direction:N?"backward":"forward",meta:t.options.meta};return E(X),X})(),F=await P(D),{maxPages:z}=t.options,q=N?fM:dM;return{pages:q(j.pages,F,z),pageParams:q(j.pageParams,_,z)}};if(i&&o.length){const j=i==="backward",_=j?xM:T1,N={pages:o,pageParams:s},C=_(n,N);u=await O(N,C,j)}else{const j=e??o.length;do{const _=d===0?s[0]??n.initialPageParam:T1(n,u);if(d>0&&_==null)break;u=await O(u,_),d++}while(d{var S,E;return(E=(S=t.options).persister)==null?void 0:E.call(S,f,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=f}}}function T1(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function xM(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var el,Ia,tl,$r,Ma,_t,hu,Ta,kr,IP,Wn,gP,bM=(gP=class extends NP{constructor(t){super();Ce(this,kr);Ce(this,el);Ce(this,Ia);Ce(this,tl);Ce(this,$r);Ce(this,Ma);Ce(this,_t);Ce(this,hu);Ce(this,Ta);pe(this,Ta,!1),pe(this,hu,t.defaultOptions),this.setOptions(t.options),this.observers=[],pe(this,Ma,t.client),pe(this,$r,$(this,Ma).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,pe(this,Ia,R1(this.options)),this.state=t.state??$(this,Ia),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return $(this,el)}get promise(){var t;return(t=$(this,_t))==null?void 0:t.promise}setOptions(t){if(this.options={...$(this,hu),...t},t!=null&&t._type&&pe(this,el,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=R1(this.options);r.data!==void 0&&(this.setState(D1(r.data,r.dataUpdatedAt)),pe(this,Ia,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&$(this,$r).remove(this)}setData(t,r){const n=vv(this.state.data,t,this.options);return Le(this,kr,Wn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t){Le(this,kr,Wn).call(this,{type:"setState",state:t})}cancel(t){var n,i;const r=(n=$(this,_t))==null?void 0:n.promise;return(i=$(this,_t))==null||i.cancel(t),r?r.then(pr).catch(pr):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return $(this,Ia)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Er(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ly||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Yi(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!PP(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),$(this,$r).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||($(this,_t)&&($(this,Ta)||Le(this,kr,IP).call(this)?$(this,_t).cancel({revert:!0}):$(this,_t).cancelRetry()),this.scheduleGc()),$(this,$r).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Le(this,kr,Wn).call(this,{type:"invalidate"})}async fetch(t,r){var f,h,m,v,x,k,S,E,P,O,j;if(this.state.fetchStatus!=="idle"&&((f=$(this,_t))==null?void 0:f.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if($(this,_t))return $(this,_t).continueRetry(),$(this,_t).promise}if(t&&this.setOptions(t),!this.options.queryFn){const _=this.observers.find(N=>N.options.queryFn);_&&this.setOptions(_.options)}const n=new AbortController,i=_=>{Object.defineProperty(_,"signal",{enumerable:!0,get:()=>(pe(this,Ta,!0),n.signal)})},o=()=>{const _=OP(this.options,r),C=(()=>{const D={client:$(this,Ma),queryKey:this.queryKey,meta:this.meta};return i(D),D})();return pe(this,Ta,!1),this.options.persister?this.options.persister(_,C,this):_(C)},u=(()=>{const _={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:$(this,Ma),state:this.state,fetchFn:o};return i(_),_})(),d=$(this,el)==="infinite"?gM(this.options.pages):this.options.behavior;d==null||d.onFetch(u,this),pe(this,tl,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((h=u.fetchOptions)==null?void 0:h.meta))&&Le(this,kr,Wn).call(this,{type:"fetch",meta:(m=u.fetchOptions)==null?void 0:m.meta}),pe(this,_t,jP({initialPromise:r==null?void 0:r.initialPromise,fn:u.fetchFn,onCancel:_=>{_ instanceof gv&&_.revert&&this.setState({...$(this,tl),fetchStatus:"idle"}),n.abort()},onFail:(_,N)=>{Le(this,kr,Wn).call(this,{type:"failed",failureCount:_,error:N})},onPause:()=>{Le(this,kr,Wn).call(this,{type:"pause"})},onContinue:()=>{Le(this,kr,Wn).call(this,{type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0}));try{const _=await $(this,_t).start();if(_===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(_),(x=(v=$(this,$r).config).onSuccess)==null||x.call(v,_,this),(S=(k=$(this,$r).config).onSettled)==null||S.call(k,_,this.state.error,this),_}catch(_){if(_ instanceof gv){if(_.silent)return $(this,_t).promise;if(_.revert){if(this.state.data===void 0)throw _;return this.state.data}}throw Le(this,kr,Wn).call(this,{type:"error",error:_}),(P=(E=$(this,$r).config).onError)==null||P.call(E,_,this),(j=(O=$(this,$r).config).onSettled)==null||j.call(O,this.state.data,_,this),_}finally{this.scheduleGc()}}},el=new WeakMap,Ia=new WeakMap,tl=new WeakMap,$r=new WeakMap,Ma=new WeakMap,_t=new WeakMap,hu=new WeakMap,Ta=new WeakMap,kr=new WeakSet,IP=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Wn=function(t){const r=n=>{switch(t.type){case"failed":return{...n,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...MP(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,...D1(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return pe(this,tl,t.manual?i:void 0),i;case"error":const o=t.error;return{...n,error:o,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),Ft.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),$(this,$r).notify({query:this,type:"updated",action:t})})},gP);function MP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:_P(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function D1(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function R1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var hr,Be,pu,tr,Da,rl,Kn,Wi,mu,nl,il,Ra,$a,Hi,al,Ve,$s,xv,bv,wv,Sv,kv,Ev,Pv,TP,xP,wM=(xP=class extends gu{constructor(t,r){super();Ce(this,Ve);Ce(this,hr);Ce(this,Be);Ce(this,pu);Ce(this,tr);Ce(this,Da);Ce(this,rl);Ce(this,Kn);Ce(this,Wi);Ce(this,mu);Ce(this,nl);Ce(this,il);Ce(this,Ra);Ce(this,$a);Ce(this,Hi);Ce(this,al,new Set);this.options=r,pe(this,hr,t),pe(this,Wi,null),pe(this,Kn,yv()),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&($(this,Be).addObserver(this),$1($(this,Be),this.options)?Le(this,Ve,$s).call(this):this.updateResult(),Le(this,Ve,Sv).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Av($(this,Be),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Av($(this,Be),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Le(this,Ve,kv).call(this),Le(this,Ve,Ev).call(this),$(this,Be).removeObserver(this)}setOptions(t){const r=this.options,n=$(this,Be);if(this.options=$(this,hr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Er(this.options.enabled,$(this,Be))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Le(this,Ve,Pv).call(this),$(this,Be).setOptions(this.options),r._defaulted&&!pv(this.options,r)&&$(this,hr).getQueryCache().notify({type:"observerOptionsUpdated",query:$(this,Be),observer:this});const i=this.hasListeners();i&&L1($(this,Be),n,this.options,r)&&Le(this,Ve,$s).call(this),this.updateResult(),i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||Yi(this.options.staleTime,$(this,Be))!==Yi(r.staleTime,$(this,Be)))&&Le(this,Ve,xv).call(this);const o=Le(this,Ve,bv).call(this);i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||o!==$(this,Hi))&&Le(this,Ve,wv).call(this,o)}getOptimisticResult(t){const r=$(this,hr).getQueryCache().build($(this,hr),t),n=this.createResult(r,t);return kM(this,n)&&(pe(this,tr,n),pe(this,rl,this.options),pe(this,Da,$(this,Be).state)),n}getCurrentResult(){return $(this,tr)}trackResult(t,r){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),r==null||r(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&$(this,Kn).status==="pending"&&$(this,Kn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){$(this,al).add(t)}getCurrentQuery(){return $(this,Be)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=$(this,hr).defaultQueryOptions(t),n=$(this,hr).getQueryCache().build($(this,hr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return Le(this,Ve,$s).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),$(this,tr)))}createResult(t,r){var z;const n=$(this,Be),i=this.options,o=$(this,tr),s=$(this,Da),u=$(this,rl),f=t!==n?t.state:$(this,pu),{state:h}=t;let m={...h},v=!1,x;if(r._optimisticResults){const q=this.hasListeners(),X=!q&&$1(t,r),B=q&&L1(t,n,r,i);(X||B)&&(m={...m,...MP(h.data,t.options)}),r._optimisticResults==="isRestoring"&&(m.fetchStatus="idle")}let{error:k,errorUpdatedAt:S,status:E}=m;x=m.data;let P=!1;if(r.placeholderData!==void 0&&x===void 0&&E==="pending"){let q;o!=null&&o.isPlaceholderData&&r.placeholderData===(u==null?void 0:u.placeholderData)?(q=o.data,P=!0):q=typeof r.placeholderData=="function"?r.placeholderData((z=$(this,il))==null?void 0:z.state.data,$(this,il)):r.placeholderData,q!==void 0&&(E="success",x=vv(o==null?void 0:o.data,q,r),v=!0)}if(r.select&&x!==void 0&&!P)if(o&&x===(s==null?void 0:s.data)&&r.select===$(this,mu))x=$(this,nl);else try{pe(this,mu,r.select),x=r.select(x),x=vv(o==null?void 0:o.data,x,r),pe(this,nl,x),pe(this,Wi,null)}catch(q){pe(this,Wi,q)}$(this,Wi)&&(k=$(this,Wi),x=$(this,nl),S=Date.now(),E="error");const O=m.fetchStatus==="fetching",j=E==="pending",_=E==="error",N=j&&O,C=x!==void 0,F={status:E,fetchStatus:m.fetchStatus,isPending:j,isSuccess:E==="success",isError:_,isInitialLoading:N,isLoading:N,data:x,dataUpdatedAt:m.dataUpdatedAt,error:k,errorUpdatedAt:S,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:O,isRefetching:O&&!j,isLoadingError:_&&!C,isPaused:m.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:_&&C,isStale:zy(t,r),refetch:this.refetch,promise:$(this,Kn),isEnabled:Er(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const q=F.data!==void 0,X=F.status==="error"&&!q,B=le=>{X?le.reject(F.error):q&&le.resolve(F.data)},ue=()=>{const le=pe(this,Kn,F.promise=yv());B(le)},Y=$(this,Kn);switch(Y.status){case"pending":t.queryHash===n.queryHash&&B(Y);break;case"fulfilled":(X||F.data!==Y.value)&&ue();break;case"rejected":(!X||F.error!==Y.reason)&&ue();break}}return F}updateResult(){const t=$(this,tr),r=this.createResult($(this,Be),this.options);if(pe(this,Da,$(this,Be).state),pe(this,rl,this.options),$(this,Da).data!==void 0&&pe(this,il,$(this,Be)),pv(r,t))return;pe(this,tr,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!$(this,al).size)return!0;const s=new Set(o??$(this,al));return this.options.throwOnError&&s.add("error"),Object.keys($(this,tr)).some(u=>{const d=u;return $(this,tr)[d]!==t[d]&&s.has(d)})};Le(this,Ve,TP).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Le(this,Ve,Sv).call(this)}},hr=new WeakMap,Be=new WeakMap,pu=new WeakMap,tr=new WeakMap,Da=new WeakMap,rl=new WeakMap,Kn=new WeakMap,Wi=new WeakMap,mu=new WeakMap,nl=new WeakMap,il=new WeakMap,Ra=new WeakMap,$a=new WeakMap,Hi=new WeakMap,al=new WeakMap,Ve=new WeakSet,$s=function(t){Le(this,Ve,Pv).call(this);let r=$(this,Be).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(pr)),r},xv=function(){Le(this,Ve,kv).call(this);const t=Yi(this.options.staleTime,$(this,Be));if(qs.isServer()||$(this,tr).isStale||!hv(t))return;const n=PP($(this,tr).dataUpdatedAt,t)+1;pe(this,Ra,ka.setTimeout(()=>{$(this,tr).isStale||this.updateResult()},n))},bv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval($(this,Be)):this.options.refetchInterval)??!1},wv=function(t){Le(this,Ve,Ev).call(this),pe(this,Hi,t),!(qs.isServer()||Er(this.options.enabled,$(this,Be))===!1||!hv($(this,Hi))||$(this,Hi)===0)&&pe(this,$a,ka.setInterval(()=>{(this.options.refetchIntervalInBackground||Ry.isFocused())&&Le(this,Ve,$s).call(this)},$(this,Hi)))},Sv=function(){Le(this,Ve,xv).call(this),Le(this,Ve,wv).call(this,Le(this,Ve,bv).call(this))},kv=function(){$(this,Ra)!==void 0&&(ka.clearTimeout($(this,Ra)),pe(this,Ra,void 0))},Ev=function(){$(this,$a)!==void 0&&(ka.clearInterval($(this,$a)),pe(this,$a,void 0))},Pv=function(){const t=$(this,hr).getQueryCache().build($(this,hr),this.options);if(t===$(this,Be))return;const r=$(this,Be);pe(this,Be,t),pe(this,pu,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},TP=function(t){Ft.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r($(this,tr))}),$(this,hr).getQueryCache().notify({query:$(this,Be),type:"observerResultsUpdated"})})},xP);function SM(e,t){return Er(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Er(t.retryOnMount,e)===!1)}function $1(e,t){return SM(e,t)||e.state.data!==void 0&&Av(e,t,t.refetchOnMount)}function Av(e,t,r){if(Er(t.enabled,e)!==!1&&Yi(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&zy(e,t)}return!1}function L1(e,t,r,n){return(e!==t||Er(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&zy(e,r)}function zy(e,t){return Er(t.enabled,e)!==!1&&e.isStaleByTime(Yi(t.staleTime,e))}function kM(e,t){return!pv(e.getCurrentResult(),t)}var vu,xn,Yt,La,bn,Di,bP,EM=(bP=class extends NP{constructor(t){super();Ce(this,bn);Ce(this,vu);Ce(this,xn);Ce(this,Yt);Ce(this,La);pe(this,vu,t.client),this.mutationId=t.mutationId,pe(this,Yt,t.mutationCache),pe(this,xn,[]),this.state=t.state||PM(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){$(this,xn).includes(t)||($(this,xn).push(t),this.clearGcTimeout(),$(this,Yt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){pe(this,xn,$(this,xn).filter(r=>r!==t)),this.scheduleGc(),$(this,Yt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){$(this,xn).length||(this.state.status==="pending"?this.scheduleGc():$(this,Yt).remove(this))}continue(){var t;return((t=$(this,La))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D;const r=()=>{Le(this,bn,Di).call(this,{type:"continue"})},n={client:$(this,vu),meta:this.options.meta,mutationKey:this.options.mutationKey};pe(this,La,jP({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(F,z)=>{Le(this,bn,Di).call(this,{type:"failed",failureCount:F,error:z})},onPause:()=>{Le(this,bn,Di).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>$(this,Yt).canRun(this)}));const i=this.state.status==="pending",o=!$(this,La).canStart();try{if(i)r();else{Le(this,bn,Di).call(this,{type:"pending",variables:t,isPaused:o}),$(this,Yt).config.onMutate&&await $(this,Yt).config.onMutate(t,this,n);const z=await((u=(s=this.options).onMutate)==null?void 0:u.call(s,t,n));z!==this.state.context&&Le(this,bn,Di).call(this,{type:"pending",context:z,variables:t,isPaused:o})}const F=await $(this,La).start();return await((f=(d=$(this,Yt).config).onSuccess)==null?void 0:f.call(d,F,t,this.state.context,this,n)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,F,t,this.state.context,n)),await((x=(v=$(this,Yt).config).onSettled)==null?void 0:x.call(v,F,null,this.state.variables,this.state.context,this,n)),await((S=(k=this.options).onSettled)==null?void 0:S.call(k,F,null,t,this.state.context,n)),Le(this,bn,Di).call(this,{type:"success",data:F}),F}catch(F){try{await((P=(E=$(this,Yt).config).onError)==null?void 0:P.call(E,F,t,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((j=(O=this.options).onError)==null?void 0:j.call(O,F,t,this.state.context,n))}catch(z){Promise.reject(z)}try{await((N=(_=$(this,Yt).config).onSettled)==null?void 0:N.call(_,void 0,F,this.state.variables,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((D=(C=this.options).onSettled)==null?void 0:D.call(C,void 0,F,t,this.state.context,n))}catch(z){Promise.reject(z)}throw Le(this,bn,Di).call(this,{type:"error",error:F}),F}finally{$(this,Yt).runNext(this)}}},vu=new WeakMap,xn=new WeakMap,Yt=new WeakMap,La=new WeakMap,bn=new WeakSet,Di=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),Ft.batch(()=>{$(this,xn).forEach(n=>{n.onMutationUpdate(t)}),$(this,Yt).notify({mutation:this,type:"updated",action:t})})},bP);function PM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Vn,tn,yu,wP,AM=(wP=class extends gu{constructor(t={}){super();Ce(this,Vn);Ce(this,tn);Ce(this,yu);this.config=t,pe(this,Vn,new Set),pe(this,tn,new Map),pe(this,yu,0)}build(t,r,n){const i=new EM({client:t,mutationCache:this,mutationId:++Hc(this,yu)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){$(this,Vn).add(t);const r=Vc(t);if(typeof r=="string"){const n=$(this,tn).get(r);n?n.push(t):$(this,tn).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if($(this,Vn).delete(t)){const r=Vc(t);if(typeof r=="string"){const n=$(this,tn).get(r);if(n)if(n.length>1){const i=n.indexOf(t);i!==-1&&n.splice(i,1)}else n[0]===t&&$(this,tn).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=Vc(t);if(typeof r=="string"){const n=$(this,tn).get(r),i=n==null?void 0:n.find(o=>o.state.status==="pending");return!i||i===t}else return!0}runNext(t){var n;const r=Vc(t);if(typeof r=="string"){const i=(n=$(this,tn).get(r))==null?void 0:n.find(o=>o!==t&&o.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Ft.batch(()=>{$(this,Vn).forEach(t=>{this.notify({type:"removed",mutation:t})}),$(this,Vn).clear(),$(this,tn).clear()})}getAll(){return Array.from($(this,Vn))}find(t){const r={exact:!0,...t};return this.getAll().find(n=>N1(r,n))}findAll(t={}){return this.getAll().filter(r=>N1(t,r))}notify(t){Ft.batch(()=>{this.listeners.forEach(r=>{r(t)})})}resumePausedMutations(){const t=this.getAll().filter(r=>r.state.isPaused);return Ft.batch(()=>Promise.all(t.map(r=>r.continue().catch(pr))))}},Vn=new WeakMap,tn=new WeakMap,yu=new WeakMap,wP);function Vc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var wn,SP,OM=(SP=class extends gu{constructor(t={}){super();Ce(this,wn);this.config=t,pe(this,wn,new Map)}build(t,r,n){const i=r.queryKey,o=r.queryHash??$y(i,r);let s=this.get(o);return s||(s=new bM({client:t,queryKey:i,queryHash:o,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(s)),s}add(t){$(this,wn).has(t.queryHash)||($(this,wn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=$(this,wn).get(t.queryHash);r&&(t.destroy(),r===t&&$(this,wn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ft.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return $(this,wn).get(t)}getAll(){return[...$(this,wn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>j1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>j1(t,n)):r}notify(t){Ft.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},wn=new WeakMap,SP),dt,Ki,Vi,ol,ll,qi,sl,ul,kP,CM=(kP=class{constructor(e={}){Ce(this,dt);Ce(this,Ki);Ce(this,Vi);Ce(this,ol);Ce(this,ll);Ce(this,qi);Ce(this,sl);Ce(this,ul);pe(this,dt,e.queryCache||new OM),pe(this,Ki,e.mutationCache||new AM),pe(this,Vi,e.defaultOptions||{}),pe(this,ol,new Map),pe(this,ll,new Map),pe(this,qi,0)}mount(){Hc(this,qi)._++,$(this,qi)===1&&(pe(this,sl,Ry.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onFocus())})),pe(this,ul,Ad.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onOnline())})))}unmount(){var e,t;Hc(this,qi)._--,$(this,qi)===0&&((e=$(this,sl))==null||e.call(this),pe(this,sl,void 0),(t=$(this,ul))==null||t.call(this),pe(this,ul,void 0))}isFetching(e){return $(this,dt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return $(this,Ki).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=$(this,dt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(Yi(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return $(this,dt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),i=$(this,dt).get(n.queryHash),o=i==null?void 0:i.state.data,s=sM(t,o);if(s!==void 0)return $(this,dt).build(this,n).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return Ft.batch(()=>$(this,dt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=$(this,dt);Ft.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=$(this,dt);return Ft.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=Ft.batch(()=>$(this,dt).findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(pr).catch(pr)}invalidateQueries(e,t={}){return Ft.batch(()=>($(this,dt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=Ft.batch(()=>$(this,dt).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let o=i.fetch(void 0,r);return r.throwOnError||(o=o.catch(pr)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(pr)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=$(this,dt).build(this,t);return r.isStaleByTime(Yi(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(pr).catch(pr)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(pr).catch(pr)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Ad.isOnline()?$(this,Ki).resumePausedMutations():Promise.resolve()}getQueryCache(){return $(this,dt)}getMutationCache(){return $(this,Ki)}getDefaultOptions(){return $(this,Vi)}setDefaultOptions(e){pe(this,Vi,e)}setQueryDefaults(e,t){$(this,ol).set(Ks(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...$(this,ol).values()],r={};return t.forEach(n=>{Vs(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){$(this,ll).set(Ks(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...$(this,ll).values()],r={};return t.forEach(n=>{Vs(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...$(this,Vi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=$y(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Ly&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...$(this,Vi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){$(this,dt).clear(),$(this,Ki).clear()}},dt=new WeakMap,Ki=new WeakMap,Vi=new WeakMap,ol=new WeakMap,ll=new WeakMap,qi=new WeakMap,sl=new WeakMap,ul=new WeakMap,kP),DP=g.createContext(void 0),Pf=e=>{const t=g.useContext(DP);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},_M=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),w.jsx(DP.Provider,{value:e,children:t})),RP=g.createContext(!1),jM=()=>g.useContext(RP);RP.Provider;function NM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var IM=g.createContext(NM()),MM=()=>g.useContext(IM),TM=(e,t,r)=>{const n=r!=null&&r.state.error&&typeof e.throwOnError=="function"?CP(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},DM=e=>{g.useEffect(()=>{e.clearReset()},[e])},RM=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||CP(r,[e.error,n])),$M=e=>{if(e.suspense){const r=i=>i==="static"?i:Math.max(i??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...i)=>r(n(...i)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},LM=(e,t)=>e.isLoading&&e.isFetching&&!t,zM=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,z1=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function FM(e,t,r){var x,k,S,E;const n=jM(),i=MM(),o=Pf(),s=o.defaultQueryOptions(e);(k=(x=o.getDefaultOptions().queries)==null?void 0:x._experimental_beforeQuery)==null||k.call(x,s);const u=o.getQueryCache().get(s.queryHash),d=e.subscribed!==!1;s._optimisticResults=n?"isRestoring":d?"optimistic":void 0,$M(s),TM(s,i,u),DM(i);const f=!o.getQueryCache().get(s.queryHash),[h]=g.useState(()=>new t(o,s)),m=h.getOptimisticResult(s),v=!n&&d;if(g.useSyncExternalStore(g.useCallback(P=>{const O=v?h.subscribe(Ft.batchCalls(P)):pr;return h.updateResult(),O},[h,v]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),g.useEffect(()=>{h.setOptions(s)},[s,h]),zM(s,m))throw z1(s,h,i);if(RM({result:m,errorResetBoundary:i,throwOnError:s.throwOnError,query:u,suspense:s.suspense}))throw m.error;if((E=(S=o.getDefaultOptions().queries)==null?void 0:S._experimental_afterQuery)==null||E.call(S,s,m),s.experimental_prefetchInRender&&!qs.isServer()&&LM(m,n)){const P=f?z1(s,h,i):u==null?void 0:u.promise;P==null||P.catch(pr).finally(()=>{h.updateResult()})}return s.notifyOnChangeProps?m:h.trackResult(m)}function at(e,t){return FM(e,wM)}const BM="modulepreload",UM=function(e){return"/"+e},F1={},ii=function(t,r,n){let i=Promise.resolve();if(r&&r.length>0){let s=function(f){return Promise.all(f.map(h=>Promise.resolve(h).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};document.getElementsByTagName("link");const u=document.querySelector("meta[property=csp-nonce]"),d=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));i=s(r.map(f=>{if(f=UM(f),f in F1)return;F1[f]=!0;const h=f.endsWith(".css"),m=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${m}`))return;const v=document.createElement("link");if(v.rel=h?"stylesheet":BM,h||(v.as="script"),v.crossOrigin="",v.href=f,d&&v.setAttribute("nonce",d),document.head.appendChild(v),h)return new Promise((x,k)=>{v.addEventListener("load",x),v.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${f}`)))})}))}function o(s){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=s,window.dispatchEvent(u),!u.defaultPrevented)throw s}return i.then(s=>{for(const u of s||[])u.status==="rejected"&&o(u.reason);return t().catch(o)})};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const WM=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),$P=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).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 HM={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 KM=g.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:i="",children:o,iconNode:s,...u},d)=>g.createElement("svg",{ref:d,...HM,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:$P("lucide",i),...u},[...s.map(([f,h])=>g.createElement(f,h)),...Array.isArray(o)?o:[o]]));/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const je=(e,t)=>{const r=g.forwardRef(({className:n,...i},o)=>g.createElement(KM,{ref:o,iconNode:t,className:$P(`lucide-${WM(e)}`,n),...i}));return r.displayName=`${e}`,r};/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const VM=je("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 B1=je("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 qM=je("BookMarked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Af=je("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 GM=je("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LP=je("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 YM=je("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 QM=je("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const XM=je("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 ZM=je("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 Bs=je("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 JM=je("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["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 zP=je("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eT=je("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tT=je("CloudDownload",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rT=je("Command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const FP=je("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 nT=je("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 U1=je("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ov=je("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 iT=je("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 aT=je("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oT=je("GitCommitHorizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lT=je("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sT=je("HeartPulse",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"1uw2ng"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uT=je("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fy=je("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cT=je("Key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dT=je("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fT=je("Library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hT=je("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const By=je("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 pT=je("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mT=je("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const W1=je("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** - * @license lucide-react v0.460.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=je("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vT=je("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ho=je("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 yT=je("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 Of=je("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wy=je("ShieldAlert",[["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:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** - * @license lucide-react v0.460.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=je("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 Hy=je("Shield",[["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"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const BP=je("Shuffle",[["path",{d:"M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22",key:"1wmou1"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 6h1.9c1.5 0 2.9.9 3.6 2.2",key:"10bdb2"}],["path",{d:"M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8",key:"vgxac0"}],["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xT=je("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bT=je("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 wT=je("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ST=je("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gs=je("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const kT=je("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 Cf=je("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Ko=[{id:"dashboard",label:"Cockpit",hint:"Deine Box auf einen Blick",icon:dT,group:"Operativ"},{id:"ideen",label:"Ideen",hint:"Schreib hin, was entstehen soll",icon:hT,group:"Operativ"},{id:"auftraege",label:"Auftragsbuch",hint:"Vorschläge der Box — annehmen oder ablehnen",icon:Fy,group:"Operativ"},{id:"chronik",label:"Chronik",hint:"Was die Box von allein getan hat + Zeitmaschine",icon:uT,group:"Operativ"},{id:"wissen",label:"Wissen",hint:"Lucys Wissens-Vault (Traum-Notizen)",icon:fT,group:"Wissen"},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:Uy,group:"Werkzeuge"},{id:"konsole",label:"Konsole",hint:"Direkte Box-Shell (SSH-artig)",icon:wT,group:"Werkzeuge"},{id:"guide",label:"Anleitung",hint:"Einrichten & Vibe-Coding",icon:zP,group:"Werkzeuge"},{id:"models",label:"Modelle",hint:"Speicher, laden & Rollen",icon:LP,group:"Wartung"},{id:"agent",label:"Hermes",hint:"Agent-Status & Verdrahtung",icon:Af,group:"Wartung"}];var H1=1,ET=.9,PT=.8,AT=.17,wm=.1,Sm=.999,OT=.9999,CT=.99,_T=/[\\\/_+.#"@\[\(\{&]/,jT=/[\\\/_+.#"@\[\(\{&]/g,NT=/[\s-]/,UP=/[\s-]/g;function Cv(e,t,r,n,i,o,s){if(o===t.length)return i===e.length?H1:CT;var u=`${i},${o}`;if(s[u]!==void 0)return s[u];for(var d=n.charAt(o),f=r.indexOf(d,i),h=0,m,v,x,k;f>=0;)m=Cv(e,t,r,n,f+1,o+1,s),m>h&&(f===i?m*=H1:_T.test(e.charAt(f-1))?(m*=PT,x=e.slice(i,f-1).match(jT),x&&i>0&&(m*=Math.pow(Sm,x.length))):NT.test(e.charAt(f-1))?(m*=ET,k=e.slice(i,f-1).match(UP),k&&i>0&&(m*=Math.pow(Sm,k.length))):(m*=AT,i>0&&(m*=Math.pow(Sm,f-i))),e.charAt(f)!==t.charAt(o)&&(m*=OT)),(mm&&(m=v*wm)),m>h&&(h=m),f=r.indexOf(d,f+1);return s[u]=h,h}function K1(e){return e.toLowerCase().replace(UP," ")}function IT(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,Cv(e,t,K1(e),K1(t),0,0,{})}function Qi(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e==null||e(i),r===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function V1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function cl(...e){return t=>{let r=!1;const n=e.map(i=>{const o=V1(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i{var P;const{scope:v,children:x,...k}=m,S=((P=v==null?void 0:v[e])==null?void 0:P[d])||u,E=g.useMemo(()=>k,Object.values(k));return w.jsx(S.Provider,{value:E,children:x})};f.displayName=o+"Provider";function h(m,v){var S;const x=((S=v==null?void 0:v[e])==null?void 0:S[d])||u,k=g.useContext(x);if(k)return k;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${o}\``)}return[f,h]}const i=()=>{const o=r.map(s=>g.createContext(s));return function(u){const d=(u==null?void 0:u[e])||o;return g.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return i.scopeName=e,[n,TT(i,...t)]}function TT(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=n.reduce((u,{useScope:d,scopeName:f})=>{const m=d(o)[`__scope${f}`];return{...u,...m}},{});return g.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}var Ys=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},DT=Ef[" useId ".trim().toString()]||(()=>{}),RT=0;function Xn(e){const[t,r]=g.useState(DT());return Ys(()=>{r(n=>n??String(RT++))},[e]),t?`radix-${t}`:""}var $T=Ef[" useInsertionEffect ".trim().toString()]||Ys;function LT({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=zT({defaultProp:t,onChange:r}),u=e!==void 0,d=u?e:i;{const h=g.useRef(e!==void 0);g.useEffect(()=>{const m=h.current;m!==u&&console.warn(`${n} is changing from ${m?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),h.current=u},[u,n])}const f=g.useCallback(h=>{var m;if(u){const v=FT(h)?h(e):h;v!==e&&((m=s.current)==null||m.call(s,v))}else o(h)},[u,e,o,s]);return[d,f]}function zT({defaultProp:e,onChange:t}){const[r,n]=g.useState(e),i=g.useRef(r),o=g.useRef(t);return $T(()=>{o.current=t},[t]),g.useEffect(()=>{var s;i.current!==r&&((s=o.current)==null||s.call(o,r),i.current=r)},[r,i]),[r,n,o]}function FT(e){return typeof e=="function"}var _f=EP();function WP(e){const t=g.forwardRef((r,n)=>{let{children:i,...o}=r,s=null,u=!1;const d=[];q1(i)&&typeof qc=="function"&&(i=qc(i._payload)),g.Children.forEach(i,v=>{var x;if(KT(v)){u=!0;const k=v;let S="child"in k.props?k.props.child:k.props.children;q1(S)&&typeof qc=="function"&&(S=qc(S._payload)),s=UT(k,S),d.push((x=s==null?void 0:s.props)==null?void 0:x.children)}else d.push(v)}),s?s=g.cloneElement(s,void 0,d):!u&&g.Children.count(i)===1&&g.isValidElement(i)&&(s=i);const f=s?HT(s):void 0,h=Xa(n,f);if(!s){if(i||i===0)throw new Error(u?YT(e):GT(e));return i}const m=WT(o,s.props??{});return s.type!==g.Fragment&&(m.ref=n?h:f),g.cloneElement(s,m)});return t.displayName=`${e}.Slot`,t}var BT=Symbol.for("radix.slottable"),UT=(e,t)=>{if("child"in e.props){const r=e.props.child;return g.isValidElement(r)?g.cloneElement(r,void 0,e.props.children(r.props.children)):null}return g.isValidElement(t)?t:null};function WT(e,t){const r={...t};for(const n in t){const i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...u)=>{const d=o(...u);return i(...u),d}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}function HT(e){var n,i;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function KT(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===BT}var VT=Symbol.for("react.lazy");function q1(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===VT&&"_payload"in e&&qT(e._payload)}function qT(e){return typeof e=="object"&&e!==null&&"then"in e}var GT=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,YT=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,qc=Ef[" use ".trim().toString()],QT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Wt=QT.reduce((e,t)=>{const r=WP(`Primitive.${t}`),n=g.forwardRef((i,o)=>{const{asChild:s,...u}=i,d=s?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),w.jsx(d,{...u,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function XT(e,t){e&&_f.flushSync(()=>e.dispatchEvent(t))}function Qs(e){const t=g.useRef(e);return g.useEffect(()=>{t.current=e}),g.useMemo(()=>((...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)}),[])}function ZT(e,t=globalThis==null?void 0:globalThis.document){const r=Qs(e);g.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var JT="DismissableLayer",_v="dismissableLayer.update",eD="dismissableLayer.pointerDownOutside",tD="dismissableLayer.focusOutside",G1,Ky=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),HP=g.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:n=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:u,onDismiss:d,...f}=e,h=g.useContext(Ky),[m,v]=g.useState(null),x=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,k]=g.useState({}),S=Xa(t,z=>v(z)),E=Array.from(h.layers),[P]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),O=E.indexOf(P),j=m?E.indexOf(m):-1,_=h.layersWithOutsidePointerEventsDisabled.size>0,N=j>=O,C=g.useRef(!1),D=aD(z=>{const q=z.target;if(!(q instanceof Node))return;const X=[...h.branches].some(B=>B.contains(q));!N||X||(o==null||o(z),u==null||u(z),z.defaultPrevented||d==null||d())},{ownerDocument:x,deferPointerDownOutside:n,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:h.dismissableSurfaces}),F=oD(z=>{if(n&&C.current)return;const q=z.target;[...h.branches].some(B=>B.contains(q))||(s==null||s(z),u==null||u(z),z.defaultPrevented||d==null||d())},x);return ZT(z=>{j===h.layers.size-1&&(i==null||i(z),!z.defaultPrevented&&d&&(z.preventDefault(),d()))},x),g.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(G1=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),Y1(),()=>{r&&(h.layersWithOutsidePointerEventsDisabled.delete(m),h.layersWithOutsidePointerEventsDisabled.size===0&&(x.body.style.pointerEvents=G1))}},[m,x,r,h]),g.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),Y1())},[m,h]),g.useEffect(()=>{const z=()=>k({});return document.addEventListener(_v,z),()=>document.removeEventListener(_v,z)},[]),w.jsx(Wt.div,{...f,ref:S,style:{pointerEvents:_?N?"auto":"none":void 0,...e.style},onFocusCapture:Qi(e.onFocusCapture,F.onFocusCapture),onBlurCapture:Qi(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:Qi(e.onPointerDownCapture,D.onPointerDownCapture)})});HP.displayName=JT;var rD="DismissableLayerBranch",nD=g.forwardRef((e,t)=>{const r=g.useContext(Ky),n=g.useRef(null),i=Xa(t,n);return g.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),w.jsx(Wt.div,{...e,ref:i})});nD.displayName=rD;function iD(){const e=g.useContext(Ky),[t,r]=g.useState(null);return g.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),r}function aD(e,t){const{ownerDocument:r=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:n=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:o}=t,s=Qs(e),u=g.useRef(!1),d=g.useRef(!1),f=g.useRef(new Map),h=g.useRef(()=>{});return g.useEffect(()=>{function m(){d.current=!1,i.current=!1,f.current.clear()}function v(){return Array.from(f.current.values()).some(Boolean)}function x(O){if(!d.current)return;const j=O.target;j instanceof Node&&[...o].some(N=>N.contains(j))||f.current.set(O.type,!0),O.type==="click"&&window.setTimeout(()=>{d.current&&h.current()},0)}function k(O){d.current&&f.current.set(O.type,!1)}const S=O=>{if(O.target&&!u.current){let j=function(){r.removeEventListener("click",h.current);const N=v();m(),N||KP(eD,s,_,{discrete:!0})};const _={originalEvent:O};d.current=!0,i.current=n&&O.button===0,f.current.clear(),!n||O.button!==0?j():(r.removeEventListener("click",h.current),h.current=j,r.addEventListener("click",h.current,{once:!0}))}else r.removeEventListener("click",h.current),m();u.current=!1},E=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const O of E)r.addEventListener(O,x,!0),r.addEventListener(O,k);const P=window.setTimeout(()=>{r.addEventListener("pointerdown",S)},0);return()=>{window.clearTimeout(P),r.removeEventListener("pointerdown",S),r.removeEventListener("click",h.current);for(const O of E)r.removeEventListener(O,x,!0),r.removeEventListener(O,k)}},[r,s,n,i,o]),{onPointerDownCapture:()=>u.current=!0}}function oD(e,t=globalThis==null?void 0:globalThis.document){const r=Qs(e),n=g.useRef(!1);return g.useEffect(()=>{const i=o=>{o.target&&!n.current&&KP(tD,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function Y1(){const e=new CustomEvent(_v);document.dispatchEvent(e)}function KP(e,t,r,{discrete:n}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?XT(i,o):i.dispatchEvent(o)}var km="focusScope.autoFocusOnMount",Em="focusScope.autoFocusOnUnmount",Q1={bubbles:!1,cancelable:!0},lD="FocusScope",VP=g.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[u,d]=g.useState(null),f=Qs(i),h=Qs(o),m=g.useRef(null),v=Xa(t,S=>d(S)),x=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(n){let S=function(j){if(x.paused||!u)return;const _=j.target;u.contains(_)?m.current=_:Ri(m.current,{select:!0})},E=function(j){if(x.paused||!u)return;const _=j.relatedTarget;_!==null&&(u.contains(_)||Ri(m.current,{select:!0}))},P=function(j){if(document.activeElement===document.body)for(const N of j)N.removedNodes.length>0&&Ri(u)};document.addEventListener("focusin",S),document.addEventListener("focusout",E);const O=new MutationObserver(P);return u&&O.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",E),O.disconnect()}}},[n,u,x.paused]),g.useEffect(()=>{if(u){Z1.add(x);const S=document.activeElement;if(!u.contains(S)){const P=new CustomEvent(km,Q1);u.addEventListener(km,f),u.dispatchEvent(P),P.defaultPrevented||(sD(hD(qP(u)),{select:!0}),document.activeElement===S&&Ri(u))}return()=>{u.removeEventListener(km,f),setTimeout(()=>{const P=new CustomEvent(Em,Q1);u.addEventListener(Em,h),u.dispatchEvent(P),P.defaultPrevented||Ri(S??document.body,{select:!0}),u.removeEventListener(Em,h),Z1.remove(x)},0)}}},[u,f,h,x]);const k=g.useCallback(S=>{if(!r&&!n||x.paused)return;const E=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,P=document.activeElement;if(E&&P){const O=S.currentTarget,[j,_]=uD(O);j&&_?!S.shiftKey&&P===_?(S.preventDefault(),r&&Ri(j,{select:!0})):S.shiftKey&&P===j&&(S.preventDefault(),r&&Ri(_,{select:!0})):P===O&&S.preventDefault()}},[r,n,x.paused]);return w.jsx(Wt.div,{tabIndex:-1,...s,ref:v,onKeyDown:k})});VP.displayName=lD;function sD(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Ri(n,{select:t}),document.activeElement!==r)return}function uD(e){const t=qP(e),r=X1(t,e),n=X1(t.reverse(),e);return[r,n]}function qP(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function X1(e,t){for(const r of e)if(!cD(r,{upTo:t}))return r}function cD(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function dD(e){return e instanceof HTMLInputElement&&"select"in e}function Ri(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&dD(e)&&t&&e.select()}}var Z1=fD();function fD(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=J1(e,t),e.unshift(t)},remove(t){var r;e=J1(e,t),(r=e[0])==null||r.resume()}}}function J1(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function hD(e){return e.filter(t=>t.tagName!=="A")}var pD="Portal",GP=g.forwardRef((e,t)=>{var u;const{container:r,...n}=e,[i,o]=g.useState(!1);Ys(()=>o(!0),[]);const s=r||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return s?_f.createPortal(w.jsx(Wt.div,{...n,ref:t}),s):null});GP.displayName=pD;function mD(e,t){return g.useReducer((r,n)=>t[r][n]??r,e)}var jf=e=>{const{present:t,children:r}=e,n=vD(t),i=typeof r=="function"?r({present:n.isPresent}):g.Children.only(r),o=yD(n.ref,gD(i));return typeof r=="function"||n.isPresent?g.cloneElement(i,{ref:o}):null};jf.displayName="Presence";function vD(e){const[t,r]=g.useState(),n=g.useRef(null),i=g.useRef(e),o=g.useRef("none"),s=e?"mounted":"unmounted",[u,d]=mD(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const f=Gc(n.current);o.current=u==="mounted"?f:"none"},[u]),Ys(()=>{const f=n.current,h=i.current;if(h!==e){const v=o.current,x=Gc(f);e?d("MOUNT"):x==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(h&&v!==x?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),Ys(()=>{if(t){let f;const h=t.ownerDocument.defaultView??window,m=x=>{const S=Gc(n.current).includes(CSS.escape(x.animationName));if(x.target===t&&S&&(d("ANIMATION_END"),!i.current)){const E=t.style.animationFillMode;t.style.animationFillMode="forwards",f=h.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=E)})}},v=x=>{x.target===t&&(o.current=Gc(n.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{h.clearTimeout(f),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:g.useCallback(f=>{n.current=f?getComputedStyle(f):null,r(f)},[])}}function ew(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function yD(...e){const t=g.useRef(e);return t.current=e,g.useCallback(r=>{const n=t.current;let i=!1;const o=n.map(s=>{const u=ew(s,r);return!i&&typeof u=="function"&&(i=!0),u});if(i)return()=>{for(let s=0;s{mn||(mn={start:tw(),end:tw()});const{start:e,end:t}=mn;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Yc++,()=>{Yc===1&&(mn==null||mn.start.remove(),mn==null||mn.end.remove(),mn=null),Yc=Math.max(0,Yc-1)}},[])}function tw(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Sn=function(){return Sn=Object.assign||function(t){for(var r,n=1,i=arguments.length;n"u")return RD;var t=$D(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},zD=ZP(),Vo="data-scroll-locked",FD=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,u=e.gap;return r===void 0&&(r="margin"),` - .`.concat(wD,` { - overflow: hidden `).concat(n,`; - padding-right: `).concat(u,"px ").concat(n,`; - } - body[`).concat(Vo,`] { - overflow: hidden `).concat(n,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(s,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(n,`; - `),r==="padding"&&"padding-right: ".concat(u,"px ").concat(n,";")].filter(Boolean).join(""),` - } - - .`).concat(vd,` { - right: `).concat(u,"px ").concat(n,`; - } - - .`).concat(yd,` { - margin-right: `).concat(u,"px ").concat(n,`; - } - - .`).concat(vd," .").concat(vd,` { - right: 0 `).concat(n,`; - } - - .`).concat(yd," .").concat(yd,` { - margin-right: 0 `).concat(n,`; - } - - body[`).concat(Vo,`] { - `).concat(SD,": ").concat(u,`px; - } -`)},nw=function(){var e=parseInt(document.body.getAttribute(Vo)||"0",10);return isFinite(e)?e:0},BD=function(){g.useEffect(function(){return document.body.setAttribute(Vo,(nw()+1).toString()),function(){var e=nw()-1;e<=0?document.body.removeAttribute(Vo):document.body.setAttribute(Vo,e.toString())}},[])},UD=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;BD();var o=g.useMemo(function(){return LD(i)},[i]);return g.createElement(zD,{styles:FD(o,!t,i,r?"":"!important")})},jv=!1;if(typeof window<"u")try{var Qc=Object.defineProperty({},"passive",{get:function(){return jv=!0,!0}});window.addEventListener("test",Qc,Qc),window.removeEventListener("test",Qc,Qc)}catch{jv=!1}var Oo=jv?{passive:!1}:!1,WD=function(e){return e.tagName==="TEXTAREA"},JP=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!WD(e)&&r[t]==="visible")},HD=function(e){return JP(e,"overflowY")},KD=function(e){return JP(e,"overflowX")},iw=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=eA(e,n);if(i){var o=tA(e,n),s=o[1],u=o[2];if(s>u)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},VD=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},qD=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},eA=function(e,t){return e==="v"?HD(t):KD(t)},tA=function(e,t){return e==="v"?VD(t):qD(t)},GD=function(e,t){return e==="h"&&t==="rtl"?-1:1},YD=function(e,t,r,n,i){var o=GD(e,window.getComputedStyle(t).direction),s=o*n,u=r.target,d=t.contains(u),f=!1,h=s>0,m=0,v=0;do{if(!u)break;var x=tA(e,u),k=x[0],S=x[1],E=x[2],P=S-E-o*k;(k||P)&&eA(e,u)&&(m+=P,v+=k);var O=u.parentNode;u=O&&O.nodeType===Node.DOCUMENT_FRAGMENT_NODE?O.host:O}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(h&&Math.abs(m)<1||!h&&Math.abs(v)<1)&&(f=!0),f},Xc=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aw=function(e){return[e.deltaX,e.deltaY]},ow=function(e){return e&&"current"in e?e.current:e},QD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},XD=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},ZD=0,Co=[];function JD(e){var t=g.useRef([]),r=g.useRef([0,0]),n=g.useRef(),i=g.useState(ZD++)[0],o=g.useState(ZP)[0],s=g.useRef(e);g.useEffect(function(){s.current=e},[e]),g.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var S=bD([e.lockRef.current],(e.shards||[]).map(ow),!0).filter(Boolean);return S.forEach(function(E){return E.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),S.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=g.useCallback(function(S,E){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!s.current.allowPinchZoom;var P=Xc(S),O=r.current,j="deltaX"in S?S.deltaX:O[0]-P[0],_="deltaY"in S?S.deltaY:O[1]-P[1],N,C=S.target,D=Math.abs(j)>Math.abs(_)?"h":"v";if("touches"in S&&D==="h"&&C.type==="range")return!1;var F=window.getSelection(),z=F&&F.anchorNode,q=z?z===C||z.contains(C):!1;if(q)return!1;var X=iw(D,C);if(!X)return!0;if(X?N=D:(N=D==="v"?"h":"v",X=iw(D,C)),!X)return!1;if(!n.current&&"changedTouches"in S&&(j||_)&&(n.current=N),!N)return!0;var B=n.current||N;return YD(B,E,S,B==="h"?j:_)},[]),d=g.useCallback(function(S){var E=S;if(!(!Co.length||Co[Co.length-1]!==o)){var P="deltaY"in E?aw(E):Xc(E),O=t.current.filter(function(N){return N.name===E.type&&(N.target===E.target||E.target===N.shadowParent)&&QD(N.delta,P)})[0];if(O&&O.should){E.cancelable&&E.preventDefault();return}if(!O){var j=(s.current.shards||[]).map(ow).filter(Boolean).filter(function(N){return N.contains(E.target)}),_=j.length>0?u(E,j[0]):!s.current.noIsolation;_&&E.cancelable&&E.preventDefault()}}},[]),f=g.useCallback(function(S,E,P,O){var j={name:S,delta:E,target:P,should:O,shadowParent:eR(P)};t.current.push(j),setTimeout(function(){t.current=t.current.filter(function(_){return _!==j})},1)},[]),h=g.useCallback(function(S){r.current=Xc(S),n.current=void 0},[]),m=g.useCallback(function(S){f(S.type,aw(S),S.target,u(S,e.lockRef.current))},[]),v=g.useCallback(function(S){f(S.type,Xc(S),S.target,u(S,e.lockRef.current))},[]);g.useEffect(function(){return Co.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",d,Oo),document.addEventListener("touchmove",d,Oo),document.addEventListener("touchstart",h,Oo),function(){Co=Co.filter(function(S){return S!==o}),document.removeEventListener("wheel",d,Oo),document.removeEventListener("touchmove",d,Oo),document.removeEventListener("touchstart",h,Oo)}},[]);var x=e.removeScrollBar,k=e.inert;return g.createElement(g.Fragment,null,k?g.createElement(o,{styles:XD(i)}):null,x?g.createElement(UD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function eR(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const tR=_D(XP,JD);var rA=g.forwardRef(function(e,t){return g.createElement(Nf,Sn({},e,{ref:t,sideCar:tR}))});rA.classNames=Nf.classNames;var rR=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},_o=new WeakMap,Zc=new WeakMap,Jc={},Cm=0,nA=function(e){return e&&(e.host||nA(e.parentNode))},nR=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=nA(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},iR=function(e,t,r,n){var i=nR(t,Array.isArray(e)?e:[e]);Jc[r]||(Jc[r]=new WeakMap);var o=Jc[r],s=[],u=new Set,d=new Set(i),f=function(m){!m||u.has(m)||(u.add(m),f(m.parentNode))};i.forEach(f);var h=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(v){if(u.has(v))h(v);else try{var x=v.getAttribute(n),k=x!==null&&x!=="false",S=(_o.get(v)||0)+1,E=(o.get(v)||0)+1;_o.set(v,S),o.set(v,E),s.push(v),S===1&&k&&Zc.set(v,!0),E===1&&v.setAttribute(r,"true"),k||v.setAttribute(n,"true")}catch(P){console.error("aria-hidden: cannot operate on ",v,P)}})};return h(t),u.clear(),Cm++,function(){s.forEach(function(m){var v=_o.get(m)-1,x=o.get(m)-1;_o.set(m,v),o.set(m,x),v||(Zc.has(m)||m.removeAttribute(n),Zc.delete(m)),x||m.removeAttribute(r)}),Cm--,Cm||(_o=new WeakMap,_o=new WeakMap,Zc=new WeakMap,Jc={})}},aR=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=rR(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),iR(n,i,r,"aria-hidden")):function(){return null}},If="Dialog",[iA]=MT(If),[oR,sn]=iA(If),aA=e=>{const{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,u=g.useRef(null),d=g.useRef(null),[f,h]=LT({prop:n,defaultProp:i??!1,onChange:o,caller:If});return w.jsx(oR,{scope:t,triggerRef:u,contentRef:d,contentId:Xn(),titleId:Xn(),descriptionId:Xn(),open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),modal:s,children:r})};aA.displayName=If;var oA="DialogTrigger",lR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(oA,r),o=Xa(t,i.triggerRef);return w.jsx(Wt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":qy(i.open),...n,ref:o,onClick:Qi(e.onClick,i.onOpenToggle)})});lR.displayName=oA;var Vy="DialogPortal",[sR,lA]=iA(Vy,{forceMount:void 0}),sA=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=sn(Vy,t);return w.jsx(sR,{scope:t,forceMount:r,children:g.Children.map(n,s=>w.jsx(jf,{present:r||o.open,children:w.jsx(GP,{asChild:!0,container:i,children:s})}))})};sA.displayName=Vy;var Od="DialogOverlay",uA=g.forwardRef((e,t)=>{const r=lA(Od,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(Od,e.__scopeDialog);return o.modal?w.jsx(jf,{present:n||o.open,children:w.jsx(cR,{...i,ref:t})}):null});uA.displayName=Od;var uR=WP("DialogOverlay.RemoveScroll"),cR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(Od,r),o=iD(),s=Xa(t,o);return w.jsx(rA,{as:uR,allowPinchZoom:!0,shards:[i.contentRef],children:w.jsx(Wt.div,{"data-state":qy(i.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})}),dl="DialogContent",cA=g.forwardRef((e,t)=>{const r=lA(dl,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(dl,e.__scopeDialog);return w.jsx(jf,{present:n||o.open,children:o.modal?w.jsx(dR,{...i,ref:t}):w.jsx(fR,{...i,ref:t})})});cA.displayName=dl;var dR=g.forwardRef((e,t)=>{const r=sn(dl,e.__scopeDialog),n=g.useRef(null),i=Xa(t,r.contentRef,n);return g.useEffect(()=>{const o=n.current;if(o)return aR(o)},[]),w.jsx(dA,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Qi(e.onCloseAutoFocus,o=>{var s;o.preventDefault(),(s=r.triggerRef.current)==null||s.focus()}),onPointerDownOutside:Qi(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0;(s.button===2||u)&&o.preventDefault()}),onFocusOutside:Qi(e.onFocusOutside,o=>o.preventDefault())})}),fR=g.forwardRef((e,t)=>{const r=sn(dl,e.__scopeDialog),n=g.useRef(!1),i=g.useRef(!1);return w.jsx(dA,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var s,u;(s=e.onCloseAutoFocus)==null||s.call(e,o),o.defaultPrevented||(n.current||(u=r.triggerRef.current)==null||u.focus(),o.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:o=>{var d,f;(d=e.onInteractOutside)==null||d.call(e,o),o.defaultPrevented||(n.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const s=o.target;((f=r.triggerRef.current)==null?void 0:f.contains(s))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),dA=g.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,u=sn(dl,r);return xD(),w.jsx(w.Fragment,{children:w.jsx(VP,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o,children:w.jsx(HP,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":qy(u.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),fA="DialogTitle",hR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(fA,r);return w.jsx(Wt.h2,{id:i.titleId,...n,ref:t})});hR.displayName=fA;var hA="DialogDescription",pR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(hA,r);return w.jsx(Wt.p,{id:i.descriptionId,...n,ref:t})});pR.displayName=hA;var pA="DialogClose",mR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(pA,r);return w.jsx(Wt.button,{type:"button",...n,ref:t,onClick:Qi(e.onClick,()=>i.onOpenChange(!1))})});mR.displayName=pA;function qy(e){return e?"open":"closed"}var ws='[cmdk-group=""]',_m='[cmdk-group-items=""]',vR='[cmdk-group-heading=""]',mA='[cmdk-item=""]',lw=`${mA}:not([aria-disabled="true"])`,Nv="cmdk-item-select",zo="data-value",yR=(e,t,r)=>IT(e,t,r),vA=g.createContext(void 0),xu=()=>g.useContext(vA),yA=g.createContext(void 0),Gy=()=>g.useContext(yA),gA=g.createContext(void 0),xA=g.forwardRef((e,t)=>{let r=Fo(()=>{var M,J;return{search:"",value:(J=(M=e.value)!=null?M:e.defaultValue)!=null?J:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=Fo(()=>new Set),i=Fo(()=>new Map),o=Fo(()=>new Map),s=Fo(()=>new Set),u=bA(e),{label:d,children:f,value:h,onValueChange:m,filter:v,shouldFilter:x,loop:k,disablePointerSelection:S=!1,vimBindings:E=!0,...P}=e,O=Xn(),j=Xn(),_=Xn(),N=g.useRef(null),C=CR();Ua(()=>{if(h!==void 0){let M=h.trim();r.current.value=M,D.emit()}},[h]),Ua(()=>{C(6,ue)},[]);let D=g.useMemo(()=>({subscribe:M=>(s.current.add(M),()=>s.current.delete(M)),snapshot:()=>r.current,setState:(M,J,se)=>{var te,ce,ye,_e;if(!Object.is(r.current[M],J)){if(r.current[M]=J,M==="search")B(),q(),C(1,X);else if(M==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(_);Z?Z.focus():(te=document.getElementById(O))==null||te.focus()}if(C(7,()=>{var Z;r.current.selectedItemId=(Z=Y())==null?void 0:Z.id,D.emit()}),se||C(5,ue),((ce=u.current)==null?void 0:ce.value)!==void 0){let Z=J??"";(_e=(ye=u.current).onValueChange)==null||_e.call(ye,Z);return}}D.emit()}},emit:()=>{s.current.forEach(M=>M())}}),[]),F=g.useMemo(()=>({value:(M,J,se)=>{var te;J!==((te=o.current.get(M))==null?void 0:te.value)&&(o.current.set(M,{value:J,keywords:se}),r.current.filtered.items.set(M,z(J,se)),C(2,()=>{q(),D.emit()}))},item:(M,J)=>(n.current.add(M),J&&(i.current.has(J)?i.current.get(J).add(M):i.current.set(J,new Set([M]))),C(3,()=>{B(),q(),r.current.value||X(),D.emit()}),()=>{o.current.delete(M),n.current.delete(M),r.current.filtered.items.delete(M);let se=Y();C(4,()=>{B(),(se==null?void 0:se.getAttribute("id"))===M&&X(),D.emit()})}),group:M=>(i.current.has(M)||i.current.set(M,new Set),()=>{o.current.delete(M),i.current.delete(M)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:O,inputId:_,labelId:j,listInnerRef:N}),[]);function z(M,J){var se,te;let ce=(te=(se=u.current)==null?void 0:se.filter)!=null?te:yR;return M?ce(M,r.current.search,J):0}function q(){if(!r.current.search||u.current.shouldFilter===!1)return;let M=r.current.filtered.items,J=[];r.current.filtered.groups.forEach(te=>{let ce=i.current.get(te),ye=0;ce.forEach(_e=>{let Z=M.get(_e);ye=Math.max(Z,ye)}),J.push([te,ye])});let se=N.current;le().sort((te,ce)=>{var ye,_e;let Z=te.getAttribute("id"),we=ce.getAttribute("id");return((ye=M.get(we))!=null?ye:0)-((_e=M.get(Z))!=null?_e:0)}).forEach(te=>{let ce=te.closest(_m);ce?ce.appendChild(te.parentElement===ce?te:te.closest(`${_m} > *`)):se.appendChild(te.parentElement===se?te:te.closest(`${_m} > *`))}),J.sort((te,ce)=>ce[1]-te[1]).forEach(te=>{var ce;let ye=(ce=N.current)==null?void 0:ce.querySelector(`${ws}[${zo}="${encodeURIComponent(te[0])}"]`);ye==null||ye.parentElement.appendChild(ye)})}function X(){let M=le().find(se=>se.getAttribute("aria-disabled")!=="true"),J=M==null?void 0:M.getAttribute(zo);D.setState("value",J||void 0)}function B(){var M,J,se,te;if(!r.current.search||u.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let ce=0;for(let ye of n.current){let _e=(J=(M=o.current.get(ye))==null?void 0:M.value)!=null?J:"",Z=(te=(se=o.current.get(ye))==null?void 0:se.keywords)!=null?te:[],we=z(_e,Z);r.current.filtered.items.set(ye,we),we>0&&ce++}for(let[ye,_e]of i.current)for(let Z of _e)if(r.current.filtered.items.get(Z)>0){r.current.filtered.groups.add(ye);break}r.current.filtered.count=ce}function ue(){var M,J,se;let te=Y();te&&(((M=te.parentElement)==null?void 0:M.firstChild)===te&&((se=(J=te.closest(ws))==null?void 0:J.querySelector(vR))==null||se.scrollIntoView({block:"nearest"})),te.scrollIntoView({block:"nearest"}))}function Y(){var M;return(M=N.current)==null?void 0:M.querySelector(`${mA}[aria-selected="true"]`)}function le(){var M;return Array.from(((M=N.current)==null?void 0:M.querySelectorAll(lw))||[])}function fe(M){let J=le()[M];J&&D.setState("value",J.getAttribute(zo))}function de(M){var J;let se=Y(),te=le(),ce=te.findIndex(_e=>_e===se),ye=te[ce+M];(J=u.current)!=null&&J.loop&&(ye=ce+M<0?te[te.length-1]:ce+M===te.length?te[0]:te[ce+M]),ye&&D.setState("value",ye.getAttribute(zo))}function K(M){let J=Y(),se=J==null?void 0:J.closest(ws),te;for(;se&&!te;)se=M>0?AR(se,ws):OR(se,ws),te=se==null?void 0:se.querySelector(lw);te?D.setState("value",te.getAttribute(zo)):de(M)}let ie=()=>fe(le().length-1),Q=M=>{M.preventDefault(),M.metaKey?ie():M.altKey?K(1):de(1)},R=M=>{M.preventDefault(),M.metaKey?fe(0):M.altKey?K(-1):de(-1)};return g.createElement(Wt.div,{ref:t,tabIndex:-1,...P,"cmdk-root":"",onKeyDown:M=>{var J;(J=P.onKeyDown)==null||J.call(P,M);let se=M.nativeEvent.isComposing||M.keyCode===229;if(!(M.defaultPrevented||se))switch(M.key){case"n":case"j":{E&&M.ctrlKey&&Q(M);break}case"ArrowDown":{Q(M);break}case"p":case"k":{E&&M.ctrlKey&&R(M);break}case"ArrowUp":{R(M);break}case"Home":{M.preventDefault(),fe(0);break}case"End":{M.preventDefault(),ie();break}case"Enter":{M.preventDefault();let te=Y();if(te){let ce=new Event(Nv);te.dispatchEvent(ce)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:F.inputId,id:F.labelId,style:jR},d),Mf(e,M=>g.createElement(yA.Provider,{value:D},g.createElement(vA.Provider,{value:F},M))))}),gR=g.forwardRef((e,t)=>{var r,n;let i=Xn(),o=g.useRef(null),s=g.useContext(gA),u=xu(),d=bA(e),f=(n=(r=d.current)==null?void 0:r.forceMount)!=null?n:s==null?void 0:s.forceMount;Ua(()=>{if(!f)return u.item(i,s==null?void 0:s.id)},[f]);let h=wA(i,o,[e.value,e.children,o],e.keywords),m=Gy(),v=Ji(C=>C.value&&C.value===h.current),x=Ji(C=>f||u.filter()===!1?!0:C.search?C.filtered.items.get(i)>0:!0);g.useEffect(()=>{let C=o.current;if(!(!C||e.disabled))return C.addEventListener(Nv,k),()=>C.removeEventListener(Nv,k)},[x,e.onSelect,e.disabled]);function k(){var C,D;S(),(D=(C=d.current).onSelect)==null||D.call(C,h.current)}function S(){m.setState("value",h.current,!0)}if(!x)return null;let{disabled:E,value:P,onSelect:O,forceMount:j,keywords:_,...N}=e;return g.createElement(Wt.div,{ref:cl(o,t),...N,id:i,"cmdk-item":"",role:"option","aria-disabled":!!E,"aria-selected":!!v,"data-disabled":!!E,"data-selected":!!v,onPointerMove:E||u.getDisablePointerSelection()?void 0:S,onClick:E?void 0:k},e.children)}),xR=g.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:i,...o}=e,s=Xn(),u=g.useRef(null),d=g.useRef(null),f=Xn(),h=xu(),m=Ji(x=>i||h.filter()===!1?!0:x.search?x.filtered.groups.has(s):!0);Ua(()=>h.group(s),[]),wA(s,u,[e.value,e.heading,d]);let v=g.useMemo(()=>({id:s,forceMount:i}),[i]);return g.createElement(Wt.div,{ref:cl(u,t),...o,"cmdk-group":"",role:"presentation",hidden:m?void 0:!0},r&&g.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},r),Mf(e,x=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},g.createElement(gA.Provider,{value:v},x))))}),bR=g.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,i=g.useRef(null),o=Ji(s=>!s.search);return!r&&!o?null:g.createElement(Wt.div,{ref:cl(i,t),...n,"cmdk-separator":"",role:"separator"})}),wR=g.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,i=e.value!=null,o=Gy(),s=Ji(f=>f.search),u=Ji(f=>f.selectedItemId),d=xu();return g.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),g.createElement(Wt.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:i?e.value:s,onChange:f=>{i||o.setState("search",f.target.value),r==null||r(f.target.value)}})}),SR=g.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...i}=e,o=g.useRef(null),s=g.useRef(null),u=Ji(f=>f.selectedItemId),d=xu();return g.useEffect(()=>{if(s.current&&o.current){let f=s.current,h=o.current,m,v=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let x=f.offsetHeight;h.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return v.observe(f),()=>{cancelAnimationFrame(m),v.unobserve(f)}}},[]),g.createElement(Wt.div,{ref:cl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":n,id:d.listId},Mf(e,f=>g.createElement("div",{ref:cl(s,d.listInnerRef),"cmdk-list-sizer":""},f)))}),kR=g.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:i,contentClassName:o,container:s,...u}=e;return g.createElement(aA,{open:r,onOpenChange:n},g.createElement(sA,{container:s},g.createElement(uA,{"cmdk-overlay":"",className:i}),g.createElement(cA,{"aria-label":e.label,"cmdk-dialog":"",className:o},g.createElement(xA,{ref:t,...u}))))}),ER=g.forwardRef((e,t)=>Ji(r=>r.filtered.count===0)?g.createElement(Wt.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),PR=g.forwardRef((e,t)=>{let{progress:r,children:n,label:i="Loading...",...o}=e;return g.createElement(Wt.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Mf(e,s=>g.createElement("div",{"aria-hidden":!0},s)))}),jo=Object.assign(xA,{List:SR,Item:gR,Input:wR,Group:xR,Separator:bR,Dialog:kR,Empty:ER,Loading:PR});function AR(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function OR(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function bA(e){let t=g.useRef(e);return Ua(()=>{t.current=e}),t}var Ua=typeof window>"u"?g.useEffect:g.useLayoutEffect;function Fo(e){let t=g.useRef();return t.current===void 0&&(t.current=e()),t}function Ji(e){let t=Gy(),r=()=>e(t.snapshot());return g.useSyncExternalStore(t.subscribe,r,r)}function wA(e,t,r,n=[]){let i=g.useRef(),o=xu();return Ua(()=>{var s;let u=(()=>{var f;for(let h of r){if(typeof h=="string")return h.trim();if(typeof h=="object"&&"current"in h)return h.current?(f=h.current.textContent)==null?void 0:f.trim():i.current}})(),d=n.map(f=>f.trim());o.value(e,u,d),(s=t.current)==null||s.setAttribute(zo,u),i.current=u}),i}var CR=()=>{let[e,t]=g.useState(),r=Fo(()=>new Map);return Ua(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,i)=>{r.current.set(n,i),t({})}};function _R(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Mf({asChild:e,children:t},r){return e&&g.isValidElement(t)?g.cloneElement(_R(t),{ref:t.ref},r(t.props.children)):r(t)}var jR={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function NR({onNavigate:e}){const[t,r]=g.useState(!1);return g.useEffect(()=>{const n=i=>{(i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="k"&&(i.preventDefault(),r(o=>!o))};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[]),w.jsx(jo.Dialog,{open:t,onOpenChange:r,label:"Befehlspalette",className:"fixed inset-0 z-50 flex items-start justify-center bg-black/50 p-4 pt-[12vh] overscroll-contain",onClick:()=>r(!1),children:w.jsxs("div",{className:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:n=>n.stopPropagation(),children:[w.jsx(jo.Input,{autoFocus:!0,placeholder:"Springe zu… (Modelle, Routing, System …)",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground"}),w.jsxs(jo.List,{className:"max-h-80 overflow-y-auto p-2",children:[w.jsx(jo.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),w.jsx(jo.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Ko.map(n=>w.jsxs(jo.Item,{value:`${n.label} ${n.hint}`,onSelect:()=>{e(n.id),r(!1)},className:"flex cursor-pointer items-center gap-3 rounded-md px-3 py-2 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",children:[w.jsx(n.icon,{className:"h-4 w-4 text-primary"}),w.jsx("span",{children:n.label}),w.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:n.hint})]},n.id))})]})]})})}const SA="mc_expert_mode",Iv="mc-expert-mode-change",IR=()=>{try{return localStorage.getItem(SA)==="true"}catch{return!1}};function MR(e){return window.addEventListener(Iv,e),window.addEventListener("storage",e),()=>{window.removeEventListener(Iv,e),window.removeEventListener("storage",e)}}function sw(e){localStorage.setItem(SA,String(e)),window.dispatchEvent(new Event(Iv))}function TR(){return g.useSyncExternalStore(MR,IR,()=>!1)}function kA(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t{const t=$R(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{const u=s.split(Yy);return u[0]===""&&u.length!==1&&u.shift(),EA(u,t)||RR(s)},getConflictingClassGroupIds:(s,u)=>{const d=r[s]||[];return u&&n[s]?[...d,...n[s]]:d}}},EA=(e,t)=>{var s;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),i=n?EA(e.slice(1),n):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(Yy);return(s=t.validators.find(({validator:u})=>u(o)))==null?void 0:s.classGroupId},uw=/^\[(.+)\]$/,RR=e=>{if(uw.test(e)){const t=uw.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},$R=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return zR(Object.entries(e.classGroups),r).forEach(([o,s])=>{Mv(s,n,o,t)}),n},Mv=(e,t,r,n)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:cw(t,i);o.classGroupId=r;return}if(typeof i=="function"){if(LR(i)){Mv(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([o,s])=>{Mv(s,cw(t,o),r,n)})})},cw=(e,t)=>{let r=e;return t.split(Yy).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},LR=e=>e.isThemeGetter,zR=(e,t)=>t?e.map(([r,n])=>{const i=n.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([s,u])=>[t+s,u])):o);return[r,i]}):e,FR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;const i=(o,s)=>{r.set(o,s),t++,t>e&&(t=0,n=r,r=new Map)};return{get(o){let s=r.get(o);if(s!==void 0)return s;if((s=n.get(o))!==void 0)return i(o,s),s},set(o,s){r.has(o)?r.set(o,s):i(o,s)}}},PA="!",BR=e=>{const{separator:t,experimentalParseClassName:r}=e,n=t.length===1,i=t[0],o=t.length,s=u=>{const d=[];let f=0,h=0,m;for(let E=0;Eh?m-h:void 0;return{modifiers:d,hasImportantModifier:x,baseClassName:k,maybePostfixModifierPosition:S}};return r?u=>r({className:u,parseClassName:s}):s},UR=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t},WR=e=>({cache:FR(e.cacheSize),parseClassName:BR(e),...DR(e)}),HR=/\s+/,KR=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,o=[],s=e.trim().split(HR);let u="";for(let d=s.length-1;d>=0;d-=1){const f=s[d],{modifiers:h,hasImportantModifier:m,baseClassName:v,maybePostfixModifierPosition:x}=r(f);let k=!!x,S=n(k?v.substring(0,x):v);if(!S){if(!k){u=f+(u.length>0?" "+u:u);continue}if(S=n(v),!S){u=f+(u.length>0?" "+u:u);continue}k=!1}const E=UR(h).join(":"),P=m?E+PA:E,O=P+S;if(o.includes(O))continue;o.push(O);const j=i(S,k);for(let _=0;_0?" "+u:u)}return u};function VR(){let e=0,t,r,n="";for(;e{if(typeof e=="string")return e;let t,r="";for(let n=0;nm(h),e());return r=WR(f),n=r.cache.get,i=r.cache.set,o=u,u(d)}function u(d){const f=n(d);if(f)return f;const h=KR(d,r);return i(d,h),h}return function(){return o(VR.apply(null,arguments))}}const et=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},OA=/^\[(?:([a-z-]+):)?(.+)\]$/i,GR=/^\d+\/\d+$/,YR=new Set(["px","full","screen"]),QR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,JR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Un=e=>qo(e)||YR.has(e)||GR.test(e),Ii=e=>Sl(e,"length",s3),qo=e=>!!e&&!Number.isNaN(Number(e)),jm=e=>Sl(e,"number",qo),Ss=e=>!!e&&Number.isInteger(Number(e)),t3=e=>e.endsWith("%")&&qo(e.slice(0,-1)),Me=e=>OA.test(e),Mi=e=>QR.test(e),r3=new Set(["length","size","percentage"]),n3=e=>Sl(e,r3,CA),i3=e=>Sl(e,"position",CA),a3=new Set(["image","url"]),o3=e=>Sl(e,a3,c3),l3=e=>Sl(e,"",u3),ks=()=>!0,Sl=(e,t,r)=>{const n=OA.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},s3=e=>XR.test(e)&&!ZR.test(e),CA=()=>!1,u3=e=>JR.test(e),c3=e=>e3.test(e),d3=()=>{const e=et("colors"),t=et("spacing"),r=et("blur"),n=et("brightness"),i=et("borderColor"),o=et("borderRadius"),s=et("borderSpacing"),u=et("borderWidth"),d=et("contrast"),f=et("grayscale"),h=et("hueRotate"),m=et("invert"),v=et("gap"),x=et("gradientColorStops"),k=et("gradientColorStopPositions"),S=et("inset"),E=et("margin"),P=et("opacity"),O=et("padding"),j=et("saturate"),_=et("scale"),N=et("sepia"),C=et("skew"),D=et("space"),F=et("translate"),z=()=>["auto","contain","none"],q=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto",Me,t],B=()=>[Me,t],ue=()=>["",Un,Ii],Y=()=>["auto",qo,Me],le=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],fe=()=>["solid","dashed","dotted","double","none"],de=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>["start","end","center","between","around","evenly","stretch"],ie=()=>["","0",Me],Q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>[qo,Me];return{cacheSize:500,separator:":",theme:{colors:[ks],spacing:[Un,Ii],blur:["none","",Mi,Me],brightness:R(),borderColor:[e],borderRadius:["none","","full",Mi,Me],borderSpacing:B(),borderWidth:ue(),contrast:R(),grayscale:ie(),hueRotate:R(),invert:ie(),gap:B(),gradientColorStops:[e],gradientColorStopPositions:[t3,Ii],inset:X(),margin:X(),opacity:R(),padding:B(),saturate:R(),scale:R(),sepia:ie(),skew:R(),space:B(),translate:B()},classGroups:{aspect:[{aspect:["auto","square","video",Me]}],container:["container"],columns:[{columns:[Mi]}],"break-after":[{"break-after":Q()}],"break-before":[{"break-before":Q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...le(),Me]}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[S]}],"inset-x":[{"inset-x":[S]}],"inset-y":[{"inset-y":[S]}],start:[{start:[S]}],end:[{end:[S]}],top:[{top:[S]}],right:[{right:[S]}],bottom:[{bottom:[S]}],left:[{left:[S]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ss,Me]}],basis:[{basis:X()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Me]}],grow:[{grow:ie()}],shrink:[{shrink:ie()}],order:[{order:["first","last","none",Ss,Me]}],"grid-cols":[{"grid-cols":[ks]}],"col-start-end":[{col:["auto",{span:["full",Ss,Me]},Me]}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":[ks]}],"row-start-end":[{row:["auto",{span:[Ss,Me]},Me]}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Me]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Me]}],gap:[{gap:[v]}],"gap-x":[{"gap-x":[v]}],"gap-y":[{"gap-y":[v]}],"justify-content":[{justify:["normal",...K()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...K(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...K(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[E]}],mx:[{mx:[E]}],my:[{my:[E]}],ms:[{ms:[E]}],me:[{me:[E]}],mt:[{mt:[E]}],mr:[{mr:[E]}],mb:[{mb:[E]}],ml:[{ml:[E]}],"space-x":[{"space-x":[D]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[D]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Me,t]}],"min-w":[{"min-w":[Me,t,"min","max","fit"]}],"max-w":[{"max-w":[Me,t,"none","full","min","max","fit","prose",{screen:[Mi]},Mi]}],h:[{h:[Me,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Me,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Mi,Ii]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",jm]}],"font-family":[{font:[ks]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Me]}],"line-clamp":[{"line-clamp":["none",qo,jm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Un,Me]}],"list-image":[{"list-image":["none",Me]}],"list-style-type":[{list:["none","disc","decimal",Me]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[P]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[P]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Un,Ii]}],"underline-offset":[{"underline-offset":["auto",Un,Me]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[P]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...le(),i3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",n3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},o3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[x]}],"gradient-via":[{via:[x]}],"gradient-to":[{to:[x]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[u]}],"border-w-x":[{"border-x":[u]}],"border-w-y":[{"border-y":[u]}],"border-w-s":[{"border-s":[u]}],"border-w-e":[{"border-e":[u]}],"border-w-t":[{"border-t":[u]}],"border-w-r":[{"border-r":[u]}],"border-w-b":[{"border-b":[u]}],"border-w-l":[{"border-l":[u]}],"border-opacity":[{"border-opacity":[P]}],"border-style":[{border:[...fe(),"hidden"]}],"divide-x":[{"divide-x":[u]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[u]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[P]}],"divide-style":[{divide:fe()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...fe()]}],"outline-offset":[{"outline-offset":[Un,Me]}],"outline-w":[{outline:[Un,Ii]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ue()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[P]}],"ring-offset-w":[{"ring-offset":[Un,Ii]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Mi,l3]}],"shadow-color":[{shadow:[ks]}],opacity:[{opacity:[P]}],"mix-blend":[{"mix-blend":[...de(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":de()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Mi,Me]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[j]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[P]}],"backdrop-saturate":[{"backdrop-saturate":[j]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Me]}],duration:[{duration:R()}],ease:[{ease:["linear","in","out","in-out",Me]}],delay:[{delay:R()}],animate:[{animate:["none","spin","ping","pulse","bounce",Me]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[_]}],"scale-x":[{"scale-x":[_]}],"scale-y":[{"scale-y":[_]}],rotate:[{rotate:[Ss,Me]}],"translate-x":[{"translate-x":[F]}],"translate-y":[{"translate-y":[F]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Me]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Me]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Me]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Un,Ii,jm]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},f3=qR(d3);function De(...e){return f3(Qe(e))}function OQ(e){return e?e.replace(/127\.0\.0\.1|localhost/g,"192.168.178.151"):""}function h3(){const e=TR();return w.jsxs("div",{className:"flex items-center rounded-md border border-border/40 bg-background/40 p-0.5",role:"group","aria-label":"Ansichtsmodus",title:"Einfach zeigt nur das Wichtigste. Experte zeigt alle technischen Details.",children:[w.jsxs("button",{onClick:()=>sw(!1),"aria-pressed":!e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"text-muted-foreground hover:text-foreground":"bg-primary/15 text-primary shadow-sm"),children:[w.jsx(bT,{className:"h-3.5 w-3.5"})," Einfach"]}),w.jsxs("button",{onClick:()=>sw(!0),"aria-pressed":e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"bg-primary/15 text-primary shadow-sm":"text-muted-foreground hover:text-foreground"),children:[w.jsx(xT,{className:"h-3.5 w-3.5"})," Experte"]})]})}async function Te(e,t){var d;const r={"Content-Type":"application/json",...t==null?void 0:t.headers},n=((d=t==null?void 0:t.method)==null?void 0:d.toUpperCase())||"GET",i=n==="GET"?null:localStorage.getItem("mc_sudo_password"),o=n==="GET"?null:localStorage.getItem("mc_hf_token");i&&(r["X-Sudo-Password"]=i);let s=t==null?void 0:t.body;if(n==="POST"){if(typeof s=="string")try{const f=JSON.parse(s);let h=!1;i&&!("sudo_password"in f)&&(f.sudo_password=i,h=!0),o&&!("hf_token"in f)&&(f.hf_token=o,h=!0),h&&(s=JSON.stringify(f))}catch{}else if(!s){const f={};i&&(f.sudo_password=i),o&&(f.hf_token=o),Object.keys(f).length>0&&(s=JSON.stringify(f))}}const u=await fetch(e,{...t,headers:r,body:s});if(!u.ok)throw new Error(`${u.status} ${u.statusText}`);return u.json()}const CQ=(e,t,r=!1,n=!0)=>Te("/api/groups",{method:"PUT",body:JSON.stringify({group:e,members:t,swap:r,persist:n})}),_Q=e=>Te("/api/routing/policy",{method:"PUT",body:JSON.stringify(e)});function p3({type:e,title:t,message:r,defaultValue:n,autoValue:i,autoLabel:o,onConfirm:s,onCancel:u}){const d=g.useRef(null);return w.jsx("div",{className:"fixed inset-0 z-[99] bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 overscroll-contain",role:"dialog","aria-modal":"true","aria-label":t,children:w.jsxs("div",{className:"w-full max-w-sm rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[w.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:t}),w.jsx("button",{onClick:u||(()=>s()),"aria-label":"Schließen",className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"max-h-72 overflow-y-auto whitespace-pre-line text-xs text-muted-foreground leading-relaxed scrollbar-thin",children:r}),e==="prompt"&&w.jsxs("div",{className:"flex gap-2",children:[w.jsx("input",{ref:d,type:"text",defaultValue:n,"aria-label":t,className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground",autoFocus:!0,onKeyDown:f=>{var h;f.key==="Enter"&&s((h=d.current)==null?void 0:h.value)}}),i!==void 0&&w.jsx("button",{type:"button",onClick:()=>{d.current&&(d.current.value=i)},title:"Setup-bewussten Optimalwert eintragen",className:"h-9 px-3 shrink-0 text-xs font-semibold text-primary border border-primary/50 bg-primary/10 hover:bg-primary/20 rounded-lg transition-colors cursor-pointer",children:o||"Auto"})]}),w.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[(e==="confirm"||e==="prompt")&&w.jsx("button",{onClick:u,className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Abbrechen"}),w.jsx("button",{onClick:()=>{var h;const f=e==="prompt"?(h=d.current)==null?void 0:h.value:void 0;s(f)},className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/95 rounded-lg transition-colors cursor-pointer",children:e==="confirm"?"Ja, fortfahren":e==="prompt"?"Übernehmen":"OK"})]})]})})}function _A(){const[e,t]=g.useState(null),r=g.useCallback(()=>t(null),[]),n=g.useCallback((u,d,f)=>{t({type:"alert",title:u,message:d,onConfirm:()=>{t(null),f==null||f()}})},[]),i=g.useCallback((u,d,f,h)=>{t({type:"confirm",title:u,message:d,onConfirm:()=>{t(null),f()},onCancel:()=>{t(null),h==null||h()}})},[]),o=g.useCallback((u,d,f,h,m,v)=>{t({type:"prompt",title:u,message:d,defaultValue:f,autoValue:v==null?void 0:v.autoValue,autoLabel:v==null?void 0:v.autoLabel,onConfirm:x=>{t(null),h(x)},onCancel:()=>{t(null),m==null||m()}})},[]),s=e?w.jsx(p3,{...e}):null;return{showAlert:n,showConfirm:i,showPrompt:o,close:r,dialogElement:s}}let gd=!1;const m3=()=>gd;function v3(){const e=Pf();g.useEffect(()=>{const t=new EventSource("/api/events");return t.onopen=()=>{gd=!0},t.onerror=()=>{gd=!1},t.addEventListener("invalidate",r=>{var n;try{const i=((n=JSON.parse(r.data))==null?void 0:n.keys)??[];for(const o of i)e.invalidateQueries({queryKey:[o]})}catch{}}),()=>{gd=!1,t.close()}},[e])}const ze={health:["health"],systemStatus:["system-status"],services:["services"],models:["models"],groups:["groups"],routing:["routing"],routingPolicy:["routing-policy"],jobs:["jobs"],tokenStats:["token-stats"],agentStatus:["agent-status"],hermesBrain:["hermes-brain"],updates:["updates"],discover:["discover"],drafts:e=>["drafts",e??""],connect:e=>["connect",e??""],connectHealth:["connect-health"],memory:(e,t)=>["memory",e??"",t??""],memoryGraph:["memory-graph"],voiceTrace:["voice-trace"],auftragsbuch:["auftragsbuch"],ideen:["ideen"],chronik:["chronik"],governor:["governor"],eigenleben:["eigenleben"],wissen:["wissen"],zeitmaschine:["zeitmaschine"],reminders:["reminders"]},yr={graph:3e3,schnell:8e3,normal:1e4,gemuetlich:3e4,traege:6e4},Tf=e=>()=>m3()?e*5:e,y3=(e=yr.schnell)=>at({queryKey:ze.auftragsbuch,queryFn:()=>Te("/api/auftragsbuch"),refetchInterval:Tf(e)}),g3=(e=yr.gemuetlich)=>at({queryKey:ze.ideen,queryFn:()=>Te("/api/ideen"),refetchInterval:Tf(e)}),jQ=(e,t=!1)=>at({queryKey:["ideen-log",e],queryFn:()=>Te(`/api/ideen/${e}/log`),enabled:t,refetchInterval:4e3,staleTime:0}),NQ=(e=150,t=yr.gemuetlich)=>at({queryKey:[...ze.chronik,e],queryFn:()=>Te(`/api/chronik?limit=${e}`),refetchInterval:Tf(t),select:r=>r.items??[]}),IQ=()=>at({queryKey:ze.wissen,queryFn:()=>Te("/api/wissen")}),x3=(e=yr.traege,t=!0)=>at({queryKey:ze.zeitmaschine,queryFn:()=>Te("/api/zeitmaschine"),refetchInterval:e,enabled:t}),b3=(e=12,t=yr.schnell)=>at({queryKey:ze.voiceTrace,queryFn:()=>Te(`/api/voice/trace?limit=${e}`),refetchInterval:t,select:r=>r.turns??[]}),MQ=(e=!0)=>at({queryKey:ze.memoryGraph,queryFn:()=>Te("/api/wissen/graph"),enabled:e,staleTime:60*1e3}),jA=()=>at({queryKey:ze.health,queryFn:()=>Te("/api/health"),refetchInterval:yr.normal}),Df=(e=yr.graph)=>at({queryKey:ze.systemStatus,queryFn:()=>Te("/api/system/status"),refetchInterval:e}),NA=(e,t=!0)=>at({queryKey:["metrics-history",e],queryFn:()=>Te(`/api/system/history?minutes=${e}`),enabled:t,refetchInterval:6e4}),Qy=(e=yr.normal)=>at({queryKey:ze.services,queryFn:()=>Te("/api/system/services"),refetchInterval:e}),IA=(e=yr.schnell)=>at({queryKey:ze.models,queryFn:()=>Te("/api/models"),refetchInterval:Tf(e)}),TQ=(e=yr.normal)=>at({queryKey:ze.groups,queryFn:()=>Te("/api/groups"),refetchInterval:e}),DQ=()=>at({queryKey:ze.routingPolicy,queryFn:()=>Te("/api/routing/policy")}),w3=(e=3e3,t=!0)=>at({queryKey:ze.jobs,queryFn:()=>Te("/api/jobs"),refetchInterval:e,enabled:t,select:r=>r.jobs??[]}),MA=(e=yr.graph)=>at({queryKey:ze.tokenStats,queryFn:()=>Te("/api/system/token-stats"),refetchInterval:e}),S3=(e=yr.normal)=>at({queryKey:ze.agentStatus,queryFn:()=>Te("/api/agent/status"),refetchInterval:e}),RQ=(e=yr.traege)=>at({queryKey:ze.hermesBrain,queryFn:()=>Te("/api/agent/brain"),refetchInterval:e}),TA=(e=yr.traege)=>at({queryKey:ze.updates,queryFn:()=>Te("/api/maintenance/updates"),refetchInterval:e}),$Q=()=>at({queryKey:ze.discover,queryFn:()=>Te("/api/discover")}),LQ=e=>at({queryKey:ze.drafts(e),queryFn:()=>Te(`/api/models/drafts?target=${encodeURIComponent(e??"")}`),enabled:!!e}),zQ=e=>at({queryKey:ze.connect(e),queryFn:()=>Te(e?`/api/connect?${e}`:"/api/connect")}),k3=()=>at({queryKey:ze.connectHealth,queryFn:()=>Te("/api/connect/health"),refetchInterval:15e3});function Es(e,...t){for(const r of t)e.invalidateQueries({queryKey:r})}function No(e){return(e/1024**3).toFixed(1)}function Nm(e){return e?e>1024**3?`${(e/1024**3).toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`:""}function FQ(e){if(!e)return"—";const t=e/1024**3;return t>=1?`${t.toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`}function BQ(e){if(!e)return"";const t=Math.floor(e/60);return t>0?`${t} min`:`${e} s`}function UQ(e){return e?`${Math.round(e/1024)}k`:"—"}function WQ(e){return e?new Date(e*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"—"}function Ps({icon:e,iconClass:t,name:r,status:n,available:i,busy:o,actionLabel:s,onAction:u}){return w.jsxs("div",{className:De("flex items-center gap-3 rounded-lg border px-3 py-2",i?"border-amber-500/30 bg-amber-500/5":"border-border/50 bg-background/20"),children:[w.jsx(e,{className:De("h-4 w-4 shrink-0",t)}),w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:r}),w.jsx("div",{className:De("text-[10px] truncate",i?"text-amber-400/90":"text-muted-foreground"),children:n})]}),w.jsx("button",{onClick:u,disabled:!i||o,className:De("text-[11px] font-semibold rounded-lg px-2.5 py-1 transition-colors shrink-0",i?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer":"border border-border/50 text-muted-foreground/40 cursor-default"),children:o?"…":s})]})}function E3({label:e,ok:t,system:r,busy:n,onRestart:i,onLogs:o}){return w.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[w.jsx("span",{className:De("w-1.5 h-1.5 rounded-full shrink-0",t===!0?"bg-emerald-500":t===!1?"bg-red-500":"bg-muted-foreground/40")}),w.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[e,r&&w.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),w.jsx("button",{onClick:i,disabled:n,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:w.jsx(Ho,{className:De("h-3.5 w-3.5",n&&"animate-spin")})}),w.jsx("button",{onClick:o,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:w.jsx(iT,{className:"h-3.5 w-3.5"})})]})}const P3=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,A3=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function O3(e){return P3.test(e)?"error":A3.test(e)?"warn":"info"}const C3={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function _3({service:e,text:t,loading:r,logStatus:n,onRefresh:i,onOpenSettings:o}){const[s,u]=g.useState(!1),[d,f]=g.useState(""),h=g.useRef(null),m=g.useMemo(()=>t?t.split(` -`).map(E=>({t:E,level:O3(E)})):[],[t]),v=g.useMemo(()=>m.filter(E=>E.level!=="info").length,[m]),x=d.trim().toLowerCase(),k=m.filter(E=>(!s||E.level!=="info")&&(!x||E.t.toLowerCase().includes(x))),S=n==="password_required"||n==="incorrect_password";return w.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[w.jsxs("div",{className:"flex h-10 items-center justify-between gap-2 px-3 border-b border-border/40 bg-black/30 shrink-0",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[w.jsx(ST,{className:"h-3 w-3 text-primary"}),w.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",e]}),w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsxs("div",{className:"relative",children:[w.jsx(yT,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),w.jsx("input",{value:d,onChange:E=>f(E.target.value),placeholder:"filtern…",className:"h-7 w-24 sm:w-36 rounded-md border border-border/50 bg-background/40 pl-6 pr-2 text-[10px] text-foreground outline-none focus:border-primary/50"})]}),w.jsxs("button",{onClick:()=>u(E=>!E),title:"Nur Fehler und Warnungen zeigen",className:De("flex h-7 items-center gap-1 rounded-md border px-2 text-[10px] font-semibold transition-colors",s?"border-amber-500/50 bg-amber-500/15 text-amber-300":"border-border/50 bg-background/20 text-muted-foreground hover:text-foreground"),children:[w.jsx(Gs,{className:"h-3 w-3"}),"Nur Probleme",v>0?` (${v})`:""]}),w.jsx("button",{onClick:i,disabled:r,title:"Neu laden",className:"flex h-7 w-7 items-center justify-center rounded-md border border-border/50 bg-background/20 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50",children:w.jsx(Ho,{className:De("h-3 w-3",r&&"animate-spin")})})]})]}),w.jsx("div",{ref:h,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:S?w.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[w.jsx(Gs,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),w.jsx("div",{className:"text-xs font-semibold text-amber-300",children:n==="incorrect_password"?"Falsches Sudo-Passwort hinterlegt.":"Sudo-Passwort für systemd-Dienste erforderlich."}),w.jsxs("p",{className:"max-w-xs text-[10px] leading-normal text-muted-foreground",children:["Für das Auslesen der systemd-Logs von ",e," werden Root-Rechte benötigt. Hinterlege dein Passwort in den Einstellungen."]}),w.jsx("button",{onClick:o,className:"mt-2 rounded-md bg-primary px-3 py-1.5 text-[10px] font-semibold text-primary-foreground transition-colors hover:bg-primary/95",children:"Sudo-Passwort eintragen"})]}):r&&!t?w.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):m.length===0?w.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):k.length===0?w.jsx("span",{className:"text-muted-foreground",children:s?"Keine Fehler oder Warnungen — der Dienst läuft sauber. ✓":"Kein Treffer für den Filter."}):k.map((E,P)=>w.jsx("div",{className:De("whitespace-pre-wrap",C3[E.level]),children:E.t||" "},P))})]})}function j3({open:e,showAlert:t}){const[r,n]=g.useState(""),[i,o]=g.useState(""),[s,u]=g.useState(!1),[d,f]=g.useState(!1);return g.useEffect(()=>{e&&(n(localStorage.getItem("mc_sudo_password")||""),o(localStorage.getItem("mc_hf_token")||""))},[e]),w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{className:"space-y-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Daten werden ausschließlich lokal in deinem Browser (localStorage) gespeichert und bei Bedarf an das Backend übertragen."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(Hy,{className:"h-4 w-4 text-amber-400"}),"Host Sudo-Passwort"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:s?"text":"password",value:r,onChange:h=>n(h.target.value),"aria-label":"Host Sudo-Passwort",name:"sudo-password",autoComplete:"off",spellCheck:!1,placeholder:"Sudo-Passwort für System-Operationen",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>u(!s),"aria-label":s?"Passwort verbergen":"Passwort anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:s?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Wird benötigt für systemd-Dienste (Llama Swap logs/restart), OS-Update (apt) und Reboot."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(cT,{className:"h-4 w-4 text-violet-400"}),"HuggingFace API Token"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:d?"text":"password",value:i,onChange:h=>o(h.target.value),"aria-label":"HuggingFace API Token",name:"hf-token",autoComplete:"off",spellCheck:!1,placeholder:"hf_…",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>f(!d),"aria-label":d?"Token verbergen":"Token anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:d?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Erlaubt das Herunterladen von geschützten oder Gate-restricted Modellen direkt über Mission Control."})]}),w.jsxs("div",{className:"flex gap-3 pt-2",children:[w.jsx("button",{onClick:()=>{localStorage.setItem("mc_sudo_password",r),localStorage.setItem("mc_hf_token",i),t("Erfolgreich","Einstellungen erfolgreich lokal gespeichert.")},className:"flex-1 h-9 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/90 rounded-lg transition-colors shadow shadow-primary/10 cursor-pointer",children:"Speichern"}),w.jsx("button",{onClick:()=>{n(""),o(""),localStorage.removeItem("mc_sudo_password"),localStorage.removeItem("mc_hf_token"),t("Gelöscht","Zugangsdaten gelöscht.")},className:"h-9 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Zurücksetzen"})]})]})}function N3({detail:e,maintenanceJob:t,onClose:r,onApply:n}){var d,f;const i=e.data,o={os:{icon:Hy,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:Of,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:BP,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:Af,cls:"text-amber-400",title:"Hermes-Agent"}}[e.kind],s=o.icon,u=i?e.kind==="os"?(i.count??0)===0:e.kind==="hermes"?(i.behind??0)===0:i.installed_build!=null&&i.latest_build!=null&&i.latest_build<=i.installed_build:!0;return w.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[w.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:r}),w.jsxs("div",{className:"relative w-full max-w-lg max-h-[80vh] flex flex-col rounded-2xl border border-border/60 bg-card shadow-2xl font-sans text-foreground",children:[w.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(s,{className:De("h-4.5 w-4.5",o.cls)}),w.jsx("h3",{className:"text-sm font-semibold",children:o.title})]}),w.jsx("button",{onClick:r,className:"flex h-7 w-7 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:e.loading?w.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[w.jsx(Ho,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):i!=null&&i.error?w.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:i.error}):w.jsxs(w.Fragment,{children:[(i==null?void 0:i.action_needed)!=null&&w.jsxs("div",{className:De("flex items-start gap-2 rounded-lg border p-3",i.action_needed?"border-amber-500/40 bg-amber-500/10":"border-emerald-500/40 bg-emerald-500/10"),children:[i.action_needed?w.jsx(Gs,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):w.jsx(JM,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsxs("div",{className:De("text-xs font-semibold",i.action_needed?"text-amber-300":"text-emerald-300"),children:["Musst du etwas tun? ",i.action_needed?"Ja":"Nein — die Box regelt das (Fangnetz)"]}),i.action_needed&&i.action_text&&w.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:i.action_text})]})]}),(i==null?void 0:i.summary)&&w.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[w.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),w.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:i.summary})]}),e.kind==="os"?w.jsxs(w.Fragment,{children:[((i==null?void 0:i.count)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.count," Paket(e) werden aktualisiert:"]}),w.jsx("div",{className:"space-y-1",children:i.packages.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-cyan-400 shrink-0"}),h.name]}),w.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[w.jsx("span",{children:h.current}),w.jsx(B1,{className:"h-3 w-3"}),w.jsx("span",{className:"text-emerald-400",children:h.candidate})]})]},h.name))})]}),(((d=i==null?void 0:i.held_back)==null?void 0:d.length)??0)>0&&w.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[w.jsx(eT,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Pakete gäbe es bereits, Ubuntu spielt sie aber gestaffelt aus (Phasen-Rollout) bzw. hält sie kurz zurück. Sie kommen bei einem der nächsten automatischen Läufe von selbst — das ist kein Fehler und nichts hängt fest."}),w.jsx("div",{className:"space-y-1",children:i.held_back.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/30 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-muted-foreground shrink-0"}),h.name]}),w.jsx("span",{className:"text-[9px] text-muted-foreground shrink-0",children:h.reason==="phasing"?"Phasen-Rollout":"vorerst zurückgehalten"})]},h.name))})]})]}):e.kind==="engine"||e.kind==="swap"?w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[w.jsxs("span",{className:"rounded-md border border-border/40 bg-background/30 px-2 py-1",children:["Build ",(i==null?void 0:i.installed_build)??"?"]}),w.jsx(B1,{className:"h-3.5 w-3.5 text-muted-foreground"}),w.jsxs("span",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/5 px-2 py-1 text-emerald-400",children:["Build ",(i==null?void 0:i.latest_build)??"?"]})]}),((i==null?void 0:i.name)||(i==null?void 0:i.latest_tag))&&w.jsxs("div",{className:"text-muted-foreground",children:["Release: ",w.jsx("span",{className:"text-foreground",children:i==null?void 0:i.name}),i!=null&&i.latest_tag?` (${i.latest_tag})`:""]}),(i==null?void 0:i.url)&&w.jsxs("a",{href:i.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-primary hover:underline",children:["Original-Release-Notes auf GitHub ",w.jsx(nT,{className:"h-3 w-3"})]}),(i==null?void 0:i.body)&&w.jsxs("details",{className:"group",children:[w.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),w.jsx("pre",{className:"mt-1.5 whitespace-pre-wrap rounded-lg border border-border/40 bg-background/30 p-3 text-[10px] leading-relaxed text-muted-foreground max-h-60 overflow-y-auto scrollbar-thin",children:i.body})]})]}):(((f=i==null?void 0:i.commits)==null?void 0:f.length)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.behind," neue Commit(s) auf ",w.jsxs("span",{className:"font-mono text-foreground",children:["origin/",i.branch]}),":"]}),w.jsx("div",{className:"space-y-1",children:i.commits.map(h=>w.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsx(oT,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("div",{className:"text-[11px] truncate",children:h.subject}),w.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[h.hash," · ",h.when]})]})]},h.hash))})]}),e.kind!=="os"&&!u&&w.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[w.jsx(gT,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("p",{className:"text-[10px] text-muted-foreground leading-normal",children:["Vor dem Update sichert die Box automatisch den alten Stand. Danach prüft sie den ganzen Stack per echter Anfrage — läuft etwas nicht, rollt sie von selbst zurück",e.kind==="hermes"?" und startet den Gateway neu":"","."]})]})]})}),w.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[w.jsx("button",{onClick:r,className:"h-9 flex-1 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold text-muted-foreground hover:bg-accent transition-colors cursor-pointer",children:"Schließen"}),w.jsx("button",{onClick:n,disabled:e.loading||u||!!t,title:t?`Update läuft bereits: ${t.label}`:void 0,className:"h-9 flex-1 rounded-lg bg-primary text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-40 disabled:cursor-default",children:t?"Update läuft…":"Jetzt aktualisieren"})]})]})]})}function I3({open:e,onClose:t,defaultTab:r="maintenance"}){var or,fi;const n=Pf(),{showAlert:i,showConfirm:o,dialogElement:s}=_A(),{data:u}=TA(),{data:d}=Qy(),f=w3(3e3,e).data??[],{data:h}=x3(void 0,e),[m,v]=g.useState("llama-swap"),[x,k]=g.useState(""),[S,E]=g.useState(!1),[P,O]=g.useState(null),[j,_]=g.useState({}),[N,C]=g.useState("maintenance"),[D,F]=g.useState(!1),[z,q]=g.useState(""),[X,B]=g.useState(!1),[ue,Y]=g.useState(!1),[le,fe]=g.useState(null),de=(d==null?void 0:d.services)??[],K=()=>Es(n,ze.jobs);function ie(G){return G?new Date(G*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"Nie"}g.useEffect(()=>{e&&r&&C(r)},[e,r]),g.useEffect(()=>{e&&Es(n,ze.updates,ze.services,ze.jobs,ze.zeitmaschine)},[e]);function Q(G){E(!0),O(null),Te(`/api/maintenance/logs?service=${G}&lines=150`).then(Ie=>{Ie.ok?k(Ie.text):(k(`Fehler beim Laden der Logs: ${Ie.err||"Unbekannter Fehler"}`),(Ie.status==="incorrect_password"||Ie.status==="password_required")&&O(Ie.status))}).catch(Ie=>k(`Fehler: ${Ie.message}`)).finally(()=>E(!1))}g.useEffect(()=>{!e||N!=="logs"||Q(m)},[e,N,m]);function R(G){return(G==null?void 0:G.status)==="busy"?(i("Update läuft bereits",`Es läuft gerade „${G.running}". Bitte warte, bis es fertig ist.`),K(),!0):!1}function M(G){return(G==null?void 0:G.status)==="password_required"||(G==null?void 0:G.status)==="incorrect_password"?(i("Box-Passwort nötig",(G.status==="incorrect_password"?"Das gespeicherte Box-Passwort stimmt nicht. ":"Für dieses Update braucht die Box dein Passwort. ")+"Bitte oben im Reiter „Einstellungen“ setzen bzw. korrigieren."),!0):G&&G.ok===!1?(i("Update fehlgeschlagen",G.err||"Unbekannter Fehler."),!0):!1}async function J(G){const Ie={os:"os-update",engine:"engine-update",swap:"swap-update"}[G];try{const Xe=await Te(`/api/maintenance/${Ie}`,{method:"POST"});if(R(Xe)||M(Xe))return;K(),C("maintenance")}catch(Xe){i("Fehler",`Update konnte nicht starten: ${Xe.message}`)}}async function se(){Y(!0);try{const G=await Te("/api/maintenance/hermes-update",{method:"POST"});if(R(G))return;K()}catch(G){i("Fehler",`Hermes-Update fehlgeschlagen: ${G.message}`)}finally{Y(!1)}}async function te(G){fe({kind:G,loading:!0,data:null});try{const Ie=await Te(`/api/maintenance/update-details?kind=${G}`);fe({kind:G,loading:!1,data:Ie})}catch(Ie){fe({kind:G,loading:!1,data:{kind:G,error:Ie.message}})}}function ce(){const G=le==null?void 0:le.kind;fe(null),G==="os"||G==="engine"||G==="swap"?J(G):G==="hermes"&&se()}function ye(){var Ie;const G=[u!=null&&u.engine?"Engine":null,u!=null&&u.swap?"Router":null,(Ie=u==null?void 0:u.components)!=null&&Ie.some(Xe=>Xe.update===!0)?"Hermes-Agent":null,u!=null&&u.os?`OS (${u.os} Pakete)`:null].filter(Boolean);o("Alle Updates einspielen?",`Nacheinander in einem Job: ${G.join(" → ")}. Jeder Schritt sichert und prüft sich selbst; schlägt einer fehl, stoppt der Rest. (OS braucht das Box-Passwort aus den Einstellungen — fehlt es, wird OS übersprungen.)`,async()=>{try{const Xe=await Te("/api/maintenance/update-all",{method:"POST"});if(R(Xe)||M(Xe))return;if((Xe==null?void 0:Xe.status)==="nothing"){i("Nichts zu tun","Es stehen keine Updates aus.");return}K(),C("maintenance")}catch(Xe){i("Fehler",`„Alle aktualisieren" konnte nicht starten: ${Xe.message}`)}})}async function _e(){F(!0);try{await Te("/api/maintenance/check-updates",{method:"POST"}),Es(n,ze.jobs,ze.updates),C("maintenance")}catch(G){i("Fehler",`Fehler bei der Update-Suche: ${G.message}`)}finally{F(!1)}}async function Z(G,Ie){try{await Te("/api/models/install",{method:"POST",body:JSON.stringify({repo:G,role:Ie})}),i("Gestartet",`Modell-Upgrade für '${Ie}' (${G}) gestartet.`),K(),C("maintenance")}catch(Xe){i("Fehler",`Fehler beim Starten des Modell-Upgrades: ${Xe.message}`)}}async function we(){o("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await Te("/api/maintenance/reboot",{method:"POST"}),i("Reboot","Reboot ausgelöst. System startet neu...",()=>t())}catch(G){i("Fehler",`Fehler beim Reboot: ${G.message}`)}})}async function Pe(){B(!0),q("Snapshot wird erzeugt...");try{const G=await Te("/api/system/backup",{method:"POST"});q(G.ok?`Snapshot erzeugt: ${G.snapshot} (${G.files.length} Komponenten)`:"Backup fehlgeschlagen."),Es(n,ze.zeitmaschine)}catch(G){q(`Fehler: ${G.message}`)}finally{B(!1)}}async function ne(G){_(Ie=>({...Ie,[G]:!0}));try{const Ie=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:G})});Ie.ok?(i("Dienst neu gestartet",`Dienst ${G} wurde erfolgreich neu gestartet.`,()=>{N==="logs"&&m===G&&Q(G)}),Es(n,ze.services,ze.health,ze.models)):i("Fehler",`Fehler beim Neustart: ${Ie.err||"Unbekannter Fehler"}`)}catch(Ie){i("Fehler",`Fehler beim Neustart: ${Ie.message}`)}finally{_(Ie=>({...Ie,[G]:!1}))}}async function lt(G){try{await Te(`/api/jobs/${G}/cancel`,{method:"POST"}),K()}catch(Ie){i("Fehler",`Fehler beim Abbrechen: ${Ie.message}`)}}const Re=f.find(G=>(G.state==="running"||G.state==="queued")&&G.group==="maintenance"),Ee=(u?(u.os>0?1:0)+(u.engine?1:0)+(u.swap?1:0):0)+(((or=u==null?void 0:u.components)==null?void 0:or.filter(G=>G.update===!0).length)??0),vt=(h==null?void 0:h.backups)??[];return w.jsxs(w.Fragment,{children:[w.jsx("div",{className:De("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",e?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:t}),w.jsxs("div",{className:De("fixed inset-y-0 right-0 w-full sm:w-[640px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",e?"translate-x-0":"translate-x-full"),children:[w.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),w.jsx("button",{onClick:t,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex border-b border-border/40 px-6",children:["maintenance","logs","settings"].map(G=>w.jsx("button",{onClick:()=>C(G),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",N===G?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:G==="maintenance"?"System-Wartung":G==="logs"?"System-Logs":"Einstellungen"},G))}),w.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[N==="maintenance"&&w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"space-y-2.5",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),w.jsxs("div",{className:"flex items-center gap-3",children:[Ee>0&&w.jsxs("button",{onClick:ye,disabled:!!Re,className:"flex items-center gap-1 rounded-md border border-primary/40 bg-primary/10 px-2 py-1 text-[10px] font-bold text-primary transition-colors hover:bg-primary/20 disabled:opacity-50",children:[w.jsx(tT,{className:"h-3 w-3"})," Alle aktualisieren (",Ee,")"]}),w.jsxs("button",{onClick:_e,disabled:D||!!Re,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[w.jsx(Ho,{className:De("h-3 w-3",D&&"animate-spin")})," Nach Updates suchen"]})]})]}),(u==null?void 0:u.last_check)&&w.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",ie(u.last_check)]}),Re&&w.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-300",children:[w.jsx(Ho,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),w.jsxs("span",{children:["Update läuft: ",w.jsx("span",{className:"font-semibold",children:Re.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),w.jsxs("div",{className:"space-y-1.5",children:[w.jsx(Ps,{icon:Hy,iconClass:"text-cyan-400",name:"OS-Pakete (apt)",available:!!(u!=null&&u.os),status:u!=null&&u.os?`${u.os} verfügbar`:"aktuell",actionLabel:"Anzeigen",onAction:()=>te("os")}),w.jsx(Ps,{icon:Of,iconClass:"text-violet-400",name:"Inferenz-Engine (llama.cpp)",available:!!(u!=null&&u.engine),status:u!=null&&u.engine?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("engine")}),w.jsx(Ps,{icon:BP,iconClass:"text-fuchsia-400",name:"Router (llama-swap)",available:!!(u!=null&&u.swap),status:u!=null&&u.swap?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("swap")}),(()=>{var Ie;const G=(Ie=u==null?void 0:u.components)==null?void 0:Ie.find(Xe=>Xe.key==="hermes_agent");return w.jsx(Ps,{icon:Af,iconClass:"text-amber-400",name:"Hermes-Agent",available:(G==null?void 0:G.update)===!0,busy:ue,status:(G==null?void 0:G.update)===!0?`Update: ${G.latest}`:(G==null?void 0:G.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("hermes")})})(),(fi=u==null?void 0:u.model_list)==null?void 0:fi.map(G=>w.jsx(Ps,{icon:GM,iconClass:"text-emerald-400",name:`Modell · ${G.role}`,available:!0,status:G.title,actionLabel:"Upgrade",onAction:()=>Z(G.repo,G.role)},G.role))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),w.jsxs("div",{className:"space-y-1.5",children:[de.length===0&&w.jsx("div",{className:"rounded-lg border border-dashed border-border/50 p-4 text-center text-xs text-muted-foreground",children:"Dienste-Liste wird geladen …"}),de.map(G=>w.jsx(E3,{label:G.name,system:G.scope==="system",ok:G.ok,busy:j[G.unit],onRestart:()=>ne(G.unit),onLogs:()=>{v(G.unit),C("logs")}},G.unit))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),w.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:vt[0]?`Letztes: ${vt[0].snapshot}`:"Noch kein Backup"}),w.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[vt.length," Snapshots · Wiederherstellen: Chronik → Zeitmaschine"]})]}),w.jsxs("button",{onClick:Pe,disabled:X,className:"flex items-center gap-1.5 text-[11px] font-semibold rounded-lg px-2.5 py-1 bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50 shrink-0",children:[w.jsx(QM,{className:De("h-3.5 w-3.5",X&&"animate-pulse")})," Snapshot"]})]}),z&&w.jsx("div",{className:"text-[10px] font-mono text-primary bg-primary/5 p-2 rounded-lg border border-primary/20 break-all leading-normal",children:z})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),w.jsxs("button",{onClick:we,className:"flex w-full items-center gap-3 p-3 rounded-lg border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[w.jsx(vT,{className:"h-4.5 w-4.5"}),w.jsxs("div",{children:[w.jsx("div",{children:"Host-System neu starten"}),w.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),w.jsxs("div",{className:"space-y-3",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),w.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(G=>G.state==="running"||G.state==="queued").length," Aktiv"]})]}),w.jsx("div",{className:"space-y-3",children:f.length===0?w.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):f.map(G=>{const Ie=G.state==="running"||G.state==="queued";return w.jsxs("div",{className:De("p-3 rounded-xl border transition-all duration-300",Ie?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[w.jsxs("div",{className:"flex items-start justify-between gap-3",children:[w.jsxs("div",{className:"space-y-1",children:[w.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[Ie&&w.jsxs("span",{className:"flex h-2 w-2 relative",children:[w.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),w.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),G.label]}),w.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[w.jsxs("span",{children:["ID: ",G.id]}),w.jsx("span",{children:"•"}),w.jsx("span",{className:De(G.state==="done"&&"text-emerald-400",G.state==="failed"&&"text-red-400",G.state==="running"&&"text-primary",G.state==="queued"&&"text-amber-400",G.state==="canceled"&&"text-muted-foreground"),children:G.state})]})]}),Ie&&w.jsx("button",{onClick:()=>lt(G.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),G.state==="running"&&w.jsxs("div",{className:"mt-3 space-y-1",children:[w.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:w.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${G.progress??0}%`}})}),w.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[w.jsxs("span",{children:[G.progress??0,"%"]}),G.done_bytes!=null&&G.total_bytes!=null&&w.jsxs("span",{children:[Nm(G.done_bytes)," / ",Nm(G.total_bytes),G.rate_bps!=null&&` (${Nm(G.rate_bps)}/s)`]}),G.eta_s!=null&&w.jsxs("span",{children:["ETA: ",G.eta_s,"s"]})]})]})]},G.id)})})]})]}),N==="logs"&&w.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("select",{value:m,onChange:G=>v(G.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:de.map(G=>w.jsxs("option",{value:G.unit,children:[G.name," (",G.scope==="system"?"systemd-root":"user",")"]},G.unit))}),w.jsxs("button",{onClick:()=>ne(m),disabled:j[m],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[w.jsx(Ho,{className:De("h-3.5 w-3.5",j[m]&&"animate-spin")}),"Restart"]})]}),w.jsx(_3,{service:m,text:x,loading:S,logStatus:P,onRefresh:()=>Q(m),onOpenSettings:()=>C("settings")})]}),N==="settings"&&w.jsx(j3,{open:e,showAlert:i})]})]}),le&&w.jsx(N3,{detail:le,maintenanceJob:Re,onClose:()=>fe(null),onApply:ce}),s]})}let Tv=[],Dv=[];const Rv=new Set,DA=()=>Rv.forEach(e=>e());function RA(e){return Rv.add(e),()=>{Rv.delete(e)}}function M3(e){Tv=[...Tv,e].slice(-40),DA()}function T3(e){Dv=[...Dv,e].slice(-40),DA()}const D3=()=>g.useSyncExternalStore(RA,()=>Tv),R3=()=>g.useSyncExternalStore(RA,()=>Dv);function $3(){const{data:e,dataUpdatedAt:t}=Df(),{data:r,dataUpdatedAt:n}=MA(),i=g.useRef(null);g.useEffect(()=>{var o,s,u,d;e&&M3({t:Date.now(),cpu:((o=e.cpu)==null?void 0:o.percent)??0,ram:((s=e.ram)==null?void 0:s.percent)??0,gpu:((u=e.gpu)==null?void 0:u.busy_percent)??null,disk:((d=e.disk)==null?void 0:d.percent)??null})},[t]),g.useEffect(()=>{if(!r)return;const o=Date.now(),s=r.prompt_tokens,u=r.completion_tokens;if(i.current){const d=Math.max((o-i.current.t)/1e3,.001);T3({t:o,prompt:Math.max(0,(s-i.current.p)/d),completion:Math.max(0,(u-i.current.c)/d)})}i.current={p:s,c:u,t:o}},[n])}function L3(){var F,z,q,X,B,ue;const{data:e,isError:t}=jA(),{data:r,isError:n}=Qy(),{data:i}=IA(),{data:o}=Df(),s=t||n,u=!!e&&!!r,d=Y=>{var le;return(le=r==null?void 0:r.services.find(fe=>fe.unit===Y))==null?void 0:le.ok},f=Y=>!!(r!=null&&r.services.some(le=>le.unit===Y)),h=e==null?void 0:e.engine_reachable,m=(F=e==null?void 0:e.brain)==null?void 0:F.ready,v=((z=e==null?void 0:e.brain)==null?void 0:z.model)||((q=i==null?void 0:i.models.find(Y=>Y.role==="hermes"))==null?void 0:q.name)||"",x=[];s&&x.push({id:"mc2",label:"Steuerpult (MC2)",icon:Of,critical:!0,status:"down",detail:"Die Zentrale antwortet nicht — alle Anzeigen hier können veraltet sein. Läuft die Box? Deploy aktiv?"}),x.push((()=>{const Y={id:"brain",label:"Lucys Hirn",icon:YM,critical:!0};return u?h===!1?{...Y,status:"down",detail:"Die Motor-Maschine (Engine) läuft nicht — Lucy kann gerade gar nicht denken.",repair:{kind:"restart",service:"llama-swap",label:"Motor neu starten",needsSudo:!0}}:m===!1?{...Y,status:"down",detail:"Lucys Hirn ist gerade eingeschlafen — einmal aufwecken.",repair:v?{kind:"loadModel",model:v,label:"Hirn aufwecken"}:void 0}:{...Y,status:"ok",detail:"Wach und ansprechbar."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"vision",label:"Lucys Augen",icon:Ov,critical:!1};if(!u||!i)return{...Y,status:"loading",detail:"Wird geprüft …"};const le=i.models.find(de=>de.role==="vision");return le?(i.running??[]).includes(le.name)?{...Y,status:"ok",detail:"Sieht gerade zu (geladen, solange Lucy sie nutzt)."}:{...Y,status:"ok",detail:"Augen ruhen — sie laden von selbst, sobald Lucy startet oder ein Bild kommt.",repair:{kind:"loadModel",model:le.name,label:"Augen wecken"}}:{...Y,status:"warn",detail:"Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen."}})()),x.push((()=>{const Y={id:"memory",label:"Lucys Gedächtnis",icon:qM,critical:!0},le=d("mem0-service");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Merkt sich Neues und findet Altes wieder."}:{...Y,status:"down",detail:"Lucy kann sich gerade nichts merken — das Gedächtnis antwortet nicht.",repair:{kind:"restart",service:"mem0-service",label:"Gedächtnis neu starten"}}})()),x.push((()=>{const Y={id:"gateway",label:"Verbindung (Gateway)",icon:Uy,critical:!0},le=e?e.gateway_reachable:d("mc2-gateway");if(!u||le===void 0)return{...Y,status:"loading",detail:"Wird geprüft …"};const fe=f("mc2-gateway")?"mc2-gateway":"mission-control-2";return le?{...Y,status:"ok",detail:"Apps und IDEs können Lucy erreichen."}:{...Y,status:"down",detail:"Der Modell-Gateway antwortet nicht — Lucy und die IDEs erreichen kein Modell.",repair:{kind:"restart",service:fe,label:"Gateway neu starten"}}})()),x.push((()=>{const Y={id:"steward",label:"Wächter (Steward)",icon:Wy,critical:!1};return u?f("mc2-steward")?d("mc2-steward")?{...Y,status:"ok",detail:"Wacht über Warm-Set, Dienste und Gedächtnis."}:{...Y,status:"warn",detail:"Der Wächter schläft — niemand meldet gerade Ausfälle oder wärmt Modelle nach.",repair:{kind:"restart",service:"mc2-steward",label:"Wächter neu starten"}}:{...Y,status:"ok",detail:"Auf dieser Installation nicht eingerichtet."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"agent",label:"Lucys Agent (Hermes)",icon:Af,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy ist bereit zu reden und zu handeln."}:{...Y,status:"down",detail:"Lucys Agent ist offline — sie reagiert gerade nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Agent neu starten"}}})()),x.push((()=>{const Y={id:"voice",label:"Lucys Stimme",icon:mT,critical:!1},le=d("voice-service");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy kann hören und sprechen."}:{...Y,status:"warn",detail:"Sprechen ist gerade aus — Tippen geht weiter normal.",repair:{kind:"restart",service:"voice-service",label:"Stimme neu starten"}}})());const k=((X=o==null?void 0:o.ram)==null?void 0:X.total)??0,S=((B=o==null?void 0:o.ram)==null?void 0:B.used)??0,E=((ue=o==null?void 0:o.ram)==null?void 0:ue.percent)??(k>0?Math.min(100,S/k*100):0),P=1024**3,O=k?E>=93?{status:"full",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher fast voll — Lucy könnte langsamer werden."}:E>=85?{status:"warn",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher gut gefüllt — noch okay."}:{status:"ok",usedGb:S/P,totalGb:k/P,pct:E,text:"Genug Speicher frei."}:{status:"unknown",usedGb:0,totalGb:0,pct:0,text:"Speicher-Auslastung unbekannt."},j=x.some(Y=>Y.status==="loading"),_=x.filter(Y=>Y.critical&&Y.status==="down"),N=x.filter(Y=>Y.status==="warn"||!Y.critical&&Y.status==="down"),C=O.status==="full";return{verdict:j&&!_.length?"loading":_.length?"problem":N.length||C?"warn":"gut",checks:x,memory:O,problems:_,warns:N,unreachable:s}}const z3={ok:"bg-emerald-500",warn:"bg-amber-500",alert:"bg-red-500",muted:"bg-muted-foreground/40",loading:"bg-muted-foreground/40 animate-pulse"},F3={ok:"hover:border-emerald-500/40",warn:"hover:border-amber-500/50",alert:"hover:border-red-500/50",muted:"hover:border-primary/40",loading:"hover:border-border/60"};function As({icon:e,title:t,value:r,unit:n,tone:i="muted",hint:o,onClick:s}){return w.jsxs("button",{onClick:s,className:De("group relative flex flex-col items-start mc-card p-5 text-left cursor-pointer",F3[i]),children:[w.jsxs("div",{className:"mb-4 flex w-full items-center justify-between",children:[w.jsx("span",{className:"flex h-10 w-10 items-center justify-center rounded-xl border border-border/40 bg-background/30 text-foreground/80 transition-colors group-hover:text-primary",children:w.jsx(e,{className:"h-5 w-5"})}),w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",z3[i]),title:o})]}),w.jsxs("div",{className:"flex items-baseline gap-1.5",children:[w.jsx("span",{className:"text-2xl font-bold tracking-tight text-foreground font-space tabular-nums",children:r}),n&&w.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n})]}),w.jsxs("div",{className:"mt-1 flex w-full items-center justify-between",children:[w.jsx("span",{className:"text-sm font-semibold text-foreground/90",children:t}),w.jsx(Bs,{className:"h-4 w-4 text-muted-foreground/40 transition-all group-hover:translate-x-0.5 group-hover:text-primary"})]}),o&&w.jsx("span",{className:"mt-0.5 text-[11px] text-muted-foreground",children:o})]})}function B3(){const{data:e,error:t}=Df(),r=D3();return{sys:e,hist:r,error:t}}var U3=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function Xy(e){if(typeof e!="string")return!1;var t=U3;return t.includes(e)}var W3=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],H3=new Set(W3);function $A(e){return typeof e!="string"?!1:H3.has(e)}function LA(e){return typeof e=="string"&&e.startsWith("data-")}function on(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r))&&(t[r]=e[r]);return t}function Rf(e){if(e==null)return null;if(g.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return on(t)}return typeof e=="object"&&!Array.isArray(e)?on(e):null}function Br(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r)||Xy(r))&&(t[r]=e[r]);return t}function K3(e){return e==null?null:g.isValidElement(e)?Br(e.props):typeof e=="object"&&!Array.isArray(e)?Br(e):null}var V3=["children","width","height","viewBox","className","style","title","desc"];function $v(){return $v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.width,i=e.height,o=e.viewBox,s=e.className,u=e.style,d=e.title,f=e.desc,h=q3(e,V3),m=o||{width:n,height:i,x:0,y:0},v=Qe("recharts-surface",s);return g.createElement("svg",$v({},Br(h),{className:v,width:n,height:i,style:u,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),g.createElement("title",null,d),g.createElement("desc",null,f),r)}),Y3=["children","className"];function Lv(){return Lv=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,i=Q3(e,Y3),o=Qe("recharts-layer",n);return g.createElement("g",Lv({className:o},Br(i),{ref:t}),r)}),Z3=g.createContext(null);function ft(e){return function(){return e}}const zv=Math.PI,Fv=2*zv,ba=1e-6,J3=Fv-ba;function FA(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return FA;const r=10**t;return function(n){this._+=n[0];for(let i=1,o=n.length;iba)if(!(Math.abs(m*d-f*h)>ba)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let x=n-s,k=i-u,S=d*d+f*f,E=x*x+k*k,P=Math.sqrt(S),O=Math.sqrt(v),j=o*Math.tan((zv-Math.acos((S+v-E)/(2*P*O)))/2),_=j/O,N=j/P;Math.abs(_-1)>ba&&this._append`L${t+_*h},${r+_*m}`,this._append`A${o},${o},0,0,${+(m*x>h*k)},${this._x1=t+N*d},${this._y1=r+N*f}`}}arc(t,r,n,i,o,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),d=n*Math.sin(i),f=t+u,h=r+d,m=1^s,v=s?i-o:o-i;this._x1===null?this._append`M${f},${h}`:(Math.abs(this._x1-f)>ba||Math.abs(this._y1-h)>ba)&&this._append`L${f},${h}`,n&&(v<0&&(v=v%Fv+Fv),v>J3?this._append`A${n},${n},0,1,${m},${t-u},${r-d}A${n},${n},0,1,${m},${this._x1=f},${this._y1=h}`:v>ba&&this._append`A${n},${n},0,${+(v>=zv)},${m},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function BA(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new t$(t)}function Zy(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function UA(e){this._context=e}UA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function $f(e){return new UA(e)}function WA(e){return e[0]}function HA(e){return e[1]}function KA(e,t){var r=ft(!0),n=null,i=$f,o=null,s=BA(u);e=typeof e=="function"?e:e===void 0?WA:ft(e),t=typeof t=="function"?t:t===void 0?HA:ft(t);function u(d){var f,h=(d=Zy(d)).length,m,v=!1,x;for(n==null&&(o=i(x=s())),f=0;f<=h;++f)!(f=x;--k)u.point(j[k],_[k]);u.lineEnd(),u.areaEnd()}P&&(j[v]=+e(E,v,m),_[v]=+t(E,v,m),u.point(n?+n(E,v,m):j[v],r?+r(E,v,m):_[v]))}if(O)return u=null,O+""||null}function h(){return KA().defined(i).curve(s).context(o)}return f.x=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),n=null,f):e},f.x0=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),f):e},f.x1=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:ft(+m),f):n},f.y=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),r=null,f):t},f.y0=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),f):t},f.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:ft(+m),f):r},f.lineX0=f.lineY0=function(){return h().x(e).y(t)},f.lineY1=function(){return h().x(e).y(r)},f.lineX1=function(){return h().x(n).y(t)},f.defined=function(m){return arguments.length?(i=typeof m=="function"?m:ft(!!m),f):i},f.curve=function(m){return arguments.length?(s=m,o!=null&&(u=s(o)),f):s},f.context=function(m){return arguments.length?(m==null?o=u=null:u=s(o=m),f):o},f}class VA{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function r$(e){return new VA(e,!0)}function n$(e){return new VA(e,!1)}function Cd(){}function _d(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function qA(e){this._context=e}qA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:_d(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:_d(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function i$(e){return new qA(e)}function GA(e){this._context=e}GA.prototype={areaStart:Cd,areaEnd:Cd,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:_d(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function a$(e){return new GA(e)}function YA(e){this._context=e}YA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:_d(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function o$(e){return new YA(e)}function QA(e){this._context=e}QA.prototype={areaStart:Cd,areaEnd:Cd,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function l$(e){return new QA(e)}function dw(e){return e<0?-1:1}function fw(e,t,r){var n=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(n||i<0&&-0),s=(r-e._y1)/(i||n<0&&-0),u=(o*i+s*n)/(n+i);return(dw(o)+dw(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function hw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Im(e,t,r){var n=e._x0,i=e._y0,o=e._x1,s=e._y1,u=(o-n)/3;e._context.bezierCurveTo(n+u,i+u*t,o-u,s-u*r,o,s)}function jd(e){this._context=e}jd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Im(this,this._t0,hw(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Im(this,hw(this,r=fw(this,e,t)),r);break;default:Im(this,this._t0,r=fw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function XA(e){this._context=new ZA(e)}(XA.prototype=Object.create(jd.prototype)).point=function(e,t){jd.prototype.point.call(this,t,e)};function ZA(e){this._context=e}ZA.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,o){this._context.bezierCurveTo(t,e,n,r,o,i)}};function s$(e){return new jd(e)}function u$(e){return new XA(e)}function JA(e){this._context=e}JA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pw(e),i=pw(t),o=0,s=1;s=0;--t)i[t]=(s[t]-i[t+1])/o[t];for(o[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function d$(e){return new Lf(e,.5)}function f$(e){return new Lf(e,0)}function h$(e){return new Lf(e,1)}function Wa(e,t){if((s=e.length)>1)for(var r=1,n,i,o=e[t[0]],s,u=o.length;r=0;)r[t]=t;return r}function p$(e,t){return e[t]}function m$(e){const t=[];return t.key=e,t}function v$(){var e=ft([]),t=Bv,r=Wa,n=p$;function i(o){var s=Array.from(e.apply(this,arguments),m$),u,d=s.length,f=-1,h;for(const m of o)for(u=0,++f;u0){for(var r,n,i=0,o=e[0].length,s;i0){for(var r=0,n=e[t[0]],i,o=n.length;r0)||!((o=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,o,s;n1&&arguments[1]!==void 0?arguments[1]:w$,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Lt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var u=r[s-1];return typeof u=="string"?i+u+o:u!==void 0?i+Gi(u)+o:i+o},"")}var Lr=e=>e===0?0:e>0?1:-1,On=e=>typeof e=="number"&&e!=+e,Ha=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,be=e=>(typeof e=="number"||e instanceof Number)&&!On(e),Cn=e=>be(e)||typeof e=="string",S$=0,Xs=e=>{var t=++S$;return"".concat(e||"").concat(t)},ea=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!be(t)&&typeof t!="string")return n;var o;if(Ha(t)){if(r==null)return n;var s=t.indexOf("%");o=r*parseFloat(t.slice(0,s))/100}else o=+t;return On(o)&&(o=n),i&&r!=null&&o>r&&(o=r),o},rO=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Za(n,t))===r)}var Ut=e=>e===null||typeof e>"u",tg=e=>Ut(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function mr(e){return e!=null}function kl(){}var iO=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,rg=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(g.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(i=>{Xy(i)&&typeof r[i]=="function"&&(n[i]=(o=>r[i](r,o)))}),n},k$=(e,t,r)=>n=>(e(t,r,n),null),E$=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(i=>{var o=e[i];Xy(i)&&typeof o=="function"&&(n||(n={}),n[i]=k$(o,t,r))}),n};function mw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function P$(e){for(var t=1;t(s[u]===void 0&&n[u]!==void 0&&(s[u]=n[u]),s),r);return o}function _$(e,t){const r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ng(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const T$="[object RegExp]",oO="[object String]",lO="[object Number]",sO="[object Boolean]",uO="[object Arguments]",D$="[object Symbol]",R$="[object Date]",$$="[object Map]",L$="[object Set]",z$="[object Array]",F$="[object ArrayBuffer]",B$="[object Object]",U$="[object DataView]",W$="[object Uint8Array]",H$="[object Uint8ClampedArray]",K$="[object Uint16Array]",V$="[object Uint32Array]",q$="[object Int8Array]",G$="[object Int16Array]",Y$="[object Int32Array]",Q$="[object Float32Array]",X$="[object Float64Array]",vw=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function Z$(e){return typeof vw.Buffer<"u"&&vw.Buffer.isBuffer(e)}function J$(e,t){return Ea(e,void 0,e,new Map,t)}function Ea(e,t,r,n=new Map,i=void 0){const o=i==null?void 0:i(e,t,r,n);if(o!==void 0)return o;if(Wv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){const s=new Array(e.length);n.set(e,s);for(let u=0;u{}):Hv(e,t,function n(i,o,s,u,d,f){const h=r(i,o,s,u,d,f);return h!==void 0?!!h:Hv(i,o,n,f,!1)},new Map,!0)}function Hv(e,t,r,n,i=!1){if(t===e)return!0;switch(typeof t){case"object":return r5(e,t,r,n);case"function":return Object.keys(t).length>0?Hv(e,{...t},r,n,i):xd(e,t);default:return cO(e)&&i?typeof t=="string"?t==="":!0:xd(e,t)}}function r5(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return fO(e,t,r,n);if(t instanceof Map)return n5(e,t,r,n);if(t instanceof Set)return i5(e,t,r,n);const i=Object.keys(t);if(e==null||Wv(e))return i.length===0;if(i.length===0)return!0;if(n!=null&&n.has(t))return n.get(t)===e;n==null||n.set(t,e);try{for(let o=0;o{})}function a5(e){return e=t5(e),t=>hO(t,e)}function o5(e,t){return J$(e,(r,n,i,o)=>{if(typeof e=="object"){if(ng(e)==="[object Object]"&&typeof e.constructor!="function"){const s={};return o.set(e,s),en(s,e,i,o),s}switch(Object.prototype.toString.call(e)){case lO:case oO:case sO:{const s=new e.constructor(e==null?void 0:e.valueOf());return en(s,e),s}case uO:{const s={};return en(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function l5(e){return o5(e)}const s5=/^(?:0|[1-9]\d*)$/;function pO(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function mO(e){return e!=null&&typeof e!="function"&&h5(e.length)}function p5(e){return typeof e=="object"&&e!==null}function m5(e){return p5(e)&&mO(e)}function yw(e,t=aO){return m5(e)?_$(Array.from(e),j$(f5(t),1)):[]}function v5(e,t,r){return t===!0?yw(e,r):typeof t=="function"?yw(e,t):e}var Mm={exports:{}},Tm={},Dm={exports:{}},Rm={};/** - * @license React - * use-sync-external-store-shim.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var gw;function y5(){if(gw)return Rm;gw=1;var e=wl();function t(m,v){return m===v&&(m!==0||1/m===1/v)||m!==m&&v!==v}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,i=e.useEffect,o=e.useLayoutEffect,s=e.useDebugValue;function u(m,v){var x=v(),k=n({inst:{value:x,getSnapshot:v}}),S=k[0].inst,E=k[1];return o(function(){S.value=x,S.getSnapshot=v,d(S)&&E({inst:S})},[m,x,v]),i(function(){return d(S)&&E({inst:S}),m(function(){d(S)&&E({inst:S})})},[m]),s(x),x}function d(m){var v=m.getSnapshot;m=m.value;try{var x=v();return!r(m,x)}catch{return!0}}function f(m,v){return v()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return Rm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Rm}var xw;function g5(){return xw||(xw=1,Dm.exports=y5()),Dm.exports}/** - * @license React - * use-sync-external-store-shim/with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var bw;function x5(){if(bw)return Tm;bw=1;var e=wl(),t=g5();function r(f,h){return f===h&&(f!==0||1/f===1/h)||f!==f&&h!==h}var n=typeof Object.is=="function"?Object.is:r,i=t.useSyncExternalStore,o=e.useRef,s=e.useEffect,u=e.useMemo,d=e.useDebugValue;return Tm.useSyncExternalStoreWithSelector=function(f,h,m,v,x){var k=o(null);if(k.current===null){var S={hasValue:!1,value:null};k.current=S}else S=k.current;k=u(function(){function P(C){if(!O){if(O=!0,j=C,C=v(C),x!==void 0&&S.hasValue){var D=S.value;if(x(D,C))return _=D}return _=C}if(D=_,n(j,C))return D;var F=v(C);return x!==void 0&&x(D,F)?(j=C,D):(j=C,_=F)}var O=!1,j,_,N=m===void 0?null:m;return[function(){return P(h())},N===null?void 0:function(){return P(N())}]},[h,m,v,x]);var E=i(f,k[0],k[1]);return s(function(){S.hasValue=!0,S.value=E},[E]),d(E),E},Tm}var ww;function b5(){return ww||(ww=1,Mm.exports=x5()),Mm.exports}var w5=b5(),ig=g.createContext(null),S5=e=>e,xt=()=>{var e=g.useContext(ig);return e?e.store.dispatch:S5},bd=()=>{},k5=()=>bd,E5=(e,t)=>e===t;function ke(e){var t=g.useContext(ig),r=g.useMemo(()=>t?n=>{if(n!=null)return e(n)}:bd,[t,e]);return w5.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:k5,t?t.store.getState:bd,t?t.store.getState:bd,r,E5)}function P5(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function A5(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var Sw=e=>Array.isArray(e)?e:[e];function O5(e){const t=Array.isArray(e[0])?e[0]:e;return A5(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function C5(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?_5:WeakRef,vO=j5(),N5=0,kw=1;function td(){return{s:N5,v:void 0,o:null,p:null}}function I5(e){return e instanceof vO?e.deref():e}function yO(e,t={}){let r=td();const{resultEqualityCheck:n}=t;let i,o=0;function s(){let u=r;const{length:d}=arguments;for(let m=0,v=d;m{r=td(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function M5(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...i)=>{let o=0,s=0,u,d={},f=i.pop();typeof f=="object"&&(d=f,f=i.pop()),P5(f,`createSelector expects an output function after the inputs, but received: [${typeof f}]`);const h={...r,...d},{memoize:m,memoizeOptions:v=[],argsMemoize:x=yO,argsMemoizeOptions:k=[]}=h,S=Sw(v),E=Sw(k),P=O5(i),O=m(function(){return o++,f.apply(null,arguments)},...S),j=x(function(){s++;const N=C5(P,arguments);return u=O.apply(null,N),u},...E);return Object.assign(j,{resultFunc:f,memoizedResultFunc:O,dependencies:P,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>u,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:x})};return Object.assign(n,{withTypes:()=>n}),n}var H=M5(yO);function T5(e,t=1){const r=[],n=Math.floor(t),i=(o,s)=>{for(let u=0;u{if(e!==t){const n=Ew(e),i=Ew(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function gO(e){return typeof e=="symbol"||e instanceof Symbol}const R5=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$5=/^\w*$/;function L5(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||gO(e)?!0:typeof e=="string"&&($5.test(e)||!R5.test(e))||t!=null}function z5(e,t,r,n){if(e==null)return[];r=r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(u=>String(u));const i=(u,d)=>{let f=u;for(let h=0;hd==null||u==null?d:typeof u=="object"&&"key"in u?Object.hasOwn(d,u.key)?d[u.key]:i(d,u.path):typeof u=="function"?u(d):Array.isArray(u)?i(d,u):typeof d=="object"?d[u]:d,s=t.map(u=>(Array.isArray(u)&&u.length===1&&(u=u[0]),u==null||typeof u=="function"||Array.isArray(u)||L5(u)?u:{key:u,path:eg(u)}));return e.map(u=>({original:u,criteria:s.map(d=>o(d,u))})).slice().sort((u,d)=>{for(let f=0;fu.original)}function zf(e,...t){const r=t.length;return r>1&&Kv(e,t[0],t[1])?t=[]:r>2&&Kv(t[0],t[1],t[2])&&(t=[t[0]]),z5(e,T5(t),["asc"])}var xO=e=>e.legend.settings,F5=e=>e.legend.size,B5=e=>e.legend.payload;H([B5,xO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?zf(n,r):n});function U5(e,t){return V5(e)||K5(e,t)||H5(e,t)||W5()}function W5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function H5(e,t){if(e){if(typeof e=="string")return Pw(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pw(e,t):void 0}}function Pw(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rrd||Math.abs(e.left-t.left)>rd||Math.abs(e.top-t.top)>rd||Math.abs(e.width-t.width)>rd}function Ow(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function q5(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=g.useState({height:0,left:0,top:0,width:0}),r=U5(t,2),n=r[0],i=r[1],o=g.useRef(null),s=g.useRef(n);s.current=n;var u=g.useCallback(d=>{if(o.current!=null&&(o.current.disconnect(),o.current=null),d!=null){var f=Ow(d);if(Aw(f,s.current)&&i(f),typeof ResizeObserver<"u"){var h=new ResizeObserver(()=>{var m=Ow(d);Aw(m,s.current)&&i(m)});h.observe(d),o.current=h}}},[...e]);return g.useEffect(()=>()=>{var d;(d=o.current)===null||d===void 0||d.disconnect()},[]),[n,u]}function $t(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var G5=typeof Symbol=="function"&&Symbol.observable||"@@observable",Cw=G5,$m=()=>Math.random().toString(36).substring(7).split("").join("."),Y5={INIT:`@@redux/INIT${$m()}`,REPLACE:`@@redux/REPLACE${$m()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${$m()}`},Nd=Y5;function ag(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function bO(e,t,r){if(typeof e!="function")throw new Error($t(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error($t(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error($t(1));return r(bO)(e,t)}let n=e,i=t,o=new Map,s=o,u=0,d=!1;function f(){s===o&&(s=new Map,o.forEach((E,P)=>{s.set(P,E)}))}function h(){if(d)throw new Error($t(3));return i}function m(E){if(typeof E!="function")throw new Error($t(4));if(d)throw new Error($t(5));let P=!0;f();const O=u++;return s.set(O,E),function(){if(P){if(d)throw new Error($t(6));P=!1,f(),s.delete(O),o=null}}}function v(E){if(!ag(E))throw new Error($t(7));if(typeof E.type>"u")throw new Error($t(8));if(typeof E.type!="string")throw new Error($t(17));if(d)throw new Error($t(9));try{d=!0,i=n(i,E)}finally{d=!1}return(o=s).forEach(O=>{O()}),E}function x(E){if(typeof E!="function")throw new Error($t(10));n=E,v({type:Nd.REPLACE})}function k(){const E=m;return{subscribe(P){if(typeof P!="object"||P===null)throw new Error($t(11));function O(){const _=P;_.next&&_.next(h())}return O(),{unsubscribe:E(O)}},[Cw](){return this}}}return v({type:Nd.INIT}),{dispatch:v,subscribe:m,getState:h,replaceReducer:x,[Cw]:k}}function Q5(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Nd.INIT})>"u")throw new Error($t(12));if(typeof r(void 0,{type:Nd.PROBE_UNKNOWN_ACTION()})>"u")throw new Error($t(13))})}function wO(e){const t=Object.keys(e),r={};for(let o=0;o"u")throw u&&u.type,new Error($t(14));f[m]=k,d=d||k!==x}return d=d||n.length!==Object.keys(s).length,d?f:s}}function Id(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function X5(...e){return t=>(r,n)=>{const i=t(r,n);let o=()=>{throw new Error($t(15))};const s={getState:i.getState,dispatch:(d,...f)=>o(d,...f)},u=e.map(d=>d(s));return o=Id(...u)(i.dispatch),{...i,dispatch:o}}}function SO(e){return ag(e)&&"type"in e&&typeof e.type=="string"}var kO=Symbol.for("immer-nothing"),_w=Symbol.for("immer-draftable"),ir=Symbol.for("immer-state");function rn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Ar=Object,fl=Ar.getPrototypeOf,Md="constructor",Ff="prototype",Vv="configurable",Td="enumerable",wd="writable",Zs="value",ei=e=>!!e&&!!e[ir];function ln(e){var t;return e?EO(e)||Uf(e)||!!e[_w]||!!((t=e[Md])!=null&&t[_w])||Wf(e)||Hf(e):!1}var Z5=Ar[Ff][Md].toString(),jw=new WeakMap;function EO(e){if(!e||!og(e))return!1;const t=fl(e);if(t===null||t===Ar[Ff])return!0;const r=Ar.hasOwnProperty.call(t,Md)&&t[Md];if(r===Object)return!0;if(!Bo(r))return!1;let n=jw.get(r);return n===void 0&&(n=Function.toString.call(r),jw.set(r,n)),n===Z5}function Bf(e,t,r=!0){bu(e)===0?(r?Reflect.ownKeys(e):Ar.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function bu(e){const t=e[ir];return t?t.type_:Uf(e)?1:Wf(e)?2:Hf(e)?3:0}var Nw=(e,t,r=bu(e))=>r===2?e.has(t):Ar[Ff].hasOwnProperty.call(e,t),qv=(e,t,r=bu(e))=>r===2?e.get(t):e[t],Dd=(e,t,r,n=bu(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function J5(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Uf=Array.isArray,Wf=e=>e instanceof Map,Hf=e=>e instanceof Set,og=e=>typeof e=="object",Bo=e=>typeof e=="function",Lm=e=>typeof e=="boolean";function eL(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Hn=e=>e.copy_||e.base_,lg=e=>e.modified_?e.copy_:e.base_;function Gv(e,t){if(Wf(e))return new Map(e);if(Hf(e))return new Set(e);if(Uf(e))return Array[Ff].slice.call(e);const r=EO(e);if(t===!0||t==="class_only"&&!r){const n=Ar.getOwnPropertyDescriptors(e);delete n[ir];let i=Reflect.ownKeys(n);for(let o=0;o1&&Ar.defineProperties(e,{set:nd,add:nd,clear:nd,delete:nd}),Ar.freeze(e),t&&Bf(e,(r,n)=>{sg(n,!0)},!1)),e}function tL(){rn(2)}var nd={[Zs]:tL};function Kf(e){return e===null||!og(e)?!0:Ar.isFrozen(e)}var Rd="MapSet",Yv="Patches",Iw="ArrayMethods",PO={};function Ka(e){const t=PO[e];return t||rn(0,e),t}var Mw=e=>!!PO[e],Js,AO=()=>Js,rL=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Mw(Rd)?Ka(Rd):void 0,arrayMethodsPlugin_:Mw(Iw)?Ka(Iw):void 0});function Tw(e,t){t&&(e.patchPlugin_=Ka(Yv),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Qv(e){Xv(e),e.drafts_.forEach(nL),e.drafts_=null}function Xv(e){e===Js&&(Js=e.parent_)}var Dw=e=>Js=rL(Js,e);function nL(e){const t=e[ir];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Rw(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[ir].modified_&&(Qv(t),rn(4)),ln(e)&&(e=$w(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[ir].base_,e,t)}else e=$w(t,r);return iL(t,e,!0),Qv(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==kO?e:void 0}function $w(e,t){if(Kf(t))return t;const r=t[ir];if(!r)return $d(t,e.handledSet_,e);if(!Vf(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);_O(r,e)}return r.copy_}function iL(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sg(t,r)}function OO(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Vf=(e,t)=>e.scope_===t,aL=[];function CO(e,t,r,n){const i=Hn(e),o=e.type_;if(n!==void 0&&qv(i,n,o)===t){Dd(i,n,r,o);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;Bf(i,(d,f)=>{if(ei(f)){const h=u.get(f)||[];h.push(d),u.set(f,h)}})}const s=e.draftLocations_.get(t)??aL;for(const u of s)Dd(i,u,r,o)}function oL(e,t,r){e.callbacks_.push(function(i){var u;const o=t;if(!o||!Vf(o,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(o);const s=lg(o);CO(e,o.draft_??o,s,r),_O(o,i)})}function _O(e,t){var n;if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(((n=e.assigned_)==null?void 0:n.size)??0)>0)){const{patchPlugin_:i}=t;if(i){const o=i.getPath(e);o&&i.generatePatches_(e,o,t)}OO(e)}}function lL(e,t,r){const{scope_:n}=e;if(ei(r)){const i=r[ir];Vf(i,n)&&i.callbacks_.push(function(){Sd(e);const s=lg(i);CO(e,r,s,t)})}else ln(r)&&e.callbacks_.push(function(){const o=Hn(e);e.type_===3?o.has(r)&&$d(r,n.handledSet_,n):qv(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&$d(qv(e.copy_,t,e.type_),n.handledSet_,n)})}function $d(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ei(e)||t.has(e)||!ln(e)||Kf(e)||(t.add(e),Bf(e,(n,i)=>{if(ei(i)){const o=i[ir];if(Vf(o,r)){const s=lg(o);Dd(e,n,s,e.type_),OO(o)}}else ln(i)&&$d(i,t,r)})),e}function sL(e,t){const r=Uf(e),n={type_:r?1:0,scope_:t?t.scope_:AO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=n,o=Ld;r&&(i=[n],o=eu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,[u,n]}var Ld={get(e,t){if(t===ir)return e;let r=e.scope_.arrayMethodsPlugin_;const n=e.type_===1&&typeof t=="string";if(n&&r!=null&&r.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const i=Hn(e);if(!Nw(i,t,e.type_))return uL(e,i,t);const o=i[t];if(e.finalized_||!ln(o)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&eL(t))return o;if(o===zm(e.base_,t)){Sd(e);const s=e.type_===1?+t:t,u=Jv(e.scope_,o,e,s);return e.copy_[s]=u}return o},has(e,t){return t in Hn(e)},ownKeys(e){return Reflect.ownKeys(Hn(e))},set(e,t,r){const n=jO(Hn(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=zm(Hn(e),t),o=i==null?void 0:i[ir];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(J5(r,i)&&(r!==void 0||Nw(e.base_,t,e.type_)))return!0;Sd(e),Zv(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),lL(e,t,r)),!0},deleteProperty(e,t){return Sd(e),zm(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Zv(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Hn(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[wd]:!0,[Vv]:e.type_!==1||t!=="length",[Td]:n[Td],[Zs]:r[t]}},defineProperty(){rn(11)},getPrototypeOf(e){return fl(e.base_)},setPrototypeOf(){rn(12)}},eu={};for(let e in Ld){let t=Ld[e];eu[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}eu.deleteProperty=function(e,t){return eu.set.call(this,e,t,void 0)};eu.set=function(e,t,r){return Ld.set.call(this,e[0],t,r,e[0])};function zm(e,t){const r=e[ir];return(r?Hn(r):e)[t]}function uL(e,t,r){var i;const n=jO(t,r);return n?Zs in n?n[Zs]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function jO(e,t){if(!(t in e))return;let r=fl(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=fl(r)}}function Zv(e){e.modified_||(e.modified_=!0,e.parent_&&Zv(e.parent_))}function Sd(e){e.copy_||(e.assigned_=new Map,e.copy_=Gv(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var cL=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Bo(r)&&!Bo(n)){const s=n;n=r;const u=this;return function(f=s,...h){return u.produce(f,m=>n.call(this,m,...h))}}Bo(n)||rn(6),i!==void 0&&!Bo(i)&&rn(7);let o;if(ln(r)){const s=Dw(this),u=Jv(s,r,void 0);let d=!0;try{o=n(u),d=!1}finally{d?Qv(s):Xv(s)}return Tw(s,i),Rw(o,s)}else if(!r||!og(r)){if(o=n(r),o===void 0&&(o=r),o===kO&&(o=void 0),this.autoFreeze_&&sg(o,!0),i){const s=[],u=[];Ka(Yv).generateReplacementPatches_(r,o,{patches_:s,inversePatches_:u}),i(s,u)}return o}else rn(1,r)},this.produceWithPatches=(r,n)=>{if(Bo(r))return(u,...d)=>this.produceWithPatches(u,f=>r(f,...d));let i,o;return[this.produce(r,n,(u,d)=>{i=u,o=d}),i,o]},Lm(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Lm(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Lm(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){ln(t)||rn(8),ei(t)&&(t=zr(t));const r=Dw(this),n=Jv(r,t,void 0);return n[ir].isManual_=!0,Xv(r),n}finishDraft(t,r){const n=t&&t[ir];(!n||!n.isManual_)&&rn(9);const{scope_:i}=n;return Tw(i,r),Rw(void 0,i)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const o=r[n];if(o.path.length===0&&o.op==="replace"){t=o.value;break}}n>-1&&(r=r.slice(n+1));const i=Ka(Yv).applyPatches_;return ei(t)?i(t,r):this.produce(t,o=>i(o,r))}};function Jv(e,t,r,n){const[i,o]=Wf(t)?Ka(Rd).proxyMap_(t,r):Hf(t)?Ka(Rd).proxySet_(t,r):sL(t,r);return((r==null?void 0:r.scope_)??AO()).drafts_.push(i),o.callbacks_=(r==null?void 0:r.callbacks_)??[],o.key_=n,r&&n!==void 0?oL(r,o,n):o.callbacks_.push(function(d){var h;(h=d.mapSetPlugin_)==null||h.fixSetContents(o);const{patchPlugin_:f}=d;o.modified_&&f&&f.generatePatches_(o,[],d)}),i}function zr(e){return ei(e)||rn(10,e),NO(e)}function NO(e){if(!ln(e)||Kf(e))return e;const t=e[ir];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Gv(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Gv(e,!0);return Bf(r,(i,o)=>{Dd(r,i,NO(o))},n),t&&(t.finalized_=!1),r}var dL=new cL,IO=dL.produce;function MO(e){return({dispatch:r,getState:n})=>i=>o=>typeof o=="function"?o(r,n,e):i(o)}var fL=MO(),hL=MO,pL=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Id:Id.apply(null,arguments)};function Cr(e,t){function r(...n){if(t){let i=t(...n);if(!i)throw new Error(Or(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>SO(n)&&n.type===e,r}var TO=class Ls extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Ls.prototype)}static get[Symbol.species](){return Ls}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Ls(...t[0].concat(this)):new Ls(...t.concat(this))}};function Lw(e){return ln(e)?IO(e,()=>{}):e}function id(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function mL(e){return typeof e=="boolean"}var vL=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let s=new TO;return r&&(mL(r)?s.push(fL):s.push(hL(r.extraArgument))),s},DO="RTK_autoBatch",tt=()=>e=>({payload:e,meta:{[DO]:!0}}),zw=e=>t=>{setTimeout(t,e)},yL=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(s),r())},o=e(i),s=setTimeout(i,t)},RO=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let i=!0,o=!1,s=!1;const u=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?yL(window.requestAnimationFrame,100):zw(10):e.type==="callback"?e.queueNotification:zw(e.timeout),f=()=>{s=!1,o&&(o=!1,u.forEach(h=>h()))};return Object.assign({},n,{subscribe(h){const m=()=>i&&h(),v=n.subscribe(m);return u.add(h),()=>{v(),u.delete(h)}},dispatch(h){var m;try{return i=!((m=h==null?void 0:h.meta)!=null&&m[DO]),o=!i,o&&(s||(s=!0,d(f))),n.dispatch(h)}finally{i=!0}}})},gL=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new TO(e);return n&&i.push(RO(typeof n=="object"?n:void 0)),i};function xL(e){const t=vL(),{reducer:r=void 0,middleware:n,devTools:i=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{};let u;if(typeof r=="function")u=r;else if(ag(r))u=wO(r);else throw new Error(Or(1));let d;typeof n=="function"?d=n(t):d=t();let f=Id;i&&(f=pL({trace:!1,...typeof i=="object"&&i}));const h=X5(...d),m=gL(h);let v=typeof s=="function"?s(m):m();const x=f(...v);return bO(u,o,x)}function $O(e){const t={},r=[];let n;const i={addCase(o,s){const u=typeof o=="string"?o:o.type;if(!u)throw new Error(Or(28));if(u in t)throw new Error(Or(29));return t[u]=s,i},addAsyncThunk(o,s){return s.pending&&(t[o.pending.type]=s.pending),s.rejected&&(t[o.rejected.type]=s.rejected),s.fulfilled&&(t[o.fulfilled.type]=s.fulfilled),s.settled&&r.push({matcher:o.settled,reducer:s.settled}),i},addMatcher(o,s){return r.push({matcher:o,reducer:s}),i},addDefaultCase(o){return n=o,i}};return e(i),[t,r,n]}function bL(e){return typeof e=="function"}function wL(e,t){let[r,n,i]=$O(t),o;if(bL(e))o=()=>Lw(e());else{const u=Lw(e);o=()=>u}function s(u=o(),d){let f=[r[d.type],...n.filter(({matcher:h})=>h(d)).map(({reducer:h})=>h)];return f.filter(h=>!!h).length===0&&(f=[i]),f.reduce((h,m)=>{if(m)if(ei(h)){const x=m(h,d);return x===void 0?h:x}else{if(ln(h))return IO(h,v=>m(v,d));{const v=m(h,d);if(v===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return v}}return h},u)}return s.getInitialState=o,s}var SL="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",kL=(e=21)=>{let t="",r=e;for(;r--;)t+=SL[Math.random()*64|0];return t},EL=Symbol.for("rtk-slice-createasyncthunk");function PL(e,t){return`${e}/${t}`}function AL({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[EL];return function(i){const{name:o,reducerPath:s=o}=i;if(!o)throw new Error(Or(11));const u=(typeof i.reducers=="function"?i.reducers(CL()):i.reducers)||{},d=Object.keys(u),f={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(_,N){const C=typeof _=="string"?_:_.type;if(!C)throw new Error(Or(12));if(C in f.sliceCaseReducersByType)throw new Error(Or(13));return f.sliceCaseReducersByType[C]=N,h},addMatcher(_,N){return f.sliceMatchers.push({matcher:_,reducer:N}),h},exposeAction(_,N){return f.actionCreators[_]=N,h},exposeCaseReducer(_,N){return f.sliceCaseReducersByName[_]=N,h}};d.forEach(_=>{const N=u[_],C={reducerName:_,type:PL(o,_),createNotation:typeof i.reducers=="function"};jL(N)?IL(C,N,h,t):_L(C,N,h)});function m(){const[_={},N=[],C=void 0]=typeof i.extraReducers=="function"?$O(i.extraReducers):[i.extraReducers],D={..._,...f.sliceCaseReducersByType};return wL(i.initialState,F=>{for(let z in D)F.addCase(z,D[z]);for(let z of f.sliceMatchers)F.addMatcher(z.matcher,z.reducer);for(let z of N)F.addMatcher(z.matcher,z.reducer);C&&F.addDefaultCase(C)})}const v=_=>_,x=new Map,k=new WeakMap;let S;function E(_,N){return S||(S=m()),S(_,N)}function P(){return S||(S=m()),S.getInitialState()}function O(_,N=!1){function C(F){let z=F[_];return typeof z>"u"&&N&&(z=id(k,C,P)),z}function D(F=v){const z=id(x,N,()=>new WeakMap);return id(z,F,()=>{const q={};for(const[X,B]of Object.entries(i.selectors??{}))q[X]=OL(B,F,()=>id(k,F,P),N);return q})}return{reducerPath:_,getSelectors:D,get selectors(){return D(C)},selectSlice:C}}const j={name:o,reducer:E,actions:f.actionCreators,caseReducers:f.sliceCaseReducersByName,getInitialState:P,...O(s),injectInto(_,{reducerPath:N,...C}={}){const D=N??s;return _.inject({reducerPath:D,reducer:E},C),{...j,...O(D,!0)}}};return j}}function OL(e,t,r,n){function i(o,...s){let u=t(o);return typeof u>"u"&&n&&(u=r()),e(u,...s)}return i.unwrapped=e,i}var Zt=AL();function CL(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function _L({type:e,reducerName:t,createNotation:r},n,i){let o,s;if("reducer"in n){if(r&&!NL(n))throw new Error(Or(17));o=n.reducer,s=n.prepare}else o=n;i.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,s?Cr(e,s):Cr(e))}function jL(e){return e._reducerDefinitionType==="asyncThunk"}function NL(e){return e._reducerDefinitionType==="reducerWithPrepare"}function IL({type:e,reducerName:t},r,n,i){if(!i)throw new Error(Or(18));const{payloadCreator:o,fulfilled:s,pending:u,rejected:d,settled:f,options:h}=r,m=i(e,o,h);n.exposeAction(t,m),s&&n.addCase(m.fulfilled,s),u&&n.addCase(m.pending,u),d&&n.addCase(m.rejected,d),f&&n.addMatcher(m.settled,f),n.exposeCaseReducer(t,{fulfilled:s||ad,pending:u||ad,rejected:d||ad,settled:f||ad})}function ad(){}var ML="task",LO="listener",zO="completed",ug="cancelled",TL=`task-${ug}`,DL=`task-${zO}`,ey=`${LO}-${ug}`,RL=`${LO}-${zO}`,qf=class{constructor(e){xs(this,"code");xs(this,"name","TaskAbortError");xs(this,"message");this.code=e,this.message=`${ML} ${ug} (reason: ${e})`}},cg=(e,t)=>{if(typeof e!="function")throw new TypeError(Or(32))},zd=()=>{},FO=(e,t=zd)=>(e.catch(t),e),BO=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),za=e=>{if(e.aborted)throw new qf(e.reason)};function UO(e,t){let r=zd;return new Promise((n,i)=>{const o=()=>i(new qf(e.reason));if(e.aborted){o();return}r=BO(e,o),t.finally(()=>r()).then(n,i)}).finally(()=>{r=zd})}var $L=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof qf?"cancelled":"rejected",error:r}}finally{t==null||t()}},Fd=e=>t=>FO(UO(e,t).then(r=>(za(e),r))),WO=e=>{const t=Fd(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Go}=Object,Fw={},Gf="listenerMiddleware",LL=(e,t)=>{const r=n=>BO(e,()=>n.abort(e.reason));return(n,i)=>{cg(n);const o=new AbortController;r(o);const s=$L(async()=>{za(e),za(o.signal);const u=await n({pause:Fd(o.signal),delay:WO(o.signal),signal:o.signal});return za(o.signal),u},()=>o.abort(DL));return i!=null&&i.autoJoin&&t.push(s.catch(zd)),{result:Fd(e)(s),cancel(){o.abort(TL)}}}},zL=(e,t)=>{const r=async(n,i)=>{za(t);let o=()=>{};const u=[new Promise((d,f)=>{let h=e({predicate:n,effect:(m,v)=>{v.unsubscribe(),d([m,v.getState(),v.getOriginalState()])}});o=()=>{h(),f()}})];i!=null&&u.push(new Promise(d=>setTimeout(d,i,null)));try{const d=await UO(t,Promise.race(u));return za(t),d}finally{o()}};return((n,i)=>FO(r(n,i)))},HO=e=>{let{type:t,actionCreator:r,matcher:n,predicate:i,effect:o}=e;if(t)i=Cr(t).match;else if(r)t=r.type,i=r.match;else if(n)i=n;else if(!i)throw new Error(Or(21));return cg(o),{predicate:i,type:t,effect:o}},KO=Go(e=>{const{type:t,predicate:r,effect:n}=HO(e);return{id:kL(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Or(22))}}},{withTypes:()=>KO}),Bw=(e,t)=>{const{type:r,effect:n,predicate:i}=HO(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===i)&&o.effect===n)},ty=e=>{e.pending.forEach(t=>{t.abort(ey)})},FL=(e,t)=>()=>{for(const r of t.keys())ty(r);e.clear()},Uw=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},VO=Go(Cr(`${Gf}/add`),{withTypes:()=>VO}),BL=Cr(`${Gf}/removeAll`),qO=Go(Cr(`${Gf}/remove`),{withTypes:()=>qO}),UL=(...e)=>{console.error(`${Gf}/error`,...e)},wu=(e={})=>{const t=new Map,r=new Map,n=x=>{const k=r.get(x)??0;r.set(x,k+1)},i=x=>{const k=r.get(x)??1;k===1?r.delete(x):r.set(x,k-1)},{extra:o,onError:s=UL}=e;cg(s);const u=x=>(x.unsubscribe=()=>t.delete(x.id),t.set(x.id,x),k=>{x.unsubscribe(),k!=null&&k.cancelActive&&ty(x)}),d=(x=>{const k=Bw(t,x)??KO(x);return u(k)});Go(d,{withTypes:()=>d});const f=x=>{const k=Bw(t,x);return k&&(k.unsubscribe(),x.cancelActive&&ty(k)),!!k};Go(f,{withTypes:()=>f});const h=async(x,k,S,E)=>{const P=new AbortController,O=zL(d,P.signal),j=[];try{x.pending.add(P),n(x),await Promise.resolve(x.effect(k,Go({},S,{getOriginalState:E,condition:(_,N)=>O(_,N).then(Boolean),take:O,delay:WO(P.signal),pause:Fd(P.signal),extra:o,signal:P.signal,fork:LL(P.signal,j),unsubscribe:x.unsubscribe,subscribe:()=>{t.set(x.id,x)},cancelActiveListeners:()=>{x.pending.forEach((_,N,C)=>{_!==P&&(_.abort(ey),C.delete(_))})},cancel:()=>{P.abort(ey),x.pending.delete(P)},throwIfCancelled:()=>{za(P.signal)}})))}catch(_){_ instanceof qf||Uw(s,_,{raisedBy:"effect"})}finally{await Promise.all(j),P.abort(RL),i(x),x.pending.delete(P)}},m=FL(t,r);return{middleware:x=>k=>S=>{if(!SO(S))return k(S);if(VO.match(S))return d(S.payload);if(BL.match(S)){m();return}if(qO.match(S))return f(S.payload);let E=x.getState();const P=()=>{if(E===Fw)throw new Error(Or(23));return E};let O;try{if(O=k(S),t.size>0){const j=x.getState(),_=Array.from(t.values());for(const N of _){let C=!1;try{C=N.predicate(S,j,E)}catch(D){C=!1,Uw(s,D,{raisedBy:"predicate"})}C&&h(N,S,x,P)}}}finally{E=Fw}return O},startListening:d,stopListening:f,clearListeners:m}};function Or(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var WL={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},GO=Zt({name:"chartLayout",initialState:WL,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,i,o;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(i=t.payload.bottom)!==null&&i!==void 0?i:0,e.margin.left=(o=t.payload.left)!==null&&o!==void 0?o:0},setScale(e,t){e.scale=t.payload}}}),Yf=GO.actions,HL=Yf.setMargin,KL=Yf.setLayout,VL=Yf.setChartSize,qL=Yf.setScale,GL=GO.reducer;function YO(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Fe(e){return Number.isFinite(e)}function _n(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Ww(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Uo(e){for(var t=1;t{if(t&&r){var n=r.width,i=r.height,o=t.align,s=t.verticalAlign,u=t.layout;if((u==="vertical"||u==="horizontal"&&s==="middle")&&o!=="center"&&be(e[o]))return Uo(Uo({},e),{},{[o]:e[o]+(n||0)});if((u==="horizontal"||u==="vertical"&&o==="center")&&s!=="middle"&&be(e[s]))return Uo(Uo({},e),{},{[s]:e[s]+(i||0)})}return e},In=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",QO=(e,t,r,n)=>{if(n)return e.map(u=>u.coordinate);var i,o,s=e.map(u=>(u.coordinate===t&&(i=!0),u.coordinate===r&&(o=!0),u.coordinate));return i||s.push(t),o||s.push(r),s},XO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,i=e.type,o=e.range,s=e.scale,u=e.realScaleType,d=e.isCategorical,f=e.categoricalDomain,h=e.tickCount,m=e.ticks,v=e.niceTicks,x=e.axisType;if(!s)return null;var k=u==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,S=i==="category"&&s.bandwidth?s.bandwidth()/k:0;if(S=x==="angleAxis"&&o&&o.length>=2?Lr(o[0]-o[1])*2*S:S,m||v){var E=(m||v||[]).map((P,O)=>{var j=n?n.indexOf(P):P,_=s.map(j);return Fe(_)?{coordinate:_+S,value:P,offset:S,index:O}:null}).filter(mr);return E}return d&&f?f.map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.ticks&&h!=null?s.ticks(h).map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.domain().map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:n?n[P]:P,index:O,offset:S}:null}).filter(mr)},JL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(f[0]=o,o+=v,f[1]=o):(f[0]=s,s+=v,f[1]=s)}}}},e4=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(d[0]=o,o+=f,d[1]=o):(d[0]=0,d[1]=0)}}}},t4={sign:JL,expand:y$,none:Wa,silhouette:g$,wiggle:x$,positive:e4},r4=(e,t,r)=>{var n,i=(n=t4[r])!==null&&n!==void 0?n:Wa,o=v$().keys(t).value((u,d)=>Number(Nt(u,d,0))).order(Bv).offset(i),s=o(e);return s.forEach((u,d)=>{u.forEach((f,h)=>{var m=Nt(e[h],t[d],0);Array.isArray(m)&&m.length===2&&be(m[0])&&be(m[1])&&(f[0]=m[0],f[1]=m[1])})}),s};function n4(e){return e==null?void 0:String(e)}function Hw(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,o=e.index,s=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ut(i[t.dataKey])){var u=nO(r,"value",i[t.dataKey]);if(u)return u.coordinate+n/2}return r!=null&&r[o]?r[o].coordinate+n/2:null}var d=Nt(i,Ut(s)?t.dataKey:s),f=t.scale.map(d);return be(f)?f:null}var i4=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},a4=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],o4=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return a4(Object.keys(e).reduce((n,i)=>{var o=e[i];if(!o)return n;var s=o.stackedData,u=s.reduce((d,f)=>{var h=YO(f,t,r),m=i4(h);return!Fe(m[0])||!Fe(m[1])?d:[Math.min(d[0],m[0]),Math.max(d[1],m[1])]},[1/0,-1/0]);return[Math.min(u[0],n[0]),Math.max(u[1],n[1])]},[1/0,-1/0]))},Kw=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Vw=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Bd=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var i=zf(t,h=>h.coordinate),o=1/0,s=1,u=i.length;s{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},s4=(e,t)=>t==="centric"?e.angle:e.radius,ai=e=>e.layout.width,oi=e=>e.layout.height,u4=e=>e.layout.scale,JO=e=>e.layout.margin,Qf=H(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Xf=H(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),c4="data-recharts-item-index",d4="data-recharts-item-id",Su=60;function Gw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function od(e){for(var t=1;te.brush.height;function v4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Su;return r+i}return r},0)}function y4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Su;return r+i}return r},0)}function g4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function x4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Ht=H([ai,oi,JO,m4,v4,y4,g4,x4,xO,F5],(e,t,r,n,i,o,s,u,d,f)=>{var h={left:(r.left||0)+i,right:(r.right||0)+o},m={top:(r.top||0)+s,bottom:(r.bottom||0)+u},v=od(od({},m),h),x=v.bottom;v.bottom+=n,v=ZL(v,d,f);var k=e-v.left-v.right,S=t-v.top-v.bottom;return od(od({brushBottom:x},v),{},{width:Math.max(k,0),height:Math.max(S,0)})}),b4=H(Ht,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),e2=H(ai,oi,(e,t)=>({x:0,y:0,width:e,height:t})),w4=g.createContext(null),gr=()=>g.useContext(w4)!=null,Zf=e=>e.brush,Jf=H([Zf,Ht,JO],(e,t,r)=>({height:e.height,x:be(e.x)?e.x:t.left,y:be(e.y)?e.y:t.top+t.height+t.brushBottom-((r==null?void 0:r.bottom)||0),width:be(e.width)?e.width:t.width}));function S4(e,t,{signal:r,edges:n}={}){let i,o=null;const s=n!=null&&n.includes("leading"),u=n==null||n.includes("trailing"),d=()=>{o!==null&&(e.apply(i,o),i=void 0,o=null)},f=()=>{u&&d(),x()};let h=null;const m=()=>{h!=null&&clearTimeout(h),h=setTimeout(()=>{h=null,f()},t)},v=()=>{h!==null&&(clearTimeout(h),h=null)},x=()=>{v(),i=void 0,o=null},k=()=>{d()},S=function(...E){if(r!=null&&r.aborted)return;i=this,o=E;const P=h==null;m(),s&&P&&d()};return S.schedule=m,S.cancel=x,S.flush=k,r==null||r.addEventListener("abort",x,{once:!0}),S}function k4(e,t=0,r={}){typeof r!="object"&&(r={});const{leading:n=!1,trailing:i=!0,maxWait:o}=r,s=Array(2);n&&(s[0]="leading"),i&&(s[1]="trailing");let u,d=null;const f=S4(function(...v){u=e.apply(this,v),d=null},t,{edges:s}),h=function(...v){return o!=null&&(d===null&&(d=Date.now()),Date.now()-d>=o)?(u=e.apply(this,v),d=Date.now(),f.cancel(),f.schedule(),u):(f.apply(this,v),u)},m=()=>(f.flush(),u);return h.cancel=f.cancel,h.flush=m,h}function E4(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return k4(e,t,{leading:n,maxWait:t,trailing:i})}var Ud=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;oi[s++]))}},kn={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},t2=(e,t,r)=>{var n=r.width,i=n===void 0?kn.width:n,o=r.height,s=o===void 0?kn.height:o,u=r.aspect,d=r.maxHeight,f=Ha(i)?e:Number(i),h=Ha(s)?t:Number(s);return u&&u>0&&(f?h=f/u:h&&(f=h*u),d&&h!=null&&h>d&&(h=d)),{calculatedWidth:f,calculatedHeight:h}},P4={width:0,height:0,overflow:"visible"},A4={width:0,overflowX:"visible"},O4={height:0,overflowY:"visible"},C4={},_4=e=>{var t=e.width,r=e.height,n=Ha(t),i=Ha(r);return n&&i?P4:n?A4:i?O4:C4};function j4(e){var t=e.width,r=e.height,n=e.aspect,i=t,o=r;return i===void 0&&o===void 0?(i=kn.width,o=kn.height):i===void 0?i=n&&n>0?void 0:kn.width:o===void 0&&(o=n&&n>0?void 0:kn.height),{width:i,height:o}}var N4=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Wd(){return Wd=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return U4(i)?g.createElement(r2.Provider,{value:i},t):null}var dg=()=>g.useContext(r2),W4=g.forwardRef((e,t)=>{var r=e.aspect,n=e.initialDimension,i=n===void 0?kn.initialDimension:n,o=e.width,s=e.height,u=e.minWidth,d=u===void 0?kn.minWidth:u,f=e.minHeight,h=e.maxHeight,m=e.children,v=e.debounce,x=v===void 0?kn.debounce:v,k=e.id,S=e.className,E=e.onResize,P=e.style,O=P===void 0?{}:P,j=F4(e,N4),_=g.useRef(null),N=g.useRef();N.current=E,g.useImperativeHandle(t,()=>_.current);var C=g.useState({containerWidth:i.width,containerHeight:i.height}),D=D4(C,2),F=D[0],z=D[1],q=g.useCallback((fe,de)=>{z(K=>{var ie=Math.round(fe),Q=Math.round(de);return K.containerWidth===ie&&K.containerHeight===Q?K:{containerWidth:ie,containerHeight:Q}})},[]);g.useEffect(()=>{if(_.current==null||typeof ResizeObserver>"u")return kl;var fe=R=>{var M,J=R[0];if(J!=null){var se=J.contentRect,te=se.width,ce=se.height;q(te,ce),(M=N.current)===null||M===void 0||M.call(N,te,ce)}};x>0&&(fe=E4(fe,x,{trailing:!0,leading:!1}));var de=new ResizeObserver(fe),K=_.current.getBoundingClientRect(),ie=K.width,Q=K.height;return q(ie,Q),de.observe(_.current),()=>{de.disconnect()}},[q,x]);var X=F.containerWidth,B=F.containerHeight;Ud(!r||r>0,"The aspect(%s) must be greater than zero.",r);var ue=t2(X,B,{width:o,height:s,aspect:r,maxHeight:h}),Y=ue.calculatedWidth,le=ue.calculatedHeight;return Ud(X<0||B<0||Y!=null&&Y>0||le!=null&&le>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,Y,le,o,s,d,f,r),g.createElement("div",Wd({id:k?"".concat(k):void 0,className:Qe("recharts-responsive-container",S),style:Qw(Qw({},O),{},{width:o,height:s,minWidth:d,minHeight:f,maxHeight:h}),ref:_},j),g.createElement("div",{style:_4({width:o,height:s})},g.createElement(n2,{width:Y,height:le},m)))}),H4=g.forwardRef((e,t)=>{var r=dg();if(_n(r.width)&&_n(r.height))return e.children;var n=j4({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,o=n.height,s=t2(void 0,void 0,{width:i,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),u=s.calculatedWidth,d=s.calculatedHeight;return be(u)&&be(d)?g.createElement(n2,{width:u,height:d},e.children):g.createElement(W4,Wd({},e,{width:i,height:o,ref:t}))});function fg(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var eh=()=>{var e,t=gr(),r=ke(b4),n=ke(Jf),i=(e=ke(Zf))===null||e===void 0?void 0:e.padding;return!t||!n||!i?r:{width:n.width-i.left-i.right,height:n.height-i.top-i.bottom,x:i.left,y:i.top}},K4={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},i2=()=>{var e;return(e=ke(Ht))!==null&&e!==void 0?e:K4},a2=()=>ke(ai),o2=()=>ke(oi),ot=e=>e.layout.layoutType,El=()=>ke(ot),hg=()=>{var e=El();if(e==="horizontal"||e==="vertical")return e},l2=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},V4=()=>{var e=El();return e!==void 0},ku=e=>{var t=xt(),r=gr(),n=e.width,i=e.height,o=dg(),s=n,u=i;return o&&(s=o.width>0?o.width:n,u=o.height>0?o.height:i),g.useEffect(()=>{!r&&_n(s)&&_n(u)&&t(VL({width:s,height:u}))},[t,r,s,u]),null},s2=Symbol.for("immer-nothing"),Zw=Symbol.for("immer-draftable"),_r=Symbol.for("immer-state");function nn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var tu=Object.getPrototypeOf;function hl(e){return!!e&&!!e[_r]}function Va(e){var t;return e?u2(e)||Array.isArray(e)||!!e[Zw]||!!((t=e.constructor)!=null&&t[Zw])||Eu(e)||rh(e):!1}var q4=Object.prototype.constructor.toString(),Jw=new WeakMap;function u2(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Jw.get(r);return n===void 0&&(n=Function.toString.call(r),Jw.set(r,n)),n===q4}function Hd(e,t,r=!0){th(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function th(e){const t=e[_r];return t?t.type_:Array.isArray(e)?1:Eu(e)?2:rh(e)?3:0}function ry(e,t){return th(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c2(e,t,r){const n=th(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function G4(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Eu(e){return e instanceof Map}function rh(e){return e instanceof Set}function wa(e){return e.copy_||e.base_}function ny(e,t){if(Eu(e))return new Map(e);if(rh(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=u2(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[_r];let i=Reflect.ownKeys(n);for(let o=0;o1&&Object.defineProperties(e,{set:ld,add:ld,clear:ld,delete:ld}),Object.freeze(e),t&&Object.values(e).forEach(r=>pg(r,!0))),e}function Y4(){nn(2)}var ld={value:Y4};function nh(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var Q4={};function qa(e){const t=Q4[e];return t||nn(0,e),t}var ru;function d2(){return ru}function X4(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function eS(e,t){t&&(qa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function iy(e){ay(e),e.drafts_.forEach(Z4),e.drafts_=null}function ay(e){e===ru&&(ru=e.parent_)}function tS(e){return ru=X4(ru,e)}function Z4(e){const t=e[_r];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rS(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[_r].modified_&&(iy(t),nn(4)),Va(e)&&(e=Kd(t,e),t.parent_||Vd(t,e)),t.patches_&&qa("Patches").generateReplacementPatches_(r[_r].base_,e,t.patches_,t.inversePatches_)):e=Kd(t,r,[]),iy(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==s2?e:void 0}function Kd(e,t,r){if(nh(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[_r];if(!i)return Hd(t,(o,s)=>nS(e,i,t,o,s,r),n),t;if(i.scope_!==e)return t;if(!i.modified_)return Vd(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let s=o,u=!1;i.type_===3&&(s=new Set(o),o.clear(),u=!0),Hd(s,(d,f)=>nS(e,i,o,d,f,r,u),n),Vd(e,o,!1),r&&e.patches_&&qa("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function nS(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;const u=nh(i);if(!(u&&!s)){if(hl(i)){const d=o&&t&&t.type_!==3&&!ry(t.assigned_,n)?o.concat(n):void 0,f=Kd(e,i,d);if(c2(r,n,f),hl(f))e.canAutoFreeze_=!1;else return}else s&&r.add(i);if(Va(i)&&!u){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&u)return;Kd(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Eu(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&Vd(e,i)}}}function Vd(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&pg(t,r)}function J4(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:d2(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,o=mg;r&&(i=[n],o=nu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,u}var mg={get(e,t){if(t===_r)return e;const r=wa(e);if(!ry(r,t))return ez(e,r,t);const n=r[t];return e.finalized_||!Va(n)?n:n===Fm(e.base_,t)?(Bm(e),e.copy_[t]=ly(n,e)):n},has(e,t){return t in wa(e)},ownKeys(e){return Reflect.ownKeys(wa(e))},set(e,t,r){const n=f2(wa(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Fm(wa(e),t),o=i==null?void 0:i[_r];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(G4(r,i)&&(r!==void 0||ry(e.base_,t)))return!0;Bm(e),oy(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return Fm(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Bm(e),oy(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=wa(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){nn(11)},getPrototypeOf(e){return tu(e.base_)},setPrototypeOf(){nn(12)}},nu={};Hd(mg,(e,t)=>{nu[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});nu.deleteProperty=function(e,t){return nu.set.call(this,e,t,void 0)};nu.set=function(e,t,r){return mg.set.call(this,e[0],t,r,e[0])};function Fm(e,t){const r=e[_r];return(r?wa(r):e)[t]}function ez(e,t,r){var i;const n=f2(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function f2(e,t){if(!(t in e))return;let r=tu(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=tu(r)}}function oy(e){e.modified_||(e.modified_=!0,e.parent_&&oy(e.parent_))}function Bm(e){e.copy_||(e.copy_=ny(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var tz=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const o=r;r=t;const s=this;return function(d=o,...f){return s.produce(d,h=>r.call(this,h,...f))}}typeof r!="function"&&nn(6),n!==void 0&&typeof n!="function"&&nn(7);let i;if(Va(t)){const o=tS(this),s=ly(t,void 0);let u=!0;try{i=r(s),u=!1}finally{u?iy(o):ay(o)}return eS(o,n),rS(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===s2&&(i=void 0),this.autoFreeze_&&pg(i,!0),n){const o=[],s=[];qa("Patches").generateReplacementPatches_(t,i,o,s),n(o,s)}return i}else nn(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(s,...u)=>this.produceWithPatches(s,d=>t(d,...u));let n,i;return[this.produce(t,r,(s,u)=>{n=s,i=u}),n,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Va(e)||nn(8),hl(e)&&(e=rz(e));const t=tS(this),r=ly(e,void 0);return r[_r].isManual_=!0,ay(t),r}finishDraft(e,t){const r=e&&e[_r];(!r||!r.isManual_)&&nn(9);const{scope_:n}=r;return eS(n,t),rS(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));const n=qa("Patches").applyPatches_;return hl(e)?n(e,t):this.produce(e,i=>n(i,t))}};function ly(e,t){const r=Eu(e)?qa("MapSet").proxyMap_(e,t):rh(e)?qa("MapSet").proxySet_(e,t):J4(e,t);return(t?t.scope_:d2()).drafts_.push(r),r}function rz(e){return hl(e)||nn(10,e),h2(e)}function h2(e){if(!Va(e)||nh(e))return e;const t=e[_r];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=ny(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=ny(e,!0);return Hd(r,(i,o)=>{c2(r,i,h2(o))},n),t&&(t.finalized_=!1),r}var nz=new tz;nz.produce;var iz={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},p2=Zt({name:"legend",initialState:iz,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:tt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).payload.indexOf(n);o>-1&&(e.payload[o]=i)},prepare:tt()},removeLegendPayload:{reducer(e,t){var r=zr(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:tt()}}}),Pu=p2.actions;Pu.setLegendSize;Pu.setLegendSettings;var az=Pu.addLegendPayload,oz=Pu.replaceLegendPayload,lz=Pu.removeLegendPayload,sz=p2.reducer,Um={exports:{}},Wm={};/** - * @license React - * use-sync-external-store-with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var iS;function uz(){if(iS)return Wm;iS=1;var e=wl();function t(d,f){return d===f&&(d!==0||1/d===1/f)||d!==d&&f!==f}var r=typeof Object.is=="function"?Object.is:t,n=e.useSyncExternalStore,i=e.useRef,o=e.useEffect,s=e.useMemo,u=e.useDebugValue;return Wm.useSyncExternalStoreWithSelector=function(d,f,h,m,v){var x=i(null);if(x.current===null){var k={hasValue:!1,value:null};x.current=k}else k=x.current;x=s(function(){function E(N){if(!P){if(P=!0,O=N,N=m(N),v!==void 0&&k.hasValue){var C=k.value;if(v(C,N))return j=C}return j=N}if(C=j,r(O,N))return C;var D=m(N);return v!==void 0&&v(C,D)?(O=N,C):(O=N,j=D)}var P=!1,O,j,_=h===void 0?null:h;return[function(){return E(f())},_===null?void 0:function(){return E(_())}]},[f,h,m,v]);var S=n(d,x[0],x[1]);return o(function(){k.hasValue=!0,k.value=S},[S]),u(S),S},Wm}var aS;function cz(){return aS||(aS=1,Um.exports=uz()),Um.exports}cz();function dz(e){e()}function fz(){let e=null,t=null;return{clear(){e=null,t=null},notify(){dz(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const i=t={callback:r,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!n||e===null||(n=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var oS={notify(){},get:()=>[]};function hz(e,t){let r,n=oS,i=0,o=!1;function s(S){h();const E=n.subscribe(S);let P=!1;return()=>{P||(P=!0,E(),m())}}function u(){n.notify()}function d(){k.onStateChange&&k.onStateChange()}function f(){return o}function h(){i++,r||(r=e.subscribe(d),n=fz())}function m(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=oS)}function v(){o||(o=!0,h())}function x(){o&&(o=!1,m())}const k={addNestedSub:s,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:f,trySubscribe:v,tryUnsubscribe:x,getListeners:()=>n};return k}var pz=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",mz=pz(),vz=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yz=vz(),gz=()=>mz||yz?g.useLayoutEffect:g.useEffect,xz=gz();function lS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function bz(e,t){if(lS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i=0;i{const d=hz(i);return{store:i,subscription:d,getServerState:n?()=>n:void 0}},[i,n]),s=g.useMemo(()=>i.getState(),[i]);xz(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),s!==i.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,s]);const u=r||Sz;return g.createElement(u.Provider,{value:o},t)}var Ez=kz,Pz=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Az(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ih(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Pz.has(n)){if(e[n]==null&&t[n]==null)continue;if(!bz(e[n],t[n]))return!1}else if(!Az(e[n],t[n]))return!1;return!0}function sy(){return sy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?Io.separator:t,n=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?Io.labelStyle:o,u=e.payload,d=e.formatter,f=e.itemSorter,h=e.wrapperClassName,m=e.labelClassName,v=e.label,x=e.labelFormatter,k=e.accessibilityLayer,S=k===void 0?Io.accessibilityLayer:k,E=()=>{if(u&&u.length){var F={padding:0,margin:0},z=Rz(u,f),q=z.map((X,B)=>{if(!X||X.type==="none")return null;var ue=X.formatter||d||Dz,Y=X.value,le=X.name,fe=Y,de=le;if(ue){var K=ue(Y,le,X,B,u);if(Array.isArray(K)){var ie=jz(K,2);fe=ie[0],de=ie[1]}else if(K!=null)fe=K;else return null}var Q=Os(Os({},Io.itemStyle),{},{color:X.color||Io.itemStyle.color},i);return g.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(B),style:Q},Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-name"},de):null,Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,g.createElement("span",{className:"recharts-tooltip-item-value"},fe),g.createElement("span",{className:"recharts-tooltip-item-unit"},X.unit||""))});return g.createElement("ul",{className:"recharts-tooltip-item-list",style:F},q)}return null},P=Os(Os({},Io.contentStyle),n),O=Os({margin:0},s),j=!Ut(v),_=j?v:"",N=Qe("recharts-default-tooltip",h),C=Qe("recharts-tooltip-label",m);j&&x&&u!==void 0&&u!==null&&(_=x(v,u));var D=S?{role:"status","aria-live":"assertive"}:{};return g.createElement("div",sy({className:N,style:P},D),g.createElement("p",{className:C,style:O},g.isValidElement(_)?_:"".concat(_)),E())},Cs="recharts-tooltip-wrapper",Lz={visibility:"hidden"};function zz(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Qe(Cs,{["".concat(Cs,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(Cs,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(Cs,"-top")]:be(n)&&t&&be(t.y)&&n0?i:0),m=r[n]+i;if(t[n])return s[n]?h:m;var v=d[n];if(v==null)return 0;if(s[n]){var x=h,k=v;return xE?Math.max(h,v):Math.max(m,v)}function Fz(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function Bz(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,i=e.offsetLeft,o=e.position,s=e.reverseDirection,u=e.tooltipBox,d=e.useTranslate3d,f=e.viewBox,h,m,v;return u.height>0&&u.width>0&&r?(m=cS({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:o,reverseDirection:s,tooltipDimension:u.width,viewBox:f,viewBoxDimension:f.width}),v=cS({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:s,tooltipDimension:u.height,viewBox:f,viewBoxDimension:f.height}),h=Fz({translateX:m,translateY:v,useTranslate3d:d})):h=Lz,{cssProperties:h,cssClasses:zz({translateX:m,translateY:v,coordinate:r})}}var Uz=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Au={isSsr:Uz()};function Wz(e,t){return qz(e)||Vz(e,t)||Kz(e,t)||Hz()}function Hz(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Kz(e,t){if(e){if(typeof e=="string")return dS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dS(e,t):void 0}}function dS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rAu.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Wz(e,2),r=t[0],n=t[1];return g.useEffect(()=>{if(window.matchMedia){var i=window.matchMedia("(prefers-reduced-motion: reduce)"),o=()=>{n(i.matches)};return i.addEventListener("change",o),()=>{i.removeEventListener("change",o)}}},[]),r}function fS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Mo(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),f=Xz(d,2),h=f[0],m=f[1];g.useEffect(()=>{var P=O=>{if(O.key==="Escape"){var j,_,N,C;m({dismissed:!0,dismissedAtCoordinate:{x:(j=(_=e.coordinate)===null||_===void 0?void 0:_.x)!==null&&j!==void 0?j:0,y:(N=(C=e.coordinate)===null||C===void 0?void 0:C.y)!==null&&N!==void 0?N:0}})}};return document.addEventListener("keydown",P),()=>{document.removeEventListener("keydown",P)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),h.dismissed&&(((n=(i=e.coordinate)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)!==h.dismissedAtCoordinate.x||((o=(s=e.coordinate)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:0)!==h.dismissedAtCoordinate.y)&&m(Mo(Mo({},h),{},{dismissed:!1}));var v=Bz({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),x=v.cssClasses,k=v.cssProperties,S=e.hasPortalFromProps?{}:Mo(Mo({transition:rF({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},k),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),E=Mo(Mo({},S),{},{visibility:!h.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return g.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:x,style:E,ref:e.innerRef},e.children)}var iF=g.memo(nF),v2=()=>{var e;return(e=ke(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function uy(){return uy=Object.assign?Object.assign.bind():function(e){for(var t=1;tFe(e.x)&&Fe(e.y),yS=e=>e.base!=null&&qd(e.base)&&qd(e),_s=e=>e.x,js=e=>e.y,sF=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(tg(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=vS["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return vS[r]||$f},gS={connectNulls:!1,type:"linear"},uF=e=>{var t=e.type,r=t===void 0?gS.type:t,n=e.points,i=n===void 0?[]:n,o=e.baseLine,s=e.layout,u=e.connectNulls,d=u===void 0?gS.connectNulls:u,f=sF(r,s),h=d?i.filter(qd):i;if(Array.isArray(o)){var m,v=i.map((P,O)=>mS(mS({},P),{},{base:o[O]}));s==="vertical"?m=ed().y(js).x1(_s).x0(P=>P.base.x):m=ed().x(_s).y1(js).y0(P=>P.base.y);var x=m.defined(yS).curve(f),k=d?v.filter(yS):v;return x(k)}var S;s==="vertical"&&be(o)?S=ed().y(js).x1(_s).x0(o):be(o)?S=ed().x(_s).y1(js).y0(o):S=KA().x(_s).y(js);var E=S.defined(qd).curve(f);return E(h)},kd=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,o=El();if((!r||!r.length)&&!n)return null;var s={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},u=r&&r.length?uF(s):n;return g.createElement("path",uy({},on(e),rg(e),{className:Qe("recharts-curve",t),d:u===null?void 0:u,ref:i}))},cF=["x","y","top","left","width","height","className"];function cy(){return cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(i,"v").concat(n,"M").concat(o,",").concat(t,"h").concat(r),gF=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,i=n===void 0?0:n,o=e.top,s=o===void 0?0:o,u=e.left,d=u===void 0?0:u,f=e.width,h=f===void 0?0:f,m=e.height,v=m===void 0?0:m,x=e.className,k=mF(e,cF),S=dF({x:r,y:i,top:s,left:d,width:h,height:v},k);return!be(r)||!be(i)||!be(h)||!be(v)||!be(s)||!be(d)?null:g.createElement("path",cy({},Br(S),{className:Qe("recharts-cross",x),d:yF(r,i,h,v,s,d)}))};function xF(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var Gd=1e-4,y2=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],g2=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),bS=(e,t)=>r=>{var n=y2(e,t);return g2(n,r)},bF=(e,t)=>r=>{var n=y2(e,t),i=[...n.map((o,s)=>o*s).slice(1),0];return g2(i,r)},wF=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var i=n.map(o=>parseFloat(o));return[i[0],i[1],i[2],i[3]]},SF=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=bS(e,r),o=bS(t,n),s=bF(e,r),u=f=>f>1?1:f<0?0:f,d=f=>{for(var h=f>1?1:f,m=h,v=0;v<8;++v){var x=i(m)-h,k=s(m);if(Math.abs(x-h)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,o=i===void 0?8:i,s=t.dt,u=s===void 0?16.67:s,d=1,f=[0],h=0,m=0,v=1e4,x=0;x{var O,j,_;if(P<=0)return 0;if(P>=1)return d;var N=P*E,C=Math.floor(N),D=N-C;return((O=f[C])!==null&&O!==void 0?O:0)+(((j=f[C+1])!==null&&j!==void 0?j:0)-((_=f[C])!==null&&_!==void 0?_:0))*D}},PF=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return wS(e);case"spring":return EF();default:if(e.split("(")[0]==="cubic-bezier")return wS(e)}return typeof e=="function"?e:null},AF=(e,t,r)=>{var n,i=o=>{var s=t.tick(o);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(i,s);return}n=e.setTimeout(i,s)};return n=e.setTimeout(i,0),()=>{var o;return(o=n)===null||o===void 0?void 0:o()}},x2=g.createContext(AF);x2.Provider;function OF(e){var t=g.useContext(x2);return g.useMemo(()=>e??t,[e,t])}function CF(e,t,r){return(t=_F(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _F(e){var t=jF(e,"string");return typeof t=="symbol"?t:t+""}function jF(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var SS="init",kS="pending",ES="active",NF="completed";function Vm(e){return Math.max(0,e)}class IF{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;CF(this,"state",SS),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Vm(t.animationDuration),this.animationBegin=Vm(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===SS)return this.state=kS,this.beginStartedTime=t,this.animationBegin;if(this.getState()===kS){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=ES,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Vm(this.animationBegin-r)}if(this.getState()===ES){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=NF}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class MF extends IF{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Gn(this.getFrom(),this.getTo(),this.getProgress()))}}class TF{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),i=null,o=s=>{s-n>=r?t(s):i=requestAnimationFrame(o)};return i=requestAnimationFrame(o),()=>{i!=null&&cancelAnimationFrame(i)}}}function DF(e,t){return zF(e)||LF(e,t)||$F(e,t)||RF()}function RF(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $F(e,t){if(e){if(typeof e=="string")return PS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?PS(e,t):void 0}}function PS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},AS=0,qm=1;function b2(e){var t=Hr(e,FF),r=t.animationId,n=t.isActive,i=t.canBegin,o=t.duration,s=t.easing,u=t.begin,d=t.onAnimationEnd,f=t.onAnimationStart,h=t.children,m=m2(),v=n==="auto"?!Au.isSsr&&!m:n,x=OF(t.animationController),k=g.useState(v?AS:qm),S=DF(k,2),E=S[0],P=S[1];return g.useEffect(()=>{v||P(qm)},[v]),g.useEffect(()=>{var O=PF(s);if(!v||!i||O==null)return kl;var j=new TF,_=new MF({animationId:r,easing:O,animationDuration:o,animationBegin:u,onAnimationStart:f,onAnimationEnd:d,from:AS,to:qm});return x(j,_,P)},[x,r,v,i,o,s,u,f,d]),h(Number(E))}function w2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=g.useRef(Xs(t)),n=g.useRef(e);return n.current!==e&&(r.current=Xs(t),n.current=e),r.current}var BF=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),UF=(e,t,r)=>e.map(n=>"".concat(BF(n)," ").concat(t,"ms ").concat(r)).join(","),WF=["radius"],HF=["radius"],OS,CS,_S,jS,NS,IS,MS,TS,DS,RS;function $S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LS(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var o=Gi(r),s=Gi(n),u=Math.min(Math.abs(o)/2,Math.abs(s)/2),d=s>=0?1:-1,f=o>=0?1:-1,h=s>=0&&o>=0||s<0&&o<0?1:0,m;if(u>0&&Array.isArray(i)){for(var v=[0,0,0,0],x=0,k=4;xu?u:E}m=Lt(OS||(OS=vn(["M",",",""])),e,t+d*v[0]),v[0]>0&&(m+=Lt(CS||(CS=vn(["A ",",",",0,0,",",",",",""])),v[0],v[0],h,e+f*v[0],t)),m+=Lt(_S||(_S=vn(["L ",",",""])),e+r-f*v[1],t),v[1]>0&&(m+=Lt(jS||(jS=vn(["A ",",",",0,0,",`, - `,",",""])),v[1],v[1],h,e+r,t+d*v[1])),m+=Lt(NS||(NS=vn(["L ",",",""])),e+r,t+n-d*v[2]),v[2]>0&&(m+=Lt(IS||(IS=vn(["A ",",",",0,0,",`, - `,",",""])),v[2],v[2],h,e+r-f*v[2],t+n)),m+=Lt(MS||(MS=vn(["L ",",",""])),e+f*v[3],t+n),v[3]>0&&(m+=Lt(TS||(TS=vn(["A ",",",",0,0,",`, - `,",",""])),v[3],v[3],h,e,t+n-d*v[3])),m+="Z"}else if(u>0&&i===+i&&i>0){var P=Math.min(u,i);m=Lt(DS||(DS=vn(["M ",",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+d*P,P,P,h,e+f*P,t,e+r-f*P,t,P,P,h,e+r,t+d*P,e+r,t+n-d*P,P,P,h,e+r-f*P,t+n,e+f*P,t+n,P,P,h,e,t+n-d*P)}else m=Lt(RS||(RS=vn(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return m},US={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},e6=e=>{var t=Hr(e,US),r=g.useRef(null),n=g.useState(-1),i=YF(n,2),o=i[0],s=i[1];g.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var K=r.current.getTotalLength();K&&s(K)}catch{}},[]);var u=t.x,d=t.y,f=t.width,h=t.height,m=t.radius,v=t.className,x=t.animationEasing,k=t.animationDuration,S=t.animationBegin,E=t.isAnimationActive,P=t.isUpdateAnimationActive,O=g.useRef(f),j=g.useRef(h),_=g.useRef(u),N=g.useRef(d),C=g.useMemo(()=>({x:u,y:d,width:f,height:h,radius:m}),[u,d,f,h,m]),D=w2(C,"rectangle-");if(u!==+u||d!==+d||f!==+f||h!==+h||f===0||h===0)return null;var F=Qe("recharts-rectangle",v);if(!P){var z=Br(t);z.radius;var q=zS(z,WF);return g.createElement("path",Yd({},q,{x:Gi(u),y:Gi(d),width:Gi(f),height:Gi(h),radius:typeof m=="number"?m:void 0,className:F,d:BS(u,d,f,h,m)}))}var X=O.current,B=j.current,ue=_.current,Y=N.current,le="0px ".concat(o===-1?1:o,"px"),fe="".concat(o,"px ").concat(o,"px"),de=UF(["strokeDasharray"],k,typeof x=="string"?x:US.animationEasing);return g.createElement(b2,{animationId:D,key:D,canBegin:o>0,duration:k,easing:x,isActive:P,begin:S},K=>{var ie=Gn(X,f,K),Q=Gn(B,h,K),R=Gn(ue,u,K),M=Gn(Y,d,K);r.current&&(O.current=ie,j.current=Q,_.current=R,N.current=M);var J;E?K>0?J={transition:de,strokeDasharray:fe}:J={strokeDasharray:le}:J={strokeDasharray:fe};var se=Br(t);se.radius;var te=zS(se,HF);return g.createElement("path",Yd({},te,{radius:typeof m=="number"?m:void 0,className:F,d:BS(R,M,ie,Q,m),ref:r,style:LS(LS({},J),t.style)}))})};function WS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function HS(e){for(var t=1;te*180/Math.PI,Bt=(e,t,r,n)=>({x:e+Math.cos(-Qd*n)*r,y:t+Math.sin(-Qd*n)*r}),a6=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},o6=(e,t)=>{var r=e.x,n=e.y,i=t.x,o=t.y;return Math.sqrt((r-i)**2+(n-o)**2)},l6=(e,t)=>{var r=e.x,n=e.y,i=t.cx,o=t.cy,s=o6({x:r,y:n},{x:i,y:o});if(s<=0)return{radius:s,angle:0};var u=(r-i)/s,d=Math.acos(u);return n>o&&(d=2*Math.PI-d),{radius:s,angle:i6(d),angleInRadian:d}},s6=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),i=Math.floor(r/360),o=Math.min(n,i);return{startAngle:t-o*360,endAngle:r-o*360}},u6=(e,t)=>{var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),o=Math.floor(n/360),s=Math.min(i,o);return e+s*360},c6=(e,t)=>{var r=e.relativeX,n=e.relativeY,i=l6({x:r,y:n},t),o=i.radius,s=i.angle,u=t.innerRadius,d=t.outerRadius;if(od||o===0)return null;var f=s6(t),h=f.startAngle,m=f.endAngle,v=s,x;if(h<=m){for(;v>m;)v-=360;for(;v=h&&v<=m}else{for(;v>h;)v-=360;for(;v=m&&v<=h}return x?HS(HS({},t),{},{radius:o,angle:u6(v,t)}):null};function S2(e){var t=e.cx,r=e.cy,n=e.radius,i=e.startAngle,o=e.endAngle,s=Bt(t,r,n,i),u=Bt(t,r,n,o);return{points:[s,u],cx:t,cy:r,radius:n,startAngle:i,endAngle:o}}var KS,VS,qS,GS,YS,QS,XS;function dy(){return dy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Lr(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},sd=e=>{var t=e.cx,r=e.cy,n=e.radius,i=e.angle,o=e.sign,s=e.isExternal,u=e.cornerRadius,d=e.cornerIsExternal,f=u*(s?1:-1)+n,h=Math.asin(u/f)/Qd,m=d?i:i+o*h,v=Bt(t,r,f,m),x=Bt(t,r,n,m),k=d?i-o*h:i,S=Bt(t,r,f*Math.cos(h*Qd),k);return{center:v,circleTangency:x,lineTangency:S,theta:h}},k2=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,o=e.startAngle,s=e.endAngle,u=d6(o,s),d=o+u,f=Bt(t,r,i,o),h=Bt(t,r,i,d),m=Lt(KS||(KS=Pa(["M ",",",` - A `,",",`,0, - `,",",`, - `,",",` - `])),f.x,f.y,i,i,+(Math.abs(u)>180),+(o>d),h.x,h.y);if(n>0){var v=Bt(t,r,n,o),x=Bt(t,r,n,d);m+=Lt(VS||(VS=Pa(["L ",",",` - A `,",",`,0, - `,",",`, - `,","," Z"])),x.x,x.y,n,n,+(Math.abs(u)>180),+(o<=d),v.x,v.y)}else m+=Lt(qS||(qS=Pa(["L ",","," Z"])),t,r);return m},f6=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,o=e.cornerRadius,s=e.forceCornerRadius,u=e.cornerIsExternal,d=e.startAngle,f=e.endAngle,h=Lr(f-d),m=sd({cx:t,cy:r,radius:i,angle:d,sign:h,cornerRadius:o,cornerIsExternal:u}),v=m.circleTangency,x=m.lineTangency,k=m.theta,S=sd({cx:t,cy:r,radius:i,angle:f,sign:-h,cornerRadius:o,cornerIsExternal:u}),E=S.circleTangency,P=S.lineTangency,O=S.theta,j=u?Math.abs(d-f):Math.abs(d-f)-k-O;if(j<0)return s?Lt(GS||(GS=Pa(["M ",",",` - a`,",",",0,0,1,",`,0 - a`,",",",0,0,1,",`,0 - `])),x.x,x.y,o,o,o*2,o,o,-o*2):k2({cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:d,endAngle:f});var _=Lt(YS||(YS=Pa(["M ",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",",` - `])),x.x,x.y,o,o,+(h<0),v.x,v.y,i,i,+(j>180),+(h<0),E.x,E.y,o,o,+(h<0),P.x,P.y);if(n>0){var N=sd({cx:t,cy:r,radius:n,angle:d,sign:h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),C=N.circleTangency,D=N.lineTangency,F=N.theta,z=sd({cx:t,cy:r,radius:n,angle:f,sign:-h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),q=z.circleTangency,X=z.lineTangency,B=z.theta,ue=u?Math.abs(d-f):Math.abs(d-f)-F-B;if(ue<0&&o===0)return"".concat(_,"L").concat(t,",").concat(r,"Z");_+=Lt(QS||(QS=Pa(["L",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),X.x,X.y,o,o,+(h<0),q.x,q.y,n,n,+(ue>180),+(h>0),C.x,C.y,o,o,+(h<0),D.x,D.y)}else _+=Lt(XS||(XS=Pa(["L",",","Z"])),t,r);return _},h6={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},p6=e=>{var t=Hr(e,h6),r=t.cx,n=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,h=t.endAngle,m=t.className;if(o0&&Math.abs(f-h)<360?S=f6({cx:r,cy:n,innerRadius:i,outerRadius:o,cornerRadius:Math.min(k,x/2),forceCornerRadius:u,cornerIsExternal:d,startAngle:f,endAngle:h}):S=k2({cx:r,cy:n,innerRadius:i,outerRadius:o,startAngle:f,endAngle:h}),g.createElement("path",dy({},Br(t),{className:v,d:S}))};function m6(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(iO(t)){if(e==="centric"){var n=t.cx,i=t.cy,o=t.innerRadius,s=t.outerRadius,u=t.angle,d=Bt(n,i,o,u),f=Bt(n,i,s,u);return[{x:d.x,y:d.y},{x:f.x,y:f.y}]}return S2(t)}}function v6(e){return gO(e)?NaN:Number(e)}function Gm(e){return e?(e=v6(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function E2(e,t,r){r&&typeof r!="number"&&Kv(e,t,r)&&(t=r=void 0),e=Gm(e),t===void 0?(t=e,e=0):t=Gm(t),r=r===void 0?ee.chartData,vg=H([un],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),ah=(e,t,r,n)=>n?vg(e):un(e),y6=(e,t,r)=>r?vg(e):un(e),g6=H([ah],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});H([vg],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});var x6=H([un],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function yg(e,t){return k6(e)||S6(e,t)||w6(e,t)||b6()}function b6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w6(e,t){if(e){if(typeof e=="string")return ZS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ZS(e,t):void 0}}function ZS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.e^o.s<0?1:-1;for(n=o.d.length,i=e.d.length,t=0,r=ne.d[t]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};ve.decimalPlaces=ve.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*rt;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};ve.dividedBy=ve.div=function(e){return Zn(this,new this.constructor(e))};ve.dividedToIntegerBy=ve.idiv=function(e){var t=this,r=t.constructor;return Ge(Zn(t,new r(e),0,1),r.precision)};ve.equals=ve.eq=function(e){return!this.cmp(e)};ve.exponent=function(){return gt(this)};ve.greaterThan=ve.gt=function(e){return this.cmp(e)>0};ve.greaterThanOrEqualTo=ve.gte=function(e){return this.cmp(e)>=0};ve.isInteger=ve.isint=function(){return this.e>this.d.length-2};ve.isNegative=ve.isneg=function(){return this.s<0};ve.isPositive=ve.ispos=function(){return this.s>0};ve.isZero=function(){return this.s===0};ve.lessThan=ve.lt=function(e){return this.cmp(e)<0};ve.lessThanOrEqualTo=ve.lte=function(e){return this.cmp(e)<1};ve.logarithm=ve.log=function(e){var t,r=this,n=r.constructor,i=n.precision,o=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(Pr))throw Error(Wr+"NaN");if(r.s<1)throw Error(Wr+(r.s?"NaN":"-Infinity"));return r.eq(Pr)?new n(0):(it=!1,t=Zn(iu(r,o),iu(e,o),o),it=!0,Ge(t,i))};ve.minus=ve.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_2(t,e):O2(t,(e.s=-e.s,e))};ve.modulo=ve.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Wr+"NaN");return r.s?(it=!1,t=Zn(r,e,0,1).times(e),it=!0,r.minus(t)):Ge(new n(r),i)};ve.naturalExponential=ve.exp=function(){return C2(this)};ve.naturalLogarithm=ve.ln=function(){return iu(this)};ve.negated=ve.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};ve.plus=ve.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O2(t,e):_2(t,(e.s=-e.s,e))};ve.precision=ve.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Fa+e);if(t=gt(i)+1,n=i.d.length-1,r=n*rt+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};ve.squareRoot=ve.sqrt=function(){var e,t,r,n,i,o,s,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Wr+"NaN")}for(e=gt(u),it=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=En(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Al((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new d(t)):n=new d(i.toString()),r=d.precision,i=s=r+3;;)if(o=n,n=o.plus(Zn(u,o,s+2)).times(.5),En(o.d).slice(0,s)===(t=En(n.d)).slice(0,s)){if(t=t.slice(s-3,s+1),i==s&&t=="4999"){if(Ge(o,r+1,0),o.times(o).eq(u)){n=o;break}}else if(t!="9999")break;s+=4}return it=!0,Ge(n,r)};ve.times=ve.mul=function(e){var t,r,n,i,o,s,u,d,f,h=this,m=h.constructor,v=h.d,x=(e=new m(e)).d;if(!h.s||!e.s)return new m(0);for(e.s*=h.s,r=h.e+e.e,d=v.length,f=x.length,d=0;){for(t=0,i=d+n;i>n;)u=o[i]+x[n]*v[i-n-1]+t,o[i--]=u%jt|0,t=u/jt|0;o[i]=(o[i]+t)%jt|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,it?Ge(e,m.precision):e};ve.toDecimalPlaces=ve.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(jn(e,0,Pl),t===void 0?t=n.rounding:jn(t,0,8),Ge(r,e+gt(r)+1,t))};ve.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=Ga(n,!0):(jn(e,0,Pl),t===void 0?t=i.rounding:jn(t,0,8),n=Ge(new i(n),e+1,t),r=Ga(n,!0,e+1)),r};ve.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?Ga(i):(jn(e,0,Pl),t===void 0?t=o.rounding:jn(t,0,8),n=Ge(new o(i),e+gt(i)+1,t),r=Ga(n.abs(),!1,e+gt(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};ve.toInteger=ve.toint=function(){var e=this,t=e.constructor;return Ge(new t(e),gt(e)+1,t.rounding)};ve.toNumber=function(){return+this};ve.toPower=ve.pow=function(e){var t,r,n,i,o,s,u=this,d=u.constructor,f=12,h=+(e=new d(e));if(!e.s)return new d(Pr);if(u=new d(u),!u.s){if(e.s<1)throw Error(Wr+"Infinity");return u}if(u.eq(Pr))return u;if(n=d.precision,e.eq(Pr))return Ge(u,n);if(t=e.e,r=e.d.length-1,s=t>=r,o=u.s,s){if((r=h<0?-h:h)<=A2){for(i=new d(Pr),t=Math.ceil(n/rt+4),it=!1;r%2&&(i=i.times(u),tk(i.d,t)),r=Al(r/2),r!==0;)u=u.times(u),tk(u.d,t);return it=!0,e.s<0?new d(Pr).div(i):Ge(i,n)}}else if(o<0)throw Error(Wr+"NaN");return o=o<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,it=!1,i=e.times(iu(u,n+f)),it=!0,i=C2(i),i.s=o,i};ve.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?(r=gt(i),n=Ga(i,r<=o.toExpNeg||r>=o.toExpPos)):(jn(e,1,Pl),t===void 0?t=o.rounding:jn(t,0,8),i=Ge(new o(i),e,t),r=gt(i),n=Ga(i,e<=r||r<=o.toExpNeg,e)),n};ve.toSignificantDigits=ve.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(jn(e,1,Pl),t===void 0?t=n.rounding:jn(t,0,8)),Ge(new n(r),e,t)};ve.toString=ve.valueOf=ve.val=ve.toJSON=ve[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gt(e),r=e.constructor;return Ga(e,t<=r.toExpNeg||t>=r.toExpPos)};function O2(e,t){var r,n,i,o,s,u,d,f,h=e.constructor,m=h.precision;if(!e.s||!t.s)return t.s||(t=new h(e)),it?Ge(t,m):t;if(d=e.d,f=t.d,s=e.e,i=t.e,d=d.slice(),o=s-i,o){for(o<0?(n=d,o=-o,u=f.length):(n=f,i=s,u=d.length),s=Math.ceil(m/rt),u=s>u?s+1:u+1,o>u&&(o=u,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(u=d.length,o=f.length,u-o<0&&(o=u,n=f,f=d,d=n),r=0;o;)r=(d[--o]=d[o]+f[o]+r)/jt|0,d[o]%=jt;for(r&&(d.unshift(r),++i),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=i,it?Ge(t,m):t}function jn(e,t,r){if(e!==~~e||er)throw Error(Fa+e)}function En(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;ts?1:-1;else for(u=d=0;ui[u]?1:-1;break}return d}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D,F,z=n.constructor,q=n.s==i.s?1:-1,X=n.d,B=i.d;if(!n.s)return new z(n);if(!i.s)throw Error(Wr+"Division by zero");for(d=n.e-i.e,D=B.length,N=X.length,x=new z(q),k=x.d=[],f=0;B[f]==(X[f]||0);)++f;if(B[f]>(X[f]||0)&&--d,o==null?O=o=z.precision:s?O=o+(gt(n)-gt(i))+1:O=o,O<0)return new z(0);if(O=O/rt+2|0,f=0,D==1)for(h=0,B=B[0],O++;(f1&&(B=e(B,h),X=e(X,h),D=B.length,N=X.length),_=D,S=X.slice(0,D),E=S.length;E=jt/2&&++C;do h=0,u=t(B,S,D,E),u<0?(P=S[0],D!=E&&(P=P*jt+(S[1]||0)),h=P/C|0,h>1?(h>=jt&&(h=jt-1),m=e(B,h),v=m.length,E=S.length,u=t(m,S,v,E),u==1&&(h--,r(m,D16)throw Error(gg+gt(e));if(!e.s)return new h(Pr);for(it=!1,u=m,s=new h(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(n=Math.log(Sa(2,f))/Math.LN10*2+5|0,u+=n,r=i=o=new h(Pr),h.precision=u;;){if(i=Ge(i.times(e),u),r=r.times(++d),s=o.plus(Zn(i,r,u)),En(s.d).slice(0,u)===En(o.d).slice(0,u)){for(;f--;)o=Ge(o.times(o),u);return h.precision=m,t==null?(it=!0,Ge(o,m)):o}o=s}}function gt(e){for(var t=e.e*rt,r=e.d[0];r>=10;r/=10)t++;return t}function Ym(e,t,r){if(t>e.LN10.sd())throw it=!0,r&&(e.precision=r),Error(Wr+"LN10 precision limit exceeded");return Ge(new e(e.LN10),t)}function $i(e){for(var t="";e--;)t+="0";return t}function iu(e,t){var r,n,i,o,s,u,d,f,h,m=1,v=10,x=e,k=x.d,S=x.constructor,E=S.precision;if(x.s<1)throw Error(Wr+(x.s?"NaN":"-Infinity"));if(x.eq(Pr))return new S(0);if(t==null?(it=!1,f=E):f=t,x.eq(10))return t==null&&(it=!0),Ym(S,f);if(f+=v,S.precision=f,r=En(k),n=r.charAt(0),o=gt(x),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)x=x.times(e),r=En(x.d),n=r.charAt(0),m++;o=gt(x),n>1?(x=new S("0."+r),o++):x=new S(n+"."+r.slice(1))}else return d=Ym(S,f+2,E).times(o+""),x=iu(new S(n+"."+r.slice(1)),f-v).plus(d),S.precision=E,t==null?(it=!0,Ge(x,E)):x;for(u=s=x=Zn(x.minus(Pr),x.plus(Pr),f),h=Ge(x.times(x),f),i=3;;){if(s=Ge(s.times(h),f),d=u.plus(Zn(s,new S(i),f)),En(d.d).slice(0,f)===En(u.d).slice(0,f))return u=u.times(2),o!==0&&(u=u.plus(Ym(S,f+2,E).times(o+""))),u=Zn(u,new S(m),f),S.precision=E,t==null?(it=!0,Ge(u,E)):u;u=d,i+=2}}function ek(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Al(r/rt),e.d=[],n=(r+1)%rt,r<0&&(n+=rt),nXd||e.e<-Xd))throw Error(gg+r)}else e.s=0,e.e=0,e.d=[0];return e}function Ge(e,t,r){var n,i,o,s,u,d,f,h,m=e.d;for(s=1,o=m[0];o>=10;o/=10)s++;if(n=t-s,n<0)n+=rt,i=t,f=m[h=0];else{if(h=Math.ceil((n+1)/rt),o=m.length,h>=o)return e;for(f=o=m[h],s=1;o>=10;o/=10)s++;n%=rt,i=n-rt+s}if(r!==void 0&&(o=Sa(10,s-i-1),u=f/o%10|0,d=t<0||m[h+1]!==void 0||f%o,d=r<4?(u||d)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||d||r==6&&(n>0?i>0?f/Sa(10,s-i):0:m[h-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return d?(o=gt(e),m.length=1,t=t-o-1,m[0]=Sa(10,(rt-t%rt)%rt),e.e=Al(-t/rt)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(n==0?(m.length=h,o=1,h--):(m.length=h+1,o=Sa(10,rt-n),m[h]=i>0?(f/Sa(10,s-i)%Sa(10,i)|0)*o:0),d)for(;;)if(h==0){(m[0]+=o)==jt&&(m[0]=1,++e.e);break}else{if(m[h]+=o,m[h]!=jt)break;m[h--]=0,o=1}for(n=m.length;m[--n]===0;)m.pop();if(it&&(e.e>Xd||e.e<-Xd))throw Error(gg+gt(e));return e}function _2(e,t){var r,n,i,o,s,u,d,f,h,m,v=e.constructor,x=v.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new v(e),it?Ge(t,x):t;if(d=e.d,m=t.d,n=t.e,f=e.e,d=d.slice(),s=f-n,s){for(h=s<0,h?(r=d,s=-s,u=m.length):(r=m,n=f,u=d.length),i=Math.max(Math.ceil(x/rt),u)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=d.length,u=m.length,h=i0;--i)d[u++]=0;for(i=m.length;i>s;){if(d[--i]0?o=o.charAt(0)+"."+o.slice(1)+$i(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+$i(-i-1)+o,r&&(n=r-s)>0&&(o+=$i(n))):i>=s?(o+=$i(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+$i(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=$i(n))),e.s<0?"-"+o:o}function tk(e,t){if(e.length>t)return e.length=t,!0}function j2(e){var t,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Fa+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return ek(s,o.toString())}else if(typeof o!="string")throw Error(Fa+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,A6.test(o))ek(s,o);else throw Error(Fa+o)}if(i.prototype=ve,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j2,i.config=i.set=O6,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Fa+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Fa+r+": "+n);return this}var xg=j2(P6);Pr=new xg(1);const Ue=xg;function N2(e){var t;return e===0?t=1:t=Math.floor(new Ue(e).abs().log(10).toNumber())+1,t}function I2(e,t,r){for(var n=new Ue(e),i=0,o=[];n.lt(t)&&i<1e5;)o.push(n.toNumber()),n=n.add(r),i++;return o}function au(e,t){return N6(e)||j6(e,t)||_6(e,t)||C6()}function C6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _6(e,t){if(e){if(typeof e=="string")return rk(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rk(e,t):void 0}}function rk(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=au(e,2),r=t[0],n=t[1],i=r,o=n;return r>n&&(i=n,o=r),[i,o]},bg=(e,t,r)=>{if(e.lte(0))return new Ue(0);var n=N2(e.toNumber()),i=new Ue(10).pow(n),o=e.div(i),s=n!==1?.05:.1,u=new Ue(Math.ceil(o.div(s).toNumber())).add(r).mul(s),d=u.mul(i);return t?new Ue(d.toNumber()):new Ue(Math.ceil(d.toNumber()))},T2=(e,t,r)=>{var n;if(e.lte(0))return new Ue(0);var i=[1,2,2.5,5],o=e.toNumber(),s=Math.floor(new Ue(o).abs().log(10).toNumber()),u=new Ue(10).pow(s),d=e.div(u).toNumber(),f=i.findIndex(x=>x>=d-1e-10);if(f===-1&&(u=u.mul(10),f=0),f+=r,f>=i.length){var h=Math.floor(f/i.length);f%=i.length,u=u.mul(new Ue(10).pow(h))}var m=(n=i[f])!==null&&n!==void 0?n:1,v=new Ue(m).mul(u);return t?v:new Ue(Math.ceil(v.toNumber()))},I6=(e,t,r)=>{var n=new Ue(1),i=new Ue(e);if(!i.isint()&&r){var o=Math.abs(e);o<1?(n=new Ue(10).pow(N2(e)-1),i=new Ue(Math.floor(i.div(n).toNumber())).mul(n)):o>1&&(i=new Ue(Math.floor(e)))}else e===0?i=new Ue(Math.floor((t-1)/2)):r||(i=new Ue(Math.floor(e)));for(var s=Math.floor((t-1)/2),u=[],d=0;d4&&arguments[4]!==void 0?arguments[4]:0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:bg;if(!Number.isFinite((r-t)/(n-1)))return{step:new Ue(0),tickMin:new Ue(0),tickMax:new Ue(0)};var u=s(new Ue(r).sub(t).div(n-1),i,o),d;t<=0&&r>=0?d=new Ue(0):(d=new Ue(t).add(r).div(2),d=d.sub(new Ue(d).mod(u)));var f=Math.ceil(d.sub(t).div(u).toNumber()),h=Math.ceil(new Ue(r).sub(d).div(u).toNumber()),m=f+h+1;return m>n?D2(t,r,n,i,o+1,s):(m0?h+(n-m):h,f=r>0?f:f+(n-m)),{step:u,tickMin:d.sub(new Ue(f).mul(u)),tickMax:d.add(new Ue(h).mul(u))})},nk=function(t){var r=au(t,2),n=r[0],i=r[1],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=Math.max(o,2),f=M2([n,i]),h=au(f,2),m=h[0],v=h[1];if(m===-1/0||v===1/0){var x=v===1/0?[m,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),v];return n>i?x.reverse():x}if(m===v)return I6(m,o,s);var k=u==="snap125"?T2:bg,S=D2(m,v,d,s,0,k),E=S.step,P=S.tickMin,O=S.tickMax,j=I2(P,O.add(new Ue(.1).mul(E)),E);return n>i?j.reverse():j},ik=function(t,r){var n=au(t,2),i=n[0],o=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=M2([i,o]),f=au(d,2),h=f[0],m=f[1];if(h===-1/0||m===1/0)return[i,o];if(h===m)return[h];var v=u==="snap125"?T2:bg,x=Math.max(r,2),k=v(new Ue(m).sub(h).div(x-1),s,0),S=[...I2(new Ue(h),new Ue(m),k),m];return s===!1&&(S=S.map(E=>Math.round(E))),i>o?S.reverse():S},M6=e=>e.rootProps.barCategoryGap,oh=e=>e.rootProps.stackOffset,R2=e=>e.rootProps.reverseStackOrder,wg=e=>e.options.chartName,Sg=e=>e.rootProps.syncId,$2=e=>e.rootProps.syncMethod,kg=e=>e.options.eventEmitter,T6=e=>e.rootProps.baseValue,rr={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},va={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},yn={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},lh=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function sh(e,t,r){if(r!=="auto")return r;if(e!=null)return In(e,t)?"category":"number"}function ak(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zd(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Eg=H([L6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"angleAxis",ok.type))!==null&&r!==void 0?r:"category";return Zd(Zd({},ok),{},{type:n})}),z6=(e,t)=>e.polarAxis.radiusAxis[t],Pg=H([z6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"radiusAxis",lk.type))!==null&&r!==void 0?r:"category";return Zd(Zd({},lk),{},{type:n})}),uh=e=>e.polarOptions,Ag=H([ai,oi,Ht],a6),L2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.innerRadius,t,0)}),z2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.outerRadius,t,t*.8)}),F6=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},F2=H([uh],F6);H([Eg,F2],lh);var B2=H([Ag,L2,z2],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});H([Pg,B2],lh);var U2=H([ot,uh,L2,z2,ai,oi],(e,t,r,n,i,o)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var s=t.cx,u=t.cy,d=t.startAngle,f=t.endAngle;return{cx:ea(s,i,i/2),cy:ea(u,o,o/2),innerRadius:r,outerRadius:n,startAngle:d,endAngle:f,clockWise:!1}}}),It=(e,t)=>t,ch=(e,t,r)=>r;function Og(e){return e==null?void 0:e.id}function W2(e,t,r){var n=t.chartData,i=n===void 0?[]:n,o=r.allowDuplicatedCategory,s=r.dataKey,u=new Map;return e.forEach(d=>{var f,h=(f=d.data)!==null&&f!==void 0?f:i;if(!(h==null||h.length===0)){var m=Og(d);h.forEach((v,x)=>{var k=s==null||o?x:String(Nt(v,s,null)),S=Nt(v,d.dataKey,0),E;u.has(k)?E=u.get(k):E={},Object.assign(E,{[m]:S}),u.set(k,E)})}}),Array.from(u.values())}function Cg(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var dh=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function fh(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function B6(e,t){if(e.length===t.length){for(var r=0;r{var t=ot(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Ol=e=>e.tooltip.settings.axisId;function _g(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),i=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(o){function s(){return o.apply(this,arguments)}return s.toString=function(){return o.toString()},s})(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(o){var s=i[0],u=i[1];return s<=u?o>=s&&o<=u:o>=u&&o<=s},bandwidth:r?()=>r.call(e):void 0,ticks:t?o=>t.call(e,o):void 0,map:(o,s)=>{var u=e(o);if(u!=null){if(e.bandwidth&&s!==null&&s!==void 0&&s.position){var d=e.bandwidth();switch(s.position){case"middle":u+=d/2;break;case"end":u+=d;break}}return u}}}}}var U6=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Pn(t)){for(var r,n,i=0;in)&&(n=o))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};function Xi(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function W6(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function jg(e){let t,r,n;e.length!==2?(t=Xi,r=(u,d)=>Xi(e(u),d),n=(u,d)=>e(u)-d):(t=e===Xi||e===W6?e:H6,r=e,n=e);function i(u,d,f=0,h=u.length){if(f>>1;r(u[m],d)<0?f=m+1:h=m}while(f>>1;r(u[m],d)<=0?f=m+1:h=m}while(ff&&n(u[m-1],d)>-n(u[m],d)?m-1:m}return{left:i,center:s,right:o}}function H6(){return 0}function H2(e){return e===null?NaN:+e}function*K6(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const V6=jg(Xi),Ou=V6.right;jg(H2).center;class sk extends Map{constructor(t,r=Y6){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(uk(this,t))}has(t){return super.has(uk(this,t))}set(t,r){return super.set(q6(this,t),r)}delete(t){return super.delete(G6(this,t))}}function uk({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function q6({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function G6({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function Y6(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Q6(e=Xi){if(e===Xi)return K2;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function K2(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const X6=Math.sqrt(50),Z6=Math.sqrt(10),J6=Math.sqrt(2);function Jd(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),s=o>=X6?10:o>=Z6?5:o>=J6?2:1;let u,d,f;return i<0?(f=Math.pow(10,-i)/s,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,i)*s,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const n=t=i))return[];const u=o-i+1,d=new Array(u);if(n)if(s<0)for(let f=0;f=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r=i)&&(r=i)}return r}function dk(e,t){let r;if(t===void 0)for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function V2(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?K2:Q6(i);n>r;){if(n-r>600){const d=n-r+1,f=t-r+1,h=Math.log(d),m=.5*Math.exp(2*h/3),v=.5*Math.sqrt(h*m*(d-m)/d)*(f-d/2<0?-1:1),x=Math.max(r,Math.floor(t-f*m/d+v)),k=Math.min(n,Math.floor(t+(d-f)*m/d+v));V2(e,t,x,k,i)}const o=e[t];let s=r,u=n;for(Ns(e,r,t),i(e[n],o)>0&&Ns(e,r,n);s0;)--u}i(e[r],o)===0?Ns(e,r,u):(++u,Ns(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function Ns(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function e8(e,t,r){if(e=Float64Array.from(K6(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return dk(e);if(t>=1)return ck(e);var n,i=(n-1)*t,o=Math.floor(i),s=ck(V2(e,o).subarray(0,o+1)),u=dk(e.subarray(o+1));return s+(u-s)*(i-o)}}function t8(e,t,r=H2){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,o=Math.floor(i),s=+r(e[o],o,e),u=+r(e[o+1],o+1,e);return s+(u-s)*(i-o)}}function r8(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?ud(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?ud(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=a8.exec(e))?new vr(t[1],t[2],t[3],1):(t=o8.exec(e))?new vr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=l8.exec(e))?ud(t[1],t[2],t[3],t[4]):(t=s8.exec(e))?ud(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=u8.exec(e))?gk(t[1],t[2]/100,t[3]/100,1):(t=c8.exec(e))?gk(t[1],t[2]/100,t[3]/100,t[4]):fk.hasOwnProperty(e)?mk(fk[e]):e==="transparent"?new vr(NaN,NaN,NaN,0):null}function mk(e){return new vr(e>>16&255,e>>8&255,e&255,1)}function ud(e,t,r,n){return n<=0&&(e=t=r=NaN),new vr(e,t,r,n)}function h8(e){return e instanceof Cu||(e=su(e)),e?(e=e.rgb(),new vr(e.r,e.g,e.b,e.opacity)):new vr}function vy(e,t,r,n){return arguments.length===1?h8(e):new vr(e,t,r,n??1)}function vr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Mg(vr,vy,G2(Cu,{brighter(e){return e=e==null?ef:Math.pow(ef,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ou:Math.pow(ou,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new vr(Ba(this.r),Ba(this.g),Ba(this.b),tf(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:vk,formatHex:vk,formatHex8:p8,formatRgb:yk,toString:yk}));function vk(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function p8(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function yk(){const e=tf(this.opacity);return`${e===1?"rgb(":"rgba("}${Ba(this.r)}, ${Ba(this.g)}, ${Ba(this.b)}${e===1?")":`, ${e})`}`}function tf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ba(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Aa(e){return e=Ba(e),(e<16?"0":"")+e.toString(16)}function gk(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new an(e,t,r,n)}function Y2(e){if(e instanceof an)return new an(e.h,e.s,e.l,e.opacity);if(e instanceof Cu||(e=su(e)),!e)return new an;if(e instanceof an)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=NaN,u=o-i,d=(o+i)/2;return u?(t===o?s=(r-n)/u+(r0&&d<1?0:s,new an(s,u,d,e.opacity)}function m8(e,t,r,n){return arguments.length===1?Y2(e):new an(e,t,r,n??1)}function an(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Mg(an,m8,G2(Cu,{brighter(e){return e=e==null?ef:Math.pow(ef,e),new an(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ou:Math.pow(ou,e),new an(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,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new vr(Qm(e>=240?e-240:e+120,i,n),Qm(e,i,n),Qm(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new an(xk(this.h),cd(this.s),cd(this.l),tf(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=tf(this.opacity);return`${e===1?"hsl(":"hsla("}${xk(this.h)}, ${cd(this.s)*100}%, ${cd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xk(e){return e=(e||0)%360,e<0?e+360:e}function cd(e){return Math.max(0,Math.min(1,e||0))}function Qm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Tg=e=>()=>e;function v8(e,t){return function(r){return e+r*t}}function y8(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function g8(e){return(e=+e)==1?Q2:function(t,r){return r-t?y8(t,r,e):Tg(isNaN(t)?r:t)}}function Q2(e,t){var r=t-e;return r?v8(e,r):Tg(isNaN(e)?t:e)}const bk=(function e(t){var r=g8(t);function n(i,o){var s=r((i=vy(i)).r,(o=vy(o)).r),u=r(i.g,o.g),d=r(i.b,o.b),f=Q2(i.opacity,o.opacity);return function(h){return i.r=s(h),i.g=u(h),i.b=d(h),i.opacity=f(h),i+""}}return n.gamma=e,n})(1);function x8(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(o){for(i=0;ir&&(o=t.slice(r,o),u[s]?u[s]+=o:u[++s]=o),(n=n[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,d.push({i:s,x:rf(n,i)})),r=Xm.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function j8(e,t,r){var n=e[0],i=e[1],o=t[0],s=t[1];return i2?N8:j8,d=f=null,m}function m(v){return v==null||isNaN(v=+v)?o:(d||(d=u(e.map(n),t,r)))(n(s(v)))}return m.invert=function(v){return s(i((f||(f=u(t,e.map(n),rf)))(v)))},m.domain=function(v){return arguments.length?(e=Array.from(v,nf),h()):e.slice()},m.range=function(v){return arguments.length?(t=Array.from(v),h()):t.slice()},m.rangeRound=function(v){return t=Array.from(v),r=Dg,h()},m.clamp=function(v){return arguments.length?(s=v?!0:nr,h()):s!==nr},m.interpolate=function(v){return arguments.length?(r=v,h()):r},m.unknown=function(v){return arguments.length?(o=v,m):o},function(v,x){return n=v,i=x,h()}}function Rg(){return hh()(nr,nr)}function I8(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function af(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function pl(e){return e=af(Math.abs(e)),e?e[1]:NaN}function M8(e,t){return function(r,n){for(var i=r.length,o=[],s=0,u=e[0],d=0;i>0&&u>0&&(d+u+1>n&&(u=Math.max(1,n-d)),o.push(r.substring(i-=u,i+u)),!((d+=u+1)>n));)u=e[s=(s+1)%e.length];return o.reverse().join(t)}}function T8(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var D8=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function uu(e){if(!(t=D8.exec(e)))throw new Error("invalid format: "+e);var t;return new $g({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}uu.prototype=$g.prototype;function $g(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}$g.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function R8(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var of;function $8(e,t){var r=af(e,t);if(!r)return of=void 0,e.toPrecision(t);var n=r[0],i=r[1],o=i-(of=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return o===s?n:o>s?n+new Array(o-s+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+af(e,Math.max(0,t+o-1))[0]}function Sk(e,t){var r=af(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const kk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:I8,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Sk(e*100,t),r:Sk,s:$8,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ek(e){return e}var Pk=Array.prototype.map,Ak=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function L8(e){var t=e.grouping===void 0||e.thousands===void 0?Ek:M8(Pk.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Ek:T8(Pk.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(m,v){m=uu(m);var x=m.fill,k=m.align,S=m.sign,E=m.symbol,P=m.zero,O=m.width,j=m.comma,_=m.precision,N=m.trim,C=m.type;C==="n"?(j=!0,C="g"):kk[C]||(_===void 0&&(_=12),N=!0,C="g"),(P||x==="0"&&k==="=")&&(P=!0,x="0",k="=");var D=(v&&v.prefix!==void 0?v.prefix:"")+(E==="$"?r:E==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),F=(E==="$"?n:/[%p]/.test(C)?s:"")+(v&&v.suffix!==void 0?v.suffix:""),z=kk[C],q=/[defgprs%]/.test(C);_=_===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function X(B){var ue=D,Y=F,le,fe,de;if(C==="c")Y=z(B)+Y,B="";else{B=+B;var K=B<0||1/B<0;if(B=isNaN(B)?d:z(Math.abs(B),_),N&&(B=R8(B)),K&&+B==0&&S!=="+"&&(K=!1),ue=(K?S==="("?S:u:S==="-"||S==="("?"":S)+ue,Y=(C==="s"&&!isNaN(B)&&of!==void 0?Ak[8+of/3]:"")+Y+(K&&S==="("?")":""),q){for(le=-1,fe=B.length;++lede||de>57){Y=(de===46?i+B.slice(le+1):B.slice(le))+Y,B=B.slice(0,le);break}}}j&&!P&&(B=t(B,1/0));var ie=ue.length+B.length+Y.length,Q=ie>1)+ue+B+Y+Q.slice(ie);break;default:B=Q+ue+B+Y;break}return o(B)}return X.toString=function(){return m+""},X}function h(m,v){var x=Math.max(-8,Math.min(8,Math.floor(pl(v)/3)))*3,k=Math.pow(10,-x),S=f((m=uu(m),m.type="f",m),{suffix:Ak[8+x/3]});return function(E){return S(k*E)}}return{format:f,formatPrefix:h}}var dd,Lg,X2;z8({thousands:",",grouping:[3],currency:["$",""]});function z8(e){return dd=L8(e),Lg=dd.format,X2=dd.formatPrefix,dd}function F8(e){return Math.max(0,-pl(Math.abs(e)))}function B8(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pl(t)/3)))*3-pl(Math.abs(e)))}function U8(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,pl(t)-pl(e))+1}function Z2(e,t,r,n){var i=py(e,t,r),o;switch(n=uu(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=B8(i,s))&&(n.precision=o),X2(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=U8(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=F8(i))&&(n.precision=o-(n.type==="%")*2);break}}return Lg(n)}function ta(e){var t=e.domain;return e.ticks=function(r){var n=t();return fy(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return Z2(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,o=n.length-1,s=n[i],u=n[o],d,f,h=10;for(u0;){if(f=hy(s,u,r),f===d)return n[i]=s,n[o]=u,t(n);if(f>0)s=Math.floor(s/f)*f,u=Math.ceil(u/f)*f;else if(f<0)s=Math.ceil(s*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function J2(){var e=Rg();return e.copy=function(){return _u(e,J2())},Kr.apply(e,arguments),ta(e)}function eC(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,nf),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return eC(e).unknown(t)},e=arguments.length?Array.from(e,nf):[0,1],ta(r)}function tC(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],o=e[n],s;return oMath.pow(e,t)}function q8(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function _k(e){return(t,r)=>-e(-t,r)}function zg(e){const t=e(Ok,Ck),r=t.domain;let n=10,i,o;function s(){return i=q8(n),o=V8(n),r()[0]<0?(i=_k(i),o=_k(o),e(W8,H8)):e(Ok,Ck),t}return t.base=function(u){return arguments.length?(n=+u,s()):n},t.domain=function(u){return arguments.length?(r(u),s()):r()},t.ticks=u=>{const d=r();let f=d[0],h=d[d.length-1];const m=h0){for(;v<=x;++v)for(k=1;kh)break;P.push(S)}}else for(;v<=x;++v)for(k=n-1;k>=1;--k)if(S=v>0?k/o(-v):k*o(v),!(Sh)break;P.push(S)}P.length*2{if(u==null&&(u=10),d==null&&(d=n===10?"s":","),typeof d!="function"&&(!(n%1)&&(d=uu(d)).precision==null&&(d.trim=!0),d=Lg(d)),u===1/0)return d;const f=Math.max(1,n*u/t.ticks().length);return h=>{let m=h/o(Math.round(i(h)));return m*nr(tC(r(),{floor:u=>o(Math.floor(i(u))),ceil:u=>o(Math.ceil(i(u)))})),t}function rC(){const e=zg(hh()).domain([1,10]);return e.copy=()=>_u(e,rC()).base(e.base()),Kr.apply(e,arguments),e}function jk(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Nk(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Fg(e){var t=1,r=e(jk(t),Nk(t));return r.constant=function(n){return arguments.length?e(jk(t=+n),Nk(t)):t},ta(r)}function nC(){var e=Fg(hh());return e.copy=function(){return _u(e,nC()).constant(e.constant())},Kr.apply(e,arguments)}function Ik(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function G8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Y8(e){return e<0?-e*e:e*e}function Bg(e){var t=e(nr,nr),r=1;function n(){return r===1?e(nr,nr):r===.5?e(G8,Y8):e(Ik(r),Ik(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},ta(t)}function Ug(){var e=Bg(hh());return e.copy=function(){return _u(e,Ug()).exponent(e.exponent())},Kr.apply(e,arguments),e}function Q8(){return Ug.apply(null,arguments).exponent(.5)}function Mk(e){return Math.sign(e)*e*e}function X8(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function iC(){var e=Rg(),t=[0,1],r=!1,n;function i(o){var s=X8(e(o));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(o){return e.invert(Mk(o))},i.domain=function(o){return arguments.length?(e.domain(o),i):e.domain()},i.range=function(o){return arguments.length?(e.range((t=Array.from(o,nf)).map(Mk)),i):t.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(r=!!o,i):r},i.clamp=function(o){return arguments.length?(e.clamp(o),i):e.clamp()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return iC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Kr.apply(i,arguments),ta(i)}function aC(){var e=[],t=[],r=[],n;function i(){var s=0,u=Math.max(1,t.length);for(r=new Array(u-1);++s0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[f-1],n[f]]},s.unknown=function(d){return arguments.length&&(o=d),s},s.thresholds=function(){return n.slice()},s.copy=function(){return oC().domain([e,t]).range(i).unknown(o)},Kr.apply(ta(s),arguments)}function lC(){var e=[.5],t=[0,1],r,n=1;function i(o){return o!=null&&o<=o?t[Ou(e,o,0,n)]:r}return i.domain=function(o){return arguments.length?(e=Array.from(o),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return lC().domain(e).range(t).unknown(r)},Kr.apply(i,arguments)}const Zm=new Date,Jm=new Date;function Et(e,t,r,n){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),u=i.ceil(o);return o-s(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,u)=>{const d=[];if(o=i.ceil(o),u=u==null?1:Math.floor(u),!(o0))return d;let f;do d.push(f=new Date(+o)),t(o,u),e(o);while(fEt(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!o(s););else for(;--u>=0;)for(;t(s,1),!o(s););}),r&&(i.count=(o,s)=>(Zm.setTime(+o),Jm.setTime(+s),e(Zm),e(Jm),Math.floor(r(Zm,Jm))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(n?s=>n(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const lf=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);lf.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Et(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):lf);lf.range;const Yn=1e3,Fr=Yn*60,Qn=Fr*60,ti=Qn*24,Wg=ti*7,Tk=ti*30,ev=ti*365,Oa=Et(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Yn)},(e,t)=>(t-e)/Yn,e=>e.getUTCSeconds());Oa.range;const Hg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Yn)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getMinutes());Hg.range;const Kg=Et(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getUTCMinutes());Kg.range;const Vg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Yn-e.getMinutes()*Fr)},(e,t)=>{e.setTime(+e+t*Qn)},(e,t)=>(t-e)/Qn,e=>e.getHours());Vg.range;const qg=Et(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Qn)},(e,t)=>(t-e)/Qn,e=>e.getUTCHours());qg.range;const ju=Et(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Fr)/ti,e=>e.getDate()-1);ju.range;const ph=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ti,e=>e.getUTCDate()-1);ph.range;const sC=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ti,e=>Math.floor(e/ti));sC.range;function Ja(e){return Et(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Fr)/Wg)}const mh=Ja(0),sf=Ja(1),Z8=Ja(2),J8=Ja(3),ml=Ja(4),eB=Ja(5),tB=Ja(6);mh.range;sf.range;Z8.range;J8.range;ml.range;eB.range;tB.range;function eo(e){return Et(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/Wg)}const vh=eo(0),uf=eo(1),rB=eo(2),nB=eo(3),vl=eo(4),iB=eo(5),aB=eo(6);vh.range;uf.range;rB.range;nB.range;vl.range;iB.range;aB.range;const Gg=Et(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Gg.range;const Yg=Et(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Yg.range;const ri=Et(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ri.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});ri.range;const ni=Et(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ni.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Et(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});ni.range;function uC(e,t,r,n,i,o){const s=[[Oa,1,Yn],[Oa,5,5*Yn],[Oa,15,15*Yn],[Oa,30,30*Yn],[o,1,Fr],[o,5,5*Fr],[o,15,15*Fr],[o,30,30*Fr],[i,1,Qn],[i,3,3*Qn],[i,6,6*Qn],[i,12,12*Qn],[n,1,ti],[n,2,2*ti],[r,1,Wg],[t,1,Tk],[t,3,3*Tk],[e,1,ev]];function u(f,h,m){const v=hE).right(s,v);if(x===s.length)return e.every(py(f/ev,h/ev,m));if(x===0)return lf.every(Math.max(py(f,h,m),1));const[k,S]=s[v/s[x-1][2]53)return null;"w"in ne||(ne.w=1),"Z"in ne?(Re=rv(Is(ne.y,0,1)),Ee=Re.getUTCDay(),Re=Ee>4||Ee===0?uf.ceil(Re):uf(Re),Re=ph.offset(Re,(ne.V-1)*7),ne.y=Re.getUTCFullYear(),ne.m=Re.getUTCMonth(),ne.d=Re.getUTCDate()+(ne.w+6)%7):(Re=tv(Is(ne.y,0,1)),Ee=Re.getDay(),Re=Ee>4||Ee===0?sf.ceil(Re):sf(Re),Re=ju.offset(Re,(ne.V-1)*7),ne.y=Re.getFullYear(),ne.m=Re.getMonth(),ne.d=Re.getDate()+(ne.w+6)%7)}else("W"in ne||"U"in ne)&&("w"in ne||(ne.w="u"in ne?ne.u%7:"W"in ne?1:0),Ee="Z"in ne?rv(Is(ne.y,0,1)).getUTCDay():tv(Is(ne.y,0,1)).getDay(),ne.m=0,ne.d="W"in ne?(ne.w+6)%7+ne.W*7-(Ee+5)%7:ne.w+ne.U*7-(Ee+6)%7);return"Z"in ne?(ne.H+=ne.Z/100|0,ne.M+=ne.Z%100,rv(ne)):tv(ne)}}function F(Z,we,Pe,ne){for(var lt=0,Re=we.length,Ee=Pe.length,vt,or;lt=Ee)return-1;if(vt=we.charCodeAt(lt++),vt===37){if(vt=we.charAt(lt++),or=N[vt in Dk?we.charAt(lt++):vt],!or||(ne=or(Z,Pe,ne))<0)return-1}else if(vt!=Pe.charCodeAt(ne++))return-1}return ne}function z(Z,we,Pe){var ne=f.exec(we.slice(Pe));return ne?(Z.p=h.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function q(Z,we,Pe){var ne=x.exec(we.slice(Pe));return ne?(Z.w=k.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function X(Z,we,Pe){var ne=m.exec(we.slice(Pe));return ne?(Z.w=v.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function B(Z,we,Pe){var ne=P.exec(we.slice(Pe));return ne?(Z.m=O.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function ue(Z,we,Pe){var ne=S.exec(we.slice(Pe));return ne?(Z.m=E.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function Y(Z,we,Pe){return F(Z,t,we,Pe)}function le(Z,we,Pe){return F(Z,r,we,Pe)}function fe(Z,we,Pe){return F(Z,n,we,Pe)}function de(Z){return s[Z.getDay()]}function K(Z){return o[Z.getDay()]}function ie(Z){return d[Z.getMonth()]}function Q(Z){return u[Z.getMonth()]}function R(Z){return i[+(Z.getHours()>=12)]}function M(Z){return 1+~~(Z.getMonth()/3)}function J(Z){return s[Z.getUTCDay()]}function se(Z){return o[Z.getUTCDay()]}function te(Z){return d[Z.getUTCMonth()]}function ce(Z){return u[Z.getUTCMonth()]}function ye(Z){return i[+(Z.getUTCHours()>=12)]}function _e(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var we=C(Z+="",j);return we.toString=function(){return Z},we},parse:function(Z){var we=D(Z+="",!1);return we.toString=function(){return Z},we},utcFormat:function(Z){var we=C(Z+="",_);return we.toString=function(){return Z},we},utcParse:function(Z){var we=D(Z+="",!0);return we.toString=function(){return Z},we}}}var Dk={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,dB=/^%/,fB=/[\\^$*+?|[\]().{}]/g;function Ke(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",o=i.length;return n+(o[t.toLowerCase(),r]))}function pB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function mB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function vB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function yB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function gB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Rk(e,t,r){var n=Tt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function $k(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function xB(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function bB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function wB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Lk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function SB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function zk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function kB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function EB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function PB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function AB(e,t,r){var n=Tt.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function OB(e,t,r){var n=dB.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function CB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function _B(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function Fk(e,t){return Ke(e.getDate(),t,2)}function jB(e,t){return Ke(e.getHours(),t,2)}function NB(e,t){return Ke(e.getHours()%12||12,t,2)}function IB(e,t){return Ke(1+ju.count(ri(e),e),t,3)}function cC(e,t){return Ke(e.getMilliseconds(),t,3)}function MB(e,t){return cC(e,t)+"000"}function TB(e,t){return Ke(e.getMonth()+1,t,2)}function DB(e,t){return Ke(e.getMinutes(),t,2)}function RB(e,t){return Ke(e.getSeconds(),t,2)}function $B(e){var t=e.getDay();return t===0?7:t}function LB(e,t){return Ke(mh.count(ri(e)-1,e),t,2)}function dC(e){var t=e.getDay();return t>=4||t===0?ml(e):ml.ceil(e)}function zB(e,t){return e=dC(e),Ke(ml.count(ri(e),e)+(ri(e).getDay()===4),t,2)}function FB(e){return e.getDay()}function BB(e,t){return Ke(sf.count(ri(e)-1,e),t,2)}function UB(e,t){return Ke(e.getFullYear()%100,t,2)}function WB(e,t){return e=dC(e),Ke(e.getFullYear()%100,t,2)}function HB(e,t){return Ke(e.getFullYear()%1e4,t,4)}function KB(e,t){var r=e.getDay();return e=r>=4||r===0?ml(e):ml.ceil(e),Ke(e.getFullYear()%1e4,t,4)}function VB(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ke(t/60|0,"0",2)+Ke(t%60,"0",2)}function Bk(e,t){return Ke(e.getUTCDate(),t,2)}function qB(e,t){return Ke(e.getUTCHours(),t,2)}function GB(e,t){return Ke(e.getUTCHours()%12||12,t,2)}function YB(e,t){return Ke(1+ph.count(ni(e),e),t,3)}function fC(e,t){return Ke(e.getUTCMilliseconds(),t,3)}function QB(e,t){return fC(e,t)+"000"}function XB(e,t){return Ke(e.getUTCMonth()+1,t,2)}function ZB(e,t){return Ke(e.getUTCMinutes(),t,2)}function JB(e,t){return Ke(e.getUTCSeconds(),t,2)}function eU(e){var t=e.getUTCDay();return t===0?7:t}function tU(e,t){return Ke(vh.count(ni(e)-1,e),t,2)}function hC(e){var t=e.getUTCDay();return t>=4||t===0?vl(e):vl.ceil(e)}function rU(e,t){return e=hC(e),Ke(vl.count(ni(e),e)+(ni(e).getUTCDay()===4),t,2)}function nU(e){return e.getUTCDay()}function iU(e,t){return Ke(uf.count(ni(e)-1,e),t,2)}function aU(e,t){return Ke(e.getUTCFullYear()%100,t,2)}function oU(e,t){return e=hC(e),Ke(e.getUTCFullYear()%100,t,2)}function lU(e,t){return Ke(e.getUTCFullYear()%1e4,t,4)}function sU(e,t){var r=e.getUTCDay();return e=r>=4||r===0?vl(e):vl.ceil(e),Ke(e.getUTCFullYear()%1e4,t,4)}function uU(){return"+0000"}function Uk(){return"%"}function Wk(e){return+e}function Hk(e){return Math.floor(+e/1e3)}var To,pC,mC;cU({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function cU(e){return To=cB(e),pC=To.format,To.parse,mC=To.utcFormat,To.utcParse,To}function dU(e){return new Date(e)}function fU(e){return e instanceof Date?+e:+new Date(+e)}function Qg(e,t,r,n,i,o,s,u,d,f){var h=Rg(),m=h.invert,v=h.domain,x=f(".%L"),k=f(":%S"),S=f("%I:%M"),E=f("%I %p"),P=f("%a %d"),O=f("%b %d"),j=f("%B"),_=f("%Y");function N(C){return(d(C)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,o)=>e8(e,o/n))},r.copy=function(){return xC(t).domain(e)},li.apply(r,arguments)}function gh(){var e=0,t=.5,r=1,n=1,i,o,s,u,d,f=nr,h,m=!1,v;function x(S){return isNaN(S=+S)?v:(S=.5+((S=+h(S))-o)*(n*S{if(e!=null){var n=e.scale,i=e.type;if(n==="auto")return i==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":i==="category"?"band":"linear";if(typeof n=="string")return xU(n)?n:"point"}};function bU(e,t){for(var r=0,n=e.length,i=e[0]t)?r=o+1:n=o}return r}function PC(e,t){if(e){var r=t??e.domain(),n=r.map(o=>{var s;return(s=e(o))!==null&&s!==void 0?s:0}),i=e.range();if(!(r.length===0||i.length<2))return o=>{var s,u,d=bU(n,o);if(d<=0)return r[0];if(d>=r.length)return r[r.length-1];var f=(s=n[d-1])!==null&&s!==void 0?s:0,h=(u=n[d])!==null&&u!==void 0?u:0;return Math.abs(o-f)<=Math.abs(o-h)?r[d-1]:r[d]}}}function wU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):PC(e,void 0)}function Vk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function cf(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],si=(e,t)=>{var r=OC(e,t);return r??St},kt={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:xy,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:Su},CC=(e,t)=>e.cartesianAxis.yAxis[t],ui=(e,t)=>{var r=CC(e,t);return r??kt},_U={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},e0=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??_U},ar=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"zAxis":return e0(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},jU=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Nu=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},_C=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function jC(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var NC=e=>e.graphicalItems.cartesianItems,NU=H([It,ch],jC),IC=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),_l=H([NC,ar,NU],IC,{memoizeOptions:{resultEqualityCheck:fh}}),MC=H([_l],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Cg)),TC=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),IU=H([_l],TC),DC=e=>e.map(t=>t.data).filter(Boolean).flat(1),MU=H([_l],e=>e.some(t=>!t.data)),RC=H([_l],DC,{memoizeOptions:{resultEqualityCheck:fh}}),$C=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,i=t.dataStartIndex,o=t.dataEndIndex;return e.length>0?e:n.slice(i,o+1)},t0=H([RC,ah],$C),TU=(e,t,r)=>(t==null?void 0:t.dataKey)!=null?e.map(n=>({value:Nt(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(i=>({value:Nt(i,n)}))):e.map(n=>({value:n})),LC=(e,t,r,n,i,o)=>{var s=n.chartData,u=s===void 0?[]:s,d=n.dataStartIndex,f=n.dataEndIndex,h=TU(e,t,r);if(i&&(t==null?void 0:t.dataKey)!=null&&o.length>0){var m=u.slice(d,f+1),v=m.map(x=>({value:Nt(x,t.dataKey)})).filter(x=>x.value!=null);return[...v,...h]}return h},Iu=H([t0,ar,_l,ah,MU,RC],LC);function Qo(e){if(Cn(e)||e instanceof Date){var t=Number(e);if(Fe(t))return t}}function Gk(e){if(Array.isArray(e)){var t=[Qo(e[0]),Qo(e[1])];return Pn(t)?t:void 0}var r=Qo(e);if(r!=null)return[r,r]}function Nn(e){return e.map(Qo).filter(mr)}function DU(e,t){var r=Qo(e),n=Qo(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var RU=H([Iu],e=>e==null?void 0:e.map(t=>t.value).sort(DU));function zC(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function $U(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!On(t))n=t;else if(Array.isArray(t)){var i=Nn(t);i.length>0&&(n=Math.max(...i))}return n==null?[]:Nn(r.flatMap(o=>{var s=Nt(e,o.dataKey),u,d;if(Array.isArray(s)){var f=AC(s,2);u=f[0],d=f[1]}else u=d=s;if(!(!Fe(u)||!Fe(d)))return[n-u,n+d]}))}var Pt=e=>{var t=Mt(e),r=Ol(e);return Nu(e,t,r)},yl=H([Pt],e=>e==null?void 0:e.dataKey),LU=H([MC,ah,Pt],W2),FC=(e,t,r,n)=>{var i={},o=t.reduce((s,u)=>{if(u.stackId==null)return s;var d=s[u.stackId];return d==null&&(d=[]),d.push(u),s[u.stackId]=d,s},i);return Object.fromEntries(Object.entries(o).map(s=>{var u=AC(s,2),d=u[0],f=u[1],h=n?[...f].reverse():f,m=h.map(Og);return[d,{stackedData:r4(e,m,r),graphicalItems:h}]}))},BC=H([LU,MC,oh,R2],FC),UC=(e,t,r,n)=>{var i=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return o4(e,i,o)},zU=H([ar],e=>e.allowDataOverflow),r0=e=>{var t;if(e==null||!("domain"in e))return xy;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Nn(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e==null?void 0:e.domain)!==null&&t!==void 0?t:xy},WC=H([ar],r0),HC=H([WC,zU],P2),FU=H([BC,un,It,HC],UC,{memoizeOptions:{resultEqualityCheck:dh}}),n0=e=>e.errorBars,BU=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>zC(r,n)),df=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],u,d;if(n.length>0&&n.forEach(f=>{var h,m=f.data!=null?[...f.data]:s,v=(h=i[f.id])===null||h===void 0?void 0:h.filter(x=>zC(o,x));m.forEach(x=>{var k,S=Nt(x,(k=r.dataKey)!==null&&k!==void 0?k:f.dataKey),E=$U(x,S,v);if(E.length>=2){var P=Math.min(...E),O=Math.max(...E);(u==null||Pd)&&(d=O)}var j=Gk(S);j!=null&&(u=u==null?j[0]:Math.min(u,j[0]),d=d==null?j[1]:Math.max(d,j[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(f=>{var h=Gk(Nt(f,r.dataKey));h!=null&&(u=u==null?h[0]:Math.min(u,h[0]),d=d==null?h[1]:Math.max(d,h[1]))}),Fe(u)&&Fe(d))return[u,d]},UU=H([t0,ar,IU,n0,It,g6],KC,{memoizeOptions:{resultEqualityCheck:dh}});function WU(e){var t=e.value;if(Cn(t)||t instanceof Date)return t}var HU=(e,t,r)=>{var n=e.map(WU).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&rO(n))?E2(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},VC=e=>e.referenceElements.dots,jl=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),KU=H([VC,It,ch],jl),qC=e=>e.referenceElements.areas,VU=H([qC,It,ch],jl),GC=e=>e.referenceElements.lines,qU=H([GC,It,ch],jl),YC=(e,t)=>{if(e!=null){var r=Nn(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},GU=H(KU,It,YC),QC=(e,t)=>{if(e!=null){var r=Nn(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},YU=H([VU,It],QC);function QU(e){var t;if(e.x!=null)return Nn([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Nn(r)}function XU(e){var t;if(e.y!=null)return Nn([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Nn(r)}var XC=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?QU(n):XU(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},ZU=H([qU,It],XC),JU=H(GU,ZU,YU,(e,t,r)=>df(e,r,t)),ZC=(e,t,r,n,i,o,s,u)=>{if(r!=null)return r;var d=s==="vertical"&&u==="xAxis"||s==="horizontal"&&u==="yAxis",f=d?df(n,o,i):df(o,i);return E6(t,f,e.allowDataOverflow)},e7=H([ar,WC,HC,FU,UU,JU,ot,It],ZC,{memoizeOptions:{resultEqualityCheck:dh}}),t7=[0,1],JC=(e,t,r,n,i,o,s)=>{if(!((e==null||r==null||r.length===0)&&s===void 0)){var u=e.dataKey,d=e.type,f=In(t,o);if(f&&u==null){var h;return E2(0,(h=r==null?void 0:r.length)!==null&&h!==void 0?h:0)}return d==="category"?HU(n,e,f):i==="expand"&&!f?t7:s}},i0=H([ar,ot,t0,Iu,oh,It,e7],JC),Nl=H([ar,_C,wg],EC),e_=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var i=r0(t),o=Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Pn(e)){if(o)return nk(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ik(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Pn(e))return nk(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Pn(e))return ik(e,t.tickCount,t.allowDecimals,"adaptive")}}},a0=H([i0,Nu,Nl],e_),t_=(e,t,r,n)=>{if(n!=="angleAxis"&&(e==null?void 0:e.type)==="number"&&Pn(t)&&Array.isArray(r)&&r.length>0){var i,o,s=t[0],u=(i=r[0])!==null&&i!==void 0?i:0,d=t[1],f=(o=r[r.length-1])!==null&&o!==void 0?o:0;return[Math.min(s,u),Math.max(d,f)]}return t},r7=H([ar,i0,a0,It],t_),n7=H(Iu,ar,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Nn(e.map(m=>m.value))).sort((m,v)=>m-v),i=n[0],o=n[n.length-1];if(i==null||o==null)return 1/0;var s=o-i;if(s===0)return 1/0;for(var u=0;ui,(e,t,r,n,i)=>{if(!Fe(e))return 0;var o=t==="vertical"?n.height:n.width;if(i==="gap")return e*o/2;if(i==="no-gap"){var s=ea(r,e*o),u=e*o/2;return u-s-(u-s)/o*s}return 0}),i7=(e,t,r)=>{var n=si(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"xAxis",t,r,n.padding)},a7=(e,t,r)=>{var n=ui(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"yAxis",t,r,n.padding)},o7=H(si,i7,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var i=e.padding;return typeof i=="string"?{left:t,right:t}:{left:((r=i.left)!==null&&r!==void 0?r:0)+t,right:((n=i.right)!==null&&n!==void 0?n:0)+t}}),l7=H(ui,a7,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var i=e.padding;return typeof i=="string"?{top:t,bottom:t}:{top:((r=i.top)!==null&&r!==void 0?r:0)+t,bottom:((n=i.bottom)!==null&&n!==void 0?n:0)+t}}),n_=H([Ht,o7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i)=>{var o=n.padding;return i?[o.left,r.width-o.right]:[e.left+t.left,e.left+e.width-t.right]}),i_=H([Ht,ot,l7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i,o)=>{var s=i.padding;return o?[n.height-s.bottom,s.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Mu=(e,t,r,n)=>{var i;switch(t){case"xAxis":return n_(e,r,n);case"yAxis":return i_(e,r,n);case"zAxis":return(i=e0(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return F2(e);case"radiusAxis":return B2(e,r);default:return}},a_=H([ar,Mu],lh),s7=H([Nl,r7],U6),o0=H([ar,Nl,s7,a_],Jg),o_=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var i=r.type,o=r.scale,s=In(e,n);if(s&&(i==="number"||o!=="auto"))return t.map(u=>u.value)}},l0=H([ot,Iu,Nu,It],o_),xh=H([o0],_g);H([o0],wU);H([o0,RU],PC);H([_l,n0,It],BU);function l_(e,t){return e.idt.id?1:0}var bh=(e,t)=>t,wh=(e,t,r)=>r,u7=H(Qf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),c7=H(Xf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),s_=(e,t)=>({width:e.width,height:t.height}),d7=(e,t)=>{var r=typeof t.width=="number"?t.width:Su;return{width:r,height:e.height}},f7=H(Ht,si,s_),h7=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},p7=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},m7=H(oi,Ht,u7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=s_(t,u);s==null&&(s=h7(t,n,e));var f=n==="top"&&!i||n==="bottom"&&i;o[u.id]=s-Number(f)*d.height,s+=(f?-1:1)*d.height}),o}),v7=H(ai,Ht,c7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=d7(t,u);s==null&&(s=p7(t,n,e));var f=n==="left"&&!i||n==="right"&&i;o[u.id]=s-Number(f)*d.width,s+=(f?-1:1)*d.width}),o}),y7=(e,t)=>{var r=si(e,t);if(r!=null)return m7(e,r.orientation,r.mirror)},g7=H([Ht,si,y7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),x7=(e,t)=>{var r=ui(e,t);if(r!=null)return v7(e,r.orientation,r.mirror)},b7=H([Ht,ui,x7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),w7=H(Ht,ui,(e,t)=>{var r=typeof t.width=="number"?t.width:Su;return{width:r,height:e.height}}),u_=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,o=r.type,s=r.dataKey,u=In(e,n),d=t.map(h=>h.value),f=d.filter(h=>h!=null);if(s&&u&&o==="category"&&i&&rO(f))return d}},s0=H([ot,Iu,ar,It],u_),Yk=H([ot,jU,Nl,xh,s0,l0,Mu,a0,It],(e,t,r,n,i,o,s,u,d)=>{if(t!=null){var f=In(e,d);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:d,categoricalDomain:o,duplicateDomain:i,isCategorical:f,niceTicks:u,range:s,realScaleType:r,scale:n}}}),S7=(e,t,r,n,i,o,s,u,d)=>{if(!(t==null||n==null)){var f=In(e,d),h=t.type,m=t.ticks,v=t.tickCount,x=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,k=h==="category"&&n.bandwidth?n.bandwidth()/x:0;k=d==="angleAxis"&&o!=null&&o.length>=2?Lr(o[0]-o[1])*2*k:k;var S=m||i;return S?S.map((E,P)=>{var O=s?s.indexOf(E):E,j=n.map(O);return Fe(j)?{index:P,coordinate:j+k,value:E,offset:k}:null}).filter(mr):f&&u?u.map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.ticks?n.ticks(v).map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.domain().map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:s?s[E]:E,index:P,offset:k}:null}).filter(mr)}},c_=H([ot,Nu,Nl,xh,a0,Mu,s0,l0,It],S7),k7=(e,t,r,n,i,o,s)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=In(e,s),d=t.tickCount,f=0;return f=s==="angleAxis"&&(n==null?void 0:n.length)>=2?Lr(n[0]-n[1])*2*f:f,u&&o?o.map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.ticks?r.ticks(d).map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.domain().map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:i?i[h]:h,index:m,offset:f}:null}).filter(mr)}},d_=H([ot,Nu,xh,Mu,s0,l0,It],k7),f_=H(ar,xh,(e,t)=>{if(!(e==null||t==null))return cf(cf({},e),{},{scale:t})}),E7=H([ar,Nl,i0,a_],Jg),P7=H([E7],_g);H((e,t,r)=>e0(e,r),P7,(e,t)=>{if(!(e==null||t==null))return cf(cf({},e),{},{scale:t})});var A7=H([ot,Qf,Xf],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),O7=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};H([O7],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,i=e[0];for(var o of e){var s=Math.abs(o.coordinate-t);se.options.defaultTooltipEventType,p_=e=>e.options.validateTooltipEventTypes;function m_(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Tu(e,t){var r=h_(e),n=p_(e);return m_(t,r,n)}function C7(e){return ke(t=>Tu(t,e))}var v_=(e,t)=>{var r,n=Number(t);if(!(On(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},_7=e=>e.tooltip.settings,zi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},j7={itemInteraction:{click:zi,hover:zi},axisInteraction:{click:zi,hover:zi},keyboardInteraction:zi,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},y_=Zt({name:"tooltip",initialState:j7,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:tt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).tooltipItemPayloads.indexOf(n);o>-1&&(e.tooltipItemPayloads[o]=i)},prepare:tt()},removeTooltipEntrySettings:{reducer(e,t){var r=zr(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:tt()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Vr=y_.actions,N7=Vr.addTooltipEntrySettings,I7=Vr.replaceTooltipEntrySettings,M7=Vr.removeTooltipEntrySettings,T7=Vr.setTooltipSettingsState,D7=Vr.setActiveMouseOverItemIndex;Vr.mouseLeaveItem;var g_=Vr.mouseLeaveChart;Vr.setActiveClickItemIndex;var x_=Vr.setMouseOverAxisIndex,R7=Vr.setMouseClickAxisIndex,zs=Vr.setSyncInteraction,ff=Vr.setKeyboardInteraction,$7=y_.reducer;function Qk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function fd(e){for(var t=1;t{if(t==null)return zi;var i=B7(e,t,r);if(i==null)return zi;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var o=e.settings.active===!0;if(U7(i)){if(o)return fd(fd({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return fd(fd({},zi),{},{coordinate:i.coordinate})};function W7(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function H7(e,t){var r=W7(e),n=t[0],i=t[1];if(r===void 0)return!1;var o=Math.min(n,i),s=Math.max(n,i);return r>=o&&r<=s}function K7(e,t,r){if(r==null||t==null)return!0;var n=Nt(e,t);return n==null||!Pn(r)?!0:H7(n,r)}var Us=(e,t,r,n)=>{var i=e==null?void 0:e.index;if(i==null)return null;var o=Number(i);if(!Fe(o))return i;var s=0,u=1/0;t.length>0&&(u=t.length-1);var d=Math.max(s,Math.min(o,u)),f=t[d];return f==null||K7(f,r,n)?String(d):null},w_=(e,t,r,n,i,o,s)=>{if(o!=null){var u=s[0],d=u==null?void 0:u.getPosition(o);if(d!=null)return d;var f=i==null?void 0:i[Number(o)];if(f)switch(r){case"horizontal":return{x:f.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:f.coordinate}}}},S_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i;if(r==="hover"?i=e.itemInteraction.hover.graphicalItemId:i=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(n!=null||e.keyboardInteraction.active)){var o=e.tooltipItemPayloads[0];return o!=null?[o]:[]}return e.tooltipItemPayloads.filter(s=>{var u;return((u=s.settings)===null||u===void 0?void 0:u.graphicalItemId)===i})},k_=e=>e.options.tooltipPayloadSearcher,Il=e=>e.tooltip;function Xk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zk(e){for(var t=1;te(t)}function Jk(e){if(typeof e=="string")return e}function Z7(e){if(!(e==null||typeof e!="object")){var t="name"in e?Y7(e.name):void 0,r="unit"in e?Q7(e.unit):void 0,n="dataKey"in e?X7(e.dataKey):void 0,i="payload"in e?e.payload:void 0,o="color"in e?Jk(e.color):void 0,s="fill"in e?Jk(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:o,fill:s}}}function J7(e,t){return e??t}var E_=(e,t,r,n,i,o,s)=>{if(!(t==null||o==null)){var u=r.chartData,d=r.computedData,f=r.dataStartIndex,h=r.dataEndIndex,m=[];return e.reduce((v,x)=>{var k,S=x.dataDefinedOnItem,E=x.settings,P=J7(S,u),O=Array.isArray(P)?YO(P,f,h):P,j=(k=E==null?void 0:E.dataKey)!==null&&k!==void 0?k:n,_=E==null?void 0:E.nameKey,N;if(n&&Array.isArray(O)&&!Array.isArray(O[0])&&s==="axis"?N=nO(O,n,i):N=o(O,t,d,_),Array.isArray(N))N.forEach(D=>{var F,z,q=Z7(D),X=q==null?void 0:q.name,B=q==null?void 0:q.dataKey,ue=q==null?void 0:q.payload,Y=Zk(Zk({},E),{},{name:X,unit:q==null?void 0:q.unit,color:(F=q==null?void 0:q.color)!==null&&F!==void 0?F:E==null?void 0:E.color,fill:(z=q==null?void 0:q.fill)!==null&&z!==void 0?z:E==null?void 0:E.fill});v.push(qw({tooltipEntrySettings:Y,dataKey:B,payload:ue,value:Nt(ue,B),name:X==null?void 0:String(X)}))});else{var C;v.push(qw({tooltipEntrySettings:E,dataKey:j,payload:N,value:Nt(N,j),name:(C=Nt(N,_))!==null&&C!==void 0?C:E==null?void 0:E.name}))}return v},m)}},u0=H([Pt,_C,wg],EC),e9=H([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),t9=H([Mt,Ol],jC),to=H([e9,Pt,t9],IC,{memoizeOptions:{resultEqualityCheck:fh}}),r9=H([to],e=>e.filter(Cg)),P_=H([to],DC,{memoizeOptions:{resultEqualityCheck:fh}}),n9=H([to],e=>e.some(t=>!t.data)),Ya=H([P_,un],$C),i9=H([r9,un,Pt],W2),c0=H([Ya,Pt,to,un,n9,P_],LC),A_=H([Pt],r0),a9=H([Pt],e=>e.allowDataOverflow),O_=H([A_,a9],P2),o9=H([to],e=>e.filter(Cg)),l9=H([i9,o9,oh,R2],FC),s9=H([l9,un,Mt,O_],UC),u9=H([to],TC),c9=H([Ya,Pt,u9,n0,Mt,x6],KC,{memoizeOptions:{resultEqualityCheck:dh}}),d9=H([VC,Mt,Ol],jl),f9=H([d9,Mt],YC),h9=H([qC,Mt,Ol],jl),p9=H([h9,Mt],QC),m9=H([GC,Mt,Ol],jl),v9=H([m9,Mt],XC),y9=H([f9,v9,p9],df),g9=H([Pt,A_,O_,s9,c9,y9,ot,Mt],ZC),gl=H([Pt,ot,Ya,c0,oh,Mt,g9],JC),x9=H([gl,Pt,u0],e_),b9=H([Pt,gl,x9,Mt],t_),C_=e=>{var t=Mt(e),r=Ol(e),n=!1;return Mu(e,t,r,n)},__=H([Pt,C_],lh),w9=H([Pt,u0,b9,__],Jg),j_=H([w9],_g),S9=H([ot,c0,Pt,Mt],u_),k9=H([ot,c0,Pt,Mt],o_),E9=(e,t,r,n,i,o,s,u)=>{if(t){var d=t.type,f=In(e,u);if(n){var h=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,m=d==="category"&&n.bandwidth?n.bandwidth()/h:0;return m=u==="angleAxis"&&i!=null&&(i==null?void 0:i.length)>=2?Lr(i[0]-i[1])*2*m:m,f&&s?s.map((v,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:v,index:x,offset:m}:null}).filter(mr):n.domain().map((v,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:o?o[v]:v,index:x,offset:m}:null}).filter(mr)}}},ci=H([ot,Pt,u0,j_,C_,S9,k9,Mt],E9),d0=H([h_,p_,_7],(e,t,r)=>m_(r.shared,e,t)),N_=e=>e.tooltip.settings.trigger,f0=e=>e.tooltip.settings.defaultIndex,Du=H([Il,d0,N_,f0],b_),cu=H([Du,Ya,yl,gl],Us),I_=H([ci,cu],v_),P9=H([Du],e=>{if(e)return e.dataKey}),A9=H([Du],e=>{if(e)return e.graphicalItemId}),M_=H([Il,d0,N_,f0],S_),O9=H([ai,oi,ot,Ht,ci,f0,M_],w_),C9=H([Du,O9],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),_9=H([Du],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),j9=H([M_,cu,un,yl,I_,k_,d0],E_),N9=H([j9],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function eE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function tE(e){for(var t=1;tke(Pt),R9=()=>{var e=D9(),t=ke(ci),r=ke(j_);return Bd(!e||!r?void 0:tE(tE({},e),{},{scale:r}),t)};function rE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Do(e){for(var t=1;t{var i=t.find(o=>o&&o.index===r);if(i){if(e==="horizontal")return{x:i.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:i.coordinate}}return{x:0,y:0}},B9=(e,t,r,n)=>{var i=t.find(f=>f&&f.index===r);if(i){if(e==="centric"){var o=i.coordinate,s=n.radius;return Do(Do(Do({},n),Bt(n.cx,n.cy,s,o)),{},{angle:o,radius:s})}var u=i.coordinate,d=n.angle;return Do(Do(Do({},n),Bt(n.cx,n.cy,u,d)),{},{angle:d,radius:u})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function U9(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var T_=(e,t,r,n,i)=>{var o,s=(o=t==null?void 0:t.length)!==null&&o!==void 0?o:0;if(s<=1||e==null)return 0;if(n==="angleAxis"&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var u=0;u0?(d=r[u-1])===null||d===void 0?void 0:d.coordinate:(f=r[s-1])===null||f===void 0?void 0:f.coordinate,k=(h=r[u])===null||h===void 0?void 0:h.coordinate,S=u>=s-1?(m=r[0])===null||m===void 0?void 0:m.coordinate:(v=r[u+1])===null||v===void 0?void 0:v.coordinate,E=void 0;if(!(x==null||k==null||S==null))if(Lr(k-x)!==Lr(S-k)){var P=[];if(Lr(S-k)===Lr(i[1]-i[0])){E=S;var O=k+i[1]-i[0];P[0]=Math.min(O,(O+x)/2),P[1]=Math.max(O,(O+x)/2)}else{E=x;var j=S+i[1]-i[0];P[0]=Math.min(k,(j+k)/2),P[1]=Math.max(k,(j+k)/2)}var _=[Math.min(k,(E+k)/2),Math.max(k,(E+k)/2)];if(e>_[0]&&e<=_[1]||e>=P[0]&&e<=P[1]){var N;return(N=r[u])===null||N===void 0?void 0:N.index}}else{var C=Math.min(x,S),D=Math.max(x,S);if(e>(C+k)/2&&e<=(D+k)/2){var F;return(F=r[u])===null||F===void 0?void 0:F.index}}}else if(t)for(var z=0;z(q.coordinate+B.coordinate)/2||z>0&&z(q.coordinate+B.coordinate)/2&&e<=(q.coordinate+X.coordinate)/2)return q.index}}return-1},D_=()=>ke(wg),h0=(e,t)=>t,R_=(e,t,r)=>r,p0=(e,t,r,n)=>n,W9=H(ci,e=>zf(e,t=>t.coordinate)),m0=H([Il,h0,R_,p0],b_),v0=H([m0,Ya,yl,gl],Us),H9=(e,t,r)=>{if(t!=null){var n=Il(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},$_=H([Il,h0,R_,p0],S_),hf=H([ai,oi,ot,Ht,ci,p0,$_],w_),K9=H([m0,hf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),L_=H([ci,v0],v_),V9=H([$_,v0,un,yl,L_,k_,h0],E_),q9=H([m0,v0],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),G9=(e,t,r,n,i,o,s)=>{if(!(!e||!r||!n||!i)&&U9(e,s)){var u=l4(e,t),d=T_(u,o,i,r,n),f=F9(t,i,d,e);return{activeIndex:String(d),activeCoordinate:f}}},Y9=(e,t,r,n,i,o,s)=>{if(!(!e||!n||!i||!o||!r)){var u=c6(e,r);if(u){var d=s4(u,t),f=T_(d,s,o,n,i),h=B9(t,o,f,u);return{activeIndex:String(f),activeCoordinate:h}}}},Q9=(e,t,r,n,i,o,s,u)=>{if(!(!e||!t||!n||!i||!o))return t==="horizontal"||t==="vertical"?G9(e,t,n,i,o,s,u):Y9(e,t,r,n,i,o,s)},X9=H(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),Z9=H(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(rr)),r=Array.from(new Set(t));return r.sort((n,i)=>n-i)},{memoizeOptions:{resultEqualityCheck:B6}});function nE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function iE(e){for(var t=1;tiE(iE({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),rW)},iW=new Set(Object.values(rr));function aW(e){return iW.has(e)}var z_=Zt({name:"zIndex",initialState:nW,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:tt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!aW(r)&&delete e.zIndexMap[r])},prepare:tt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,i=r.element,o=r.isPanorama;e.zIndexMap[n]?o?e.zIndexMap[n].panoramaElement=i:e.zIndexMap[n].element=i:e.zIndexMap[n]={consumers:0,element:o?void 0:i,panoramaElement:o?i:void 0}},prepare:tt()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:tt()}}}),Sh=z_.actions,oW=Sh.registerZIndexPortal,nv=Sh.unregisterZIndexPortal,lW=Sh.registerZIndexPortalElement,sW=Sh.unregisterZIndexPortalElement,uW=z_.reducer;function di(e){var t=e.zIndex,r=e.children,n=V4(),i=n&&t!==void 0&&t!==0,o=gr(),s=g.useRef(void 0),u=g.useRef(new Set),d=xt(),f=ke(m=>X9(m,t,o));if(g.useLayoutEffect(()=>{if(!i){var m=u.current;m.forEach(x=>{d(nv({zIndex:x}))}),m.clear(),s.current=void 0;return}if(u.current.has(t)||(d(oW({zIndex:t})),u.current.add(t)),f){s.current=f;var v=u.current;v.forEach(x=>{x!==t&&(d(nv({zIndex:x})),v.delete(x))})}},[d,t,i,f]),g.useLayoutEffect(()=>{var m=u.current;return()=>{m.forEach(v=>{d(nv({zIndex:v}))}),m.clear()}},[d]),!i)return r;var h=f??s.current;return h?_f.createPortal(r,h):null}function by(){return by=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.useContext(F_),iv={exports:{}},oE;function yW(){return oE||(oE=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(d,f,h){this.fn=d,this.context=f,this.once=h||!1}function o(d,f,h,m,v){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||d,v),k=r?r+f:f;return d._events[k]?d._events[k].fn?d._events[k]=[d._events[k],x]:d._events[k].push(x):(d._events[k]=x,d._eventsCount++),d}function s(d,f){--d._eventsCount===0?d._events=new n:delete d._events[f]}function u(){this._events=new n,this._eventsCount=0}u.prototype.eventNames=function(){var f=[],h,m;if(this._eventsCount===0)return f;for(m in h=this._events)t.call(h,m)&&f.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(h)):f},u.prototype.listeners=function(f){var h=r?r+f:f,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var v=0,x=m.length,k=new Array(x);v{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!On(r))return e[r]}},wW={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},B_=Zt({name:"options",initialState:wW,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),SW=B_.reducer,kW=B_.actions.createEventEmitter;function EW(e){return e.tooltip.syncInteraction}var PW={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},U_=Zt({name:"chartData",initialState:PW,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,i=r.endIndex;n!=null&&(e.dataStartIndex=n),i!=null&&(e.dataEndIndex=i)}}}),y0=U_.actions,sE=y0.setChartData,AW=y0.setDataStartEndIndexes;y0.setComputedData;var OW=U_.reducer,CW=["x","y"];function uE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ro(e){for(var t=1;td.rootProps.className);g.useEffect(()=>{if(e==null)return kl;var d=(f,h,m)=>{if(t!==m&&e===f){if(h.payload.active===!1){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var v;if(s&&h!==null&&h!==void 0&&(v=h.payload)!==null&&v!==void 0&&v.coordinate&&h.payload.sourceViewBox){var x=h.payload.coordinate,k=x.x,S=x.y,E=IW(x,CW),P=h.payload.sourceViewBox,O=P.x,j=P.y,_=P.width,N=P.height,C=Ro(Ro({},E),{},{x:s.x+(_?(k-O)/_:0)*s.width,y:s.y+(N?(S-j)/N:0)*s.height});r(Ro(Ro({},h),{},{payload:Ro(Ro({},h.payload),{},{coordinate:C})}))}else r(h);return}if(i!=null){var D;if(typeof n=="function"){var F={activeTooltipIndex:h.payload.index==null?void 0:Number(h.payload.index),isTooltipActive:h.payload.active,activeIndex:h.payload.index==null?void 0:Number(h.payload.index),activeLabel:h.payload.label,activeDataKey:h.payload.dataKey,activeCoordinate:h.payload.coordinate},z=n(i,F);D=i[z]}else n==="value"&&(D=i.find(de=>String(de.value)===h.payload.label));var q=h.payload.coordinate;if(q==null||s==null){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(D==null){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:void 0}));return}var X=q.x,B=q.y,ue=Math.min(X,s.x+s.width),Y=Math.min(B,s.y+s.height),le={x:o==="horizontal"?D.coordinate:ue,y:o==="horizontal"?Y:D.coordinate},fe=zs({active:h.payload.active,coordinate:le,dataKey:h.payload.dataKey,index:String(D.index),label:h.payload.label,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:h.payload.graphicalItemId});r(fe)}}};return du.on(wy,d),()=>{du.off(wy,d)}},[u,r,t,e,n,i,o,s])}function DW(){var e=ke(Sg),t=ke(kg),r=xt();g.useEffect(()=>{if(e==null)return kl;var n=(i,o,s)=>{t!==s&&e===i&&r(AW(o))};return du.on(lE,n),()=>{du.off(lE,n)}},[r,t,e])}function RW(){var e=xt();g.useEffect(()=>{e(kW())},[e]),TW(),DW()}function $W(e,t,r,n,i,o){var s=ke(k=>H9(k,e,t)),u=ke(A9),d=ke(kg),f=ke(Sg),h=ke($2),m=ke(EW),v=(m==null?void 0:m.sourceViewBox)!=null,x=eh();g.useEffect(()=>{if(!v&&f!=null&&d!=null){var k=zs({active:o,coordinate:r,dataKey:s,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:x,graphicalItemId:u});du.emit(wy,f,k,d)}},[v,r,s,u,i,n,d,f,h,o,x])}function cE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{D(T7({shared:O,trigger:j,axisId:C,active:i,defaultIndex:F}))},[D,O,j,C,i,F]);var z=eh(),q=v2(),X=C7(O),B=(t=ke(Pe=>q9(Pe,X,j,F)))!==null&&t!==void 0?t:{},ue=B.activeIndex,Y=B.isActive,le=ke(Pe=>V9(Pe,X,j,F)),fe=ke(Pe=>L_(Pe,X,j,F)),de=ke(Pe=>K9(Pe,X,j,F)),K=le,ie=vW(),Q=(r=i??Y)!==null&&r!==void 0?r:!1,R=q5([K,Q]),M=BW(R,2),J=M[0],se=M[1],te=X==="axis"?fe:void 0;$W(X,j,de,te,ue,Q);var ce=N??ie;if(ce==null||z==null||X==null)return null;var ye=K??hE;Q||(ye=hE),f&&ye.length&&(ye=v5(ye.filter(Pe=>Pe.value!=null&&(Pe.hide!==!0||n.includeHidden)),v,VW));var _e=ye.length>0,Z=dE(dE({},n),{},{payload:ye,label:te,active:Q,activeIndex:ue,coordinate:de,accessibilityLayer:q}),we=g.createElement(iF,{allowEscapeViewBox:o,animationDuration:s,animationEasing:u,isAnimationActive:h,active:Q,coordinate:de,hasPayload:_e,offset:m,position:x,reverseDirection:k,useTranslate3d:S,viewBox:z,wrapperStyle:E,lastBoundingBox:J,innerRef:se,hasPortalFromProps:!!N},qW(d,Z));return g.createElement(g.Fragment,null,_f.createPortal(we,ce),Q&&g.createElement(mW,{cursor:P,tooltipEventType:X,coordinate:de,payload:ye,index:ue}))}function QW(e,t,r){return(t=XW(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function XW(e){var t=ZW(e,"string");return typeof t=="symbol"?t:t+""}function ZW(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class JW{constructor(t){QW(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function pE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function eH(e){for(var t=1;t{try{var r=document.getElementById(vE);r||(r=document.createElement("span"),r.setAttribute("id",vE),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,aH,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Ws=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Au.isSsr)return{width:0,height:0};if(!W_.enableCache)return yE(t,r);var n=oH(t,r),i=mE.get(n);if(i)return i;var o=yE(t,r);return mE.set(n,o),o},H_;function pf(e,t){return cH(e)||uH(e,t)||sH(e,t)||lH()}function lH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sH(e,t){if(e){if(typeof e=="string")return gE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?gE(e,t):void 0}}function gE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var i=[];Ut(t)||(r?i=t.toString().split(""):i=t.toString().split(V_));var o=i.map(u=>({word:u,width:Ws(u,n).width})),s=r?0:Ws(" ",n).width;return{wordsWithComputedWidth:o,spaceWidth:s}}catch{return null}};function G_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function jH(e){return Ut(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Y_=(e,t,r,n)=>e.reduce((i,o)=>{var s=o.word,u=o.width,d=i[i.length-1];if(d&&u!=null&&(t==null||n||d.width+u+re.reduce((t,r)=>t.width>r.width?t:r),NH="…",PE=(e,t,r,n,i,o,s,u)=>{var d=e.slice(0,t),f=q_({breakAll:r,style:n,children:d+NH});if(!f)return[!1,[]];var h=Y_(f.wordsWithComputedWidth,o,s,u),m=h.length>i||Q_(h).width>Number(o);return[m,h]},IH=(e,t,r,n,i)=>{var o=e.maxLines,s=e.children,u=e.style,d=e.breakAll,f=be(o),h=String(s),m=Y_(t,n,r,i);if(!f||i)return m;var v=m.length>o||Q_(m).width>Number(n);if(!v)return m;for(var x=0,k=h.length-1,S=0,E;x<=k&&S<=h.length-1;){var P=Math.floor((x+k)/2),O=P-1,j=PE(h,O,d,u,o,n,r,i),_=kE(j,2),N=_[0],C=_[1],D=PE(h,P,d,u,o,n,r,i),F=kE(D,1),z=F[0];if(!N&&!z&&(x=P+1),N&&z&&(k=P-1),!N&&z){E=C;break}S++}return E||m},AE=e=>{var t=Ut(e)?[]:e.toString().split(V_);return[{words:t,width:void 0}]},MH=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,o=e.breakAll,s=e.maxLines;if((t||r)&&!Au.isSsr){var u,d,f=q_({breakAll:o,children:n,style:i});if(f){var h=f.wordsWithComputedWidth,m=f.spaceWidth;u=h,d=m}else return AE(n);return IH({breakAll:o,children:n,maxLines:s,style:i},u,d,t,!!r)}return AE(n)},X_="#808080",TH={angle:0,breakAll:!1,capHeight:"0.71em",fill:X_,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},g0=g.forwardRef((e,t)=>{var r=Hr(e,TH),n=r.x,i=r.y,o=r.lineHeight,s=r.capHeight,u=r.fill,d=r.scaleToFit,f=r.textAnchor,h=r.verticalAnchor,m=SE(r,kH),v=g.useMemo(()=>MH({breakAll:m.breakAll,children:m.children,maxLines:m.maxLines,scaleToFit:d,style:m.style,width:m.width}),[m.breakAll,m.children,m.maxLines,d,m.style,m.width]),x=m.dx,k=m.dy,S=m.angle,E=m.className,P=m.breakAll,O=SE(m,EH);if(!Cn(n)||!Cn(i)||v.length===0)return null;var j=Number(n)+(be(x)?x:0),_=Number(i)+(be(k)?k:0);if(!Fe(j)||!Fe(_))return null;var N;switch(h){case"start":N=av("calc(".concat(s,")"));break;case"middle":N=av("calc(".concat((v.length-1)/2," * -").concat(o," + (").concat(s," / 2))"));break;default:N=av("calc(".concat(v.length-1," * -").concat(o,")"));break}var C=[],D=v[0];if(d&&D!=null){var F=D.width,z=m.width;C.push("scale(".concat(be(z)&&be(F)?z/F:1,")"))}return S&&C.push("rotate(".concat(S,", ").concat(j,", ").concat(_,")")),C.length&&(O.transform=C.join(" ")),g.createElement("text",Sy({},Br(O),{ref:t,x:j,y:_,className:Qe("recharts-text",E),textAnchor:f,fill:u.includes("url")?X_:u}),v.map((q,X)=>{var B=q.words.join(P?"":" ");return g.createElement("tspan",{x:j,dy:X===0?N:o,key:"".concat(B,"-").concat(X)},B)}))});g0.displayName="Text";function OE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function gn(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,i=n===void 0?0:n,o=e.parentViewBox,s=fg(t),u=s.x,d=s.y,f=s.height,h=s.upperWidth,m=s.lowerWidth,v=u,x=u+(h-m)/2,k=(v+x)/2,S=(h+m)/2,E=v+h/2,P=f>=0?1:-1,O=P*i,j=P>0?"end":"start",_=P>0?"start":"end",N=h>=0?1:-1,C=N*i,D=N>0?"end":"start",F=N>0?"start":"end",z=o;if(r==="top"){var q={x:v+h/2,y:d-O,horizontalAnchor:"middle",verticalAnchor:j};return z&&(q.height=Math.max(d-z.y,0),q.width=h),q}if(r==="bottom"){var X={x:x+m/2,y:d+f+O,horizontalAnchor:"middle",verticalAnchor:_};return z&&(X.height=Math.max(z.y+z.height-(d+f),0),X.width=m),X}if(r==="left"){var B={x:k-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"};return z&&(B.width=Math.max(B.x-z.x,0),B.height=f),B}if(r==="right"){var ue={x:k+S+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"};return z&&(ue.width=Math.max(z.x+z.width-ue.x,0),ue.height=f),ue}var Y=z?{width:S,height:f}:{};return r==="insideLeft"?gn({x:k+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"},Y):r==="insideRight"?gn({x:k+S-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"},Y):r==="insideTop"?gn({x:v+h/2,y:d+O,horizontalAnchor:"middle",verticalAnchor:_},Y):r==="insideBottom"?gn({x:x+m/2,y:d+f-O,horizontalAnchor:"middle",verticalAnchor:j},Y):r==="insideTopLeft"?gn({x:v+C,y:d+O,horizontalAnchor:F,verticalAnchor:_},Y):r==="insideTopRight"?gn({x:v+h-C,y:d+O,horizontalAnchor:D,verticalAnchor:_},Y):r==="insideBottomLeft"?gn({x:x+C,y:d+f-O,horizontalAnchor:F,verticalAnchor:j},Y):r==="insideBottomRight"?gn({x:x+m-C,y:d+f-O,horizontalAnchor:D,verticalAnchor:j},Y):r&&typeof r=="object"&&(be(r.x)||Ha(r.x))&&(be(r.y)||Ha(r.y))?gn({x:u+ea(r.x,S),y:d+ea(r.y,f),horizontalAnchor:"end",verticalAnchor:"end"},Y):gn({x:E,y:d+f/2,horizontalAnchor:"middle",verticalAnchor:"middle"},Y)},zH=["labelRef"],FH=["content"];function CE(e,t){if(e==null)return{};var r,n,i=BH(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,i=e.lowerWidth,o=e.width,s=e.height,u=e.children,d=g.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:i,width:o,height:s}),[t,r,n,i,o,s]);return g.createElement(Z_.Provider,{value:d},u)},J_=()=>{var e=g.useContext(Z_),t=eh();return e||(t?fg(t):void 0)},VH=g.createContext(null),qH=()=>{var e=g.useContext(VH),t=ke(U2);return e||t},GH=e=>{var t=e.value,r=e.formatter,n=Ut(e.children)?t:e.children;return typeof r=="function"?r(n):n},x0=e=>e!=null&&typeof e=="function",YH=(e,t)=>{var r=Lr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},QH=(e,t,r,n,i)=>{var o=e.offset,s=e.className,u=i.cx,d=i.cy,f=i.innerRadius,h=i.outerRadius,m=i.startAngle,v=i.endAngle,x=i.clockWise,k=(f+h)/2,S=YH(m,v),E=S>=0?1:-1,P,O;switch(t){case"insideStart":P=m+E*o,O=x;break;case"insideEnd":P=v-E*o,O=!x;break;case"end":P=v+E*o,O=x;break;default:throw new Error("Unsupported position ".concat(t))}O=S<=0?O:!O;var j=Bt(u,d,k,P),_=Bt(u,d,k,P+(O?1:-1)*359),N="M".concat(j.x,",").concat(j.y,` - A`).concat(k,",").concat(k,",0,1,").concat(O?0:1,`, - `).concat(_.x,",").concat(_.y),C=Ut(e.id)?Xs("recharts-radial-line-"):e.id;return g.createElement("text",qn({},n,{dominantBaseline:"central",className:Qe("recharts-radial-bar-label",s)}),g.createElement("defs",null,g.createElement("path",{id:C,d:N})),g.createElement("textPath",{xlinkHref:"#".concat(C)},r))},XH=(e,t,r)=>{var n=e.cx,i=e.cy,o=e.innerRadius,s=e.outerRadius,u=e.startAngle,d=e.endAngle,f=(u+d)/2;if(r==="outside"){var h=Bt(n,i,s+t,f),m=h.x,v=h.y;return{x:m,y:v,textAnchor:m>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"end"};var x=(o+s)/2,k=Bt(n,i,x,f),S=k.x,E=k.y;return{x:S,y:E,textAnchor:"middle",verticalAnchor:"middle"}},Ed=e=>e!=null&&"cx"in e&&be(e.cx),ZH={angle:0,offset:5,zIndex:rr.label,position:"middle",textBreakAll:!1};function JH(e){if(!Ed(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,i=n*2;return{x:t-n,y:r-n,width:i,upperWidth:i,lowerWidth:i,height:i}}function Li(e){var t=Hr(e,ZH),r=t.viewBox,n=t.parentViewBox,i=t.position,o=t.value,s=t.children,u=t.content,d=t.className,f=d===void 0?"":d,h=t.textBreakAll,m=t.labelRef,v=qH(),x=J_(),k=i==="center"?x:v??x,S,E,P;r==null?S=k:Ed(r)?S=r:S=fg(r);var O=JH(S);if(!S||Ut(o)&&Ut(s)&&!g.isValidElement(u)&&typeof u!="function")return null;var j=Fs(Fs({},t),{},{viewBox:S});if(g.isValidElement(u)){j.labelRef;var _=CE(j,zH);return g.cloneElement(u,_)}if(typeof u=="function"){j.content;var N=CE(j,FH);if(E=g.createElement(u,N),g.isValidElement(E))return E}else E=GH(t);var C=Br(t);if(Ed(S)){if(i==="insideStart"||i==="insideEnd"||i==="end")return QH(t,i,E,C,S);P=XH(S,t.offset,t.position)}else{if(!O)return null;var D=LH({viewBox:O,position:i,offset:t.offset,parentViewBox:Ed(n)?void 0:n});P=Fs(Fs({x:D.x,y:D.y,textAnchor:D.horizontalAnchor,verticalAnchor:D.verticalAnchor},D.width!==void 0?{width:D.width}:{}),D.height!==void 0?{height:D.height}:{})}return g.createElement(di,{zIndex:t.zIndex},g.createElement(g0,qn({ref:m,className:Qe("recharts-label",f)},C,P,{textAnchor:G_(C.textAnchor)?C.textAnchor:P.textAnchor,breakAll:h}),E))}Li.displayName="Label";var eK=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?g.createElement(Li,qn({key:"label-implicit"},n)):Cn(e)?g.createElement(Li,qn({key:"label-implicit",value:e},n)):g.isValidElement(e)?e.type===Li?g.cloneElement(e,Fs({key:"label-implicit"},n)):g.createElement(Li,qn({key:"label-implicit",content:e},n)):x0(e)?g.createElement(Li,qn({key:"label-implicit",content:e},n)):e&&typeof e=="object"?g.createElement(Li,qn({},e,{key:"label-implicit"},n)):null};function tK(e){var t=e.label,r=e.labelRef,n=J_();return eK(t,n,r)||null}var rK=["valueAccessor"],nK=["dataKey","clockWise","id","textBreakAll","zIndex"];function mf(){return mf=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(jH(t))return t},ej=g.createContext(void 0),oK=ej.Provider,tj=g.createContext(void 0);tj.Provider;function lK(){return g.useContext(ej)}function sK(){return g.useContext(tj)}function Pd(e){var t=e.valueAccessor,r=t===void 0?aK:t,n=jE(e,rK),i=n.dataKey;n.clockWise;var o=n.id,s=n.textBreakAll,u=n.zIndex,d=jE(n,nK),f=lK(),h=sK(),m=f||h;return!m||!m.length?null:g.createElement(di,{zIndex:u??rr.label},g.createElement(Ur,{className:"recharts-label-list"},m.map((v,x)=>{var k,S=Ut(i)?r(v,x):Nt(v.payload,i),E=Ut(o)?{}:{id:"".concat(o,"-").concat(x)};return g.createElement(Li,mf({key:"label-".concat(x)},Br(v),d,E,{fill:(k=n.fill)!==null&&k!==void 0?k:v.fill,parentViewBox:v.parentViewBox,value:S,textBreakAll:s,viewBox:v.viewBox,index:x,zIndex:0}))})))}Pd.displayName="LabelList";function uK(e){var t=e.label;return t?t===!0?g.createElement(Pd,{key:"labelList-implicit"}):g.isValidElement(t)||x0(t)?g.createElement(Pd,{key:"labelList-implicit",content:t}):typeof t=="object"?g.createElement(Pd,mf({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function ky(){return ky=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,i=e.className,o=Qe("recharts-dot",i);return be(t)&&be(r)&&be(n)?g.createElement("circle",ky({},on(e),rg(e),{className:o,cx:t,cy:r,r:n})):null},cK={radiusAxis:{},angleAxis:{}},nj=Zt({name:"polarAxis",initialState:cK,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),kh=nj.actions;kh.addRadiusAxis;kh.removeRadiusAxis;kh.addAngleAxis;kh.removeAngleAxis;var dK=nj.reducer;function fK(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var ij=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function NE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function IE(e){for(var t=1;t{n||(i.current===null?r(N7(t)):i.current!==t&&r(I7({prev:i.current,next:t})),i.current=t)},[t,r,n]),g.useLayoutEffect(()=>()=>{i.current&&(r(M7(i.current)),i.current=null)},[r]),null}function SK(e){var t=e.legendPayload,r=xt(),n=gr(),i=g.useRef(null);return g.useLayoutEffect(()=>{n||(i.current===null?r(az(t)):i.current!==t&&r(oz({prev:i.current,next:t})),i.current=t)},[r,n,t]),g.useLayoutEffect(()=>()=>{i.current&&(r(lz(i.current)),i.current=null)},[r]),null}function kK(e,t){return OK(e)||AK(e,t)||PK(e,t)||EK()}function EK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PK(e,t){if(e){if(typeof e=="string")return ME(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ME(e,t):void 0}}function ME(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var i of r)n.push({status:"removed",prev:i});for(var o=0;oe[Math.floor(o*r)]);return w0(n,t)}function jK(e,t){var r=t.map((n,i)=>e[i]);return w0(r,t)}function NK(e,t){for(var r=new Map,n=0;n{var x=r(m,v);if(x!=null){var k=n.get(x);if(k!==void 0)return i.add(x),k}}),s=[];for(var u of n){var d=kK(u,2),f=d[0],h=d[1];i.has(f)||s.push(h)}return w0(o,t,s)}function Ey(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===b0?_K(e,t):r===CK?jK(e,t):IK(e,t,r)}function oj(e,t){var r=g.useRef(e),n=g.useRef(t.current),i=g.useRef(!0);r.current!==e&&(r.current=e,n.current=t.current,i.current=!1);var o=g.useCallback(function(s,u){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(u===0){i.current=!0;return}u===1&&(n.current=s),u>0&&i.current&&d&&(t.current=s)},[t]);return{startValue:n.current,syncStepValue:o}}function MK(e,t){return $K(e)||RK(e,t)||DK(e,t)||TK()}function TK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DK(e,t){if(e){if(typeof e=="string")return TE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?TE(e,t):void 0}}function TE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),o(!0)},[e]),u=g.useCallback(()=>{typeof t=="function"&&t(),o(!1)},[t]);return{isAnimating:i,handleAnimationStart:s,handleAnimationEnd:u}}function zK(e){var t,r=e.animationInput,n=e.animationIdPrefix,i=e.items,o=e.previousItemsRef,s=e.isAnimationActive,u=e.animationBegin,d=e.animationDuration,f=e.animationEasing,h=e.onAnimationStart,m=e.onAnimationEnd,v=e.animationInterpolateFn,x=e.animationMatchBy,k=e.shouldUpdatePreviousRef,S=e.children,E=e.layout,P=w2(r,n),O=oj(P,o),j=(t=O.startValue)!==null&&t!==void 0?t:null,_=Ey(j,i,x??b0);return g.createElement(b2,{animationId:P,begin:u,duration:d,isActive:s,easing:f,onAnimationEnd:m,onAnimationStart:h,key:P},N=>{var C=j==null,D=i==null?i:v(_,N,E),F=k?k(N):N>0;return O.syncStepValue(D,N,F),D==null?null:S(D,N,C)})}var ov;function FK(e,t){return HK(e)||WK(e,t)||UK(e,t)||BK()}function BK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UK(e,t){if(e){if(typeof e=="string")return DE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?DE(e,t):void 0}}function DE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=g.useState(()=>Xs("uid-")),t=FK(e,1),r=t[0];return r},lj=(ov=Ef.useId)!==null&&ov!==void 0?ov:KK;function VK(e,t){var r=lj();return t||(e?"".concat(e,"-").concat(r):r)}var qK=g.createContext(void 0),GK=e=>{var t=e.id,r=e.type,n=e.children,i=VK("recharts-".concat(r),t);return g.createElement(qK.Provider,{value:i},n(i))},YK={cartesianItems:[],polarItems:[]},sj=Zt({name:"graphicalItems",initialState:YK,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:tt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).cartesianItems.indexOf(n);o>-1&&(e.cartesianItems[o]=i)},prepare:tt()},removeCartesianGraphicalItem:{reducer(e,t){var r=zr(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:tt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:tt()},removePolarGraphicalItem:{reducer(e,t){var r=zr(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:tt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).polarItems.indexOf(n);o>-1&&(e.polarItems[o]=i)},prepare:tt()}}}),Ml=sj.actions,QK=Ml.addCartesianGraphicalItem,XK=Ml.replaceCartesianGraphicalItem,ZK=Ml.removeCartesianGraphicalItem;Ml.addPolarGraphicalItem;Ml.removePolarGraphicalItem;Ml.replacePolarGraphicalItem;var JK=sj.reducer,eV=e=>{var t=xt(),r=g.useRef(null);return g.useLayoutEffect(()=>{r.current===null?t(QK(e)):r.current!==e&&t(XK({prev:r.current,next:e})),r.current=e},[t,e]),g.useLayoutEffect(()=>()=>{r.current&&(t(ZK(r.current)),r.current=null)},[t]),null},tV=g.memo(eV),rV=["points"];function RE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function lv(e){for(var t=1;t{var P,O,j=lv(lv(lv({r:3},s),v),{},{index:E,cx:(P=S.x)!==null&&P!==void 0?P:void 0,cy:(O=S.y)!==null&&O!==void 0?O:void 0,dataKey:o,value:S.value,payload:S.payload,points:t});return g.createElement(sV,{key:"dot-".concat(E),option:r,dotProps:j,className:i})}),k={};return u&&d!=null&&(k.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),g.createElement(di,{zIndex:h},g.createElement(Ur,vf({className:n},k),x))}function $E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LE(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),EV=H([kV,ai,oi],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),S0=()=>ke(EV),PV=()=>ke(N9);function zE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function sv(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,i=e.activeDot,o=e.dataKey,s=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var u={index:r,dataKey:o,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=sv(sv(sv({},u),Rf(i)),rg(i)),f;return g.isValidElement(i)?f=g.cloneElement(i,d):typeof i=="function"?f=i(d):f=g.createElement(rj,d),g.createElement(Ur,{className:"recharts-active-dot",clipPath:s},f)};function FE(e){var t=e.points,r=e.mainColor,n=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,u=s===void 0?rr.activeDot:s,d=ke(cu),f=PV();if(t==null||f==null)return null;var h=t.find(m=>f.includes(m.payload));return Ut(h)?null:g.createElement(di,{zIndex:u},g.createElement(_V,{point:h,childIndex:Number(d),mainColor:r,dataKey:i,activeDot:n,clipPath:o}))}var jV=e=>{var t=e.chartData,r=xt(),n=gr();return g.useEffect(()=>n?()=>{}:(r(sE(t)),()=>{r(sE(void 0))}),[t,r,n]),null},BE={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},dj=Zt({name:"brush",initialState:BE,reducers:{setBrushSettings(e,t){return t.payload==null?BE:t.payload}}});dj.actions.setBrushSettings;var NV=dj.reducer;function IV(e){return(e%180+180)%180}var MV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=IV(i),s=o*Math.PI/180,u=Math.atan(n/r),d=s>u&&s{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=zr(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=zr(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=zr(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Tl=fj.actions;Tl.addDot;Tl.removeDot;Tl.addArea;Tl.removeArea;Tl.addLine;Tl.removeLine;var DV=fj.reducer;function RV(e,t){return FV(e)||zV(e,t)||LV(e,t)||$V()}function $V(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LV(e,t){if(e){if(typeof e=="string")return UE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?UE(e,t):void 0}}function UE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=g.useState("".concat(Xs("recharts"),"-clip")),n=RV(r,1),i=n[0],o=S0();if(o==null)return null;var s=o.x,u=o.y,d=o.width,f=o.height;return g.createElement(BV.Provider,{value:i},g.createElement("defs",null,g.createElement("clipPath",{id:i},g.createElement("rect",{x:s,y:u,height:f,width:d}))),t)};function hj(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;ne*i)return!1;var o=r();return e*(t-e*o/2-n)>=0&&e*(t+e*o/2-i)<=0}function KV(e,t){return hj(e,t+1)}function VV(e,t,r,n,i){for(var o=(n||[]).slice(),s=t.start,u=t.end,d=0,f=1,h=s,m=function(){var k=n==null?void 0:n[d];if(k===void 0)return{v:hj(n,f)};var S=d,E,P=()=>(E===void 0&&(E=r(k,S)),E),O=k.coordinate,j=d===0||fu(e,O,P,h,u);j||(d=0,h=s,f+=1),j&&(h=O+e*(P()/2+i),d+=f)},v;f<=o.length;)if(v=m(),v)return v.v;return[]}function qV(e,t,r,n,i){var o=(n||[]).slice(),s=o.length;if(s===0)return[];for(var u=t.start,d=t.end,f=1;f<=s;f++){for(var h=(s-1)%f,m=u,v=!0,x=function(){var _=n[S];if(_==null)return 0;var N=S,C,D=()=>(C===void 0&&(C=r(_,N)),C),F=_.coordinate,z=S===h||fu(e,F,D,m,d);if(!z)return v=!1,1;z&&(m=F+e*(D()/2+i))},k,S=h;S(S===void 0&&(S=r(x,v)),S);if(v===s-1){var P=e*(k.coordinate+e*E()/2-d);o[v]=k=Qt(Qt({},k),{},{tickCoord:P>0?k.coordinate-P*e:k.coordinate})}else o[v]=k=Qt(Qt({},k),{},{tickCoord:k.coordinate});if(k.tickCoord!=null){var O=fu(e,k.tickCoord,E,u,d);O&&(d=k.tickCoord-e*(E()/2+i),o[v]=Qt(Qt({},k),{},{isShow:!0}))}},h=s-1;h>=0;h--)f(h);return o}function ZV(e,t,r,n,i,o){var s=(n||[]).slice(),u=s.length,d=t.start,f=t.end;if(o){var h=n[u-1];if(h!=null){var m=r(h,u-1),v=e*(h.coordinate+e*m/2-f);if(s[u-1]=h=Qt(Qt({},h),{},{tickCoord:v>0?h.coordinate-v*e:h.coordinate}),h.tickCoord!=null){var x=fu(e,h.tickCoord,()=>m,d,f);x&&(f=h.tickCoord-e*(m/2+i),s[u-1]=Qt(Qt({},h),{},{isShow:!0}))}}}for(var k=o?u-1:u,S=function(O){var j=s[O];if(j==null)return 1;var _=j,N,C=()=>(N===void 0&&(N=r(j,O)),N);if(O===0){var D=e*(_.coordinate-e*C()/2-d);s[O]=_=Qt(Qt({},_),{},{tickCoord:D<0?_.coordinate-D*e:_.coordinate})}else s[O]=_=Qt(Qt({},_),{},{tickCoord:_.coordinate});if(_.tickCoord!=null){var F=fu(e,_.tickCoord,C,d,f);F&&(d=_.tickCoord+e*(C()/2+i),s[O]=Qt(Qt({},_),{},{isShow:!0}))}},E=0;E{var D=typeof f=="function"?f(N.value,C):N.value;return k==="width"?WV(Ws(D,{fontSize:t,letterSpacing:r}),S,m):Ws(D,{fontSize:t,letterSpacing:r})[k]},P=i[0],O=i[1],j=i.length>=2&&P!=null&&O!=null?Lr(O.coordinate-P.coordinate):1,_=HV(o,j,k);return d==="equidistantPreserveStart"?VV(j,_,E,i,s):d==="equidistantPreserveEnd"?qV(j,_,E,i,s):(d==="preserveStart"||d==="preserveStartEnd"?x=ZV(j,_,E,i,s,d==="preserveStartEnd"):x=XV(j,_,E,i,s),x.filter(N=>N.isShow))}var JV=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,i=n,o=e.tickSize,s=o===void 0?0:o,u=e.tickMargin,d=u===void 0?0:u,f=0;if(t){Array.from(t).forEach(x=>{if(x){var k=x.getBoundingClientRect();k.width>f&&(f=k.width)}});var h=r?r.getBoundingClientRect().width:0,m=s+d,v=f+m+h+(r?i:0);return Math.round(v)}return 0},eq={xAxis:{},yAxis:{}},pj=Zt({name:"renderedTicks",initialState:eq,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId,o=r.ticks;e[n][i]=o},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId;delete e[n][i]}}}),mj=pj.actions,tq=mj.setRenderedTicks,rq=mj.removeRenderedTicks,nq=pj.reducer,iq=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function HE(e,t){return sq(e)||lq(e,t)||oq(e,t)||aq()}function aq(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oq(e,t){if(e){if(typeof e=="string")return KE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?KE(e,t):void 0}}function KE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return kl;var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return i(tq({ticks:o,axisId:n,axisType:r})),()=>{i(rq({axisId:n,axisType:r}))}},[i,t,n,r]),null}var bq=g.forwardRef((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,i=e.tick,o=e.tickLine,s=e.stroke,u=e.tickFormatter,d=e.unit,f=e.padding,h=e.tickTextProps,m=e.orientation,v=e.mirror,x=e.x,k=e.y,S=e.width,E=e.height,P=e.tickSize,O=e.tickMargin,j=e.fontSize,_=e.letterSpacing,N=e.getTicksConfig,C=e.events,D=e.axisType,F=e.axisId,z=k0(ht(ht({},N),{},{ticks:n}),j,_),q=on(N),X=Rf(i),B=G_(q.textAnchor)?q.textAnchor:vq(m,v),ue=yq(m,v),Y={};typeof o=="object"&&(Y=o);var le=ht(ht({},q),{},{fill:"none"},Y),fe=z.map(ie=>ht({entry:ie},mq(ie,x,k,S,E,m,P,v,O))),de=fe.map(ie=>{var Q=ie.entry,R=ie.line;return g.createElement(Ur,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Q.value,"-").concat(Q.coordinate,"-").concat(Q.tickCoord)},o&&g.createElement("line",Qa({},le,R,{className:Qe("recharts-cartesian-axis-tick-line",Za(o,"className"))})))}),K=fe.map((ie,Q)=>{var R,M,J=ie.entry,se=ie.tick,te=ht(ht(ht(ht({verticalAnchor:ue},q),{},{textAnchor:B,stroke:"none",fill:s},se),{},{index:Q,payload:J,visibleTicksCount:z.length,tickFormatter:u,padding:f},h),{},{angle:(R=(M=h==null?void 0:h.angle)!==null&&M!==void 0?M:q.angle)!==null&&R!==void 0?R:0}),ce=ht(ht({},te),X);return g.createElement(Ur,Qa({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(J.value,"-").concat(J.coordinate,"-").concat(J.tickCoord)},E$(C,J,Q)),i&&g.createElement(gq,{option:i,tickProps:ce,value:"".concat(typeof u=="function"?u(J.value,Q):J.value).concat(d||"")}))});return g.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},g.createElement(xq,{ticks:z,axisId:F,axisType:D}),K.length>0&&g.createElement(di,{zIndex:rr.label},g.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:t},K)),de.length>0&&g.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},de))}),wq=g.forwardRef((e,t)=>{var r=e.axisLine,n=e.width,i=e.height,o=e.className,s=e.hide,u=e.ticks,d=e.axisType,f=e.axisId,h=uq(e,iq),m=g.useState(""),v=HE(m,2),x=v[0],k=v[1],S=g.useState(""),E=HE(S,2),P=E[0],O=E[1],j=g.useRef(null);g.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var N;return JV({ticks:j.current,label:(N=e.labelRef)===null||N===void 0?void 0:N.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var _=g.useCallback(N=>{if(N){var C=N.getElementsByClassName("recharts-cartesian-axis-tick-value");j.current=C;var D=C[0];if(D){var F=window.getComputedStyle(D),z=F.fontSize,q=F.letterSpacing;(z!==x||q!==P)&&(k(z),O(q))}}},[x,P]);return s||n!=null&&n<=0||i!=null&&i<=0?null:g.createElement(di,{zIndex:e.zIndex},g.createElement(Ur,{className:Qe("recharts-cartesian-axis",o)},g.createElement(pq,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:on(e)}),g.createElement(bq,{ref:_,axisType:d,events:h,fontSize:x,getTicksConfig:e,height:e.height,letterSpacing:P,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:u,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:f}),g.createElement(KH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},g.createElement(tK,{label:e.label,labelRef:e.labelRef}),e.children)))}),E0=g.forwardRef((e,t)=>{var r=Hr(e,Jn);return g.createElement(wq,Qa({},r,{ref:t}))});E0.displayName="CartesianAxis";var Sq=["x1","y1","x2","y2","key"],kq=["offset"],Eq=["xAxisId","yAxisId"],Pq=["xAxisId","yAxisId"];function qE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Xt(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.ry;return g.createElement("rect",{x:n,y:i,ry:u,width:o,height:s,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function vj(e){var t=e.option,r=e.lineItemProps,n;if(g.isValidElement(t))n=g.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var i,o=r.x1,s=r.y1,u=r.x2,d=r.y2,f=r.key,h=yf(r,Sq),m=(i=on(h))!==null&&i!==void 0?i:{};m.offset;var v=yf(m,kq);n=g.createElement("line",Ca({},v,{x1:o,y1:s,x2:u,y2:d,fill:"none",key:f}))}return n}function Nq(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,o=e.horizontalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=yf(e,Eq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(f),index:f});return g.createElement(vj,{key:"line-".concat(f),option:i,lineItemProps:h})});return g.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Iq(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,o=e.verticalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=yf(e,Pq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(f),index:f});return g.createElement(vj,{option:i,lineItemProps:h,key:"line-".concat(f)})});return g.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Mq(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length||u==null)return null;var h=u.map(v=>Math.round(v+i-i)).sort((v,x)=>v-x);i!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?i+s-v:k-v;if(E<=0)return null;var P=x%t.length;return g.createElement("rect",{key:"react-".concat(x),y:v,x:n,height:E,width:o,stroke:"none",fill:t[P],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},m)}function Tq(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,o=e.x,s=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!r||!n||!n.length)return null;var h=f.map(v=>Math.round(v+o-o)).sort((v,x)=>v-x);o!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?o+u-v:k-v;if(E<=0)return null;var P=x%n.length;return g.createElement("rect",{key:"react-".concat(x),x:v,y:s,width:E,height:d,stroke:"none",fill:n[P],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},m)}var Dq=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},Jn),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.left,o.left+o.width,t)},Rq=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},Jn),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.top,o.top+o.height,t)},$q={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:rr.grid};function yj(e){var t=a2(),r=o2(),n=i2(),i=Xt(Xt({},Hr(e,$q)),{},{x:be(e.x)?e.x:n.left,y:be(e.y)?e.y:n.top,width:be(e.width)?e.width:n.width,height:be(e.height)?e.height:n.height}),o=i.xAxisId,s=i.yAxisId,u=i.x,d=i.y,f=i.width,h=i.height,m=i.syncWithTicks,v=i.horizontalValues,x=i.verticalValues,k=gr(),S=ke(z=>Yk(z,"xAxis",o,k)),E=ke(z=>Yk(z,"yAxis",s,k));if(!_n(f)||!_n(h)||!be(u)||!be(d))return null;var P=i.verticalCoordinatesGenerator||Dq,O=i.horizontalCoordinatesGenerator||Rq,j=i.horizontalPoints,_=i.verticalPoints;if((!j||!j.length)&&typeof O=="function"){var N=v&&v.length,C=O({yAxis:E?Xt(Xt({},E),{},{ticks:N?v:E.ticks}):void 0,width:t??f,height:r??h,offset:n},N?!0:m);Ud(Array.isArray(C),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof C,"]")),Array.isArray(C)&&(j=C)}if((!_||!_.length)&&typeof P=="function"){var D=x&&x.length,F=P({xAxis:S?Xt(Xt({},S),{},{ticks:D?x:S.ticks}):void 0,width:t??f,height:r??h,offset:n},D?!0:m);Ud(Array.isArray(F),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof F,"]")),Array.isArray(F)&&(_=F)}return g.createElement(di,{zIndex:i.zIndex},g.createElement("g",{className:"recharts-cartesian-grid"},g.createElement(jq,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),g.createElement(Mq,Ca({},i,{horizontalPoints:j})),g.createElement(Tq,Ca({},i,{verticalPoints:_})),g.createElement(Nq,Ca({},i,{offset:n,horizontalPoints:j,xAxis:S,yAxis:E})),g.createElement(Iq,Ca({},i,{offset:n,verticalPoints:_,xAxis:S,yAxis:E}))))}yj.displayName="CartesianGrid";var Lq={},gj=Zt({name:"errorBars",initialState:Lq,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]||(e[n]=[]),e[n].push(i)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.prev,o=r.next;e[n]&&(e[n]=e[n].map(s=>s.dataKey===i.dataKey&&s.direction===i.direction?o:s))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]&&(e[n]=e[n].filter(o=>o.dataKey!==i.dataKey||o.direction!==i.direction))}}}),P0=gj.actions;P0.addErrorBar;P0.replaceErrorBar;P0.removeErrorBar;var zq=gj.reducer;function xj(e,t){var r,n,i=ke(f=>si(f,e)),o=ke(f=>ui(f,t)),s=(r=i==null?void 0:i.allowDataOverflow)!==null&&r!==void 0?r:St.allowDataOverflow,u=(n=o==null?void 0:o.allowDataOverflow)!==null&&n!==void 0?n:kt.allowDataOverflow,d=s||u;return{needClip:d,needClipX:s,needClipY:u}}function Fq(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=S0(),o=xj(t,r),s=o.needClipX,u=o.needClipY,d=o.needClip,f=ke(j=>n_(j,t,!1)),h=ke(j=>i_(j,r,!1));if(!d||!i)return null;var m=i.x,v=i.y,x=i.width,k=i.height,S=s&&f?Math.min(f[0],f[1]):m-x/2,E=u&&h?Math.min(h[0],h[1]):v-k/2,P=s&&f?Math.abs(f[1]-f[0]):x*2,O=u&&h?Math.abs(h[1]-h[0]):k*2;return g.createElement("clipPath",{id:"clipPath-".concat(n)},g.createElement("rect",{x:S,y:E,width:P,height:O}))}function Bq(e){var t=Rf(e),r=3,n=2;if(t!=null){var i=t.r,o=t.strokeWidth,s=Number(i),u=Number(o);return(Number.isNaN(s)||s<0)&&(s=r),(Number.isNaN(u)||u<0)&&(u=n),{r:s,strokeWidth:u}}return{r,strokeWidth:n}}function A0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:uj}function O0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:uj}var bj=(e,t,r)=>f_(e,"xAxis",A0(e,t),r),wj=(e,t,r)=>d_(e,"xAxis",A0(e,t),r),Sj=(e,t,r)=>f_(e,"yAxis",O0(e,t),r),kj=(e,t,r)=>d_(e,"yAxis",O0(e,t),r),Uq=H([ot,bj,Sj,wj,kj],(e,t,r,n,i)=>In(e,"xAxis")?Bd(t,n,!1):Bd(r,i,!1)),Wq=(e,t)=>t,Ej=H([NC,Wq],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),Pj=e=>{var t=ot(e),r=In(t,"xAxis");return r?"yAxis":"xAxis"},Hq=(e,t)=>{var r=Pj(e);return r==="yAxis"?O0(e,t):A0(e,t)},Kq=(e,t,r)=>BC(e,Pj(e),Hq(e,t),r),Vq=H([Ej,Kq],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,i=Og(e);if(!(n==null||i==null)){var o=(r=t[n])===null||r===void 0?void 0:r.stackedData,s=o==null?void 0:o.find(u=>u.key===i);if(s!=null)return s.map(u=>[u[0],u[1]])}}}),qq=H([ot,bj,Sj,wj,kj,Vq,y6,Uq,Ej,T6],(e,t,r,n,i,o,s,u,d,f)=>{var h=s.chartData,m=s.dataStartIndex,v=s.dataEndIndex;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||i==null||n.length===0||i.length===0||u==null)){var x=d.data,k;if(x&&x.length>0?k=x:k=h==null?void 0:h.slice(m,v+1),k!=null)return xG({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:m,areaSettings:d,stackedData:o,displayedData:k,chartBaseValue:f,bandSize:u})}}),Gq=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],Yq=["id","baseLine"];function Hs(){return Hs=Object.assign?Object.assign.bind():function(e){for(var t=1;tm.y||0));return be(i)?h=Math.max(i,h):i&&Array.isArray(i)&&i.length&&(h=Math.max(...i.map(m=>m.y||0),h)),be(h)?g.createElement("rect",{x:um.x||0));return be(i)?h=Math.max(i,h):i&&Array.isArray(i)&&i.length&&(h=Math.max(...i.map(m=>m.x||0),h)),be(h)?g.createElement("rect",{x:0,y:ue==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[xl(xl({},r.next),{},{x:Gn(r.prev.x,r.next.x,t),y:Gn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),Oj={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:b0,animationInterpolateFn:lG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:eG,xAxisId:0,yAxisId:0,zIndex:rr.area};function xf(e,t){return e&&e!=="none"?e:t}var sG=e=>{var t=e.dataKey,r=e.name,n=e.stroke,i=e.fill,o=e.legendType,s=e.hide;return[{inactive:s,dataKey:t,type:o,color:xf(n,i),value:ZO(r,t),payload:e}]},uG=g.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,i=e.strokeWidth,o=e.fill,s=e.name,u=e.hide,d=e.unit,f=e.tooltipType,h=e.id,m={dataDefinedOnItem:r,getPosition:kl,settings:{stroke:n,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:ZO(s,t),hide:u,type:f,color:xf(n,o),unit:d,graphicalItemId:h}};return g.createElement(wK,{tooltipEntrySettings:m})});function cG(e){var t=e.clipPathId,r=e.points,n=e.props,i=n.needClip,o=n.dot,s=n.dataKey,u=on(n);return g.createElement(cV,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:u,needClip:i,clipPathId:t})}function dG(e){var t=e.showLabels,r=e.children,n=e.points,i=n.map(o=>{var s,u,d={x:(s=o.x)!==null&&s!==void 0?s:0,y:(u=o.y)!==null&&u!==void 0?u:0,width:0,lowerWidth:0,upperWidth:0,height:0};return xl(xl({},d),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return g.createElement(oK,{value:t?i:void 0},r)}function fG(e){var t=e.points,r=e.baseLine,n=e.needClip,i=e.clipPathId,o=e.props,s=e.animationElapsedTime,u=e.isAnimating,d=e.isEntrance,f=o.layout,h=o.type,m=o.stroke,v=o.connectNulls,x=o.isRange,k=o.shape,S=o.id,E=Aj(o,tG),P=Br(E),O=xl(xl({},P),{},{id:S,points:t,connectNulls:v,type:h,baseLine:r,layout:f,stroke:m,isRange:x,animationElapsedTime:s,isAnimating:u,isEntrance:d});return g.createElement(g.Fragment,null,(t==null?void 0:t.length)>1&&g.createElement(Ur,{clipPath:n?"url(#clipPath-".concat(i,")"):void 0},g.createElement(bK,{option:k,DefaultShape:Oj.shape,shapeProps:O})),g.createElement(cG,{points:t,props:E,clipPathId:i}))}function hG(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Gn(n,e,r)}if(Ut(e)||On(e)){var i=be(t)?t:void 0;return Gn(i,0,r)}return e}function pG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=e.previousPointsRef,o=e.previousBaselineRef,s=n.points,u=n.baseLine,d=n.isAnimationActive,f=n.animationBegin,h=n.animationDuration,m=n.animationEasing,v=n.animationMatchBy,x=n.animationInterpolateFn,k=g.useMemo(()=>({points:s,baseLine:u}),[s,u]),S=oj(k,o),E=hg(),P=LK(n.onAnimationStart,n.onAnimationEnd),O=P.isAnimating,j=P.handleAnimationStart,_=P.handleAnimationEnd,N=S.startValue;if(E==null)return null;var C;return Array.isArray(u)&&Array.isArray(N)?C=Ey(N,u,v):Array.isArray(u)?C=Ey(null,u,v):C=null,g.createElement(zK,{animationInput:k,animationIdPrefix:"recharts-area-",items:s,previousItemsRef:i,isAnimationActive:d,animationBegin:f,animationDuration:h,animationEasing:m,onAnimationStart:j,onAnimationEnd:_,animationInterpolateFn:x,animationMatchBy:v,layout:E},(D,F,z)=>{var q;return F===1?q=u:Array.isArray(u)?q=x(C,F,E):q=z?u:hG(u,N,F),S.syncStepValue(q,F),g.createElement(dG,{showLabels:!O,points:s},n.children,g.createElement(fG,{points:D,baseLine:q,needClip:t,clipPathId:r,props:n,animationElapsedTime:F,isAnimating:O||F<1,isEntrance:z}),g.createElement(uK,{label:n.label}))})}function mG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=g.useRef(null),o=g.useRef();return g.createElement(pG,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:o})}class vG extends g.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,i=t.points,o=t.className,s=t.top,u=t.left,d=t.needClip,f=t.xAxisId,h=t.yAxisId,m=t.width,v=t.height,x=t.id,k=t.baseLine,S=t.zIndex;if(r)return null;var E=Qe("recharts-area",o),P=x,O=Bq(n),j=O.r,_=O.strokeWidth,N=ij(n),C=j*2+_,D=d?"url(#clipPath-".concat(N?"":"dots-").concat(P,")"):void 0;return g.createElement(di,{zIndex:S},g.createElement(Ur,{className:E},d&&g.createElement("defs",null,g.createElement(Fq,{clipPathId:P,xAxisId:f,yAxisId:h}),!N&&g.createElement("clipPath",{id:"clipPath-dots-".concat(P)},g.createElement("rect",{x:u-C/2,y:s-C/2,width:m+C,height:v+C}))),g.createElement(mG,{needClip:d,clipPathId:P,props:this.props})),g.createElement(FE,{points:i,mainColor:xf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}),this.props.isRange&&Array.isArray(k)&&g.createElement(FE,{points:k,mainColor:xf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}))}}function yG(e){var t,r=e.activeDot,n=e.animationBegin,i=e.animationDuration,o=e.animationEasing,s=e.connectNulls,u=e.dot,d=e.fill,f=e.fillOpacity,h=e.hide,m=e.isAnimationActive,v=e.legendType,x=e.stroke,k=e.xAxisId,S=e.yAxisId,E=Aj(e,rG),P=El(),O=D_(),j=xj(k,S),_=j.needClip,N=gr(),C=(t=ke(le=>qq(le,e.id,N)))!==null&&t!==void 0?t:{},D=C.points,F=C.isRange,z=C.baseLine,q=S0();if(P!=="horizontal"&&P!=="vertical"||q==null||O!=="AreaChart"&&O!=="ComposedChart")return null;var X=q.height,B=q.width,ue=q.x,Y=q.y;return!D||!D.length?null:g.createElement(vG,gf({},E,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:o,baseLine:z,connectNulls:s,dot:u,fill:d,fillOpacity:f,height:X,hide:h,layout:P,isAnimationActive:m,isRange:F,legendType:v,needClip:_,points:D,stroke:x,width:B,left:ue,top:Y,xAxisId:k,yAxisId:S}))}var gG=(e,t,r,n,i)=>{var o=r??t;if(be(o))return o;var s=e==="horizontal"?i:n,u=s.scale.domain();if(s.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return o==="dataMin"?f:o==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return o==="dataMin"?u[0]:o==="dataMax"?u[1]:u[0]};function xG(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,i=t.dataKey,o=e.stackedData,s=e.layout,u=e.chartBaseValue,d=e.xAxis,f=e.yAxis,h=e.displayedData,m=e.dataStartIndex,v=e.xAxisTicks,x=e.yAxisTicks,k=e.bandSize,S=o&&o.length,E=gG(s,u,n,d,f),P=s==="horizontal",O=!1,j=h.map((N,C)=>{var D,F,z,q;if(S)q=o[m+C];else{var X=Nt(N,i);Array.isArray(X)?(q=X,O=!0):q=[E,X]}var B=(D=(F=q)===null||F===void 0?void 0:F[1])!==null&&D!==void 0?D:null,ue=B==null||S&&!r&&Nt(N,i)==null;if(P){var Y;return{x:Hw({axis:d,ticks:v,bandSize:k,entry:N,index:C}),y:ue?null:(Y=f.scale.map(B))!==null&&Y!==void 0?Y:null,value:q,payload:N}}return{x:ue?null:(z=d.scale.map(B))!==null&&z!==void 0?z:null,y:Hw({axis:f,ticks:x,bandSize:k,entry:N,index:C}),value:q,payload:N}}),_;return S||O?_=j.map(N=>{var C,D=Array.isArray(N.value)?N.value[0]:null;if(P){var F;return{x:N.x,y:D!=null&&N.y!=null&&(F=f.scale.map(D))!==null&&F!==void 0?F:null,payload:N.payload}}return{x:D!=null&&(C=d.scale.map(D))!==null&&C!==void 0?C:null,y:N.y,payload:N.payload}}):_=P?f.scale.map(E):d.scale.map(E),{points:j,baseLine:_??0,isRange:O}}function bG(e){var t=Hr(e,Oj),r=gr();return g.createElement(GK,{id:t.id,type:"area"},n=>g.createElement(g.Fragment,null,g.createElement(SK,{legendPayload:sG(t)}),g.createElement(uG,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:n}),g.createElement(tV,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:n4(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),g.createElement(yG,gf({},t,{id:n}))))}var Cj=g.memo(bG,ih);Cj.displayName="Area";var wG=["domain","range"],SG=["domain","range"];function QE(e,t){if(e==null)return{};var r,n,i=kG(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(s!=null)return JE(JE({},o),{},{type:s})},[o,s]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(mV(u)):r.current!==u&&t(vV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(yV(r.current)),r.current=null)},[t]),null}var IG=e=>{var t=e.xAxisId,r=e.className,n=ke(e2),i=gr(),o="xAxis",s=ke(v=>c_(v,o,t,i)),u=ke(v=>f7(v,t)),d=ke(v=>g7(v,t)),f=ke(v=>OC(v,t));if(u==null||d==null||f==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=Ay(e,PG);f.id,f.scale;var m=Ay(f,AG);return g.createElement(E0,Py({},h,m,{x:d.x,y:d.y,width:u.width,height:u.height,className:Qe("recharts-".concat(o," ").concat(o),r),viewBox:n,ticks:s,axisType:o,axisId:t}))},MG={allowDataOverflow:St.allowDataOverflow,allowDecimals:St.allowDecimals,allowDuplicatedCategory:St.allowDuplicatedCategory,angle:St.angle,axisLine:Jn.axisLine,height:St.height,hide:!1,includeHidden:St.includeHidden,interval:St.interval,label:!1,minTickGap:St.minTickGap,mirror:St.mirror,orientation:St.orientation,padding:St.padding,reversed:St.reversed,scale:St.scale,tick:St.tick,tickCount:St.tickCount,tickLine:Jn.tickLine,tickSize:Jn.tickSize,type:St.type,niceTicks:St.niceTicks,xAxisId:0},TG=e=>{var t=Hr(e,MG);return g.createElement(g.Fragment,null,g.createElement(NG,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),g.createElement(IG,t))},Oy=g.memo(TG,_j);Oy.displayName="XAxis";var DG=["type"],RG=["dangerouslySetInnerHTML","ticks","scale"],$G=["id","scale"];function Cy(){return Cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return tP(tP({},o),{},{type:s})},[s,o]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(gV(u)):r.current!==u&&t(xV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(bV(r.current)),r.current=null)},[t]),null}function WG(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,o=g.useRef(null),s=g.useRef(null),u=ke(e2),d=gr(),f=xt(),h="yAxis",m=ke(P=>w7(P,t)),v=ke(P=>b7(P,t)),x=ke(P=>c_(P,h,t,d)),k=ke(P=>CC(P,t));if(g.useLayoutEffect(()=>{if(!(n!=="auto"||!m||x0(i)||g.isValidElement(i)||k==null)){var P=o.current;if(P){var O=P.getCalculatedWidth();Math.round(m.width)!==Math.round(O)&&f(wV({id:t,width:O}))}}},[x,m,f,i,t,n,k]),m==null||v==null||k==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var S=_y(e,RG);k.id,k.scale;var E=_y(k,$G);return g.createElement(E0,Cy({},S,E,{ref:o,labelRef:s,x:v.x,y:v.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:m.width,height:m.height,className:Qe("recharts-".concat(h," ").concat(h),r),viewBox:u,ticks:x,axisType:h,axisId:t}))}var HG={allowDataOverflow:kt.allowDataOverflow,allowDecimals:kt.allowDecimals,allowDuplicatedCategory:kt.allowDuplicatedCategory,angle:kt.angle,axisLine:Jn.axisLine,hide:!1,includeHidden:kt.includeHidden,interval:kt.interval,label:!1,minTickGap:kt.minTickGap,mirror:kt.mirror,orientation:kt.orientation,padding:kt.padding,reversed:kt.reversed,scale:kt.scale,tick:kt.tick,tickCount:kt.tickCount,tickLine:Jn.tickLine,tickSize:Jn.tickSize,type:kt.type,niceTicks:kt.niceTicks,width:kt.width,yAxisId:0},KG=e=>{var t=Hr(e,HG);return g.createElement(g.Fragment,null,g.createElement(UG,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),g.createElement(WG,t))},jj=g.memo(KG,_j);jj.displayName="YAxis";var VG=(e,t)=>t,C0=H([VG,ot,U2,Mt,__,ci,W9,Ht],Q9);function qG(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function _0(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(qG(e)){var i=e.currentTarget.getBBox();r=i.width>0?t.width/i.width:1,n=i.height>0?t.height/i.height:1}else{var o=e.currentTarget;r=o.offsetWidth>0?t.width/o.offsetWidth:1,n=o.offsetHeight>0?t.height/o.offsetHeight:1}var s=(u,d)=>({relativeX:Math.round((u-t.left)/r),relativeY:Math.round((d-t.top)/n)});return"touches"in e?Array.from(e.touches).map(u=>s(u.clientX,u.clientY)):s(e.clientX,e.clientY)}var Nj=Cr("mouseClick"),Ij=wu();Ij.startListening({actionCreator:Nj,effect:(e,t)=>{var r=e.payload,n=C0(t.getState(),_0(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(R7({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var jy=Cr("mouseMove"),Mj=wu(),$o=null,ya=null,uv=null;Mj.startListening({actionCreator:jy,effect:(e,t)=>{var r=e.payload,n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||(s==null?void 0:s.includes("mousemove"));$o!==null&&(cancelAnimationFrame($o),$o=null),ya!==null&&(typeof o!="number"||!u)&&(clearTimeout(ya),ya=null),uv=_0(r);var d=()=>{var f=t.getState(),h=Tu(f,f.tooltip.settings.shared);if(!uv){$o=null,ya=null;return}if(h==="axis"){var m=C0(f,uv);(m==null?void 0:m.activeIndex)!=null?t.dispatch(x_({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(g_())}$o=null,ya=null};if(!u){d();return}o==="raf"?$o=requestAnimationFrame(d):typeof o=="number"&&ya===null&&(ya=setTimeout(d,o))}});function GG(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var rP={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},Tj=Zt({name:"rootProps",initialState:rP,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:rP.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),YG=Tj.reducer,QG=Tj.actions.updateOptions,XG=null,ZG={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},Dj=Zt({name:"polarOptions",initialState:XG,reducers:ZG});Dj.actions.updatePolarOptions;var JG=Dj.reducer,Rj=Cr("keyDown"),$j=Cr("focus"),Lj=Cr("blur"),Eh=wu(),Lo=null,ga=null,pd=null;Eh.startListening({actionCreator:Rj,effect:(e,t)=>{pd=e.payload,Lo!==null&&(cancelAnimationFrame(Lo),Lo=null);var r=t.getState(),n=r.eventSettings,i=n.throttleDelay,o=n.throttledEvents,s=o==="all"||o.includes("keydown");ga!==null&&(typeof i!="number"||!s)&&(clearTimeout(ga),ga=null);var u=()=>{try{var d=t.getState(),f=d.rootProps.accessibilityLayer!==!1;if(!f)return;var h=d.tooltip.keyboardInteraction,m=pd;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=Us(h,Ya(d),yl(d),gl(d)),x=v==null?-1:Number(v),k=!Number.isFinite(x)||x<0,S=ci(d),E=Ya(d),P=Tu(d,d.tooltip.settings.shared);if(m==="Enter"){if(k)return;var O=hf(d,P,"hover",String(h.index));t.dispatch(ff({active:!h.active,activeIndex:h.index,activeCoordinate:O}));return}var j=A7(d),_=j==="left-to-right"?1:-1,N=m==="ArrowRight"?1:-1,C;if(k){var D=yl(d),F=gl(d),z=N*_,q=le=>({active:!1,index:String(le),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(C=-1,z>0){for(var X=0;X=0;B--)if(Us(q(B),E,D,F)!=null){C=B;break}if(C<0)return}else{C=x+N*_;var ue=(S==null?void 0:S.length)||E.length;if(ue===0||C>=ue||C<0)return}var Y=hf(d,P,"hover",String(C));t.dispatch(ff({active:!0,activeIndex:C.toString(),activeCoordinate:Y}))}finally{Lo=null,ga=null}};if(!s){u();return}i==="raf"?Lo=requestAnimationFrame(u):typeof i=="number"&&ga===null&&(u(),pd=null,ga=setTimeout(()=>{pd?u():(ga=null,Lo=null)},i))}});Eh.startListening({actionCreator:$j,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;if(!i.active&&i.index==null){var o="0",s=Tu(r,r.tooltip.settings.shared),u=hf(r,s,"hover",String(o));t.dispatch(ff({active:!0,activeIndex:o,activeCoordinate:u}))}}}});Eh.startListening({actionCreator:Lj,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(ff({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function zj(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var i=Reflect.get(r,n);return typeof i=="function"?i.bind(r):i}})}var Rr=Cr("externalEvent"),Fj=wu(),md=new Map,Ds=new Map,cv=new Map;Fj.startListening({actionCreator:Rr,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var o=i.type,s=zj(i);cv.set(o,{handler:n,reactEvent:s});var u=md.get(o);u!==void 0&&(cancelAnimationFrame(u),md.delete(o));var d=t.getState(),f=d.eventSettings,h=f.throttleDelay,m=f.throttledEvents,v=m,x=v==="all"||(v==null?void 0:v.includes(o)),k=Ds.get(o);k!==void 0&&(typeof h!="number"||!x)&&(clearTimeout(k),Ds.delete(o));var S=()=>{var O=cv.get(o);try{if(!O)return;var j=O.handler,_=O.reactEvent,N=t.getState(),C={activeCoordinate:C9(N),activeDataKey:P9(N),activeIndex:cu(N),activeLabel:I_(N),activeTooltipIndex:cu(N),isTooltipActive:_9(N)};j&&j(C,_)}finally{md.delete(o),Ds.delete(o),cv.delete(o)}};if(!x){S();return}if(h==="raf"){var E=requestAnimationFrame(S);md.set(o,E)}else if(typeof h=="number"){if(!Ds.has(o)){S();var P=setTimeout(S,h);Ds.set(o,P)}}else S()}}});var eY=H([Il],e=>e.tooltipItemPayloads),tY=H([eY,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(o=>o.settings.graphicalItemId===r);if(n!=null){var i=n.getPosition;if(i!=null)return i(t)}}}),Bj=Cr("touchMove"),Uj=wu(),xa=null,Ti=null,nP=null,Rs=null;Uj.startListening({actionCreator:Bj,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Rs=zj(r);var n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||s.includes("touchmove");xa!==null&&(cancelAnimationFrame(xa),xa=null),Ti!==null&&(typeof o!="number"||!u)&&(clearTimeout(Ti),Ti=null),nP=Array.from(r.touches).map(f=>_0({clientX:f.clientX,clientY:f.clientY,currentTarget:r.currentTarget}));var d=()=>{if(Rs!=null){var f=t.getState(),h=Tu(f,f.tooltip.settings.shared);if(h==="axis"){var m,v=(m=nP)===null||m===void 0?void 0:m[0];if(v==null){xa=null,Ti=null;return}var x=C0(f,v);(x==null?void 0:x.activeIndex)!=null&&t.dispatch(x_({activeIndex:x.activeIndex,activeDataKey:void 0,activeCoordinate:x.activeCoordinate}))}else if(h==="item"){var k,S=Rs.touches[0];if(document.elementFromPoint==null||S==null)return;var E=document.elementFromPoint(S.clientX,S.clientY);if(!E||!E.getAttribute)return;var P=E.getAttribute(c4),O=(k=E.getAttribute(d4))!==null&&k!==void 0?k:void 0,j=to(f).find(C=>C.id===O);if(P==null||j==null||O==null)return;var _=j.dataKey,N=tY(f,P,O);t.dispatch(D7({activeDataKey:_,activeIndex:P,activeCoordinate:N,activeGraphicalItemId:O}))}xa=null,Ti=null}};if(!u){d();return}o==="raf"?xa=requestAnimationFrame(d):typeof o=="number"&&Ti===null&&(d(),Rs=null,Ti=setTimeout(()=>{Rs?d():(Ti=null,xa=null)},o))}}});var Wj={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},Hj=Zt({name:"eventSettings",initialState:Wj,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),rY=Hj.actions.setEventSettings,nY=Hj.reducer,iY=wO({brush:NV,cartesianAxis:SV,chartData:OW,errorBars:zq,eventSettings:nY,graphicalItems:JK,layout:GL,legend:sz,options:SW,polarAxis:dK,polarOptions:JG,referenceElements:DV,renderedTicks:nq,rootProps:YG,tooltip:$7,zIndex:uW}),aY=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return xL({reducer:iY,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([Ij.middleware,Mj.middleware,Eh.middleware,Fj.middleware,Uj.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat(RO({type:"raf"}))},devTools:{serialize:{replacer:GG},name:"recharts-".concat(r)}})};function oY(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,i=gr(),o=g.useRef(null);if(i)return r;o.current==null&&(o.current=aY(t,n));var s=ig;return g.createElement(Ez,{context:s,store:o.current},r)}function lY(e){var t=e.layout,r=e.margin,n=xt(),i=gr();return g.useEffect(()=>{i||(n(KL(t)),n(HL(r)))},[n,i,t,r]),null}var sY=g.memo(lY,ih);function uY(e){var t=xt();return g.useEffect(()=>{t(QG(e))},[t,e]),null}var cY=e=>{var t=xt();return g.useEffect(()=>{t(rY(e))},[t,e]),null},dY=g.memo(cY,ih);function iP(e){var t=e.zIndex,r=e.isPanorama,n=g.useRef(null),i=xt();return g.useLayoutEffect(()=>(n.current&&i(lW({zIndex:t,element:n.current,isPanorama:r})),()=>{i(sW({zIndex:t,isPanorama:r}))}),[i,t,r]),g.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function aP(e){var t=e.children,r=e.isPanorama,n=ke(Z9);if(!n||n.length===0)return t;var i=n.filter(s=>s<0),o=n.filter(s=>s>0);return g.createElement(g.Fragment,null,i.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})),t,o.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})))}var fY=["children"];function hY(e,t){if(e==null)return{};var r,n,i=pY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=a2(),n=o2(),i=v2();if(!_n(r)||!_n(n))return null;var o=e.children,s=e.otherAttributes,u=e.title,d=e.desc,f,h;return s!=null&&(typeof s.tabIndex=="number"?f=s.tabIndex:f=i?0:void 0,typeof s.role=="string"?h=s.role:h=i?"application":void 0),g.createElement(zA,bf({},s,{title:u,desc:d,role:h,tabIndex:f,width:r,height:n,style:mY,ref:t}),o)}),yY=e=>{var t=e.children,r=ke(Jf);if(!r)return null;var n=r.width,i=r.height,o=r.y,s=r.x;return g.createElement(zA,{width:n,height:i,x:s,y:o},t)},oP=g.forwardRef((e,t)=>{var r=e.children,n=hY(e,fY),i=gr();return i?g.createElement(yY,null,g.createElement(aP,{isPanorama:!0},r)):g.createElement(vY,bf({ref:t},n),g.createElement(aP,{isPanorama:!1},r))});function gY(e,t){return SY(e)||wY(e,t)||bY(e,t)||xY()}function xY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bY(e,t){if(e){if(typeof e=="string")return lP(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lP(e,t):void 0}}function lP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var s=n.getBoundingClientRect(),u=s.width/n.offsetWidth;Fe(u)&&u!==o&&e(qL(u))}},[n,e,o]),i}function sP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function EY(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(RW(),null);function Sf(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var MY=g.forwardRef((e,t)=>{var r,n,i=g.useRef(null),o=g.useState({containerWidth:Sf((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Sf((n=e.style)===null||n===void 0?void 0:n.height)}),s=wf(o,2),u=s[0],d=s[1],f=g.useCallback((m,v)=>{d(x=>{var k=Math.round(m),S=Math.round(v);return x.containerWidth===k&&x.containerHeight===S?x:{containerWidth:k,containerHeight:S}})},[]),h=g.useCallback(m=>{if(typeof t=="function"&&t(m),i.current!=null&&(i.current.disconnect(),i.current=null),m!=null&&typeof ResizeObserver<"u"){var v=m.getBoundingClientRect(),x=v.width,k=v.height;f(x,k);var S=P=>{var O=P[0];if(O!=null){var j=O.contentRect,_=j.width,N=j.height;f(_,N)}},E=new ResizeObserver(S);E.observe(m),i.current=E}},[t,f]);return g.useEffect(()=>()=>{var m=i.current;m!=null&&m.disconnect()},[f]),g.createElement(g.Fragment,null,g.createElement(ku,{width:u.containerWidth,height:u.containerHeight}),g.createElement("div",Zi({ref:h},e)))}),TY=g.forwardRef((e,t)=>{var r=e.width,n=e.height,i=g.useState({containerWidth:Sf(r),containerHeight:Sf(n)}),o=wf(i,2),s=o[0],u=o[1],d=g.useCallback((h,m)=>{u(v=>{var x=Math.round(h),k=Math.round(m);return v.containerWidth===x&&v.containerHeight===k?v:{containerWidth:x,containerHeight:k}})},[]),f=g.useCallback(h=>{if(typeof t=="function"&&t(h),h!=null){var m=h.getBoundingClientRect(),v=m.width,x=m.height;d(v,x)}},[t,d]);return g.createElement(g.Fragment,null,g.createElement(ku,{width:s.containerWidth,height:s.containerHeight}),g.createElement("div",Zi({ref:f},e)))}),DY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return g.createElement(g.Fragment,null,g.createElement(ku,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))}),RY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?g.createElement(TY,Zi({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?g.createElement(DY,Zi({},e,{width:r,height:n,ref:t})):g.createElement(g.Fragment,null,g.createElement(ku,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))});function $Y(e){return e?MY:RY}var LY=g.forwardRef((e,t)=>{var r=e.children,n=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,u=e.onDoubleClick,d=e.onMouseDown,f=e.onMouseEnter,h=e.onMouseLeave,m=e.onMouseMove,v=e.onMouseUp,x=e.onTouchEnd,k=e.onTouchMove,S=e.onTouchStart,E=e.style,P=e.width,O=e.responsive,j=e.dispatchTouchEvents,_=j===void 0?!0:j,N=g.useRef(null),C=xt(),D=g.useState(null),F=wf(D,2),z=F[0],q=F[1],X=g.useState(null),B=wf(X,2),ue=B[0],Y=B[1],le=kY(),fe=dg(),de=(fe==null?void 0:fe.width)>0?fe.width:P,K=(fe==null?void 0:fe.height)>0?fe.height:i,ie=g.useCallback(Ee=>{le(Ee),typeof t=="function"&&t(Ee),q(Ee),Y(Ee),Ee!=null&&(N.current=Ee)},[le,t,q,Y]),Q=g.useCallback(Ee=>{C(Nj(Ee)),C(Rr({handler:o,reactEvent:Ee}))},[C,o]),R=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:f,reactEvent:Ee}))},[C,f]),M=g.useCallback(Ee=>{C(g_()),C(Rr({handler:h,reactEvent:Ee}))},[C,h]),J=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:m,reactEvent:Ee}))},[C,m]),se=g.useCallback(()=>{C($j())},[C]),te=g.useCallback(()=>{C(Lj())},[C]),ce=g.useCallback(Ee=>{C(Rj(Ee.key))},[C]),ye=g.useCallback(Ee=>{C(Rr({handler:s,reactEvent:Ee}))},[C,s]),_e=g.useCallback(Ee=>{C(Rr({handler:u,reactEvent:Ee}))},[C,u]),Z=g.useCallback(Ee=>{C(Rr({handler:d,reactEvent:Ee}))},[C,d]),we=g.useCallback(Ee=>{C(Rr({handler:v,reactEvent:Ee}))},[C,v]),Pe=g.useCallback(Ee=>{C(Rr({handler:S,reactEvent:Ee}))},[C,S]),ne=g.useCallback(Ee=>{_&&C(Bj(Ee)),C(Rr({handler:k,reactEvent:Ee}))},[C,_,k]),lt=g.useCallback(Ee=>{C(Rr({handler:x,reactEvent:Ee}))},[C,x]),Re=$Y(O);return g.createElement(F_.Provider,{value:z},g.createElement(Z3.Provider,{value:ue},g.createElement(Re,{width:de??(E==null?void 0:E.width),height:K??(E==null?void 0:E.height),className:Qe("recharts-wrapper",n),style:EY({position:"relative",cursor:"default",width:de,height:K},E),onClick:Q,onContextMenu:ye,onDoubleClick:_e,onFocus:se,onBlur:te,onKeyDown:ce,onMouseDown:Z,onMouseEnter:R,onMouseLeave:M,onMouseMove:J,onMouseUp:we,onTouchEnd:lt,onTouchMove:ne,onTouchStart:Pe,ref:ie},g.createElement(IY,null),r)))}),zY=["width","height","responsive","children","className","style","compact","title","desc"];function FY(e,t){if(e==null)return{};var r,n,i=BY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,i=e.responsive,o=e.children,s=e.className,u=e.style,d=e.compact,f=e.title,h=e.desc,m=FY(e,zY),v=on(m);return d?g.createElement(g.Fragment,null,g.createElement(ku,{width:r,height:n}),g.createElement(oP,{otherAttributes:v,title:f,desc:h},o)):g.createElement(LY,{className:s,style:u,width:r,height:n,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},g.createElement(oP,{otherAttributes:v,title:f,desc:h,ref:t},g.createElement(UV,null,o)))});function Ny(){return Ny=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.createElement(YY,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:QY,tooltipPayloadSearcher:bW,categoricalChartProps:e,ref:t}));const ZY="rgba(130,130,150,0.14)",dv="rgba(130,130,150,0.85)";function JY(e){if(e<=0)return 10;const t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=5?5:10)*t}function Kj(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function eQ({active:e,payload:t,unit:r,label:n}){return!e||!(t!=null&&t.length)?null:w.jsxs("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:[Number.isFinite(n)&&w.jsx("div",{className:"mb-1 border-b border-border/40 pb-1 font-mono text-[10px] text-muted-foreground/80",children:new Date(n).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),w.jsx("div",{className:"space-y-1",children:t.map(i=>w.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),w.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:i.name}),w.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:Kj(i.value,r)})]},i.dataKey))})]})}function Vj({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176,showTime:o=!1}){var h,m;const s=e.reduce((v,x)=>t.reduce((k,S)=>Math.max(k,Number(x[S.key])||0),v),0),u=n==="percent"?Math.min(100,Math.max(25,Math.ceil(s*1.2/25)*25)):Math.max(JY(s*1.15),10),d=e.length>1?Number((h=e[e.length-1])==null?void 0:h.t)-Number((m=e[0])==null?void 0:m.t):0,f=v=>new Date(v).toLocaleTimeString("de-DE",d<=10*6e4?{hour:"2-digit",minute:"2-digit",second:"2-digit"}:{hour:"2-digit",minute:"2-digit"});return w.jsx("div",{style:{height:i},className:"w-full",children:w.jsx(H4,{width:"100%",height:"100%",children:w.jsxs(XY,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[w.jsx("defs",{children:t.map(v=>w.jsxs("linearGradient",{id:`grad-${v.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[w.jsx("stop",{offset:"0%",stopColor:v.color,stopOpacity:.22}),w.jsx("stop",{offset:"100%",stopColor:v.color,stopOpacity:0})]},v.key))}),w.jsx(yj,{vertical:!1,stroke:ZY}),o?w.jsx(Oy,{dataKey:"t",type:"number",domain:["dataMin","dataMax"],tickFormatter:f,tickCount:5,minTickGap:40,interval:"preserveStartEnd",axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv},height:18}):w.jsx(Oy,{dataKey:"t",hide:!0}),w.jsx(jj,{domain:[0,u],ticks:[0,u/2,u],tickFormatter:v=>Kj(v,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv}}),w.jsx(YW,{content:w.jsx(eQ,{unit:r}),cursor:{stroke:dv,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(v=>w.jsx(Cj,{type:"monotone",dataKey:v.key,name:v.label,stroke:v.color,strokeWidth:2,fill:`url(#grad-${v.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},v.key))]})})})}const qj={"1h":60,"24h":1440},dP={live:"Live","1h":"1 h","24h":"24 h"};function Gj({value:e,onChange:t}){return w.jsx("div",{className:"flex rounded-lg border border-border/40 bg-background/30 p-0.5",children:Object.keys(dP).map(r=>w.jsx("button",{onClick:()=>t(r),className:De("rounded-md px-2 py-0.5 text-[9px] font-bold uppercase tracking-wide transition-all cursor-pointer",e===r?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:dP[r]},r))})}const tQ=[{key:"cpu",label:"CPU",color:"#2dd4bf"},{key:"ram",label:"RAM",color:"#38bdf8"},{key:"gpu",label:"GPU",color:"#a78bfa"},{key:"disk",label:"Disk",color:"#fbbf24"}];function rQ(){var h,m,v,x;const{sys:e,hist:t}=B3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var k;return r==="live"?t:(((k=i.data)==null?void 0:k.points)??[]).map(S=>({t:S.t*1e3,cpu:S.cpu,ram:S.ram,gpu:S.gpu,disk:S.disk}))},[r,t,i.data]),s=!!(e!=null&&e.gpu&&e.gpu.busy_percent!=null&&e.gpu.gtt_used!=null&&e.gpu.gtt_total!=null),u=tQ.filter(k=>k.key!=="gpu"||s),d={cpu:(h=e==null?void 0:e.cpu)==null?void 0:h.percent,ram:(m=e==null?void 0:e.ram)==null?void 0:m.percent,gpu:s?e.gpu.busy_percent:null,disk:(v=e==null?void 0:e.disk)==null?void 0:v.percent},f={cpu:(x=e==null?void 0:e.cpu)!=null&&x.cores?`${e.cpu.cores} Cores`:"",ram:e?`${No(e.ram.used)}/${No(e.ram.total)} GB`:"",gpu:s?`${No(e.gpu.gtt_used)}/${No(e.gpu.gtt_total)} GB`:"",disk:e!=null&&e.disk?`${No(e.disk.used)}/${No(e.disk.total)} GB`:""};return w.jsxs("div",{className:"flex flex-col justify-between mc-card p-5",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"System-Status"}),r==="live"&&w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]}),w.jsx("div",{className:"ml-auto",children:w.jsx(Gj,{value:r,onChange:n})})]}),e?w.jsxs(w.Fragment,{children:[w.jsx("div",{className:"mb-2 grid grid-cols-2 gap-x-4 gap-y-1.5",children:u.map(k=>w.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:k.color}}),w.jsx("span",{className:"shrink-0 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:k.label}),w.jsxs("span",{className:"shrink-0 font-mono text-xs font-bold tabular-nums text-foreground",children:[Math.round(d[k.key]??0),"%"]}),f[k.key]&&w.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/60",children:f[k.key]})]},k.key))}),r!=="live"&&o.length===0&&w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}),(r==="live"||o.length>0)&&w.jsx(Vj,{data:o,series:u,unit:"%",yMode:"percent",height:176,showTime:!0})]}):w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:"Lade Systemdaten…"})]}),(e==null?void 0:e.temp)&&(e.temp.cpu||e.temp.gpu)&&w.jsxs("div",{className:"mt-3 flex gap-4 border-t border-border/30 pt-3 font-mono text-xs text-muted-foreground/80",children:[e.temp.cpu!=null&&w.jsxs("span",{children:["CPU Temp: ",e.temp.cpu," °C"]}),e.temp.gpu!=null&&w.jsxs("span",{children:["GPU Temp: ",e.temp.gpu," °C"]})]})]})}const bl=[{key:"stt_ms",label:"STT",color:"#f59e0b"},{key:"vision_ms",label:"Sehen",color:"#a78bfa"},{key:"hirn_ms",label:"Hirn",color:"#2dd4bf"},{key:"gen_ms",label:"Antwort",color:"#60a5fa"}],_a=e=>e==null?"–":`${(e/1e3).toLocaleString("de-DE",{minimumFractionDigits:1,maximumFractionDigits:1})} s`;function nQ(e){const t=Math.max(0,Date.now()/1e3-e);return t<60?`vor ${Math.round(t)} s`:t<3600?`vor ${Math.round(t/60)} min`:`vor ${Math.round(t/3600)} h`}function Iy(e){return bl.reduce((t,r)=>t+(e[r.key]??0),0)}function iQ(e){let t=null;for(const r of bl){const n=e[r.key];n!=null&&(t==null||n>t.ms)&&(t={label:r.label,color:r.color,ms:n})}return t}function aQ({t:e,scale:t}){const r=bl.map(n=>`${n.label} ${_a(e[n.key])}`).join(" · ")+(e.mem0_ms!=null?` (davon Mem0 ${_a(e.mem0_ms)})`:"");return w.jsxs("div",{className:"flex items-center gap-2.5",children:[w.jsx("span",{className:"w-14 shrink-0 text-right font-mono text-[10px] text-muted-foreground/60",children:nQ(e.ts)}),w.jsxs("div",{className:"relative h-4 flex-1 overflow-hidden rounded-sm bg-muted/25",title:r,children:[w.jsx("div",{className:"absolute inset-0 flex",children:bl.map(n=>{const i=e[n.key];return!i||i<=0?null:w.jsx("div",{style:{width:`${i/t*100}%`,background:n.color},className:"h-full first:rounded-l-sm"},n.key)})}),e.error&&w.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-rose-500/15 text-[10px] font-semibold text-rose-300",children:"Fehler"})]}),w.jsx("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] font-semibold tabular-nums text-foreground",children:e.error?"–":_a(Iy(e))})]})}function oQ(){const{data:e}=b3(12),t=e??[],r=Math.max(1,...t.map(o=>Iy(o))),n=t[0],i=n?iQ(n):null;return w.jsxs("div",{className:"mc-card p-5",children:[w.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(aT,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Latenz je Turn"}),w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),n?w.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[w.jsx("span",{className:`font-space text-3xl font-bold tracking-tight tabular-nums ${n.error?"text-rose-400":"text-foreground"}`,children:n.error?"Fehler":_a(Iy(n))}),w.jsxs("span",{className:"text-xs text-muted-foreground",children:["letzter Turn",!n.error&&i&&w.jsxs(w.Fragment,{children:[" · Täter: ",w.jsx("span",{style:{color:i.color},className:"font-semibold",children:i.label})," ",_a(i.ms)]})]})]}):w.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:"Noch kein Voice-Turn aufgezeichnet."}),n&&!n.error&&w.jsxs("div",{className:"mt-0.5 font-mono text-[11px] text-muted-foreground/70",children:[bl.filter(o=>n[o.key]!=null).map(o=>`${o.label} ${_a(n[o.key])}`).join(" · "),n.mem0_ms!=null&&w.jsxs("span",{className:"text-muted-foreground/50",children:[" · davon Mem0 ",_a(n.mem0_ms)]})]})]}),w.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1 pt-1",children:bl.map(o=>w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:o.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:o.label})]},o.key))})]}),t.length>0?w.jsx("div",{className:"space-y-1.5",children:t.map(o=>w.jsx(aQ,{t:o,scale:r},o.id))}):w.jsx("div",{className:"flex h-[120px] items-center justify-center px-6 text-center text-xs text-muted-foreground",children:"Sprich einmal mit Lucy — dann erscheint hier der Zeit-Wasserfall pro Turn, damit man den einen Hänger sofort sieht."}),w.jsx("div",{className:"mt-3 border-t border-border/30 pt-2 text-[10px] leading-relaxed text-muted-foreground/70",children:'„Hirn" = Zeit bis zum ersten Wort (Agent + Mem0-Suche + Modell); Tool-Runden stecken in „Antwort". Reine Telegram-Turns laufen an MC2 vorbei und erscheinen hier nicht.'})]})}const fP=[{key:"prompt",label:"Prompt",color:"#f59e0b"},{key:"completion",label:"Antwort",color:"#2dd4bf"}];function lQ(){const{data:e}=MA(),t=R3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var h;if(r==="live")return t;const d=((h=i.data)==null?void 0:h.points)??[],f=[];for(let m=1;mw.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:d.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:d.label}),w.jsx("span",{className:"font-mono text-xs font-bold tabular-nums text-foreground",children:Math.round((s==null?void 0:s[d.key])??0)})]},d.key))})]})]}),r!=="live"&&o.length===0?w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}):e?w.jsx(Vj,{data:o,series:fP,unit:" tok/s",yMode:"auto",height:150,showTime:!0}):w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:"Lade Durchsatz…"}),w.jsx("div",{className:"mt-2 border-t border-border/30 pt-2 text-[10px] text-muted-foreground/70",children:"Durchsatz aus dem Gateway abgeleitet (Prefill vs. Generierung). Flach bei Leerlauf."})]})}const kf=e=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:e}}));function sQ({onNavigate:e}){var Y,le,fe,de;const{data:t}=IA(),{data:r}=Qy(),{data:n}=TA(),{data:i}=S3(),{data:o}=k3(),{data:s}=y3(),{data:u}=g3(),d=L3(),{showAlert:f,dialogElement:h}=_A(),m=Pf(),[v,x]=g.useState({});async function k(K,ie){x(Q=>({...Q,[K]:!0}));try{if(ie.kind==="loadModel")await Te(`/api/models/${encodeURIComponent(ie.model)}/load`,{method:"POST"});else{const Q=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:ie.service})});Q.ok||f("Reparatur nicht ganz geklappt",(Q.err||"Unbekannter Fehler")+(ie.needsSudo?` - -Tipp: Dafür wird evtl. das Box-Passwort gebraucht (oben rechts hinterlegen).`:""))}m.invalidateQueries({queryKey:ze.health}),m.invalidateQueries({queryKey:ze.services}),m.invalidateQueries({queryKey:ze.models})}catch(Q){f("Reparatur fehlgeschlagen",String((Q==null?void 0:Q.message)||Q))}finally{x(Q=>({...Q,[K]:!1}))}}const S=((Y=t==null?void 0:t.running)==null?void 0:Y.length)??0,E=(r==null?void 0:r.services.filter(K=>K.ok).length)??0,P=(r==null?void 0:r.services.length)??0,O=P-E,j=(n?(n.os>0?1:0)+(n.engine>0?1:0)+(n.swap>0?1:0)+(n.models>0?1:0):0)+(((le=n==null?void 0:n.components)==null?void 0:le.filter(K=>K.update===!0).length)??0),_=s!=null&&s.available?s.open_count:0,N=u!=null&&u.available?u.items.filter(K=>K.status==="blocked").length:0,C=o?[o.gateway,o.memory,o.desktop_gateway]:[],D=C.filter(K=>K==null?void 0:K.ok).length,F=o?o.gateway.ok?o.memory.ok?o.desktop_gateway.ok?"":"Desktop-Gateway":"Gedächtnis-Leitung":"Modell-Leitung":"",z=(fe=t==null?void 0:t.models)==null?void 0:fe.find(K=>K.role==="hermes"),q=z!=null&&z.name?(de=z.name.split("/").pop())==null?void 0:de.replace(/\.gguf$/i,""):"",X=r==null?void 0:r.services.filter(K=>!K.ok).map(K=>K.name).join(", "),B=n?[n.os>0&&"OS",n.engine>0&&"Engine",n.swap>0&&"Swap",n.models>0&&"Modelle"].filter(Boolean):[],ue=B.length>0?B.join(" + "):"";return w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{children:[w.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Cockpit"}),w.jsx("p",{className:"text-sm text-muted-foreground",children:"Deine Box auf einen Blick — Details hinter jeder Kachel."})]}),w.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 items-start",children:[w.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[w.jsx(uQ,{verdict:d.verdict,memory:d.memory,warns:d.warns,problems:d.problems}),w.jsxs("section",{children:[w.jsx(fv,{children:"Leistung"}),w.jsx("div",{className:"grid gap-4 md:grid-cols-1",children:w.jsx(rQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(oQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(lQ,{})})]}),w.jsxs("section",{children:[w.jsx(fv,{children:"Bereiche"}),w.jsxs("div",{className:"grid gap-4 grid-cols-2 md:grid-cols-3",children:[w.jsx(As,{icon:Fy,title:"Auftragsbuch",value:s!=null&&s.available?_:"—",unit:_===1?"Vorschlag":"Vorschläge",tone:s?N>0||_>0?"warn":"ok":"loading",hint:N>0?`${N} Karte${N===1?"":"n"} wartet auf deine Antwort`:_>0?`${_} offene Patches`:"Keine ausstehenden Vorschläge",onClick:()=>e("auftraege")}),w.jsx(As,{icon:LP,title:"Modelle",value:S,unit:"warm",tone:S>0?"ok":"muted",hint:q?`Hirn: ${q}`:"Kein Hermes-Modell geladen",onClick:()=>e("models")}),w.jsx(As,{icon:Of,title:"Dienste",value:r?`${E}/${P}`:"…",unit:"laufen",tone:r?O>0?"warn":"ok":"loading",hint:X?`Ausfall: ${X}`:"Alle Dienste online",onClick:()=>kf("maintenance")}),w.jsx(As,{icon:Wy,title:"Updates",value:n?j>0?j:"0":"…",unit:j>0?"bereit":"aktuell",tone:n?j>0?"warn":"ok":"loading",hint:j>0?`Verfügbar: ${ue}`:"Alles auf dem neuesten Stand",onClick:()=>kf("maintenance")}),w.jsx(As,{icon:Uy,title:"Verbinden",value:o?`${D}/${C.length}`:"…",unit:"Leitungen",tone:o?D===C.length?"ok":"warn":"loading",hint:F?`Gestört: ${F}`:"Hermes Desktop & IDEs bereit",onClick:()=>e("connect")})]})]})]}),w.jsxs("div",{className:"space-y-6",children:[w.jsx(cQ,{problems:d.problems,pendingCount:j,openAuftraege:_,blockedIdeen:N,busy:v,onRepair:k,onNavigate:e}),w.jsxs("section",{children:[w.jsx(fv,{children:"Werkzeuge & Diagnose"}),w.jsx(dQ,{agent:i,svcErrors:O,onNavigate:e})]})]})]}),h]})}function fv({children:e}){return w.jsx("p",{className:"mb-2 ml-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:e})}function uQ({verdict:e,memory:t,warns:r,problems:n}){const i=r.length?`${r[0].label}: ${r[0].detail}${r.length>1?` (+${r.length-1} weitere)`:""}`:t.status==="full"?t.text:"Nichts Schlimmes — nur ein Hinweis.",o=n.length?`${n[0].label}: ${n[0].detail}${n.length>1?` (+${n.length-1} weitere)`:""}`:"Ein wichtiger Dienst hakt.",s={loading:{ring:"border-border/60 bg-card/45",icon:By,iconCls:"text-muted-foreground animate-spin",title:"Box wird geprüft …",sub:"Einen Moment."},gut:{ring:"border-emerald-500/40 bg-emerald-500/5",icon:sT,iconCls:"text-emerald-400",title:"Box gesund",sub:"Alle wichtigen Dienste laufen."},warn:{ring:"border-amber-500/40 bg-amber-500/5",icon:Gs,iconCls:"text-amber-400",title:"Kleinigkeit an der Box",sub:i},problem:{ring:"border-red-500/50 bg-red-500/5",icon:Gs,iconCls:"text-red-400",title:"Box braucht Hilfe",sub:o}}[e],u=s.icon,d={ok:"text-emerald-400",warn:"text-amber-400",full:"text-red-400",unknown:"text-muted-foreground"}[t.status],f={ok:"bg-emerald-500",warn:"bg-amber-500",full:"bg-red-500",unknown:"bg-muted-foreground/40"}[t.status];return w.jsxs("div",{className:De("flex flex-col gap-4 rounded-2xl border p-5 shadow-lg shadow-black/15 backdrop-blur-md transition-colors sm:flex-row sm:items-center sm:justify-between h-full",s.ring),children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border/40 bg-background/30",children:w.jsx(u,{className:De("h-6 w-6",s.iconCls)})}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("h2",{className:"text-base font-bold tracking-tight text-foreground",children:s.title}),w.jsx("p",{className:"text-xs text-muted-foreground",children:s.sub})]})]}),w.jsxs("div",{className:"w-full max-w-[16rem] rounded-xl border border-border/30 bg-background/20 p-3",children:[w.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",children:[w.jsx(lT,{className:"h-3.5 w-3.5"})," Speicher"]}),w.jsx("span",{className:De("font-mono font-bold",d),children:t.status==="unknown"?"—":`${t.usedGb.toFixed(1)} / ${t.totalGb.toFixed(1)} GB`})]}),w.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:w.jsx("div",{className:De("h-full rounded-full transition-all duration-500",f),style:{width:`${t.pct}%`}})})]})]})}function cQ({problems:e,pendingCount:t,openAuftraege:r,blockedIdeen:n,busy:i,onRepair:o,onNavigate:s}){const u=t>0,d=r>0,f=n>0,h=e.length===0&&!u&&!d&&!f;return w.jsx("div",{className:"h-full flex flex-col justify-between",children:h?w.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-4 h-full",children:[w.jsx(XM,{className:"h-5 w-5 shrink-0 text-emerald-400"}),w.jsxs("div",{children:[w.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu tun"}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Alles läuft. Du musst gerade nichts abnicken."})]})]}):w.jsxs("div",{className:"space-y-2 h-full flex flex-col justify-center",children:[e.map(m=>w.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3 rounded-2xl border border-red-500/25 bg-red-500/5 p-4",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3 w-full",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(m.icon,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{className:"min-w-0 flex-1",children:[w.jsx("p",{className:"text-sm font-bold text-foreground",children:m.label}),w.jsx("p",{className:"truncate text-xs text-muted-foreground",children:m.detail})]})]}),m.repair&&w.jsxs("button",{onClick:()=>m.repair&&o(m.id,m.repair),disabled:!!i[m.id],className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg border border-red-500/40 bg-red-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300 transition-all hover:bg-red-500/20 cursor-pointer disabled:opacity-60 w-full sm:w-auto justify-center",children:[i[m.id]?w.jsx(By,{className:"h-3.5 w-3.5 animate-spin"}):w.jsx(kT,{className:"h-3.5 w-3.5"}),m.repair.label]})]},m.id)),f&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-red-500/30 bg-red-500/5 p-4 text-left transition-all hover:bg-red-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(zP,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[n," Karte",n===1?"":"n"," braucht deine Antwort"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Die Box hängt an einer Frage und wartet auf dich."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-red-300/70"})]}),d&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-primary/30 bg-primary/5 p-4 text-left transition-all hover:bg-primary/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/30 bg-background/30 text-primary",children:w.jsx(Fy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[r," Vorschl",r===1?"ag":"äge"," im Auftragsbuch"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Annehmen oder ablehnen."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-primary/70"})]}),u&&w.jsxs("button",{onClick:()=>kf("maintenance"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-left transition-all hover:bg-amber-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-amber-500/30 bg-background/30 text-amber-300",children:w.jsx(Wy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[t," Update",t===1?"":"s"," bereit"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Ansehen und entscheiden."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-amber-300/70"})]})]})})}function dQ({agent:e,svcErrors:t,onNavigate:r}){const n=[{label:"Hermes Agent",status:e?e.gateway_reachable?"Bereit":"Offline":"…",tone:e?e.gateway_reachable?"ok":"alert":"loading",action:()=>r("agent")},{label:"Konsole (Box-Shell)",status:e?e.box_console_reachable?"Bereit":"Offline":"…",tone:e?e.box_console_reachable?"ok":"warn":"loading",action:()=>r("konsole")},{label:"Systemlogs & Diagnose",status:t>0?`${t} Fehler`:"Keine Fehler",tone:t>0?"alert":"ok",action:()=>kf("logs")},{label:"Wissens-Vault",status:"Öffnen",tone:"muted",action:()=>r("wissen")},{label:"Chronik & Zeitmaschine",status:"Öffnen",tone:"muted",action:()=>r("chronik")}];return w.jsx("div",{className:"rounded-2xl border border-border/60 bg-card/30 p-4 space-y-3 shadow-sm",children:w.jsx("div",{className:"divide-y divide-border/20",children:n.map((i,o)=>{const s={loading:"bg-muted-foreground/45 animate-pulse",ok:"bg-emerald-500 shadow-[0_0_8px_rgba(16,185,129,0.4)]",warn:"bg-amber-500 shadow-[0_0_8px_rgba(245,158,11,0.4)]",alert:"bg-red-500 shadow-[0_0_8px_rgba(239,68,68,0.4)]",muted:"bg-muted-foreground/30"}[i.tone];return w.jsxs("button",{onClick:i.action,className:"w-full py-2.5 px-1.5 flex items-center justify-between text-left hover:bg-card/45 rounded-lg transition-all group cursor-pointer text-xs",children:[w.jsx("span",{className:"text-muted-foreground group-hover:text-foreground transition-colors font-medium",children:i.label}),w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("text-[10px] font-semibold font-mono",i.tone==="ok"?"text-emerald-400":i.tone==="warn"?"text-amber-400":i.tone==="alert"?"text-red-400":"text-muted-foreground/60"),children:i.status}),w.jsx("span",{className:De("h-1.5 w-1.5 rounded-full",s)})]})]},o)})})})}const fQ=g.lazy(()=>ii(()=>import("./ModelsView-vX0ckGpG.js"),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.ModelsView}))),hQ=g.lazy(()=>ii(()=>import("./ConnectView-nzWBlbXD.js"),__vite__mapDeps([6,4,7])).then(e=>({default:e.ConnectView}))),pQ=g.lazy(()=>ii(()=>import("./AgentView-LlJDd33l.js"),[]).then(e=>({default:e.AgentView}))),mQ=g.lazy(()=>ii(()=>import("./KonsoleView-BJCYPWry.js"),[]).then(e=>({default:e.KonsoleView}))),vQ=g.lazy(()=>ii(()=>import("./GuideView-D3weMCzU.js"),__vite__mapDeps([8,3,5])).then(e=>({default:e.GuideView}))),yQ=g.lazy(()=>ii(()=>import("./AuftragsbuchView-C2dG-lAH.js"),__vite__mapDeps([9,10,4])).then(e=>({default:e.AuftragsbuchView}))),gQ=g.lazy(()=>ii(()=>import("./IdeenView-BpB3-RwB.js"),__vite__mapDeps([11,10,1,5,4,2])).then(e=>({default:e.IdeenView}))),xQ=g.lazy(()=>ii(()=>import("./ChronikView-BB9XGeGn.js"),__vite__mapDeps([12,2])).then(e=>({default:e.ChronikView}))),bQ=g.lazy(()=>ii(()=>import("./WissenView-DgtrXx57.js"),__vite__mapDeps([13,7])).then(e=>({default:e.WissenView})));function wQ(){return w.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:w.jsx(By,{className:"h-5 w-5 animate-spin","aria-label":"Lädt …"})})}const SQ=/Mac|iPhone|iPad/.test(navigator.platform);function kQ(){$3(),v3();const[e,t]=g.useState(()=>{const S=window.location.hash.slice(1);return Ko.some(E=>E.id===S)?S:"dashboard"}),r=g.useCallback(S=>{window.location.hash.slice(1)===S?t(S):window.location.hash=S},[]),[n,i]=g.useState(()=>localStorage.getItem("mc_sidebar_collapsed")==="true"),[o,s]=g.useState(!1),[u,d]=g.useState(!1),[f,h]=g.useState("maintenance"),{data:m,isError:v}=jA(),{data:x}=Df();g.useEffect(()=>{document.documentElement.classList.add("dark")},[]),g.useEffect(()=>{const S=E=>{var O;h(((O=E.detail)==null?void 0:O.tab)||"maintenance"),d(!0)};return window.addEventListener("open-system-drawer",S),()=>window.removeEventListener("open-system-drawer",S)},[]),g.useEffect(()=>{const S=E=>{var O;const P=(O=E.detail)==null?void 0:O.view;P&&r(P)};return window.addEventListener("mc-navigate",S),()=>window.removeEventListener("mc-navigate",S)},[r]),g.useEffect(()=>{const S=()=>{const E=window.location.hash.slice(1);Ko.some(P=>P.id===E)&&t(E)};return window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)},[]),g.useEffect(()=>{s(!1)},[e]);const k=Ko.find(S=>S.id===e);return w.jsxs("div",{className:"flex h-full relative",children:[w.jsx("div",{className:"fixed inset-0 -z-50 pointer-events-none",style:{backgroundColor:"hsl(224,30%,6%)",backgroundImage:["radial-gradient(45% 40% at 12% 8%, hsl(172 72% 50% / 0.10), transparent 70%)","radial-gradient(50% 45% at 88% 92%, hsl(270 70% 60% / 0.10), transparent 70%)","radial-gradient(40% 35% at 75% 30%, hsl(239 70% 62% / 0.07), transparent 70%)"].join(", ")}}),w.jsx(NR,{onNavigate:r}),w.jsx(I3,{open:u,onClose:()=>d(!1),defaultTab:f}),w.jsx("aside",{className:De("hidden md:flex shrink-0 flex-col border-r border-border/40 bg-card/45 backdrop-blur-md transition-all duration-300 ease-in-out",n?"w-16":"w-60"),children:w.jsx(hP,{collapsed:n,onToggleCollapse:()=>{i(S=>{const E=!S;return localStorage.setItem("mc_sidebar_collapsed",E.toString()),E})},view:e,health:m,backendDown:v,sysStatus:x})}),w.jsxs("div",{className:De("md:hidden fixed inset-0 z-50 transition-opacity duration-200",o?"opacity-100":"pointer-events-none opacity-0"),"aria-hidden":!o,children:[w.jsx("div",{className:"absolute inset-0 bg-black/60",onClick:()=>s(!1)}),w.jsx("aside",{className:De("absolute inset-y-0 left-0 flex w-72 max-w-[85vw] flex-col border-r border-border/40 bg-[hsl(224,28%,8%)] transition-transform duration-300 ease-in-out",o?"translate-x-0":"-translate-x-full"),children:w.jsx(hP,{collapsed:!1,onClose:()=>s(!1),view:e,health:m,backendDown:v,sysStatus:x})})]}),w.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[w.jsxs("header",{className:"flex h-14 shrink-0 items-center justify-between gap-3 border-b border-border/40 px-4 md:px-6 bg-card/20 backdrop-blur-sm",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[w.jsx("button",{onClick:()=>s(!0),className:"md:hidden p-1.5 -ml-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation öffnen",children:w.jsx(pT,{className:"h-5 w-5","aria-hidden":"true"})}),w.jsx("div",{className:"truncate text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:k.hint})]}),w.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[w.jsx(h3,{}),w.jsx("a",{href:"https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/mission-control-v2/src/branch/main/docs/BEDIENUNG.md",target:"_blank",rel:"noopener",className:"hidden sm:flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-2.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer font-semibold",title:"Bedien-Anleitung",children:"Hilfe"}),w.jsxs("button",{onClick:()=>{const S=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(S)},className:"flex items-center gap-2 rounded-md border border-border/40 bg-background/40 px-2.5 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",children:[w.jsx(rT,{className:"h-3.5 w-3.5"}),w.jsx("span",{className:"hidden sm:inline",children:"Suchen"}),w.jsx("kbd",{className:"hidden sm:inline rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:SQ?"⌘K":"Strg+K"})]})]})]}),w.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6 scrollbar-thin",children:w.jsxs(g.Suspense,{fallback:w.jsx(wQ,{}),children:[e==="dashboard"&&w.jsx(sQ,{onNavigate:S=>r(S)}),e==="ideen"&&w.jsx(gQ,{}),e==="auftraege"&&w.jsx(yQ,{}),e==="models"&&w.jsx(fQ,{}),e==="connect"&&w.jsx(hQ,{}),e==="wissen"&&w.jsx(bQ,{}),e==="chronik"&&w.jsx(xQ,{}),e==="agent"&&w.jsx(pQ,{}),e==="konsole"&&w.jsx(mQ,{}),e==="guide"&&w.jsx(vQ,{})]})})]})]})}function hP({collapsed:e,onToggleCollapse:t,onClose:r,view:n,health:i,backendDown:o,sysStatus:s}){var u,d,f,h,m;return w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:De("flex items-center py-4 border-b border-border/40 shrink-0",e?"flex-col gap-3 px-2":"justify-between px-5"),children:[w.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[w.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!e&&w.jsxs("div",{className:"leading-tight",children:[w.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),w.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),t&&w.jsx("button",{onClick:t,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":e?"Seitenleiste ausklappen":"Seitenleiste einklappen",title:e?"Maximieren":"Minimieren",children:e?w.jsx(Bs,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(ZM,{className:"h-4 w-4","aria-hidden":"true"})}),r&&w.jsx("button",{onClick:r,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation schließen",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:(()=>{let v=null;return Ko.map(x=>{const k=x.group!==v;return v=x.group,w.jsxs("div",{className:"space-y-1",children:[k&&(e?v!==Ko[0].group&&w.jsx("div",{className:"my-3 border-t border-border/30"}):w.jsx("div",{className:"mt-5 mb-1.5 px-3 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/40 first:mt-0 select-none",children:x.group})),w.jsxs("a",{href:`#${x.id}`,onClick:r,"aria-current":n===x.id?"page":void 0,className:De("flex w-full items-center rounded-md text-sm transition-all cursor-pointer",e?"justify-center p-2.5":"gap-3 px-3 py-2",n===x.id?e?"nav-active-collapsed":"nav-active":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:e?x.label:void 0,"aria-label":e?x.label:void 0,children:[w.jsx(x.icon,{className:"h-4.5 w-4.5 shrink-0","aria-hidden":"true"}),!e&&w.jsx("span",{className:"truncate",children:x.label})]})]},x.id)})})()}),w.jsx("div",{className:De("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",e?"px-2 text-center":"px-5"),children:e?w.jsx("div",{className:"flex justify-center",children:w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",o||!i?"bg-red-500":i.engine_reachable?i.brain&&!i.brain.ready?"bg-amber-500 animate-pulse":"bg-emerald-500 animate-pulse":"bg-amber-500"),title:o?"Zentrale antwortet nicht — Anzeigen evtl. veraltet":i?i.engine_reachable?i.brain&&!i.brain.ready?`Hirn offline (${i.brain.model??"fast"})`:"Engine + Hirn online":"Engine offline":"Backend offline"})}):w.jsxs("div",{className:"space-y-2 text-left",children:[o?w.jsxs("span",{className:"flex items-center gap-2 text-red-400",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500 animate-pulse"}),w.jsx("span",{className:"truncate",children:"Zentrale antwortet nicht"})]}):i?w.jsxs(w.Fragment,{children:[w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("h-2 w-2 rounded-full animate-pulse",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),w.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"]})]}),i.brain&&!i.brain.ready&&w.jsxs("span",{className:"flex items-center gap-2 text-amber-400",title:`Agent-Hirn '${i.brain.model??"fast"}' lädt nicht/abgestürzt`,children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),w.jsxs("span",{className:"truncate",children:["Hirn offline",i.brain.model?` (${i.brain.model})`:""]})]})]}):w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",w.jsx("span",{className:"truncate",children:"Backend offline"})]}),(s==null?void 0:s.versions)&&w.jsxs("div",{className:"space-y-1 text-[9px] text-muted-foreground/60 mt-2 pt-2 border-t border-border/30",children:[w.jsxs("div",{className:"truncate",title:s.versions.mc2?`${s.versions.mc2.branch}-${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""} (${s.versions.mc2.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"MC2:"})," ",s.versions.mc2?`${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""}`:"—"]}),w.jsxs("div",{className:"truncate",title:((u=s.versions.engine)==null?void 0:u.type)==="git"?`${s.versions.engine.branch}-${s.versions.engine.hash}${s.versions.engine.dirty?"*":""} (${s.versions.engine.date})`:((d=s.versions.engine)==null?void 0:d.version_text)||"unbekannt",children:[w.jsx("strong",{children:"Engine:"})," ",((f=s.versions.engine)==null?void 0:f.type)==="git"?`${s.versions.engine.hash}${s.versions.engine.dirty?"*":""}`:((m=(h=s.versions.engine)==null?void 0:h.version_text)==null?void 0:m.split(" ").pop())||"—"]}),w.jsxs("div",{className:"truncate",title:s.versions.hermes_agent?`${s.versions.hermes_agent.branch}-${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""} (${s.versions.hermes_agent.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"Hermes Agent:"})," ",s.versions.hermes_agent?`${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""}`:"—"]})]})]})})]})}class EQ extends Dy.Component{constructor(){super(...arguments);xs(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}componentDidCatch(r,n){console.error("Unbehandelter UI-Fehler:",r,n.componentStack)}render(){return this.state.error?w.jsx("div",{className:"min-h-screen flex items-center justify-center bg-neutral-950 text-neutral-200 p-8",children:w.jsxs("div",{className:"max-w-lg space-y-4 text-center",children:[w.jsx("div",{className:"text-2xl",children:"Da ist etwas schiefgelaufen."}),w.jsx("div",{className:"text-sm text-neutral-400 break-all",children:this.state.error.message}),w.jsx("button",{className:"px-4 py-2 rounded-lg bg-neutral-800 hover:bg-neutral-700 border border-neutral-700",onClick:()=>window.location.reload(),children:"Neu laden"})]})}):this.props.children}}const PQ=new CM({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});rM.createRoot(document.getElementById("root")).render(w.jsx(Dy.StrictMode,{children:w.jsx(EQ,{children:w.jsx(_M,{client:PQ,children:w.jsx(kQ,{})})})}));export{Uy as $,TA as A,YM as B,XM as C,zQ as D,Ov as E,k3 as F,B1 as G,lT as H,Bs as I,JM as J,S3 as K,By as L,nT as M,OQ as N,Af as O,vT as P,VM as Q,Hy as R,yT as S,Gs as T,Ho as U,wT as V,kT as W,Cf as X,Es as Y,Of as Z,LP as _,w3 as a,hT as a0,aT as a1,bT as a2,y3 as a3,g3 as a4,eT as a5,WQ as a6,Fy as a7,jQ as a8,zP as a9,iT as aa,NQ as ab,uT as ac,Wy as ad,sT as ae,x3 as af,rf as ag,Dy as ah,su as ai,bk as aj,A8 as ak,Ng as al,dk as am,ck as an,Ty as ao,IQ as ap,MQ as aq,fT as ar,_A as b,je as c,BQ as d,De as e,Nm as f,Te as g,DQ as h,_Q as i,w as j,qM as k,IA as l,TQ as m,Df as n,RQ as o,FQ as p,ze as q,g as r,CQ as s,LQ as t,Pf as u,No as v,TR as w,FP as x,UQ as y,$Q as z}; diff --git a/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 b/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 deleted file mode 100644 index 5b8678f..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-300-normal-LR1W_oT8.woff b/frontend/dist/assets/inter-cyrillic-300-normal-LR1W_oT8.woff deleted file mode 100644 index 5b2c763..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-300-normal-LR1W_oT8.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff b/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff deleted file mode 100644 index 6bd8b02..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 b/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 deleted file mode 100644 index e7583fc..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 b/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 deleted file mode 100644 index dd14bcf..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff b/frontend/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff deleted file mode 100644 index c8aa26e..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff b/frontend/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff deleted file mode 100644 index 10ec579..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 b/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 deleted file mode 100644 index e250ef0..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 b/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 deleted file mode 100644 index 781e4b4..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff b/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff deleted file mode 100644 index 46451f1..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 b/frontend/dist/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 deleted file mode 100644 index 70a3d6b..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff b/frontend/dist/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff deleted file mode 100644 index 5b423a7..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 b/frontend/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 deleted file mode 100644 index 4ee0d27..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff b/frontend/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff deleted file mode 100644 index 6b6dc78..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 b/frontend/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 deleted file mode 100644 index c21492c..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff b/frontend/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff deleted file mode 100644 index e5c7962..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff b/frontend/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff deleted file mode 100644 index 7b24dd8..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 b/frontend/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 deleted file mode 100644 index e00289e..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 b/frontend/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 deleted file mode 100644 index 1a5c3ce..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff b/frontend/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff deleted file mode 100644 index 6fb2700..0000000 Binary files a/frontend/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff b/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff deleted file mode 100644 index 9db84f3..0000000 Binary files a/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-300-normal-DmGD3g_f.woff2 b/frontend/dist/assets/inter-greek-300-normal-DmGD3g_f.woff2 deleted file mode 100644 index 12dbd33..0000000 Binary files a/frontend/dist/assets/inter-greek-300-normal-DmGD3g_f.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 b/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 deleted file mode 100644 index e7103fb..0000000 Binary files a/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff b/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff deleted file mode 100644 index c0c36e2..0000000 Binary files a/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 b/frontend/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 deleted file mode 100644 index 730be94..0000000 Binary files a/frontend/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff b/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff deleted file mode 100644 index b4ebbd9..0000000 Binary files a/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff b/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff deleted file mode 100644 index ae72058..0000000 Binary files a/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 b/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 deleted file mode 100644 index 479b547..0000000 Binary files a/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff b/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff deleted file mode 100644 index 1d428f5..0000000 Binary files a/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 b/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 deleted file mode 100644 index 3a9fc0b..0000000 Binary files a/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-300-normal-DLbbeei1.woff b/frontend/dist/assets/inter-greek-ext-300-normal-DLbbeei1.woff deleted file mode 100644 index d82d917..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-300-normal-DLbbeei1.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 b/frontend/dist/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 deleted file mode 100644 index 5a92c3c..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 b/frontend/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 deleted file mode 100644 index 7cb1d6b..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff b/frontend/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff deleted file mode 100644 index 96f1f60..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff b/frontend/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff deleted file mode 100644 index 713c500..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 b/frontend/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 deleted file mode 100644 index 4062b66..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff b/frontend/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff deleted file mode 100644 index b3d15d1..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 b/frontend/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 deleted file mode 100644 index 83e7de9..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff b/frontend/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff deleted file mode 100644 index e36fd56..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 b/frontend/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 deleted file mode 100644 index af7bcba..0000000 Binary files a/frontend/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 b/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 deleted file mode 100644 index ece952c..0000000 Binary files a/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff b/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff deleted file mode 100644 index 469a31b..0000000 Binary files a/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 b/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 deleted file mode 100644 index f15b025..0000000 Binary files a/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff b/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff deleted file mode 100644 index 2f21ed4..0000000 Binary files a/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff b/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff deleted file mode 100644 index 07775a3..0000000 Binary files a/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 b/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 deleted file mode 100644 index 54f0a59..0000000 Binary files a/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff b/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff deleted file mode 100644 index 323fa67..0000000 Binary files a/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 b/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 deleted file mode 100644 index d189794..0000000 Binary files a/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff b/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff deleted file mode 100644 index 161b01e..0000000 Binary files a/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 b/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 deleted file mode 100644 index a68fb10..0000000 Binary files a/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 b/frontend/dist/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 deleted file mode 100644 index 42f4549..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff b/frontend/dist/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff deleted file mode 100644 index 6883378..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff b/frontend/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff deleted file mode 100644 index 0238739..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 b/frontend/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 deleted file mode 100644 index 5243e4b..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff b/frontend/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff deleted file mode 100644 index e6a577e..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 b/frontend/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 deleted file mode 100644 index 2ab7ebf..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff b/frontend/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff deleted file mode 100644 index 74b454b..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 b/frontend/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 deleted file mode 100644 index bad65d4..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 b/frontend/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 deleted file mode 100644 index c9507e3..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff b/frontend/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff deleted file mode 100644 index b4517fc..0000000 Binary files a/frontend/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 b/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 deleted file mode 100644 index 5c473b3..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff b/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff deleted file mode 100644 index 424f0fc..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff b/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff deleted file mode 100644 index ff3f8f1..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 b/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 deleted file mode 100644 index ba7767f..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 b/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 deleted file mode 100644 index abe88f5..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff b/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff deleted file mode 100644 index 87a9d4d..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff b/frontend/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff deleted file mode 100644 index 264f0f5..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 b/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 deleted file mode 100644 index e7b7814..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff b/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff deleted file mode 100644 index 26d92ec..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff and /dev/null differ diff --git a/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 b/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 deleted file mode 100644 index 38c516e..0000000 Binary files a/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 b/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 deleted file mode 100644 index f60f0bd..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff b/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff deleted file mode 100644 index 086ce0c..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff b/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff deleted file mode 100644 index 0dc133d..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 b/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 deleted file mode 100644 index 1580765..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff b/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff deleted file mode 100644 index bfb875b..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 b/frontend/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 deleted file mode 100644 index da7ab5f..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff b/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff deleted file mode 100644 index 98d1e53..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 b/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 deleted file mode 100644 index ec8722e..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff b/frontend/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff deleted file mode 100644 index 41fa3d6..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 b/frontend/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 deleted file mode 100644 index 5858873..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 b/frontend/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 deleted file mode 100644 index be878e6..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff b/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff deleted file mode 100644 index 4e8415a..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 b/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 deleted file mode 100644 index 9d97c9b..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff b/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff deleted file mode 100644 index 9c4a3ce..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 b/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 deleted file mode 100644 index 5cc89b1..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff b/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff deleted file mode 100644 index 63bb843..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff b/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff deleted file mode 100644 index 619ec08..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff and /dev/null differ diff --git a/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff b/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff deleted file mode 100644 index 672dd50..0000000 Binary files a/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff and /dev/null differ diff --git a/frontend/dist/assets/layers-CjyCNjIs.js b/frontend/dist/assets/layers-CjyCNjIs.js deleted file mode 100644 index 9e2fe04..0000000 --- a/frontend/dist/assets/layers-CjyCNjIs.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as a}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=a("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"}]]);export{r as L}; diff --git a/frontend/dist/assets/rotate-ccw-BtnOKhJQ.js b/frontend/dist/assets/rotate-ccw-BtnOKhJQ.js deleted file mode 100644 index 3cccd79..0000000 --- a/frontend/dist/assets/rotate-ccw-BtnOKhJQ.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as t}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=t("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);export{e as R}; diff --git a/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff b/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff deleted file mode 100644 index 48b5613..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 b/frontend/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 deleted file mode 100644 index 0e63471..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff b/frontend/dist/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff deleted file mode 100644 index 5ae8ea9..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 b/frontend/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 deleted file mode 100644 index 0db251f..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-600-normal-BflQw4A9.woff b/frontend/dist/assets/space-grotesk-latin-600-normal-BflQw4A9.woff deleted file mode 100644 index b9da83f..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-600-normal-BflQw4A9.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 b/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 deleted file mode 100644 index a1db41a..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff b/frontend/dist/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff deleted file mode 100644 index 134d64b..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 b/frontend/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 deleted file mode 100644 index 44604a0..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2 b/frontend/dist/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2 deleted file mode 100644 index de4425f..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff b/frontend/dist/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff deleted file mode 100644 index 4c2a424..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff b/frontend/dist/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff deleted file mode 100644 index 3ac7553..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2 b/frontend/dist/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2 deleted file mode 100644 index 0905781..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2 b/frontend/dist/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2 deleted file mode 100644 index 2438b7a..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff b/frontend/dist/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff deleted file mode 100644 index 9c0101a..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2 b/frontend/dist/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2 deleted file mode 100644 index 332a5ee..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff b/frontend/dist/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff deleted file mode 100644 index ece1591..0000000 Binary files a/frontend/dist/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2 b/frontend/dist/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2 deleted file mode 100644 index a1bd433..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff b/frontend/dist/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff deleted file mode 100644 index 0b254ea..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff b/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff deleted file mode 100644 index a9ddbdb..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2 b/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2 deleted file mode 100644 index 88b774d..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff b/frontend/dist/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff deleted file mode 100644 index 7dbe92c..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2 b/frontend/dist/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2 deleted file mode 100644 index d077eb7..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2 b/frontend/dist/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2 deleted file mode 100644 index 972f450..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2 and /dev/null differ diff --git a/frontend/dist/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff b/frontend/dist/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff deleted file mode 100644 index 12422f5..0000000 Binary files a/frontend/dist/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff and /dev/null differ diff --git a/frontend/dist/assets/zap-iWjc7Axa.js b/frontend/dist/assets/zap-iWjc7Axa.js deleted file mode 100644 index dc9808f..0000000 --- a/frontend/dist/assets/zap-iWjc7Axa.js +++ /dev/null @@ -1,21 +0,0 @@ -import{c as a}from"./index-CUuKs_1x.js";/** - * @license lucide-react v0.460.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=a("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** - * @license lucide-react v0.460.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=a("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const c=a("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** - * @license lucide-react v0.460.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=a("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);export{o as C,c as L,s as Z,t as a}; diff --git a/frontend/dist/favicon.svg b/frontend/dist/favicon.svg deleted file mode 100644 index 2b84ac2..0000000 --- a/frontend/dist/favicon.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/frontend/dist/index.html b/frontend/dist/index.html deleted file mode 100644 index 49cfc0e..0000000 --- a/frontend/dist/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - Mission Control 2.0 - - - - -
- - diff --git a/frontend/dist/manifest.webmanifest b/frontend/dist/manifest.webmanifest deleted file mode 100644 index c3955e0..0000000 --- a/frontend/dist/manifest.webmanifest +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Mission Control 2.0", - "short_name": "MC2", - "start_url": "/", - "display": "standalone", - "background_color": "#0d1117", - "theme_color": "#0d1117", - "icons": [] -} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a8b4cfc..ebb3284 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -20,6 +20,7 @@ const KonsoleView = lazy(() => import("@/views/KonsoleView").then((m) => ({ defa const GuideView = lazy(() => import("@/views/GuideView").then((m) => ({ default: m.GuideView }))) const AuftragsbuchView = lazy(() => import("@/views/AuftragsbuchView").then((m) => ({ default: m.AuftragsbuchView }))) const IdeenView = lazy(() => import("@/views/IdeenView").then((m) => ({ default: m.IdeenView }))) +const SkillsView = lazy(() => import("@/views/SkillsView").then((m) => ({ default: m.SkillsView }))) const ChronikView = lazy(() => import("@/views/ChronikView").then((m) => ({ default: m.ChronikView }))) const WissenView = lazy(() => import("@/views/WissenView").then((m) => ({ default: m.WissenView }))) @@ -203,6 +204,7 @@ export default function App() { {view === "dashboard" && navigate(v as ViewId)} />} {view === "ideen" && } {view === "auftraege" && } + {view === "skills" && } {view === "models" && } {view === "connect" && } {view === "wissen" && } diff --git a/frontend/src/nav.ts b/frontend/src/nav.ts index aa5f610..89d4236 100644 --- a/frontend/src/nav.ts +++ b/frontend/src/nav.ts @@ -12,7 +12,7 @@ import { type LucideIcon, } from "lucide-react" -export type ViewId = "dashboard" | "ideen" | "auftraege" | "models" | "wissen" | "chronik" | "connect" | "agent" | "konsole" | "guide" +export type ViewId = "dashboard" | "ideen" | "auftraege" | "skills" | "models" | "wissen" | "chronik" | "connect" | "agent" | "konsole" | "guide" export type NavGroup = "Operativ" | "Wissen" | "Werkzeuge" | "Wartung" @@ -33,7 +33,7 @@ export const NAV: NavItem[] = [ // Seitenüberschrift „Ideen" — ein langer Satz stand dort dreifach gedoppelt. { id: "ideen", label: "Ideen", hint: "Schreib hin, was entstehen soll", icon: Lightbulb, group: "Operativ" }, { id: "auftraege", label: "Auftragsbuch", hint: "Vorschläge der Box — annehmen oder ablehnen", icon: Inbox, group: "Operativ" }, - + { id: "skills", label: "Skills & Jobs", hint: "Autonome Skills manuell auslösen", icon: Bot, group: "Operativ" }, { id: "chronik", label: "Chronik", hint: "Was die Box von allein getan hat + Zeitmaschine", icon: History, group: "Operativ" }, { id: "wissen", label: "Wissen", hint: "Lucys Wissens-Vault (Traum-Notizen)", icon: Library, group: "Wissen" }, { id: "connect", label: "Verbinden", hint: "IDE-/Agent-Configs erzeugen", icon: Plug, group: "Werkzeuge" }, diff --git a/frontend/src/views/SkillsView.tsx b/frontend/src/views/SkillsView.tsx new file mode 100644 index 0000000..4885056 --- /dev/null +++ b/frontend/src/views/SkillsView.tsx @@ -0,0 +1,127 @@ +import { useState } from "react" +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query" +import { Bot, Play, Loader2, CheckCircle2, AlertTriangle } from "lucide-react" +import { cn } from "@/lib/utils" +import { api } from "@/lib/api" +import { qk } from "@/lib/queries" +import { JobsBar } from "@/components/models/JobsBar" + +interface Skill { + name: string + description: string +} + +interface SkillsResp { + skills: Skill[] +} + +export function SkillsView() { + const queryClient = useQueryClient() + const { data, isLoading, isError } = useQuery({ + queryKey: ["skills-list"], + queryFn: () => api("/api/skills"), + refetchInterval: 60000, + }) + + const [runningSkill, setRunningSkill] = useState(null) + const [lastResult, setLastResult] = useState<{name: string, ok: boolean, msg: string} | null>(null) + + const mutation = useMutation({ + mutationFn: (skillName: string) => api<{ok: boolean, msg?: string, err?: string}>("/api/skills/run", { + method: "POST", + body: JSON.stringify({ skill_name: skillName }) + }), + onMutate: (skillName) => { + setRunningSkill(skillName) + setLastResult(null) + }, + onSuccess: (res, skillName) => { + setRunningSkill(null) + setLastResult({ name: skillName, ok: res.ok, msg: res.msg || res.err || "Unbekannter Fehler" }) + // Jobs neu laden, damit der gestartete Skill direkt in der JobsBar auftaucht + queryClient.invalidateQueries({ queryKey: qk.jobs }) + }, + onError: (err, skillName) => { + setRunningSkill(null) + setLastResult({ name: skillName, ok: false, msg: String(err) }) + } + }) + + return ( +
+
+
+

+ Skills & Jobs +

+

+ Löst autonome Agent-Skills manuell auf der Box aus. Die Ausführung erfolgt im Hintergrund durch Hermes. +

+
+
+ + + + {lastResult && ( +
+ {lastResult.ok ? : } +
+
{lastResult.name}
+
{lastResult.msg}
+
+
+ )} + + {isLoading && ( +
+ +
+ )} + + {isError && ( +
+ Fehler beim Laden der Skills. Ist das Backend erreichbar? +
+ )} + + {data?.skills && ( +
+ {data.skills.map(skill => ( +
+
+
+ + {skill.name} +
+ +
+
+ {skill.description} +
+
+ ))} + {data.skills.length === 0 && ( +
+ Keine Skills im Ordner deploy/skills gefunden. +
+ )} +
+ )} +
+ ) +} diff --git a/mcp/mcp_mc.py b/mcp/mcp_mc.py index 5c0af8f..3e87fe8 100644 --- a/mcp/mcp_mc.py +++ b/mcp/mcp_mc.py @@ -274,6 +274,46 @@ def apply_update(kind: str) -> str: return json.dumps(_post(routes[kind]), ensure_ascii=False, indent=2) +@mcp.tool() +def get_ci_status() -> str: + """Prüft den letzten CI-Build-Status auf der AI-Box via Gitea API. + Nützlich, um nach einem Push zu verifizieren, ob das Frontend und Backend grün gebaut haben.""" + token_path = os.path.expanduser("~/.git-credentials") + try: + with open(token_path, "r") as f: + creds = f.read() + import re + m = re.search(r'https://[^:]+:([^@]+)@git\.tobisniceshomelab', creds) + token = m.group(1) if m else "" + except Exception: + token = "" + + if not token: + return "❌ Gitea Token in ~/.git-credentials nicht gefunden. CI Status kann nicht geprüft werden." + + # Gitea URL von der Box aus intern erreichbar + repo_url = "http://192.168.178.153:3000/api/v1/repos/Hitonabi/mission-control-v2/actions/runs?limit=1" + try: + r = httpx.get(repo_url, headers={"Authorization": f"token {token}"}, timeout=10) + r.raise_for_status() + runs = r.json() + if not runs: + return "Keine CI-Runs gefunden." + run = runs[0] + status = run.get("status") + name = run.get("name") + sha = run.get("head_sha", "")[:7] + if status == "success": + return f"✅ CI-Build ({name} @ {sha}) war ERFOLGREICH." + elif status == "failure": + return f"❌ CI-Build ({name} @ {sha}) ist FEHLGESCHLAGEN. Bitte in Gitea prüfen!" + elif status in ["running", "pending"]: + return f"⏳ CI-Build ({name} @ {sha}) LÄUFT GERADE ({status})." + else: + return f"ℹ️ CI-Build ({name} @ {sha}) Status: {status}" + except Exception as e: + return f"❌ Fehler bei der Gitea-API Abfrage: {str(e)}" + # ── Erinnerungen & Routinen (A3): die Box sagt dem Commander zur Zeit aktiv Bescheid ───────── @mcp.tool() def reminder_create(text: str, when: str, repeat: str = "") -> str: