diff --git a/backend/routers/system.py b/backend/routers/system.py index eaac700..50908ed 100644 --- a/backend/routers/system.py +++ b/backend/routers/system.py @@ -14,7 +14,7 @@ from pydantic import BaseModel import httpx -from config import GATEWAY_URL, HERMES_API_URL, LLAMA_SWAP_URL, MEM0_SERVICE_URL, VOICE_SERVICE_URL +from config import GATEWAY_URL, HERMES_API_URL, LLAMA_SWAP_URL, MEM0_SERVICE_URL, V1_UPSTREAM, VOICE_SERVICE_URL from services import backup as backup_svc from services import maintenance from services.agent import agent_status @@ -51,20 +51,56 @@ def _voice_reachable() -> bool: return False +def _user_unit_active(unit: str) -> bool: + """systemd-User-Unit ohne eigenen HTTP-Port (z. B. mc2-steward) — Zustand via is-active. + Auf Windows/Dev schlägt das harmlos fehl (False).""" + if os.name != "posix": + return False + try: + r = subprocess.run(["systemctl", "--user", "is-active", unit], + capture_output=True, text=True, timeout=3) + return r.stdout.strip() == "active" + except Exception: # noqa: BLE001 + return False + + @router.get("/system/services") def services() -> dict: - """Aggregierte Erreichbarkeit aller Stack-Dienste (für die Health-Anzeige).""" + """Aggregierte Erreichbarkeit aller Stack-Dienste — die EINE Quelle für Cockpit-Kachel, + Schubladen-Liste und Log-Auswahl (Frontend rendert diese Liste, keine UI-Kopie mehr). + `scope`: user|system (Restart-Weg), `unit`: echter systemd-Name (Restart/Logs/Matching).""" a = agent_status() gw_url = f"{GATEWAY_URL}/v1" + rows = [ + {"name": "Engine (llama-swap)", "unit": "llama-swap", "url": LLAMA_SWAP_URL, + "ok": engine_reachable(), "scope": "system"}, + ] + # Seit UMBAU v3 P1 ist der LLM-Gateway ein EIGENER Prozess — ohne diese Zeile war er + # in der Dienste-Ampel unsichtbar (Kachel "6/6 grün" bei totem Denkpfad). + if V1_UPSTREAM: + rows.append({"name": "LLM-Gateway (Denkpfad)", "unit": "mc2-gateway", "url": V1_UPSTREAM, + "ok": gateway_reachable(), "scope": "user"}) + # MC2 selbst antwortet gerade auf diesen Request — ok=True ist hier ehrlich; + # die Zeile existiert für Restart/Logs, nicht als Erreichbarkeits-Orakel. + rows.append({"name": "Steuerpult (MC2)", "unit": "mission-control-2", "url": gw_url, + "ok": True, "scope": "user"}) + else: + rows.append({"name": "Gateway (integriert)", "unit": "mission-control-2", "url": gw_url, + "ok": gateway_reachable(), "scope": "user"}) + rows += [ + {"name": "Wächter (Steward)", "unit": "mc2-steward", "url": "", + "ok": _user_unit_active("mc2-steward"), "scope": "user"}, + {"name": "Hermes-Gateway", "unit": "hermes-gateway", "url": HERMES_API_URL, + "ok": a["gateway_reachable"], "scope": "user"}, + {"name": "Hermes-GUI (Desktop-Gateway)", "unit": "hermes-builtin-ui", "url": a["hermes_ui_url"], + "ok": a["hermes_ui_reachable"], "scope": "user"}, + {"name": "Mem0 (Gedächtnis)", "unit": "mem0-service", "url": MEM0_SERVICE_URL, + "ok": _mem0_reachable(), "scope": "user"}, + {"name": "Voice (STT/TTS)", "unit": "voice-service", "url": VOICE_SERVICE_URL, + "ok": _voice_reachable(), "scope": "user"}, + ] return { - "services": [ - {"name": "Engine (llama-swap)", "unit": "llama-swap", "url": LLAMA_SWAP_URL, "ok": engine_reachable()}, - {"name": "Gateway (integriert)", "unit": "mission-control-2", "url": gw_url, "ok": gateway_reachable()}, - {"name": "Hermes-Gateway", "unit": "hermes-gateway", "url": HERMES_API_URL, "ok": a["gateway_reachable"]}, - {"name": "Hermes-GUI (Desktop-Gateway)", "unit": "hermes-builtin-ui", "url": a["hermes_ui_url"], "ok": a["hermes_ui_reachable"]}, - {"name": "Mem0 (Gedächtnis)", "unit": "mem0-service", "url": MEM0_SERVICE_URL, "ok": _mem0_reachable()}, - {"name": "Voice (STT/TTS)", "unit": "voice-service", "url": VOICE_SERVICE_URL, "ok": _voice_reachable()}, - ], + "services": rows, "links": { "engine_ui": f"{LLAMA_SWAP_URL}/ui", "gateway": gw_url, diff --git a/backend/services/agent.py b/backend/services/agent.py index 1a1c3ea..e88badb 100644 --- a/backend/services/agent.py +++ b/backend/services/agent.py @@ -161,6 +161,8 @@ def agent_status() -> dict: "telegram_enabled": bool(os.environ.get("TELEGRAM_BOT_TOKEN", "")), "mcp_server_count": _count_enabled_mcp_servers(), "pc_executor_reachable": _reach(PC_EXECUTOR_URL, "/health"), + # Konfigurierte Adresse mitliefern, damit die UI sie ANZEIGT statt hartcodiert (Review 15.07.). + "pc_executor_url": PC_EXECUTOR_URL, } diff --git a/backend/services/auftragsbuch.py b/backend/services/auftragsbuch.py index 4e2bb0e..0dd9098 100644 --- a/backend/services/auftragsbuch.py +++ b/backend/services/auftragsbuch.py @@ -258,8 +258,12 @@ def list_proposals() -> dict: except Exception: log.warning("auftragsbuch: Telegram-Ping für %s fehlgeschlagen", branch, exc_info=True) - # Alle aktuellen Branches als gemeldet speichern - _save_announce_branches(aktuelle_branches) + # Als gemeldet speichern — aber NUR bei echter Änderung. Ein unbedingtes Schreiben + # bumpte die mtime bei jedem Aufruf, der SSE-Sammler (events.py, Fingerabdruck = + # Datei-mtime) meldete daraufhin „geändert", die UI holte neu, schrieb wieder … + # → 3-s-Endlosschleife auf /api/auftragsbuch je offenem Client (gefunden 15.07. nachts). + if aktuelle_branches != gemeldet: + _save_announce_branches(aktuelle_branches) kandidaten = list_skill_kandidaten() open_count = sum(1 for i in items diff --git a/backend/services/connect.py b/backend/services/connect.py index 870307f..e46025f 100644 --- a/backend/services/connect.py +++ b/backend/services/connect.py @@ -11,7 +11,7 @@ import json import httpx -from config import LLAMA_SWAP_URL, MEM0_SERVICE_URL, PORT +from config import LLAMA_SWAP_URL, MEM0_SERVICE_URL, PORT, V1_UPSTREAM DEFAULT_HOST = "192.168.178.151" @@ -125,12 +125,13 @@ def build_snippets(host: str = DEFAULT_HOST, def check_health() -> dict: """Live-Erreichbarkeit der drei Leitungen, aus Sicht der Box: - Leitung 1 = Gateway/Engine (llama-swap), Leitung 2 = Gedächtnis-Sidecar (Mem0), + Leitung 1 = der ECHTE Modell-Pfad, den Clients nutzen (mc2-gateway bei V1_UPSTREAM, + sonst llama-swap direkt), Leitung 2 = Gedächtnis-Sidecar (Mem0), Leitung 3 = Desktop-Gateway (Hermes-Builtin-UI).""" gateway = {"ok": False, "detail": "nicht erreichbar"} try: with httpx.Client(timeout=3.0) as c: - r = c.get(f"{LLAMA_SWAP_URL}/v1/models") + r = c.get(f"{V1_UPSTREAM or LLAMA_SWAP_URL}/v1/models") if r.status_code == 200: n = len(r.json().get("data", [])) gateway = {"ok": True, "detail": f"{n} Modelle verfügbar" if n else "bereit"} diff --git a/backend/services/gateway.py b/backend/services/gateway.py index 16e4813..63b3dce 100644 --- a/backend/services/gateway.py +++ b/backend/services/gateway.py @@ -1,10 +1,12 @@ """ -Routing-Gateway-Status (eingebauter Modus). MC2 IST der Gateway: serviert -`/v1/*` mit `model: auto`-Komplexitäts-Routing vor llama-swap. Kein externer -LiteLLM-Dienst nötig (baut auf Python 3.14 nicht); bleibt später austauschbar. +Routing-Gateway-Status. Seit UMBAU v3 P1 bedient der EIGENSTÄNDIGE mc2-gateway- +Prozess den /v1-Pfad (MC_V1_UPSTREAM gesetzt, MC2 reicht nur roh durch); ohne +V1_UPSTREAM gilt der alte eingebaute Modus (MC2 serviert /v1 selbst). """ -from config import PORT +import httpx + +from config import PORT, V1_UPSTREAM from services.llamaswap import engine_reachable from services.routing_policy import load_policy @@ -13,7 +15,7 @@ def routing_summary() -> dict: p = load_policy() coding_default = p["coder_lite"] or p["coder"] return { - "mode": "builtin", + "mode": "gateway (eigener Prozess)" if V1_UPSTREAM else "builtin", "endpoint": f":{PORT}/v1 (OpenAI-kompatibel)", # Virtuelle Lanes, die Clients/IDEs als „Modell" wählen (Router pickt das echte Alias). "lanes": [ @@ -42,5 +44,13 @@ def routing_summary() -> dict: def gateway_reachable() -> bool: - # Der eingebaute Gateway lebt in MC und proxyt llama-swap → erreichbar, wenn Engine läuft. + """Erreichbarkeit des ECHTEN Denkpfads. Mit V1_UPSTREAM ist das der eigenständige + mc2-gateway-Prozess (:9010) — vorher meldete diese Funktion nur die Engine, d. h. + ein toter Gateway blieb in Health/Diensten/Cockpit unsichtbar (Review 15.07.).""" + if V1_UPSTREAM: + try: + return httpx.get(f"{V1_UPSTREAM}/v1/models", timeout=2.0).status_code == 200 + except Exception: # noqa: BLE001 + return False + # Eingebauter Modus: der Gateway lebt in MC selbst und proxyt llama-swap. return engine_reachable() diff --git a/backend/services/maintenance.py b/backend/services/maintenance.py index 5c52d01..d3506d6 100644 --- a/backend/services/maintenance.py +++ b/backend/services/maintenance.py @@ -19,7 +19,8 @@ from services import catalog, discover, jobengine, llamaswap, system # System-Dienste (root, via sudo -n NOPASSWD) vs. User-Dienste (systemctl --user). SYSTEM_SERVICES = {"llama-swap"} -USER_SERVICES = {"mission-control-2", "hermes-gateway", "hermes-builtin-ui", "mem0-service", "voice-service"} +USER_SERVICES = {"mission-control-2", "mc2-gateway", "mc2-steward", + "hermes-gateway", "hermes-builtin-ui", "mem0-service", "voice-service"} # Engine-Update: lädt den neuesten Vulkan-Build (deploy/update-engine.sh, läuft als root). _REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) diff --git a/frontend/dist/assets/AgentView-CjuMXU9t.js b/frontend/dist/assets/AgentView-CjuMXU9t.js new file mode 100644 index 0000000..80ee856 --- /dev/null +++ b/frontend/dist/assets/AgentView-CjuMXU9t.js @@ -0,0 +1,6 @@ +import{c as E,Y as P,l as A,b as B,u as D,r as M,j as e,Z as T,e as a,$ as g,a0 as b,a1 as W,x as f,a2 as z,W as G,X as U,C as j,g as N,q as i}from"./index-B7xWfxHK.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 y=E("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 $(){const{data:r,error:c}=P(),{data:d}=A(),{showAlert:n,dialogElement:w}=B(),o=D(),x=c?String(c):"",[v,l]=M.useState(!1),k=(d==null?void 0:d.models)??[],m=s=>{var t;return((t=s==null?void 0:s.match(/:(\d+)/))==null?void 0:t[1])??""},u=m(r==null?void 0:r.gateway_url)||"8642",p=(r==null?void 0:r.pc_executor_url)??"",_=p.replace(/^https?:\/\//,""),S=m(p)||"7777";async function C(s){try{await N("/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 H(s){try{await N("/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:[":",u]}),") 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:[":",u]}),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(z,{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(y,{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:[":",S," ",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(y,{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:_||"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:["Stelle sicher, dass die systemd-Dienste auf der Box laufen. Du kannst den Status im ",e.jsx("strong",{children:"OS & Updates Drawer"})," prüfen und die Dienste bei Bedarf neu starten."]}),e.jsxs("div",{className:"p-3.5 bg-background/25 rounded-xl border border-border/30 font-mono text-[10px] space-y-1",children:[e.jsx("div",{className:"text-muted-foreground/60",children:"# Dienste manuell auf der Box prüfen:"}),e.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-gateway"}),e.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-builtin-ui"})]}),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&&v&&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(U,{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:()=>C(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(j,{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:k.map(s=>{var h;const t=s.role==="hermes";return e.jsxs("button",{onClick:()=>!t&&H(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(j,{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.']})]})]})}),w]})}export{$ as AgentView}; diff --git a/frontend/dist/assets/AgentView-Dz0JOXlc.js b/frontend/dist/assets/AgentView-Dz0JOXlc.js deleted file mode 100644 index 32a07bf..0000000 --- a/frontend/dist/assets/AgentView-Dz0JOXlc.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as k,R as _,m as S,b as C,u as H,r as E,j as e,U as A,e as a,V as u,W as p,Y as B,s as h,Z as D,Q as P,X as M,C as g,g as b,q as i}from"./index-DgTg5QdX.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 f=k("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"}]]),T=["chat","coding","fast","heavy"];function W(){const{data:r,error:c}=_(),{data:d}=S(),{showAlert:n,dialogElement:j}=C(),o=H(),x=c?String(c):"",[N,l]=E.useState(!1),y=(d==null?void 0:d.models)??[];async function w(s){try{await b("/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 v(s){try{await b("/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.jsx("code",{children:":8642"}),") und seine eigene UI besitzt."]})]}),(r==null?void 0:r.hermes_ui_url)&&e.jsxs("a",{href:u(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(A,{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(p,{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(u(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(B,{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(p,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-xs font-semibold text-primary",children:"Agent Gateway"}),e.jsx("span",{className:"text-[11px] font-mono text-muted-foreground",children:":8642"}),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(h,{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(D,{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(f,{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:[":7777 ",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(f,{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:"192.168.178.98:7777"})," 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(P,{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:["Stelle sicher, dass die systemd-Dienste auf der Box laufen. Du kannst den Status im ",e.jsx("strong",{children:"OS & Updates Drawer"})," prüfen und die Dienste bei Bedarf neu starten."]}),e.jsxs("div",{className:"p-3.5 bg-background/25 rounded-xl border border-border/30 font-mono text-[10px] space-y-1",children:[e.jsx("div",{className:"text-muted-foreground/60",children:"# Dienste manuell auf der Box prüfen:"}),e.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-gateway"}),e.jsx("div",{className:"text-primary",children:"systemctl --user status hermes-builtin-ui"})]}),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&&N&&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(h,{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(M,{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:T.map(s=>{const t=r.brain_model===s;return e.jsxs("button",{onClick:()=>w(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(g,{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:y.map(s=>{var m;const t=s.role==="hermes";return e.jsxs("button",{onClick:()=>!t&&v(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:(m=s.name.split("/").pop())==null?void 0:m.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(g,{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.']})]})]})}),j]})}export{W as AgentView}; diff --git a/frontend/dist/assets/AuftragsbuchView-LJ3OIPGp.js b/frontend/dist/assets/AuftragsbuchView-BKC3af8o.js similarity index 89% rename from frontend/dist/assets/AuftragsbuchView-LJ3OIPGp.js rename to frontend/dist/assets/AuftragsbuchView-BKC3af8o.js index 54b1c76..ad70897 100644 --- a/frontend/dist/assets/AuftragsbuchView-LJ3OIPGp.js +++ b/frontend/dist/assets/AuftragsbuchView-BKC3af8o.js @@ -1,4 +1,4 @@ -import{c as I,a4 as X,u as _,b as q,r as c,j as e,a5 as Y,e as C,L as f,C as Q,N as U,a6 as ee,a7 as te,O as V,X as z,w as R,F,a8 as re,T as K,g as S,a9 as se,q as J}from"./index-DgTg5QdX.js";import{L as ae}from"./lightbulb-D9Ggmjq-.js";import{S as G}from"./send-o-W_9aTj.js";/** +import{c as I,a8 as X,u as _,b as q,r as c,j as e,a9 as Y,e as C,L as f,C as Q,U,aa as ee,ab as te,V as O,X as z,D as M,M as R,ac as re,T as K,g as S,ad as se,q as J}from"./index-B7xWfxHK.js";import{L as ae}from"./lightbulb-BmFqk4PC.js";import{S as G}from"./send-CR5xzVO1.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -18,9 +18,9 @@ import{c as I,a4 as X,u as _,b as q,r as c,j as e,a5 as Y,e as C,L as f,C as Q,N * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ie=I("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"}]]),oe={wartung:"Werkstatt",orchestrator:"Orchestrator",doku:"Doku",feature:"Feature"},ce={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 M(t){return t?new Date(t*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"—"}function we(){const{data:t,isLoading:s,refetch:d,isFetching:g}=X(),m=_(),{showAlert:h,showConfirm:u,dialogElement:j}=q(),[A,N]=c.useState({}),y=()=>m.invalidateQueries({queryKey:J.auftragsbuch});async function p(l,b,D,i){N(x=>({...x,[l]:!0}));try{await S(b,{method:"POST",body:JSON.stringify(D)}),i&&h("Erledigt",i),y()}catch(x){h("Das hat nicht geklappt",String((x==null?void 0:x.message)||x))}finally{N(x=>({...x,[l]:!1}))}}const k=(t==null?void 0:t.items)??[],w=(t==null?void 0:t.skill_kandidaten)??[],v=k.length===0&&w.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:()=>d(),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(Y,{className:C("h-3.5 w-3.5",g&&"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."}),s&&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(f,{className:"h-4 w-4 animate-spin"})," Vorschläge werden geladen …"]}),(t==null?void 0:t.available)&&v&&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(Q,{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."})]})]}),e.jsx(xe,{}),k.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(O,{icon:de,children:["Fertige Patches (",k.length,")"]}),k.map(l=>e.jsx(pe,{item:l,busy:A,onAct:p,showConfirm:u},`${l.repo??"mc2"}:${l.branch}`))]}),w.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(O,{icon:U,children:["Skill-Kandidaten aus dem Traum (",w.length,")"]}),w.map(l=>e.jsx(be,{k:l,busy:A,onAct:p,showConfirm:u},l.file))]}),j]})}function O({icon:t,children:s}){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(t,{className:"h-3.5 w-3.5"})," ",s]})}const ue={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:"wartet",cls:"text-muted-foreground border-border/60 bg-background/30"},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"}},he={needs_input:"Die Box hat eine Frage:",capability:"Die Box kam hier nicht weiter:",transient:"Die Aufgabe hakt:"};function xe(){var E,a;const{data:t,isLoading:s}=ee(),d=_(),{showAlert:g,dialogElement:m}=q(),[h,u]=c.useState(""),[j,A]=c.useState(!1),[N,y]=c.useState({}),[p,k]=c.useState(null),[w,v]=c.useState({}),l=(t==null?void 0:t.items)??[],b=()=>d.invalidateQueries({queryKey:J.ideen}),D=p!==null&&(((E=t==null?void 0:t.items.find(r=>r.id===p))==null?void 0:E.status)==="triage"||((a=t==null?void 0:t.items.find(r=>r.id===p))==null?void 0:a.status)==="running"),i=te(p??"",D);async function x(){const r=h.trim();if(!(r.length<3||j)){A(!0);try{const n=r.length>160?r.slice(0,157)+"…":r;await S("/api/ideen",{method:"POST",body:JSON.stringify({titel:n,notiz:r.length>160?r:""})}),u(""),b()}catch(n){g("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{A(!1)}}}async function B(r){y(n=>({...n,[r]:!0}));try{await S("/api/ideen/archivieren",{method:"POST",body:JSON.stringify({id:r})}),b()}catch(n){g("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{y(n=>({...n,[r]:!1}))}}async function L(r){const n=(w[r]||"").trim();if(!(n.length<1||N["ans:"+r])){y(o=>({...o,["ans:"+r]:!0}));try{await S("/api/ideen/antwort",{method:"POST",body:JSON.stringify({id:r,antwort:n})}),v(o=>({...o,[r]:""})),b()}catch(o){g("Das hat nicht geklappt",String((o==null?void 0:o.message)||o))}finally{y(o=>({...o,["ans:"+r]:!1}))}}}return t&&!t.available?null:e.jsxs("section",{className:"space-y-3",children:[e.jsxs(O,{icon:ae,children:["Ideen-Queue",t?` — ${t.offen} offen`:""]}),e.jsxs("div",{className:"mc-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:h,onChange:r=>u(r.target.value),onKeyDown:r=>{r.key==="Enter"&&x()},placeholder:"Neue Idee — einfach hinschreiben, die Box macht den Rest",className:"h-9 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:x,disabled:j||h.trim().length<3,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-3 text-[11px] font-bold uppercase tracking-wide text-primary transition-all hover:bg-primary/20 cursor-pointer disabled:opacity-50",children:[j?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(G,{className:"h-3.5 w-3.5"})," In die Queue"]})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Eine Queue, alle Türen: hier, per Telegram oder im Gespräch mit Lucy. Die Box arbeitet Ideen selbst aus und baut — Code-Ergebnisse erscheinen als Karte unter „Fertige Patches“, nichts davon geht ohne deinen Klick live. Nur reine Doku-Bagatellen zieht die Box nachts selbst ein (mit Fangnetz und Meldung)."}),s&&e.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"})," Queue wird geladen …"]}),(t==null?void 0:t.fehler)&&e.jsx("p",{className:"text-xs text-amber-300",children:"Queue gerade nicht lesbar — neuer Versuch läuft."}),l.length>0&&e.jsx("ul",{className:"space-y-1.5",children:l.map(r=>{var H;const n=ue[r.status]??{label:r.status,cls:"text-muted-foreground border-border/60 bg-background/30"},o=p===r.id,P=r.status==="triage"||r.status==="running"||r.status==="done",W=r.status==="blocked",$=!!N["ans:"+r.id];return e.jsxs("li",{className:C("flex flex-col gap-2 rounded-xl border bg-background/30 px-3 py-2",W?"border-red-500/30":"border-border/40"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:C("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(f,{className:"h-3 w-3 animate-spin"}),n.label]}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-foreground",title:r.body||r.titel,children:r.titel}),e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(V,{className:"h-3 w-3"}),M(r.erstellt)]}),(r.status==="done"||W)&&e.jsx("button",{disabled:!!N[r.id],onClick:()=>B(r.id),title:W?"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:N[r.id]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})}),P&&e.jsx("button",{onClick:()=>k(o?null:r.id),title:r.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:o?e.jsx(R,{className:"h-3.5 w-3.5"}):e.jsx(F,{className:"h-3.5 w-3.5"})})]}),W&&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(re,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-300"}),e.jsxs("span",{children:[e.jsx("b",{children:he[r.frage_kind||""]??"Die Aufgabe hängt und wartet auf dich:"})," ",r.frage?e.jsx("span",{className:"text-foreground/90",children:r.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:w[r.id]||"",onChange:T=>v(Z=>({...Z,[r.id]:T.target.value})),onKeyDown:T=>{T.key==="Enter"&&L(r.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:()=>L(r.id),disabled:$||(w[r.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:[$?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(G,{className:"h-3.5 w-3.5"})," Antworten & weiter"]})]})]}),o&&P&&r.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:D&&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"}):(H=i.data)!=null&&H.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"})})}),o&&r.status==="done"&&e.jsx(ge,{id:r.id})]},r.id)})}),(t==null?void 0:t.available)&&!s&&l.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground/70",children:"Queue ist leer — wirf der Box eine Idee zu."})]}),m]})}function ge({id:t}){const[s,d]=c.useState(null),[g,m]=c.useState(!1);c.useEffect(()=>{let u=!1;return S(`/api/ideen/${t}/ergebnis`).then(j=>{u||d(j)}).catch(()=>{u||m(!0)}),()=>{u=!0}},[t]);const h=s?s.summary||s.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(ne,{className:"h-3 w-3"})," Ergebnis des Workers"]}),g?e.jsx("p",{className:"text-[10px] text-red-400",children:"Ergebnis nicht ladbar"}):s===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Wird geladen …"}):h?e.jsx("p",{className:"max-h-64 overflow-y-auto whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:h}):e.jsx("p",{className:"text-[10px] text-muted-foreground italic",children:"Der Worker hat keine Abschluss-Zusammenfassung hinterlassen (ältere Karte oder Protokollverstoß)."})]})})}function me({item:t}){const s=t.status;if(!s)return null;const d=ce[s.state];return d?e.jsxs("span",{className:C("flex items-center gap-1.5 rounded-lg border px-2 py-0.5 text-[10px] font-bold",d.cls),title:s.detail,children:[d.spin&&e.jsx(f,{className:"h-3 w-3 animate-spin"}),d.label]}):null}function pe({item:t,busy:s,onAct:d,showConfirm:g}){var B,L,E;const[m,h]=c.useState(!1),[u,j]=c.useState(null),[A,N]=c.useState(!1),[y,p]=c.useState(!1),[k,w]=c.useState(""),v=((B=t.status)==null?void 0:B.state)==="laeuft"||((L=t.status)==null?void 0:L.state)==="rollback",l=((E=t.status)==null?void 0:E.state)==="eingespielt",b=t.repo??"mc2",D=b==="lucy",i=`${b}:${t.branch}`;async function x(){const a=!m;if(h(a),a&&u===null){N(!0);try{const r=await S(`/api/auftragsbuch/diff?branch=${encodeURIComponent(t.branch)}&repo=${b}`);j(r.diff+(r.truncated?` -… (gekürzt)`:""))}catch(r){j(`(Diff nicht ladbar: ${(r==null?void 0:r.message)||r})`)}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:oe[t.kind]??t.kind}),D&&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(V,{className:"h-3 w-3"}),M(t.ts)]}),e.jsx(me,{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:C("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(U,{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]})]})]}),!v&&!l&&e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[!t.verwaist&&e.jsxs("button",{disabled:!!s[i],onClick:()=>g("Vorschlag annehmen?",D?`'${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?` + */const ie=I("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"}]]),oe={wartung:"Werkstatt",orchestrator:"Orchestrator",doku:"Doku",feature:"Feature"},ce={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 P(t){return t?new Date(t*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"—"}function we(){const{data:t,isLoading:s,refetch:d,isFetching:g}=X(),m=_(),{showAlert:h,showConfirm:u,dialogElement:j}=q(),[A,N]=c.useState({}),y=()=>m.invalidateQueries({queryKey:J.auftragsbuch});async function b(l,p,D,i){N(x=>({...x,[l]:!0}));try{await S(p,{method:"POST",body:JSON.stringify(D)}),i&&h("Erledigt",i),y()}catch(x){h("Das hat nicht geklappt",String((x==null?void 0:x.message)||x))}finally{N(x=>({...x,[l]:!1}))}}const k=(t==null?void 0:t.items)??[],w=(t==null?void 0:t.skill_kandidaten)??[],v=k.length===0&&w.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:()=>d(),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(Y,{className:C("h-3.5 w-3.5",g&&"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."}),s&&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(f,{className:"h-4 w-4 animate-spin"})," Vorschläge werden geladen …"]}),(t==null?void 0:t.available)&&v&&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(Q,{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."})]})]}),e.jsx(xe,{}),k.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(V,{icon:de,children:["Fertige Patches (",k.length,")"]}),k.map(l=>e.jsx(be,{item:l,busy:A,onAct:b,showConfirm:u},`${l.repo??"mc2"}:${l.branch}`))]}),w.length>0&&e.jsxs("section",{className:"space-y-3",children:[e.jsxs(V,{icon:U,children:["Skill-Kandidaten aus dem Traum (",w.length,")"]}),w.map(l=>e.jsx(pe,{k:l,busy:A,onAct:b,showConfirm:u},l.file))]}),j]})}function V({icon:t,children:s}){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(t,{className:"h-3.5 w-3.5"})," ",s]})}const ue={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:"wartet",cls:"text-muted-foreground border-border/60 bg-background/30"},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"}},he={needs_input:"Die Box hat eine Frage:",capability:"Die Box kam hier nicht weiter:",transient:"Die Aufgabe hakt:"};function xe(){var E,a;const{data:t,isLoading:s}=ee(),d=_(),{showAlert:g,dialogElement:m}=q(),[h,u]=c.useState(""),[j,A]=c.useState(!1),[N,y]=c.useState({}),[b,k]=c.useState(null),[w,v]=c.useState({}),l=(t==null?void 0:t.items)??[],p=()=>d.invalidateQueries({queryKey:J.ideen}),D=b!==null&&(((E=t==null?void 0:t.items.find(r=>r.id===b))==null?void 0:E.status)==="triage"||((a=t==null?void 0:t.items.find(r=>r.id===b))==null?void 0:a.status)==="running"),i=te(b??"",D);async function x(){const r=h.trim();if(!(r.length<3||j)){A(!0);try{const n=r.length>160?r.slice(0,157)+"…":r;await S("/api/ideen",{method:"POST",body:JSON.stringify({titel:n,notiz:r.length>160?r:""})}),u(""),p()}catch(n){g("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{A(!1)}}}async function B(r){y(n=>({...n,[r]:!0}));try{await S("/api/ideen/archivieren",{method:"POST",body:JSON.stringify({id:r})}),p()}catch(n){g("Das hat nicht geklappt",String((n==null?void 0:n.message)||n))}finally{y(n=>({...n,[r]:!1}))}}async function L(r){const n=(w[r]||"").trim();if(!(n.length<1||N["ans:"+r])){y(o=>({...o,["ans:"+r]:!0}));try{await S("/api/ideen/antwort",{method:"POST",body:JSON.stringify({id:r,antwort:n})}),v(o=>({...o,[r]:""})),p()}catch(o){g("Das hat nicht geklappt",String((o==null?void 0:o.message)||o))}finally{y(o=>({...o,["ans:"+r]:!1}))}}}return t&&!t.available?null:e.jsxs("section",{className:"space-y-3",children:[e.jsxs(V,{icon:ae,children:["Ideen-Queue",t?` — ${t.offen} offen`:""]}),e.jsxs("div",{className:"mc-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:h,onChange:r=>u(r.target.value),onKeyDown:r=>{r.key==="Enter"&&x()},placeholder:"Neue Idee — einfach hinschreiben, die Box macht den Rest",className:"h-9 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:x,disabled:j||h.trim().length<3,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-3 text-[11px] font-bold uppercase tracking-wide text-primary transition-all hover:bg-primary/20 cursor-pointer disabled:opacity-50",children:[j?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(G,{className:"h-3.5 w-3.5"})," In die Queue"]})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Eine Queue, alle Türen: hier, per Telegram oder im Gespräch mit Lucy. Die Box arbeitet Ideen selbst aus und baut — Code-Ergebnisse erscheinen als Karte unter „Fertige Patches“, nichts davon geht ohne deinen Klick live. Nur reine Doku-Bagatellen zieht die Box nachts selbst ein (mit Fangnetz und Meldung)."}),s&&e.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"})," Queue wird geladen …"]}),(t==null?void 0:t.fehler)&&e.jsx("p",{className:"text-xs text-amber-300",children:"Queue gerade nicht lesbar — neuer Versuch läuft."}),l.length>0&&e.jsx("ul",{className:"space-y-1.5",children:l.map(r=>{var H;const n=ue[r.status]??{label:r.status,cls:"text-muted-foreground border-border/60 bg-background/30"},o=b===r.id,$=r.status==="triage"||r.status==="running"||r.status==="done",W=r.status==="blocked",F=!!N["ans:"+r.id];return e.jsxs("li",{className:C("flex flex-col gap-2 rounded-xl border bg-background/30 px-3 py-2",W?"border-red-500/30":"border-border/40"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:C("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(f,{className:"h-3 w-3 animate-spin"}),n.label]}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-foreground",title:r.body||r.titel,children:r.titel}),e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(O,{className:"h-3 w-3"}),P(r.erstellt)]}),(r.status==="done"||W)&&e.jsx("button",{disabled:!!N[r.id],onClick:()=>B(r.id),title:W?"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:N[r.id]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})}),$&&e.jsx("button",{onClick:()=>k(o?null:r.id),title:r.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:o?e.jsx(M,{className:"h-3.5 w-3.5"}):e.jsx(R,{className:"h-3.5 w-3.5"})})]}),W&&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(re,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-300"}),e.jsxs("span",{children:[e.jsx("b",{children:he[r.frage_kind||""]??"Die Aufgabe hängt und wartet auf dich:"})," ",r.frage?e.jsx("span",{className:"text-foreground/90",children:r.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:w[r.id]||"",onChange:T=>v(Z=>({...Z,[r.id]:T.target.value})),onKeyDown:T=>{T.key==="Enter"&&L(r.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:()=>L(r.id),disabled:F||(w[r.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:[F?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(G,{className:"h-3.5 w-3.5"})," Antworten & weiter"]})]})]}),o&&$&&r.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:D&&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"}):(H=i.data)!=null&&H.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"})})}),o&&r.status==="done"&&e.jsx(ge,{id:r.id})]},r.id)})}),(t==null?void 0:t.available)&&!s&&l.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground/70",children:"Queue ist leer — wirf der Box eine Idee zu."})]}),m]})}function ge({id:t}){const[s,d]=c.useState(null),[g,m]=c.useState(!1);c.useEffect(()=>{let u=!1;return S(`/api/ideen/${t}/ergebnis`).then(j=>{u||d(j)}).catch(()=>{u||m(!0)}),()=>{u=!0}},[t]);const h=s?s.summary||s.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(ne,{className:"h-3 w-3"})," Ergebnis des Workers"]}),g?e.jsx("p",{className:"text-[10px] text-red-400",children:"Ergebnis nicht ladbar"}):s===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Wird geladen …"}):h?e.jsx("p",{className:"max-h-64 overflow-y-auto whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:h}):e.jsx("p",{className:"text-[10px] text-muted-foreground italic",children:"Der Worker hat keine Abschluss-Zusammenfassung hinterlassen (ältere Karte oder Protokollverstoß)."})]})})}function me({item:t}){const s=t.status;if(!s)return null;const d=ce[s.state];return d?e.jsxs("span",{className:C("flex items-center gap-1.5 rounded-lg border px-2 py-0.5 text-[10px] font-bold",d.cls),title:s.detail,children:[d.spin&&e.jsx(f,{className:"h-3 w-3 animate-spin"}),d.label]}):null}function be({item:t,busy:s,onAct:d,showConfirm:g}){var B,L,E;const[m,h]=c.useState(!1),[u,j]=c.useState(null),[A,N]=c.useState(!1),[y,b]=c.useState(!1),[k,w]=c.useState(""),v=((B=t.status)==null?void 0:B.state)==="laeuft"||((L=t.status)==null?void 0:L.state)==="rollback",l=((E=t.status)==null?void 0:E.state)==="eingespielt",p=t.repo??"mc2",D=p==="lucy",i=`${p}:${t.branch}`;async function x(){const a=!m;if(h(a),a&&u===null){N(!0);try{const r=await S(`/api/auftragsbuch/diff?branch=${encodeURIComponent(t.branch)}&repo=${p}`);j(r.diff+(r.truncated?` +… (gekürzt)`:""))}catch(r){j(`(Diff nicht ladbar: ${(r==null?void 0:r.message)||r})`)}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:oe[t.kind]??t.kind}),D&&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(O,{className:"h-3 w-3"}),P(t.ts)]}),e.jsx(me,{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:C("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(U,{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]})]})]}),!v&&!l&&e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[!t.verwaist&&e.jsxs("button",{disabled:!!s[i],onClick:()=>g("Vorschlag annehmen?",D?`'${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.`:""}`,()=>d(i,"/api/auftragsbuch/annehmen",{branch:t.branch,repo:b})),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:[s[i]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"})," Annehmen"]}),e.jsxs("button",{disabled:!!s["ab:"+i],onClick:()=>p(a=>!a),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:[s["ab:"+i]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})," Ablehnen"]})]})]}),y&&!v&&!l&&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:a=>w(a.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:!!s["ab:"+i],onClick:()=>{p(!1),d("ab:"+i,"/api/auftragsbuch/ablehnen",{branch:t.branch,repo:b,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(z,{className:"h-3.5 w-3.5"})," Wirklich ablehnen"]}),e.jsx("button",{onClick:()=>p(!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&&(v||!l)&&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(K,{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(K,{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(K,{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(K,{className:"h-3 w-3"})," Frontend ohne Build"]})]}),e.jsxs("div",{children:[e.jsxs("button",{onClick:x,className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[m?e.jsx(R,{className:"h-3.5 w-3.5"}):e.jsx(F,{className:"h-3.5 w-3.5"}),e.jsx(le,{className:"h-3.5 w-3.5"})," ",t.files.length," Datei",t.files.length===1?"":"en"," — Änderungen ansehen"]}),m&&e.jsxs("div",{className:"mt-2 space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[t.files.map(a=>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:C(a.status.startsWith("A")&&"text-emerald-400",a.status.startsWith("D")&&"text-red-400",a.status.startsWith("M")&&"text-sky-400"),children:a.status})," ",a.path]},a.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:A?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:(u??"").split(` -`).map((a,r)=>e.jsx("span",{className:C("block",a.startsWith("+")&&!a.startsWith("+++")&&"text-emerald-300/90 bg-emerald-500/5",a.startsWith("-")&&!a.startsWith("---")&&"text-red-300/90 bg-red-500/5",(a.startsWith("@@")||a.startsWith("diff "))&&"text-sky-300/90"),children:a||" "},r))})})]})]})]})}function be({k:t,busy:s,onAct:d,showConfirm:g}){const[m,h]=c.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(V,{className:"h-3 w-3"}),M(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:!!s["sk:"+t.file],onClick:()=>g("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.`,()=>d("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:[s["sk:"+t.file]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ie,{className:"h-3.5 w-3.5"})," Beauftragen"]}),e.jsxs("button",{disabled:!!s["skab:"+t.file],onClick:()=>g("Kandidat verwerfen?",`'${t.title}' wandert ins Archiv des Wissens-Vaults (verworfen/). Der Traum schlägt ihn nicht erneut vor.`,()=>d("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:[s["skab:"+t.file]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})," Verwerfen"]})]})]}),e.jsxs("button",{onClick:()=>h(u=>!u),className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[m?e.jsx(R,{className:"h-3.5 w-3.5"}):e.jsx(F,{className:"h-3.5 w-3.5"}),e.jsx(se,{className:"h-3.5 w-3.5"})," Vorschlag lesen"]}),m&&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{we as AuftragsbuchView}; +Achtung: Enthält Frontend-Quelltext ohne gebautes Bundle — die Oberfläche bleibt alt, bis am PC gebaut wird.`:""}`,()=>d(i,"/api/auftragsbuch/annehmen",{branch:t.branch,repo:p})),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:[s[i]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"})," Annehmen"]}),e.jsxs("button",{disabled:!!s["ab:"+i],onClick:()=>b(a=>!a),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:[s["ab:"+i]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})," Ablehnen"]})]})]}),y&&!v&&!l&&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:a=>w(a.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:!!s["ab:"+i],onClick:()=>{b(!1),d("ab:"+i,"/api/auftragsbuch/ablehnen",{branch:t.branch,repo:p,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(z,{className:"h-3.5 w-3.5"})," Wirklich ablehnen"]}),e.jsx("button",{onClick:()=>b(!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&&(v||!l)&&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(K,{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(K,{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(K,{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(K,{className:"h-3 w-3"})," Frontend ohne Build"]})]}),e.jsxs("div",{children:[e.jsxs("button",{onClick:x,className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[m?e.jsx(M,{className:"h-3.5 w-3.5"}):e.jsx(R,{className:"h-3.5 w-3.5"}),e.jsx(le,{className:"h-3.5 w-3.5"})," ",t.files.length," Datei",t.files.length===1?"":"en"," — Änderungen ansehen"]}),m&&e.jsxs("div",{className:"mt-2 space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[t.files.map(a=>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:C(a.status.startsWith("A")&&"text-emerald-400",a.status.startsWith("D")&&"text-red-400",a.status.startsWith("M")&&"text-sky-400"),children:a.status})," ",a.path]},a.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:A?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:(u??"").split(` +`).map((a,r)=>e.jsx("span",{className:C("block",a.startsWith("+")&&!a.startsWith("+++")&&"text-emerald-300/90 bg-emerald-500/5",a.startsWith("-")&&!a.startsWith("---")&&"text-red-300/90 bg-red-500/5",(a.startsWith("@@")||a.startsWith("diff "))&&"text-sky-300/90"),children:a||" "},r))})})]})]})]})}function pe({k:t,busy:s,onAct:d,showConfirm:g}){const[m,h]=c.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(O,{className:"h-3 w-3"}),P(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:!!s["sk:"+t.file],onClick:()=>g("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.`,()=>d("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:[s["sk:"+t.file]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ie,{className:"h-3.5 w-3.5"})," Beauftragen"]}),e.jsxs("button",{disabled:!!s["skab:"+t.file],onClick:()=>g("Kandidat verwerfen?",`'${t.title}' wandert ins Archiv des Wissens-Vaults (verworfen/). Der Traum schlägt ihn nicht erneut vor.`,()=>d("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:[s["skab:"+t.file]?e.jsx(f,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(z,{className:"h-3.5 w-3.5"})," Verwerfen"]})]})]}),e.jsxs("button",{onClick:()=>h(u=>!u),className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[m?e.jsx(M,{className:"h-3.5 w-3.5"}):e.jsx(R,{className:"h-3.5 w-3.5"}),e.jsx(se,{className:"h-3.5 w-3.5"})," Vorschlag lesen"]}),m&&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{we as AuftragsbuchView}; diff --git a/frontend/dist/assets/ChronikView-B6sTtHYw.js b/frontend/dist/assets/ChronikView-B6sTtHYw.js new file mode 100644 index 0000000..3bf5d0c --- /dev/null +++ b/frontend/dist/assets/ChronikView-B6sTtHYw.js @@ -0,0 +1,21 @@ +import{c as m,ae as S,r as c,j as e,af as z,L as g,U as M,ag as C,ad as D,ah as A,ai as B,aj as Z,e as E,ak as L,u as R,b as q,g as k,q as T}from"./index-B7xWfxHK.js";import{R as j}from"./rotate-ccw-CzU0JCRt.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 y=m("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 U=m("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 $=m("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 H=m("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:Z,label:"Health-Wächter",cls:"text-red-300 bg-red-500/10 border-red-500/25"},alarm:{icon:B,label:"Alarm",cls:"text-red-200 bg-red-500/15 border-red-500/40"},notify:{icon:U,label:"Meldung",cls:"text-sky-300 bg-sky-500/10 border-sky-500/25"},"chef-gutachter":{icon:A,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:D,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:C,label:"Erinnerung",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},traum:{icon:M,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]=c.useState(!0),b=c.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(z,{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(g,{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,h=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:E("flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-bold",l.cls),children:[e.jsx(h,{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}=L(),u=R(),{showAlert:i,showConfirm:x,dialogElement:b}=q(),[o,n]=c.useState(null),[a,l]=c.useState(!1),[h,v]=c.useState(!1),d=(r==null?void 0:r.backups)??[],p=h?d:d.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:T.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(g,{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)&&d.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".'}),p.length>0&&e.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:p.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(g,{className:"h-3 w-3 animate-spin"}):e.jsx(j,{className:"h-3 w-3"})," Zurück"]})]},t.file))}),d.length>4&&!h&&e.jsxs("button",{onClick:()=>v(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:["Alle ",d.length," Snapshots anzeigen"]}),b]})}export{G as ChronikView}; diff --git a/frontend/dist/assets/ChronikView-CyCTki5t.js b/frontend/dist/assets/ChronikView-CyCTki5t.js deleted file mode 100644 index cf5f302..0000000 --- a/frontend/dist/assets/ChronikView-CyCTki5t.js +++ /dev/null @@ -1,26 +0,0 @@ -import{c as h,aa as S,r as c,j as e,ab as z,L as g,N as M,ac as C,a9 as D,ad as A,ae as B,af as Z,e as E,ag as L,u as q,b as R,g as k,q as T}from"./index-DgTg5QdX.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 y=h("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 $=h("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 U=h("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 H=h("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"}]]);/** - * @license lucide-react v0.460.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=h("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"}]]),O={sentry:{icon:Z,label:"Health-Wächter",cls:"text-red-300 bg-red-500/10 border-red-500/25"},alarm:{icon:B,label:"Alarm",cls:"text-red-200 bg-red-500/15 border-red-500/40"},notify:{icon:$,label:"Meldung",cls:"text-sky-300 bg-sky-500/10 border-sky-500/25"},"chef-gutachter":{icon:A,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:D,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:C,label:"Erinnerung",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},traum:{icon:M,label:"Traum",cls:"text-violet-300 bg-violet-500/10 border-violet-500/25"}},P={icon:U,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 _(){const{data:r=[],isLoading:u}=S(),[i,x]=c.useState(!0),b=c.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(z,{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(g,{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:E("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}=L(),u=q(),{showAlert:i,showConfirm:x,dialogElement:b}=R(),[o,n]=c.useState(null),[a,l]=c.useState(!1),[m,v]=c.useState(!1),d=(r==null?void 0:r.backups)??[],p=m?d:d.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:T.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(g,{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)&&d.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".'}),p.length>0&&e.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:p.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(g,{className:"h-3 w-3 animate-spin"}):e.jsx(j,{className:"h-3 w-3"})," Zurück"]})]},t.file))}),d.length>4&&!m&&e.jsxs("button",{onClick:()=>v(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:["Alle ",d.length," Snapshots anzeigen"]}),b]})}export{_ as ChronikView}; diff --git a/frontend/dist/assets/ConnectView-Bu447O4H.js b/frontend/dist/assets/ConnectView-CGf1mhQH.js similarity index 93% rename from frontend/dist/assets/ConnectView-Bu447O4H.js rename to frontend/dist/assets/ConnectView-CGf1mhQH.js index c53055c..05f31c1 100644 --- a/frontend/dist/assets/ConnectView-Bu447O4H.js +++ b/frontend/dist/assets/ConnectView-CGf1mhQH.js @@ -1,4 +1,4 @@ -import{c as v,r as c,z as D,A as I,j as e,D as h,s as B,B as H,w as z,F as E,e as M,L as F,G as T,C as K}from"./index-DgTg5QdX.js";import{F as O}from"./folder-open-COXogvYR.js";import{C as R}from"./circle-x-ADu9dwvS.js";import{C as V}from"./copy-BdEWnHoH.js";/** +import{c as v,r as c,I,J as A,j as e,K as h,x as B,B as H,D as z,M as E,e as M,L as F,N as T,C as K}from"./index-B7xWfxHK.js";import{F as O}from"./folder-open-DvJJWdCX.js";import{C as R}from"./circle-x-CL-55we_.js";import{C as V}from"./copy-C9YTwYNu.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -13,4 +13,4 @@ import{c as v,r as c,z as D,A as I,j as e,D as h,s as B,B as H,w as z,F as E,e a * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const b=v("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 j({line:r,loading:o}){return o||!r?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(F,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):r.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"})," ",r.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"})," ",r.detail]})}function N({tool:r,fileName:o,accent:n,copied:x,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:o})}),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:[x?e.jsx(K,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(V,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:x?"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",n==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:r.snippet})})]})}function J(){const[r,o]=c.useState(localStorage.getItem("mc_host")||"192.168.178.151"),[n,x]=c.useState(localStorage.getItem("mc_mcp_path")||""),[d,G]=c.useState("kilo"),[y,P]=c.useState(!1),[p,w]=c.useState(null),k=new URLSearchParams({host:r});n&&k.set("mcp_path",n);const{data:t,error:C}=D(k.toString()),{data:a,isLoading:g}=I(),S=C?String(C):"";function _(s){o(s),s&&localStorage.setItem("mc_host",s)}function A(s){x(s),localStorage.setItem("mc_mcp_path",s)}const l=t==null?void 0:t.tools.hermes_desktop,i=t==null?void 0:t.tools[d];async function u(s,m){m&&(await navigator.clipboard.writeText(m),w(s),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(b,{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(h,{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(j,{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 · Lanes chat / coding"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(h,{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(H,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(j,{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(h,{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(b,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(j,{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."]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 p-5 mc-card",children:[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(W,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse"]}),e.jsx("input",{value:r,onChange:s=>_(s.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.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"})," Lokaler MCP-Scriptpfad",e.jsx("span",{className:"text-violet-400/70 normal-case font-semibold tracking-normal",children:"(nur Leitung 2)"})]}),e.jsx("input",{value:n,onChange:s=>A(s.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"})]})]}),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]}),t&&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(b,{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(f,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(N,{tool:l,fileName:L.hermes_desktop,accent:"teal",copied:p==="desktop",onCopy:()=>u("desktop",l.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>P(s=>!s),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(z,{className:"h-4 w-4"}):e.jsx(E,{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(t.tools).filter(([s])=>s!=="hermes_desktop").map(([s,m])=>e.jsx("button",{onClick:()=>G(s),className:M("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",d===s?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:m.label},s))}),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(f,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:i.note})]}),e.jsx(N,{tool:i,fileName:L[d]||"config.json",accent:"teal",copied:p==="model",onCopy:()=>u("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(f,{className:"h-4 w-4 text-violet-400 shrink-0 mt-0.5"}),e.jsx("span",{children:t.memory.note})]}),e.jsx(N,{tool:t.memory,fileName:"mcp.json",accent:"violet",copied:p==="memory",onCopy:()=>u("memory",t.memory.snippet)})]})]})]})]})]})}export{J as ConnectView}; + */const b=v("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 j({line:r,loading:o}){return o||!r?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(F,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):r.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"})," ",r.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"})," ",r.detail]})}function N({tool:r,fileName:o,accent:n,copied:x,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:o})}),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:[x?e.jsx(K,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(V,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:x?"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",n==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:r.snippet})})]})}function q(){const[r,o]=c.useState(localStorage.getItem("mc_host")||"192.168.178.151"),[n,x]=c.useState(localStorage.getItem("mc_mcp_path")||""),[d,P]=c.useState("kilo"),[y,_]=c.useState(!1),[p,w]=c.useState(null),k=new URLSearchParams({host:r});n&&k.set("mcp_path",n);const{data:t,error:C}=I(k.toString()),{data:a,isLoading:g}=A(),S=C?String(C):"";function G(s){o(s),s&&localStorage.setItem("mc_host",s)}function D(s){x(s),localStorage.setItem("mc_mcp_path",s)}const l=t==null?void 0:t.tools.hermes_desktop,i=t==null?void 0:t.tools[d];async function u(s,m){m&&(await navigator.clipboard.writeText(m),w(s),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(b,{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(h,{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(j,{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 · Lanes chat / coding"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(h,{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(H,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(j,{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(h,{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(b,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(j,{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."]})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 p-5 mc-card",children:[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(W,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse"]}),e.jsx("input",{value:r,onChange:s=>G(s.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.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"})," Lokaler MCP-Scriptpfad",e.jsx("span",{className:"text-violet-400/70 normal-case font-semibold tracking-normal",children:"(nur Leitung 2)"})]}),e.jsx("input",{value:n,onChange:s=>D(s.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"})]})]}),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]}),t&&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(b,{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(f,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(N,{tool:l,fileName:L.hermes_desktop,accent:"teal",copied:p==="desktop",onCopy:()=>u("desktop",l.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>_(s=>!s),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(z,{className:"h-4 w-4"}):e.jsx(E,{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(t.tools).filter(([s])=>s!=="hermes_desktop").map(([s,m])=>e.jsx("button",{onClick:()=>P(s),className:M("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",d===s?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:m.label},s))}),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(f,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:i.note})]}),e.jsx(N,{tool:i,fileName:L[d]||"config.json",accent:"teal",copied:p==="model",onCopy:()=>u("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(f,{className:"h-4 w-4 text-violet-400 shrink-0 mt-0.5"}),e.jsx("span",{children:t.memory.note})]}),e.jsx(N,{tool:t.memory,fileName:"mcp.json",accent:"violet",copied:p==="memory",onCopy:()=>u("memory",t.memory.snippet)})]})]})]})]})]})}export{q as ConnectView}; diff --git a/frontend/dist/assets/EigenlebenView-IypEJ0BF.js b/frontend/dist/assets/EigenlebenView-UQ_NPXNm.js similarity index 95% rename from frontend/dist/assets/EigenlebenView-IypEJ0BF.js rename to frontend/dist/assets/EigenlebenView-UQ_NPXNm.js index 44d6011..48d28da 100644 --- a/frontend/dist/assets/EigenlebenView-IypEJ0BF.js +++ b/frontend/dist/assets/EigenlebenView-UQ_NPXNm.js @@ -1,6 +1,6 @@ -import{c as h,ah as b,r as o,j as e,L as g,ai as f,Z as j,N as k,e as i,w as N,F as w,G as v,g as y}from"./index-DgTg5QdX.js";import{B as z}from"./book-open-lYTKOEmg.js";import{C as S}from"./circle-x-ADu9dwvS.js";/** +import{c as h,al as b,r as o,j as e,L as g,am as f,a2 as j,U as k,e as i,D as N,M as v,N as w,g as y}from"./index-B7xWfxHK.js";import{B as z}from"./book-open-AAGxczYd.js";import{C as S}from"./circle-x-CL-55we_.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 u=h("CircleDot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),D={selbst:{icon:k,cls:"text-emerald-300 bg-emerald-500/10 border-emerald-500/30",erklaerung:"Diese Skills hat sich die Box selbst geschrieben — niemand hat sie ihr installiert."},repo:{icon:j,cls:"text-primary bg-primary/10 border-primary/25",erklaerung:"Von uns gebaut und über das Repo installiert (deploy/skills)."},bundled:{icon:f,cls:"text-muted-foreground bg-background/40 border-border/50",erklaerung:"Kamen mit Hermes mit — Standard-Ausstattung."}};function C(t){if(!t)return"—";const n=new Date(t);return isNaN(n.getTime())?"—":n.toLocaleDateString("de-DE",{day:"2-digit",month:"2-digit",year:"2-digit"})}function I(){const{data:t,isLoading:n}=b(),d=o.useMemo(()=>{const s=[];for(const r of(t==null?void 0:t.skills)??[]){const a=s[s.length-1];a&&a.herkunft===r.herkunft?a.skills.push(r):s.push({herkunft:r.herkunft,label:r.herkunft_label,skills:[r]})}return s},[t]);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:"Skills"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Die Fähigkeiten deiner Box — mit Herkunft, Nutzung und ob der Agent sie gerade laden kann (aktiv/inaktiv). Das ist derselbe Skill-Satz, mit dem Lucy spricht und die Nacht-Worker arbeiten. Darunter: was aus den Vorschlägen der Box wurde."})]}),n&&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(g,{className:"h-4 w-4 animate-spin"})," Wird geladen …"]}),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:"Die Skills liegen auf der Box (~/.hermes/skills) — im lokalen Dev-Modus nicht verfügbar."}),(t==null?void 0:t.available)&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[e.jsx(c,{label:"Skills gesamt",wert:t.skills.length}),e.jsx(c,{label:"davon selbst erstellt",wert:t.selbst_erstellt,betone:!0}),e.jsx(c,{label:"Vorschläge angenommen",wert:t.bilanz.angenommen}),e.jsx(c,{label:"Vorschläge abgelehnt",wert:t.bilanz.abgelehnt})]}),d.map(s=>{const r=D[s.herkunft],a=r.icon;return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:i("inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-[11px] font-bold",r.cls),children:[e.jsx(a,{className:"h-3.5 w-3.5"})," ",s.label," · ",s.skills.length]}),e.jsx("p",{className:"mt-1 text-[11px] text-muted-foreground/70",children:r.erklaerung})]}),e.jsx("div",{className:"grid gap-2 md:grid-cols-2",children:s.skills.map(l=>e.jsx(B,{skill:l},l.id))})]},s.herkunft)}),e.jsx(L,{eintraege:t.bilanz.eintraege})]})]})}function c({label:t,wert:n,betone:d}){return e.jsxs("div",{className:i("rounded-xl border p-3",d?"border-emerald-500/30 bg-emerald-500/5":"border-border/50 bg-card/40"),children:[e.jsx("p",{className:i("font-space text-xl font-bold",d?"text-emerald-300":"text-foreground"),children:n}),e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:t})]})}function B({skill:t}){const[n,d]=o.useState(!1),[s,r]=o.useState(null),[a,l]=o.useState(!1);async function x(){const m=!n;if(d(m),m&&s===null&&!a){l(!0);try{const p=await y(`/api/eigenleben/skill/${encodeURIComponent(t.id)}`);r(p.text)}catch{r("(Konnte den Skill-Text nicht laden.)")}finally{l(!1)}}}return e.jsxs("div",{className:"rounded-xl border border-border/50 bg-card/40 p-3 backdrop-blur-sm",children:[e.jsxs("button",{onClick:x,className:"flex w-full items-start gap-2 text-left cursor-pointer",children:[n?e.jsx(N,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}):e.jsx(w,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-foreground",children:t.name}),t.aktiv===!0&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-bold text-emerald-300",title:"Der Agent kann diesen Skill laden und nutzen.",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"})," aktiv"]}),t.aktiv===!1&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-zinc-500/10 px-1.5 py-0.5 text-[9px] font-bold text-zinc-400",title:"Der Agent kann diesen Skill gerade NICHT laden — Plattform passt nicht (z. B. Apple-Skills auf Linux), Voraussetzungen fehlen oder per Config abgeschaltet.",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-zinc-500"})," inaktiv"]}),t.kategorie&&e.jsx("span",{className:"rounded bg-background/60 px-1.5 py-0.5 text-[9px] font-semibold text-muted-foreground/80",children:t.kategorie}),t.genutzt>0&&e.jsxs("span",{className:"rounded bg-primary/10 px-1.5 py-0.5 text-[9px] font-bold text-primary",title:`zuletzt: ${C(t.zuletzt_genutzt)}`,children:[t.genutzt,"× genutzt"]}),t.status!=="active"&&e.jsx("span",{className:"rounded bg-amber-500/10 px-1.5 py-0.5 text-[9px] font-bold text-amber-300",children:t.status})]}),e.jsx("p",{className:i("mt-1 text-xs leading-relaxed text-foreground/75",!n&&"line-clamp-2"),children:t.beschreibung||"(keine Beschreibung im Skill hinterlegt)"})]})]}),n&&e.jsxs("div",{className:"mt-2 border-t border-border/40 pt-2",children:[e.jsxs("p",{className:"mb-1.5 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/60",children:[e.jsx(z,{className:"h-3 w-3"})," So funktioniert er (SKILL.md)",t.autor?` · Autor: ${t.autor}`:""]}),a?e.jsx(g,{className:"h-4 w-4 animate-spin text-muted-foreground"}):e.jsx("pre",{className:"max-h-80 overflow-y-auto whitespace-pre-wrap rounded-lg bg-background/50 p-2.5 font-mono text-[10.5px] leading-relaxed text-foreground/80 scrollbar-thin",children:s??""})]})]})}function L({eintraege:t}){const[n,d]=o.useState(!1),s=n?t:t.slice(0,12);return e.jsxs("section",{className:"space-y-3",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(u,{className:"h-3.5 w-3.5"})," Vorschlags-Bilanz — was die Box vorschlug und was daraus wurde"]}),t.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-6 text-center text-xs text-muted-foreground",children:"Noch keine Vorschläge verbucht. Sobald die Box etwas vorschlägt und du klickst, steht die Entscheidung hier."}),e.jsx("div",{className:"space-y-2",children:s.map((r,a)=>{const l=r.art==="angenommen",x=l?v:r.art==="abgelehnt"?S:u;return e.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-border/50 bg-card/40 p-3",children:[e.jsx(x,{className:i("mt-0.5 h-4 w-4 shrink-0",l?"text-emerald-400":r.art==="abgelehnt"?"text-red-400":"text-amber-300")}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"font-mono text-xs font-semibold text-foreground",children:r.titel}),e.jsx("span",{className:i("rounded px-1.5 py-0.5 text-[9px] font-bold uppercase",l?"bg-emerald-500/10 text-emerald-300":r.art==="abgelehnt"?"bg-red-500/10 text-red-300":"bg-amber-500/10 text-amber-300"),children:r.art}),e.jsx("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground/60",children:r.ts?new Date(r.ts*1e3).toLocaleDateString("de-DE",{day:"2-digit",month:"2-digit"}):""})]}),r.detail&&e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-foreground/70",children:r.detail})]})]},`${r.titel}-${r.ts}-${a}`)})}),!n&&t.length>12&&e.jsxs("button",{onClick:()=>d(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground cursor-pointer",children:["Alle ",t.length," Einträge anzeigen"]})]})}export{I as EigenlebenView}; + */const u=h("CircleDot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]),D={selbst:{icon:k,cls:"text-emerald-300 bg-emerald-500/10 border-emerald-500/30",erklaerung:"Diese Skills hat sich die Box selbst geschrieben — niemand hat sie ihr installiert."},repo:{icon:j,cls:"text-primary bg-primary/10 border-primary/25",erklaerung:"Von uns gebaut und über das Repo installiert (deploy/skills)."},bundled:{icon:f,cls:"text-muted-foreground bg-background/40 border-border/50",erklaerung:"Kamen mit Hermes mit — Standard-Ausstattung."}};function C(t){if(!t)return"—";const n=new Date(t);return isNaN(n.getTime())?"—":n.toLocaleDateString("de-DE",{day:"2-digit",month:"2-digit",year:"2-digit"})}function I(){const{data:t,isLoading:n}=b(),d=o.useMemo(()=>{const s=[];for(const r of(t==null?void 0:t.skills)??[]){const a=s[s.length-1];a&&a.herkunft===r.herkunft?a.skills.push(r):s.push({herkunft:r.herkunft,label:r.herkunft_label,skills:[r]})}return s},[t]);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:"Skills"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Die Fähigkeiten deiner Box — mit Herkunft, Nutzung und ob der Agent sie gerade laden kann (aktiv/inaktiv). Das ist derselbe Skill-Satz, mit dem Lucy spricht und die Nacht-Worker arbeiten. Darunter: was aus den Vorschlägen der Box wurde."})]}),n&&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(g,{className:"h-4 w-4 animate-spin"})," Wird geladen …"]}),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:"Die Skills liegen auf der Box (~/.hermes/skills) — im lokalen Dev-Modus nicht verfügbar."}),(t==null?void 0:t.available)&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[e.jsx(c,{label:"Skills gesamt",wert:t.skills.length}),e.jsx(c,{label:"davon selbst erstellt",wert:t.selbst_erstellt,betone:!0}),e.jsx(c,{label:"Vorschläge angenommen",wert:t.bilanz.angenommen}),e.jsx(c,{label:"Vorschläge abgelehnt",wert:t.bilanz.abgelehnt})]}),d.map(s=>{const r=D[s.herkunft],a=r.icon;return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:i("inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-[11px] font-bold",r.cls),children:[e.jsx(a,{className:"h-3.5 w-3.5"})," ",s.label," · ",s.skills.length]}),e.jsx("p",{className:"mt-1 text-[11px] text-muted-foreground/70",children:r.erklaerung})]}),e.jsx("div",{className:"grid gap-2 md:grid-cols-2",children:s.skills.map(l=>e.jsx(B,{skill:l},l.id))})]},s.herkunft)}),e.jsx(L,{eintraege:t.bilanz.eintraege})]})]})}function c({label:t,wert:n,betone:d}){return e.jsxs("div",{className:i("rounded-xl border p-3",d?"border-emerald-500/30 bg-emerald-500/5":"border-border/50 bg-card/40"),children:[e.jsx("p",{className:i("font-space text-xl font-bold",d?"text-emerald-300":"text-foreground"),children:n}),e.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/70",children:t})]})}function B({skill:t}){const[n,d]=o.useState(!1),[s,r]=o.useState(null),[a,l]=o.useState(!1);async function x(){const m=!n;if(d(m),m&&s===null&&!a){l(!0);try{const p=await y(`/api/eigenleben/skill/${encodeURIComponent(t.id)}`);r(p.text)}catch{r("(Konnte den Skill-Text nicht laden.)")}finally{l(!1)}}}return e.jsxs("div",{className:"rounded-xl border border-border/50 bg-card/40 p-3 backdrop-blur-sm",children:[e.jsxs("button",{onClick:x,className:"flex w-full items-start gap-2 text-left cursor-pointer",children:[n?e.jsx(N,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}):e.jsx(v,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-foreground",children:t.name}),t.aktiv===!0&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-bold text-emerald-300",title:"Der Agent kann diesen Skill laden und nutzen.",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"})," aktiv"]}),t.aktiv===!1&&e.jsxs("span",{className:"flex items-center gap-1 rounded bg-zinc-500/10 px-1.5 py-0.5 text-[9px] font-bold text-zinc-400",title:"Der Agent kann diesen Skill gerade NICHT laden — Plattform passt nicht (z. B. Apple-Skills auf Linux), Voraussetzungen fehlen oder per Config abgeschaltet.",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-zinc-500"})," inaktiv"]}),t.kategorie&&e.jsx("span",{className:"rounded bg-background/60 px-1.5 py-0.5 text-[9px] font-semibold text-muted-foreground/80",children:t.kategorie}),t.genutzt>0&&e.jsxs("span",{className:"rounded bg-primary/10 px-1.5 py-0.5 text-[9px] font-bold text-primary",title:`zuletzt: ${C(t.zuletzt_genutzt)}`,children:[t.genutzt,"× genutzt"]}),t.status!=="active"&&e.jsx("span",{className:"rounded bg-amber-500/10 px-1.5 py-0.5 text-[9px] font-bold text-amber-300",children:t.status})]}),e.jsx("p",{className:i("mt-1 text-xs leading-relaxed text-foreground/75",!n&&"line-clamp-2"),children:t.beschreibung||"(keine Beschreibung im Skill hinterlegt)"})]})]}),n&&e.jsxs("div",{className:"mt-2 border-t border-border/40 pt-2",children:[e.jsxs("p",{className:"mb-1.5 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground/60",children:[e.jsx(z,{className:"h-3 w-3"})," So funktioniert er (SKILL.md)",t.autor?` · Autor: ${t.autor}`:""]}),a?e.jsx(g,{className:"h-4 w-4 animate-spin text-muted-foreground"}):e.jsx("pre",{className:"max-h-80 overflow-y-auto whitespace-pre-wrap rounded-lg bg-background/50 p-2.5 font-mono text-[10.5px] leading-relaxed text-foreground/80 scrollbar-thin",children:s??""})]})]})}function L({eintraege:t}){const[n,d]=o.useState(!1),s=n?t:t.slice(0,12);return e.jsxs("section",{className:"space-y-3",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(u,{className:"h-3.5 w-3.5"})," Vorschlags-Bilanz — was die Box vorschlug und was daraus wurde"]}),t.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-6 text-center text-xs text-muted-foreground",children:"Noch keine Vorschläge verbucht. Sobald die Box etwas vorschlägt und du klickst, steht die Entscheidung hier."}),e.jsx("div",{className:"space-y-2",children:s.map((r,a)=>{const l=r.art==="angenommen",x=l?w:r.art==="abgelehnt"?S:u;return e.jsxs("div",{className:"flex items-start gap-2.5 rounded-xl border border-border/50 bg-card/40 p-3",children:[e.jsx(x,{className:i("mt-0.5 h-4 w-4 shrink-0",l?"text-emerald-400":r.art==="abgelehnt"?"text-red-400":"text-amber-300")}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"font-mono text-xs font-semibold text-foreground",children:r.titel}),e.jsx("span",{className:i("rounded px-1.5 py-0.5 text-[9px] font-bold uppercase",l?"bg-emerald-500/10 text-emerald-300":r.art==="abgelehnt"?"bg-red-500/10 text-red-300":"bg-amber-500/10 text-amber-300"),children:r.art}),e.jsx("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground/60",children:r.ts?new Date(r.ts*1e3).toLocaleDateString("de-DE",{day:"2-digit",month:"2-digit"}):""})]}),r.detail&&e.jsx("p",{className:"mt-1 text-xs leading-relaxed text-foreground/70",children:r.detail})]})]},`${r.titel}-${r.ts}-${a}`)})}),!n&&t.length>12&&e.jsxs("button",{onClick:()=>d(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground cursor-pointer",children:["Alle ",t.length," Einträge anzeigen"]})]})}export{I as EigenlebenView}; diff --git a/frontend/dist/assets/GraphView-D56vUGn7.js b/frontend/dist/assets/GraphView-C0DJwV6w.js similarity index 99% rename from frontend/dist/assets/GraphView-D56vUGn7.js rename to frontend/dist/assets/GraphView-C0DJwV6w.js index c8ad1f9..7a92f36 100644 --- a/frontend/dist/assets/GraphView-D56vUGn7.js +++ b/frontend/dist/assets/GraphView-C0DJwV6w.js @@ -1,4 +1,4 @@ -import{am as Lt,r as V,an as Zi,ao as Gn,ap as Vn,aq as Ki,ar as Qi,as as Wn,at as Bn,au as Ji,j as lt,a5 as to}from"./index-DgTg5QdX.js";function eo(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var Xn=180/Math.PI,un={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Vr(e,n,r,i,o,a){var s,u,f;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(f=e*r+n*i)&&(r-=e*f,i-=n*f),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,f/=u),e*i180?c+=360:c-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Lt(l,c)})):c&&h.push(o(h)+"rotate("+c+i)}function u(l,c,h,d){l!==c?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Lt(l,c)}):c&&h.push(o(h)+"skewX("+c+i)}function f(l,c,h,d,p,y){if(l!==h||c!==d){var v=p.push(o(p)+"scale(",null,",",null,")");y.push({i:v-4,x:Lt(l,h)},{i:v-2,x:Lt(c,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,c){var h=[],d=[];return l=e(l),c=e(c),a(l.translateX,l.translateY,c.translateX,c.translateY,h,d),s(l.rotate,c.rotate,h,d),u(l.skewX,c.skewX,h,d),f(l.scaleX,l.scaleY,c.scaleX,c.scaleY,h,d),l=c=null,function(p){for(var y=-1,v=d.length,_;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);r180?c+=360:c-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Lt(l,c)})):c&&h.push(o(h)+"rotate("+c+i)}function u(l,c,h,d){l!==c?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Lt(l,c)}):c&&h.push(o(h)+"skewX("+c+i)}function f(l,c,h,d,p,y){if(l!==h||c!==d){var v=p.push(o(p)+"scale(",null,",",null,")");y.push({i:v-4,x:Lt(l,h)},{i:v-2,x:Lt(c,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,c){var h=[],d=[];return l=e(l),c=e(c),a(l.translateX,l.translateY,c.translateX,c.translateY,h,d),s(l.rotate,c.rotate,h,d),u(l.skewX,c.skewX,h,d),f(l.scaleX,l.scaleY,c.scaleX,c.scaleY,h,d),l=c=null,function(p){for(var y=-1,v=d.length,_;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);ra,methodNames:i=[],initPropNames:o=[]}={}){return V.forwardRef((a,s)=>{const u=V.useRef(),f=V.useMemo(()=>{const h=Object.fromEntries(o.filter(d=>a.hasOwnProperty(d)).map(d=>[d,a[d]]));return e(h)},[]);Kn(()=>{f(r(u.current))},V.useLayoutEffect),Kn(()=>f._destructor instanceof Function?f._destructor:void 0);const l=V.useCallback((h,...d)=>f[h]instanceof Function?f[h](...d):void 0,[f]),c=V.useRef({});return Object.keys(xo(a,[...i,...o])).filter(h=>c.current[h]!==a[h]).forEach(h=>l(h,a[h])),c.current=a,V.useImperativeHandle(s,()=>Object.fromEntries(i.map(h=>[h,(...d)=>l(h,...d)])),[l]),Zi.createElement(n,{ref:u})})}function Kn(e,n=V.useEffect){const r=V.useRef(),i=V.useRef(!1),o=V.useRef(!1),[a,s]=V.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 fn="http://www.w3.org/1999/xhtml";const Qn={svg:"http://www.w3.org/2000/svg",xhtml:fn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function qe(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Qn.hasOwnProperty(n)?{space:Qn[n],local:e}:e}function ko(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===fn&&n.documentElement.namespaceURI===fn?n.createElement(e):n.createElementNS(r,e)}}function Co(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Xr(e){var n=qe(e);return(n.local?Co:ko)(n)}function Ao(){}function An(e){return e==null?Ao:function(){return this.querySelector(e)}}function So(e){typeof e!="function"&&(e=An(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o=T&&(T=w+1);!(b=_[T])&&++T=0;)(s=i[o])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function Ko(e){e||(e=Qo);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 Jo(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ta(){return Array.from(this)}function ea(){for(var e=this._groups,n=0,r=e.length;n1?this.each((n==null?ha:typeof n=="function"?pa:da)(e,n,r??"")):Bt(this.node(),e)}function Bt(e,n){return e.style.getPropertyValue(n)||Jr(e).getComputedStyle(e,null).getPropertyValue(n)}function ya(e){return function(){delete this[e]}}function _a(e,n){return function(){this[e]=n}}function va(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function ma(e,n){return arguments.length>1?this.each((n==null?ya:typeof n=="function"?va:_a)(e,n)):this.node()[e]}function ti(e){return e.trim().split(/^|\s+/)}function Sn(e){return e.classList||new ei(e)}function ei(e){this._node=e,this._names=ti(e.getAttribute("class")||"")}ei.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 ni(e,n){for(var r=Sn(e),i=-1,o=n.length;++i=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function Ba(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}})}Ae.prototype=ve.prototype={constructor:Ae,on:function(e,n){var r=this._,i=rs(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 cn(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:a,x:s,y:u,dx:f,dy:l,dispatch:c}){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:f,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}cn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function as(e){return!e.ctrlKey&&!e.button}function ss(){return this.parentNode}function us(e,n){return n??{x:e.x,y:e.y}}function ls(){return navigator.maxTouchPoints||"ontouchstart"in this}function fs(){var e=as,n=ss,r=us,i=ls,o={},a=ve("start","drag","end"),s=0,u,f,l,c,h=0;function d(x){x.on("mousedown.drag",p).filter(i).on("touchstart.drag",_).on("touchmove.drag",g,os).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(x,b){if(!(c||!e.call(this,x,b))){var C=T(this,n.call(this,x,b),x,b,"mouse");C&&(pt(x.view).on("mousemove.drag",y,pe).on("mouseup.drag",v,pe),ai(x.view),Ze(x),l=!1,u=x.clientX,f=x.clientY,C("start",x))}}function y(x){if(Wt(x),!l){var b=x.clientX-u,C=x.clientY-f;l=b*b+C*C>h}o.mouse("drag",x)}function v(x){pt(x.view).on("mousemove.drag mouseup.drag",null),si(x.view,l),Wt(x),o.mouse("end",x)}function _(x,b){if(e.call(this,x,b)){var C=x.changedTouches,S=n.call(this,x,b),M=C.length,N,P;for(N=0;N=0&&e._call.call(void 0,n),e=e._next;--Xt}function tr(){Ht=(Re=ge.now())+Ge,Xt=ae=0;try{hs()}finally{Xt=0,ps(),Ht=0}}function ds(){var e=ge.now(),n=e-Re;n>ui&&(Ge-=n,Re=e)}function ps(){for(var e,n=ze,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:ze=r);se=e,hn(i)}function hn(e){if(!Xt){ae&&(ae=clearTimeout(ae));var n=e-Ht;n>24?(e<1/0&&(ae=setTimeout(tr,e-ge.now()-Ge)),Qt&&(Qt=clearInterval(Qt))):(Qt||(Re=ge.now(),Qt=setInterval(ds,ui)),Xt=1,li(tr))}}function er(e,n,r){var i=new Ne;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var gs=ve("start","end","cancel","interrupt"),ys=[],fi=0,nr=1,dn=2,Se=3,rr=4,pn=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;_s(e,r,{name:n,index:i,group:o,on:gs,tween:ys,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:fi})}function Pn(e,n){var r=vt(e,n);if(r.state>fi)throw new Error("too late; already scheduled");return r}function Ct(e,n){var r=vt(e,n);if(r.state>Se)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 _s(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=Mn(a,0,r.time);function a(l){r.state=nr,r.timer.restart(s,r.delay,r.time),r.delay<=l&&s(l-r.delay)}function s(l){var c,h,d,p;if(r.state!==nr)return f();for(c in i)if(p=i[c],p.name===r.name){if(p.state===Se)return er(s);p.state===rr?(p.state=Te,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete i[c]):+cdn&&i.state=0&&(n=n.slice(0,r)),!n||n==="start"})}function Bs(e,n,r){var i,o,a=Ws(n)?Pn:Ct;return function(){var s=a(this,e),u=s.on;u!==i&&(o=(i=u).copy()).on(n,r),s.on=o}}function Xs(e,n){var r=this._id;return arguments.length<2?vt(this.node(),r).on.on(e):this.each(Bs(r,e,n))}function Ys(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function Zs(){return this.on("end.remove",Ys(this._id))}function Ks(e){var n=this._name,r=this._id;typeof e!="function"&&(e=An(e));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s()=>e;function wu(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 En=new Et(1,0,0);mt.prototype=Et.prototype;function mt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return En;return e.__zoom}function Ke(e){e.stopImmediatePropagation()}function Jt(e){e.preventDefault(),e.stopImmediatePropagation()}function ku(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Cu(){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 ir(){return this.__zoom||En}function Au(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Su(){return navigator.maxTouchPoints||"ontouchstart"in this}function Tu(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 Mu(){var e=ku,n=Cu,r=Tu,i=Au,o=Su,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,f=lo,l=ve("start","zoom","end"),c,h,d,p=500,y=150,v=0,_=10;function g(A){A.property("__zoom",ir).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",R).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(A,I,E,k){var O=A.selection?A.selection():A;O.property("__zoom",ir),A!==O?b(A,I,E,k):O.interrupt().each(function(){C(this,arguments).event(k).start().zoom(null,typeof I=="function"?I.apply(this,arguments):I).end()})},g.scaleBy=function(A,I,E,k){g.scaleTo(A,function(){var O=this.__zoom.k,j=typeof I=="function"?I.apply(this,arguments):I;return O*j},E,k)},g.scaleTo=function(A,I,E,k){g.transform(A,function(){var O=n.apply(this,arguments),j=this.__zoom,$=E==null?x(O):typeof E=="function"?E.apply(this,arguments):E,U=j.invert($),F=typeof I=="function"?I.apply(this,arguments):I;return r(T(w(j,F),$,U),O,s)},E,k)},g.translateBy=function(A,I,E,k){g.transform(A,function(){return r(this.__zoom.translate(typeof I=="function"?I.apply(this,arguments):I,typeof E=="function"?E.apply(this,arguments):E),n.apply(this,arguments),s)},null,k)},g.translateTo=function(A,I,E,k,O){g.transform(A,function(){var j=n.apply(this,arguments),$=this.__zoom,U=k==null?x(j):typeof k=="function"?k.apply(this,arguments):k;return r(En.translate(U[0],U[1]).scale($.k).translate(typeof I=="function"?-I.apply(this,arguments):-I,typeof E=="function"?-E.apply(this,arguments):-E),j,s)},k,O)};function w(A,I){return I=Math.max(a[0],Math.min(a[1],I)),I===A.k?A:new Et(I,A.x,A.y)}function T(A,I,E){var k=I[0]-E[0]*A.k,O=I[1]-E[1]*A.k;return k===A.x&&O===A.y?A:new Et(A.k,k,O)}function x(A){return[(+A[0][0]+ +A[1][0])/2,(+A[0][1]+ +A[1][1])/2]}function b(A,I,E,k){A.on("start.zoom",function(){C(this,arguments).event(k).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(k).end()}).tween("zoom",function(){var O=this,j=arguments,$=C(O,j).event(k),U=n.apply(O,j),F=E==null?x(U):typeof E=="function"?E.apply(O,j):E,q=Math.max(U[1][0]-U[0][0],U[1][1]-U[0][1]),G=O.__zoom,B=typeof I=="function"?I.apply(O,j):I,J=f(G.invert(F).concat(q/G.k),B.invert(F).concat(q/B.k));return function(Y){if(Y===1)Y=B;else{var at=J(Y),tt=q/at[2];Y=new Et(tt,F[0]-at[0]*tt,F[1]-at[1]*tt)}$.zoom(null,Y)}})}function C(A,I,E){return!E&&A.__zooming||new S(A,I)}function S(A,I){this.that=A,this.args=I,this.active=0,this.sourceEvent=null,this.extent=n.apply(A,I),this.taps=0}S.prototype={event:function(A){return A&&(this.sourceEvent=A),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(A,I){return this.mouse&&A!=="mouse"&&(this.mouse[1]=I.invert(this.mouse[0])),this.touch0&&A!=="touch"&&(this.touch0[1]=I.invert(this.touch0[0])),this.touch1&&A!=="touch"&&(this.touch1[1]=I.invert(this.touch1[0])),this.that.__zoom=I,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(A){var I=pt(this.that).datum();l.call(A,this.that,new wu(A,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:l}),I)}};function M(A,...I){if(!e.apply(this,arguments))return;var E=C(this,I).event(A),k=this.__zoom,O=Math.max(a[0],Math.min(a[1],k.k*Math.pow(2,i.apply(this,arguments)))),j=bt(A);if(E.wheel)(E.mouse[0][0]!==j[0]||E.mouse[0][1]!==j[1])&&(E.mouse[1]=k.invert(E.mouse[0]=j)),clearTimeout(E.wheel);else{if(k.k===O)return;E.mouse=[j,k.invert(j)],Me(this),E.start()}Jt(A),E.wheel=setTimeout($,y),E.zoom("mouse",r(T(w(k,O),E.mouse[0],E.mouse[1]),E.extent,s));function $(){E.wheel=null,E.end()}}function N(A,...I){if(d||!e.apply(this,arguments))return;var E=A.currentTarget,k=C(this,I,!0).event(A),O=pt(A.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",q,!0),j=bt(A,E),$=A.clientX,U=A.clientY;ai(A.view),Ke(A),k.mouse=[j,this.__zoom.invert(j)],Me(this),k.start();function F(G){if(Jt(G),!k.moved){var B=G.clientX-$,J=G.clientY-U;k.moved=B*B+J*J>v}k.event(G).zoom("mouse",r(T(k.that.__zoom,k.mouse[0]=bt(G,E),k.mouse[1]),k.extent,s))}function q(G){O.on("mousemove.zoom mouseup.zoom",null),si(G.view,k.moved),Jt(G),k.event(G).end()}}function P(A,...I){if(e.apply(this,arguments)){var E=this.__zoom,k=bt(A.changedTouches?A.changedTouches[0]:A,this),O=E.invert(k),j=E.k*(A.shiftKey?.5:2),$=r(T(w(E,j),k,O),n.apply(this,I),s);Jt(A),u>0?pt(this).transition().duration(u).call(b,$,k,A):pt(this).call(g.transform,$,k,A)}}function R(A,...I){if(e.apply(this,arguments)){var E=A.touches,k=E.length,O=C(this,I,A.changedTouches.length===k).event(A),j,$,U,F;for(Ke(A),$=0;$=n||S<0||h&&M>=a}function g(){var C=Qe();if(_(C))return w(C);u=setTimeout(g,v(C))}function w(C){return u=void 0,d&&i?p(C):(i=o=void 0,s)}function T(){u!==void 0&&clearTimeout(u),l=0,i=f=o=u=void 0}function x(){return u===void 0?s:w(Qe())}function b(){var C=Qe(),S=_(C);if(i=arguments,o=this,f=C,S){if(u===void 0)return y(f);if(h)return clearTimeout(u),u=setTimeout(g,n),p(f)}return u===void 0&&(u=setTimeout(g,n)),s}return b.cancel=T,b.flush=x,b}var tl="Expected a function";function el(e,n,r){var i=!0,o=!0;if(typeof e!="function")throw new TypeError(tl);return De(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),yi(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()},_i=(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}}},vi=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),yn=new _i,ur=(function(){function e(n,r){r===void 0&&(r=yn),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=gn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=vi.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],f=Array.isArray(u),l=f?"array":typeof u,c=!f&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(c){var h=i[s];if(h.length===0)continue;for(var d=[u],p=0,y=h.length;p"u"||a)&&(r[s]=u),f||(r[s]*=1),c?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 _=Math.trunc(u/f),g=u-_*f,w=Math.min(g/i._duration,1);return w===0&&u===i._duration?1:w},h=c(),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)/f)+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+=f*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var y=0,v=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 H(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(bl,arguments)},brighten:function(){return this._applyModification(xl,arguments)},darken:function(){return this._applyModification(wl,arguments)},desaturate:function(){return this._applyModification(_l,arguments)},saturate:function(){return this._applyModification(vl,arguments)},greyscale:function(){return this._applyModification(ml,arguments)},spin:function(){return this._applyModification(kl,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Sl,arguments)},complement:function(){return this._applyCombination(Cl,arguments)},monochromatic:function(){return this._applyCombination(Tl,arguments)},splitcomplement:function(){return this._applyCombination(Al,arguments)},triad:function(){return this._applyCombination(pr,[3])},tetrad:function(){return this._applyCombination(pr,[4])}};H.fromRatio=function(e,n){if(je(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 H(e,n)};function hl(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=zl(e)),je(e)=="object"&&(Tt(e.r)&&Tt(e.g)&&Tt(e.b)?(n=dl(e.r,e.g,e.b),s=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Tt(e.h)&&Tt(e.s)&&Tt(e.v)?(i=le(e.s),o=le(e.v),n=gl(e.h,i,o),s=!0,u="hsv"):Tt(e.h)&&Tt(e.s)&&Tt(e.l)&&(i=le(e.s),a=le(e.l),n=pl(e.h,i,a),s=!0,u="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=mi(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 dl(e,n,r){return{r:K(e,255)*255,g:K(n,255)*255,b:K(r,255)*255}}function fr(e,n,r){e=K(e,255),n=K(n,255),r=K(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 f=i-o;switch(s=u>.5?f/(2-i-o):f/(i+o),i){case e:a=(n-r)/f+(n1&&(h-=1),h<1/6?l+(c-l)*6*h:h<1/2?c:h<2/3?l+(c-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,f=2*r-u;i=s(f,u,e+1/3),o=s(f,u,e),a=s(f,u,e-1/3)}return{r:i*255,g:o*255,b:a*255}}function cr(e,n,r){e=K(e,255),n=K(n,255),r=K(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=i,f=i-o;if(s=i===0?0:f/i,i==o)a=0;else{switch(i){case e:a=(n-r)/f+(n>1)+720)%360;--n;)i.h=(i.h+o)%360,a.push(H(i));return a}function Tl(e,n){n=n||6;for(var r=H(e).toHsv(),i=r.h,o=r.s,a=r.v,s=[],u=1/n;n--;)s.push(H({h:i,s:o,v:a})),a=(a+u)%1;return s}H.mix=function(e,n,r){r=r===0?0:r||50;var i=H(e).toRgb(),o=H(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 H(s)};H.readability=function(e,n){var r=H(e),i=H(n);return(Math.max(r.getLuminance(),i.getLuminance())+.05)/(Math.min(r.getLuminance(),i.getLuminance())+.05)};H.isReadable=function(e,n,r){var i=H.readability(e,n),o,a;switch(a=!1,o=Rl(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};H.mostReadable=function(e,n,r){var i=null,o=0,a,s,u,f;r=r||{},s=r.includeFallbackColors,u=r.level,f=r.size;for(var l=0;lo&&(o=a,i=H(n[l]));return H.isReadable(e,i,{level:u,size:f})||!s?i:(r.includeFallbackColors=!1,H.mostReadable(e,["#fff","#000"],r))};var _n=H.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"},Ml=H.hexNames=Pl(_n);function Pl(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function mi(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function K(e,n){Ol(e)&&(e="100%");var r=El(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 We(e){return Math.min(1,Math.max(0,e))}function ft(e){return parseInt(e,16)}function Ol(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function El(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 bi(e){return Math.round(parseFloat(e)*255).toString(16)}function gr(e){return ft(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 Tt(e){return!!yt.CSS_UNIT.exec(e)}function zl(e){e=e.replace(fl,"").replace(cl,"").toLowerCase();var n=!1;if(_n[e])e=_n[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:ft(r[1]),g:ft(r[2]),b:ft(r[3]),a:gr(r[4]),format:n?"name":"hex8"}:(r=yt.hex6.exec(e))?{r:ft(r[1]),g:ft(r[2]),b:ft(r[3]),format:n?"name":"hex"}:(r=yt.hex4.exec(e))?{r:ft(r[1]+""+r[1]),g:ft(r[2]+""+r[2]),b:ft(r[3]+""+r[3]),a:gr(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=yt.hex3.exec(e))?{r:ft(r[1]+""+r[1]),g:ft(r[2]+""+r[2]),b:ft(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function Rl(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 vn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);re.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(D,{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 J(){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(w,{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(N,{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:B,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 ",e.jsx(s,{children:"model:auto"}),'-Idee: du sagst „auto", das Gateway wählt das passende Modell je nach Anfrage 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:"auto"}),", 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:`--- + */const F=p("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:u}){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:u?.9:.45,strokeWidth:u?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,u=(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 ${u} ${g}, ${u} ${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(D,{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 J(){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(w,{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(N,{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:B,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:"auto"}),", Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:I,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:L,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(G,{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(T,{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(N,{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(w,{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{J as GuideView}; +...`}),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:"chat"})," / ",e.jsx(s,{children:"coding"}),", Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:I,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:L,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(G,{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(T,{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(N,{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(w,{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{J as GuideView}; diff --git a/frontend/dist/assets/KonsoleView-BCeS8iMC.js b/frontend/dist/assets/KonsoleView-BCeS8iMC.js deleted file mode 100644 index 0a0b3f3..0000000 --- a/frontend/dist/assets/KonsoleView-BCeS8iMC.js +++ /dev/null @@ -1 +0,0 @@ -import{R as l,V as o,j as e,e as a,U as n,T as d,$ as i}from"./index-DgTg5QdX.js";function c(){const{data:s}=l(),r=s!=null&&s.box_console_url?o(s.box_console_url):void 0,t=s==null?void 0:s.box_console_reachable;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:a("h-2 w-2 rounded-full",t?"bg-emerald-500 animate-pulse":"bg-amber-500")}),t?"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(n,{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:[t===!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(d,{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 ",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),"-Dienst (ttyd) läuft nicht. Auf der Box: ",e.jsx("code",{className:"font-mono",children:"systemctl --user restart box-console"}),"."]})]}),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(i,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{c as KonsoleView}; diff --git a/frontend/dist/assets/KonsoleView-DSiLxOtM.js b/frontend/dist/assets/KonsoleView-DSiLxOtM.js new file mode 100644 index 0000000..9060a69 --- /dev/null +++ b/frontend/dist/assets/KonsoleView-DSiLxOtM.js @@ -0,0 +1 @@ +import{Y as l,$ as o,j as e,e as a,Z as n,T as d,a3 as i}from"./index-B7xWfxHK.js";function c(){const{data:s}=l(),r=s!=null&&s.box_console_url?o(s.box_console_url):void 0,t=s==null?void 0:s.box_console_reachable;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:a("h-2 w-2 rounded-full",t?"bg-emerald-500 animate-pulse":"bg-amber-500")}),t?"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(n,{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:[t===!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(d,{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 ",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),"-Dienst (ttyd) läuft nicht. Auf der Box: ",e.jsx("code",{className:"font-mono",children:"systemctl --user restart box-console"}),"."]})]}),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(i,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{c as KonsoleView}; diff --git a/frontend/dist/assets/MemoryView-CetGZ7-5.js b/frontend/dist/assets/MemoryView-C9JTzWkR.js similarity index 88% rename from frontend/dist/assets/MemoryView-CetGZ7-5.js rename to frontend/dist/assets/MemoryView-C9JTzWkR.js index 6fbe4c1..5616690 100644 --- a/frontend/dist/assets/MemoryView-CetGZ7-5.js +++ b/frontend/dist/assets/MemoryView-C9JTzWkR.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GraphView-D56vUGn7.js","assets/index-DgTg5QdX.js","assets/index-Cq_BqGQa.css"])))=>i.map(i=>d[i]); -var ke=Object.defineProperty;var ve=(d,i,c)=>i in d?ke(d,i,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[i]=c;var U=(d,i,c)=>ve(d,typeof i!="symbol"?i+"":i,c);import{c as h,r as s,j as e,u as Ne,b as Se,I as J,J as Ce,C as W,K as Ee,S as Me,M as ze,N as _,e as x,O as _e,Q as Oe,X,v as Z,_ as Te,g as j}from"./index-DgTg5QdX.js";import{C as Y}from"./copy-BdEWnHoH.js";import{S as Ae}from"./send-o-W_9aTj.js";import{B as De}from"./book-open-lYTKOEmg.js";/** +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GraphView-C0DJwV6w.js","assets/index-B7xWfxHK.js","assets/index-BH760w1h.css"])))=>i.map(i=>d[i]); +var ke=Object.defineProperty;var ve=(d,i,c)=>i in d?ke(d,i,{enumerable:!0,configurable:!0,writable:!0,value:c}):d[i]=c;var Q=(d,i,c)=>ve(d,typeof i!="symbol"?i+"":i,c);import{c as h,r as s,j as e,u as Ne,b as Se,O as W,Q as Ce,C as J,R as Ee,S as Me,P as ze,U as _,e as x,V as _e,W as Ae,X,A as Z,_ as Oe,g as j}from"./index-B7xWfxHK.js";import{C as Y}from"./copy-C9YTwYNu.js";import{S as Te}from"./send-CR5xzVO1.js";import{B as De}from"./book-open-AAGxczYd.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -9,17 +9,17 @@ var ke=Object.defineProperty;var ve=(d,i,c)=>i in d?ke(d,i,{enumerable:!0,config * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ie=h("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** + */const Le=h("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Le=h("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + */const Fe=h("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Fe=h("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** + */const Ie=h("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -34,13 +34,13 @@ var ke=Object.defineProperty;var ve=(d,i,c)=>i in d?ke(d,i,{enumerable:!0,config * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Re=h("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);class re extends s.Component{constructor(){super(...arguments);U(this,"state",{error:null})}static getDerivedStateFromError(c){return{error:c}}render(){return this.state.error?e.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:[e.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),e.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const te=s.lazy(()=>Te(()=>import("./GraphView-D56vUGn7.js"),__vite__mapDeps([0,1,2])).then(d=>({default:d.GraphView}))),k=["identity","knowledge","rules","events"],se=new Set(["auto","agent","hermes"]),O={identity:{label:"Identität",icon:Re,bg:"bg-cyan-500/10",text:"text-cyan-400"},knowledge:{label:"Wissen",icon:Oe,bg:"bg-indigo-500/10",text:"text-indigo-400"},rules:{label:"Regeln",icon:Pe,bg:"bg-violet-500/10",text:"text-violet-400"},events:{label:"Ereignisse",icon:_e,bg:"bg-amber-500/10",text:"text-amber-400"}},ne={label:"Gedächtnis",icon:De,text:"text-muted-foreground"},Ve={identity:"border-l-cyan-500/80",knowledge:"border-l-indigo-500/80",rules:"border-l-violet-500/80",events:"border-l-amber-500/80"},ae=`Hi Hermes! Lass uns ein kurzes Onboarding machen, damit du dich künftig an mich erinnerst. Stell mir nacheinander ein paar kurze Fragen zu: + */const Re=h("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);class re extends s.Component{constructor(){super(...arguments);Q(this,"state",{error:null})}static getDerivedStateFromError(c){return{error:c}}render(){return this.state.error?e.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:[e.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),e.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const te=s.lazy(()=>Oe(()=>import("./GraphView-C0DJwV6w.js"),__vite__mapDeps([0,1,2])).then(d=>({default:d.GraphView}))),k=["identity","knowledge","rules","events"],se=new Set(["auto","agent","hermes"]),A={identity:{label:"Identität",icon:Re,bg:"bg-cyan-500/10",text:"text-cyan-400"},knowledge:{label:"Wissen",icon:Ae,bg:"bg-indigo-500/10",text:"text-indigo-400"},rules:{label:"Regeln",icon:Pe,bg:"bg-violet-500/10",text:"text-violet-400"},events:{label:"Ereignisse",icon:_e,bg:"bg-amber-500/10",text:"text-amber-400"}},ne={label:"Gedächtnis",icon:De,text:"text-muted-foreground"},Ve={identity:"border-l-cyan-500/80",knowledge:"border-l-indigo-500/80",rules:"border-l-violet-500/80",events:"border-l-amber-500/80"},ae=`Hi Hermes! Lass uns ein kurzes Onboarding machen, damit du dich künftig an mich erinnerst. Stell mir nacheinander ein paar kurze Fragen zu: 1) wer ich bin und woran ich gerade arbeite, 2) wie ich angesprochen werden möchte, 3) meine bevorzugten Tools, Sprachen und Arbeitsweise, 4) wichtige Regeln/Konventionen, die du beachten sollst, 5) meine Infrastruktur (Server, Dienste – ohne Geheimnisse). -Frag immer nur eine sache auf einmal und fass am Ende zusammen, was du dir gemerkt hast.`;function Qe(){const[d,i]=s.useState(""),[c,oe]=s.useState(""),[v,T]=s.useState(""),[A,le]=s.useState("knowledge"),[de,D]=s.useState(!1),[G,I]=s.useState(!1),[N,ie]=s.useState("liste"),[ce,w]=s.useState(!1),[p,g]=s.useState(null),[m,L]=s.useState(!1),[F,ue]=s.useState(()=>typeof window<"u"&&window.matchMedia("(min-width: 1024px)").matches);s.useEffect(()=>{const r=window.matchMedia("(min-width: 1024px)"),t=n=>ue(n.matches);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},[]);const P=Ne(),{showAlert:f,showConfirm:R,dialogElement:xe}=Se(),{data:u=[]}=J({}),{data:y=[],error:V}=J({q:c,category:d}),{data:b}=Ce(!0),$=V?String(V):"";s.useEffect(()=>{if(!m)return;const r=t=>{t.key==="Escape"&&L(!1)};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[m]);const S=()=>{P.invalidateQueries({queryKey:["memory"]}),P.invalidateQueries({queryKey:["memory-graph"]})},C=s.useMemo(()=>{const r=u.length,t=u.filter(n=>se.has(n.source)).length;return{total:r,auto:t,manual:r-t,cats:new Set(u.map(n=>n.category)).size}},[u]),me=u.length===0,E=s.useDeferredValue(c),q=s.useMemo(()=>{const r=b??{nodes:[],edges:[]};if(!E.trim())return r;const t=E.toLowerCase(),n=r.nodes.filter(a=>a.content.toLowerCase().includes(t)),l=new Set(n.map(a=>a.id));return{nodes:n,edges:r.edges.filter(a=>l.has(a.source)&&l.has(a.target))}},[b,E]),ge=s.useMemo(()=>{const r={};return y.forEach(t=>{var n;(r[n=t.category]??(r[n]=[])).push(t)}),r},[y]),he=s.useMemo(()=>y.filter(r=>!k.includes(r.category)),[y]);async function pe(){v.trim()&&(await j("/api/memory",{method:"POST",body:JSON.stringify({content:v,category:A,source:"ui"})}),T(""),w(!1),S())}function K(r){R("Eintrag löschen?","Diesen Gedächtnis-Eintrag dauerhaft entfernen?",async()=>{try{await j(`/api/memory/${r}`,{method:"DELETE"}),S()}catch(t){f("Fehler",`Löschen fehlgeschlagen: ${t.message||t}`)}})}async function M(){try{await navigator.clipboard.writeText(ae),I(!0),setTimeout(()=>I(!1),1800)}catch{f("Kopieren fehlgeschlagen","Markiere den Prompt und kopiere ihn manuell (Strg+C).")}}function be(){M(),window.dispatchEvent(new CustomEvent("mc-navigate",{detail:{view:"terminal"}}))}async function fe(){D(!0);try{const r=await j("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!1})});if(r.duplicate_count===0){f("Ergebnis","Keine Dubletten gefunden — alles sauber.");return}const t=l=>l.length>90?l.slice(0,90)+"…":l,n=r.groups.slice(0,5).map(l=>`✓ bleibt: „${t(l.keep.content)}" +Frag immer nur eine sache auf einmal und fass am Ende zusammen, was du dir gemerkt hast.`;function Be(){const[d,i]=s.useState(""),[c,oe]=s.useState(""),[v,O]=s.useState(""),[T,le]=s.useState("knowledge"),[de,D]=s.useState(!1),[G,L]=s.useState(!1),[N,ie]=s.useState("liste"),[ce,w]=s.useState(!1),[p,g]=s.useState(null),[m,F]=s.useState(!1),[I,ue]=s.useState(()=>typeof window<"u"&&window.matchMedia("(min-width: 1024px)").matches);s.useEffect(()=>{const r=window.matchMedia("(min-width: 1024px)"),t=n=>ue(n.matches);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)},[]);const P=Ne(),{showAlert:f,showConfirm:R,dialogElement:xe}=Se(),{data:u=[]}=W({}),{data:y=[],error:V}=W({q:c,category:d}),{data:b}=Ce(!0),$=V?String(V):"";s.useEffect(()=>{if(!m)return;const r=t=>{t.key==="Escape"&&F(!1)};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[m]);const S=()=>{P.invalidateQueries({queryKey:["memory"]}),P.invalidateQueries({queryKey:["memory-graph"]})},C=s.useMemo(()=>{const r=u.length,t=u.filter(n=>se.has(n.source)).length;return{total:r,auto:t,manual:r-t,cats:new Set(u.map(n=>n.category)).size}},[u]),me=u.length===0,E=s.useDeferredValue(c),q=s.useMemo(()=>{const r=b??{nodes:[],edges:[]};if(!E.trim())return r;const t=E.toLowerCase(),n=r.nodes.filter(a=>a.content.toLowerCase().includes(t)),l=new Set(n.map(a=>a.id));return{nodes:n,edges:r.edges.filter(a=>l.has(a.source)&&l.has(a.target))}},[b,E]),ge=s.useMemo(()=>{const r={};return y.forEach(t=>{var n;(r[n=t.category]??(r[n]=[])).push(t)}),r},[y]),he=s.useMemo(()=>y.filter(r=>!k.includes(r.category)),[y]);async function pe(){v.trim()&&(await j("/api/memory",{method:"POST",body:JSON.stringify({content:v,category:T,source:"ui"})}),O(""),w(!1),S())}function K(r){R("Eintrag löschen?","Diesen Gedächtnis-Eintrag dauerhaft entfernen?",async()=>{try{await j(`/api/memory/${r}`,{method:"DELETE"}),S()}catch(t){f("Fehler",`Löschen fehlgeschlagen: ${t.message||t}`)}})}async function M(){try{await navigator.clipboard.writeText(ae),L(!0),setTimeout(()=>L(!1),1800)}catch{f("Kopieren fehlgeschlagen","Markiere den Prompt und kopiere ihn manuell (Strg+C).")}}function be(){M(),window.dispatchEvent(new CustomEvent("mc-navigate",{detail:{view:"terminal"}}))}async function fe(){D(!0);try{const r=await j("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!1})});if(r.duplicate_count===0){f("Ergebnis","Keine Dubletten gefunden — alles sauber.");return}const t=l=>l.length>90?l.slice(0,90)+"…":l,n=r.groups.slice(0,5).map(l=>`✓ bleibt: „${t(l.keep.content)}" ✗ weg: ${l.remove.map(a=>`„${t(a.content)}"`).join(", ")}`).join(` `)+(r.groups.length>5?` @@ -49,4 +49,4 @@ Frag immer nur eine sache auf einmal und fass am Ende zusammen, was du dir gemer ${n} -Zusammenführen?`,async()=>{try{await j("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!0})}),S()}catch(l){f("Fehler",`Fehler beim Löschen: ${l.message}`)}})}catch(r){f("Fehler",`Fehler bei der Deduplizierung: ${r.message}`)}finally{D(!1)}}const o=s.useMemo(()=>u.find(r=>r.id===p),[u,p]),H=s.useMemo(()=>{if(!o||!b)return[];const r=new Set([...b.edges.filter(t=>t.source===o.id).map(t=>t.target),...b.edges.filter(t=>t.target===o.id).map(t=>t.source)]);return u.filter(t=>r.has(t.id))},[o,b,u]),z={identity:"#00f5ff",knowledge:"#3b82f6",rules:"#d946ef",events:"#fbbf24"},ye={identity:"Identität",knowledge:"Wissen",rules:"Regeln",events:"Ereignisse"},B=new Set(["auto","agent","hermes"]);return e.jsxs("div",{className:"space-y-6",children:[me?e.jsxs("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 sm:p-10 flex flex-col items-center text-center gap-5",children:[e.jsx("div",{className:"h-14 w-14 rounded-2xl bg-primary/10 flex items-center justify-center",children:e.jsx(Le,{className:"h-7 w-7 text-primary"})}),e.jsxs("div",{className:"space-y-1.5 max-w-lg",children:[e.jsx("h3",{className:"text-base font-semibold text-foreground",children:"Lass Hermes dich kennenlernen"}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Statt Fakten einzutippen: führ ein kurzes Onboarding-Gespräch mit Hermes. Was ihr besprecht, merkt sich das Gedächtnis automatisch — du musst nichts manuell pflegen."})]}),e.jsxs("div",{className:"w-full max-w-lg text-left",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:"Sende das an Hermes"}),e.jsx("button",{onClick:M,className:"flex items-center gap-1 text-[10px] font-semibold text-muted-foreground hover:text-foreground transition-colors",children:G?e.jsxs(e.Fragment,{children:[e.jsx(W,{className:"h-3 w-3 text-emerald-400"})," Kopiert"]}):e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"h-3 w-3"})," Kopieren"]})})]}),e.jsx("pre",{className:"w-full rounded-xl border border-border/60 bg-background/40 p-3.5 text-[11px] leading-relaxed text-foreground/90 whitespace-pre-wrap font-mono",children:ae})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsxs("button",{onClick:be,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer",children:[e.jsx(Ee,{className:"h-4 w-4"})," Im Terminal starten"]}),e.jsxs("button",{onClick:M,className:"h-9 px-4 rounded-lg border border-border/60 bg-card text-xs font-semibold hover:border-primary/50 transition-all flex items-center gap-1.5 cursor-pointer",children:[G?e.jsx(W,{className:"h-4 w-4 text-emerald-400"}):e.jsx(Y,{className:"h-4 w-4"})," Prompt kopieren"]})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground/70 flex items-center gap-1.5",children:[e.jsx(Ae,{className:"h-3 w-3"})," Funktioniert genauso über Telegram —"," ",e.jsx("button",{onClick:()=>w(!0),className:"underline hover:text-foreground",children:"oder lieber manuell anlegen"}),"."]})]}):e.jsxs("div",{className:x("bg-[#030712] overflow-hidden transition-all duration-300 ease-in-out",m?"fixed inset-0 z-50 w-screen h-screen":"relative w-full h-[calc(100vh-8.5rem)] min-h-[620px] rounded-2xl border border-border/60 flex flex-col lg:block"),children:[F&&e.jsx("div",{className:"absolute inset-0 z-0 hidden lg:block",children:e.jsx(re,{children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-muted-foreground",children:"Graph wird geladen…"}),children:e.jsx(te,{data:q,selectedNodeId:p,onNodeSelect:g})})})}),e.jsxs("div",{className:x("z-10 flex flex-col transition-all duration-300",m?"lg:absolute lg:left-6 lg:top-6 lg:bottom-6 lg:w-96 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-3rem)]":"lg:absolute lg:left-4 lg:top-4 lg:bottom-4 lg:w-96 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-2rem)]","w-full h-full p-4 flex-1 lg:flex-none",N==="graph"&&"hidden lg:flex"),children:[e.jsxs("div",{className:"space-y-3 mb-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gedächtnis-Pool"}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-relaxed mt-0.5",children:"IDEs & Gateway lesen und lernen hier per MCP."})]}),e.jsx("button",{onClick:()=>L(!m),className:"p-1.5 rounded-lg border border-border/40 bg-card/45 hover:border-primary/50 text-muted-foreground hover:text-foreground transition-all cursor-pointer hidden lg:block",title:m?"Vollbild verlassen (Esc)":"In Vollbild maximieren",children:m?e.jsx(Fe,{className:"h-4 w-4"}):e.jsx(Ie,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"text-[9px] font-semibold bg-primary/10 text-primary border border-primary/20 px-2 py-0.5 rounded-md",children:[C.total," Fakten"]}),e.jsxs("span",{className:"text-[9px] font-semibold bg-emerald-500/10 text-emerald-400 border border-emerald-500/20 px-2 py-0.5 rounded-md",children:[C.auto," auto"]}),e.jsxs("span",{className:"text-[9px] font-semibold bg-card/60 text-muted-foreground border border-border/40 px-2 py-0.5 rounded-md",children:[C.cats," Kat."]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 w-full",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx("input",{value:c,onChange:r=>oe(r.target.value),"aria-label":"Gedächtnis durchsuchen",type:"search",placeholder:"Semantisch suchen…",className:"w-full h-8 pl-8 pr-3 rounded-lg border border-border/50 bg-background/40 text-[11px] outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),e.jsx(Me,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),e.jsx("button",{onClick:()=>w(r=>!r),title:"Eintrag hinzufügen",className:"h-8 w-8 shrink-0 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center justify-center cursor-pointer shadow-md shadow-primary/10",children:e.jsx(ze,{className:"h-4 w-4"})}),e.jsx("button",{onClick:fe,disabled:de,title:"Deduplizieren",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/60 bg-card/45 hover:border-primary/50 transition-all cursor-pointer shadow-md disabled:opacity-50",children:e.jsx(_,{className:"h-3.5 w-3.5 text-primary"})}),e.jsx("div",{className:"flex items-center gap-1 p-0.5 bg-card/30 border border-border/40 rounded-lg lg:hidden",children:[["liste",Ge],["graph",ee]].map(([r,t])=>e.jsx("button",{onClick:()=>ie(r),className:x("flex h-7 w-7 items-center justify-center rounded-md transition-all cursor-pointer",N===r?"bg-primary text-primary-foreground":"text-muted-foreground"),children:e.jsx(t,{className:"h-3.5 w-3.5"})},r))})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1 p-0.5 bg-card/30 border border-border/40 rounded-lg w-full overflow-x-auto shrink-0 scrollbar-none",children:[e.jsx("button",{onClick:()=>i(""),className:x("h-6 px-2 rounded-md text-[9px] font-semibold uppercase tracking-wider transition-all cursor-pointer shrink-0",d?"text-muted-foreground hover:text-foreground":"bg-primary text-primary-foreground"),children:"Alle"}),k.map(r=>{const t=O[r]||ne;return e.jsx("button",{onClick:()=>i(r),className:x("h-6 px-2 rounded-md text-[9px] font-semibold uppercase tracking-wider transition-all cursor-pointer flex items-center gap-1 shrink-0",d===r?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:t.label},r)})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto pr-1 scrollbar-thin space-y-4",children:[ce&&e.jsxs("div",{className:"rounded-xl border border-border/50 bg-background/50 p-3 space-y-2 shrink-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Neuer Eintrag"}),e.jsx("button",{onClick:()=>w(!1),className:"text-muted-foreground hover:text-foreground",children:e.jsx(X,{className:"h-3.5 w-3.5"})})]}),e.jsx("textarea",{value:v,onChange:r=>T(r.target.value),rows:2,placeholder:"Vorliebe, Regel oder Fakt…",className:"w-full resize-none rounded-lg border border-border/50 bg-background/30 p-2 text-[11px] outline-none focus:ring-1 focus:ring-primary/50 text-foreground leading-relaxed"}),e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("select",{value:A,onChange:r=>le(r.target.value),className:"h-7 rounded-md border border-border/50 bg-background/50 px-1 text-[10px] outline-none text-foreground cursor-pointer",children:k.map(r=>{var t;return e.jsx("option",{value:r,className:"bg-popover text-foreground",children:((t=O[r])==null?void 0:t.label)||r},r)})}),e.jsx("button",{onClick:pe,className:"h-7 px-2.5 rounded-md bg-primary text-primary-foreground text-[10px] font-semibold hover:opacity-90 transition-all cursor-pointer",children:"Speichern"})]})]}),$&&e.jsxs("div",{className:"rounded-lg border border-red-500/20 bg-red-500/5 p-3 text-[10px] text-red-400",children:["Fehler: ",$]}),y.length===0?e.jsx("div",{className:"text-[11px] text-muted-foreground border border-dashed border-border/60 rounded-xl p-8 text-center bg-card/10",children:"Keine Einträge gefunden."}):e.jsx("div",{className:"space-y-4",children:[...k,"__other"].map(r=>{const t=r==="__other"?he:ge[r]||[];if(!t.length)return null;const n=O[r]||ne,l=n.icon;return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-0.5",children:[e.jsx(l,{className:x("h-3 w-3",n.text)}),e.jsx("span",{className:x("text-[9px] font-bold uppercase tracking-wider",n.text),children:n.label}),e.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/60 bg-card/50 rounded px-1",children:t.length})]}),e.jsx("div",{className:"space-y-1.5",children:t.map(a=>{const we=se.has(a.source),Q=p===a.id;return e.jsxs("div",{onClick:()=>g(Q?null:a.id),className:x("flex items-start justify-between gap-3 p-2.5 rounded-lg border border-l-4 transition-all group cursor-pointer text-left",Q?"bg-primary/10 border-primary shadow-md":"bg-card/45 border-border/40 hover:bg-card/75",Ve[a.category]||"border-l-muted"),children:[e.jsx("span",{className:"text-[11px] text-foreground leading-relaxed break-words whitespace-pre-wrap flex-1 min-w-0",children:a.content}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0 self-center",children:[we&&e.jsx("span",{title:"Auto gelernt",children:e.jsx(_,{className:"h-2.5 w-2.5 text-emerald-400"})}),e.jsx("button",{onClick:je=>{je.stopPropagation(),K(a.id),p===a.id&&g(null)},className:"h-5 w-5 rounded-md flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100",children:e.jsx(Z,{className:"h-3.5 w-3.5"})})]})]},a.id)})})]},r)})})]})]}),!F&&N==="graph"&&e.jsx("div",{className:"w-full h-[500px] relative lg:hidden",children:e.jsx(re,{children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"h-full rounded-2xl border border-border/60 bg-card/30 flex items-center justify-center text-xs text-muted-foreground",children:"Graph wird geladen…"}),children:e.jsx(te,{data:q,selectedNodeId:p,onNodeSelect:g})})})}),o&&e.jsxs("div",{className:x("z-10 flex flex-col transition-all duration-300",m?"lg:absolute lg:right-6 lg:top-6 lg:bottom-6 lg:w-80 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-3rem)]":"lg:absolute lg:right-4 lg:top-4 lg:bottom-4 lg:w-80 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-2rem)]","w-full p-4 border-t border-border/60 bg-card/45 shrink-0 flex flex-col"),children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 shrink-0",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-full",style:{background:z[o.category]}}),e.jsx("span",{className:"text-[9px] font-bold uppercase tracking-wider",style:{color:z[o.category]},children:ye[o.category]||o.category}),e.jsxs("span",{className:`ml-auto text-[9px] font-mono flex items-center gap-1 ${B.has(o.source)?"text-emerald-400":"text-muted-foreground/70"}`,children:[B.has(o.source)&&e.jsx(_,{className:"h-2.5 w-2.5"}),o.source]}),e.jsx("button",{onClick:()=>g(null),className:"text-muted-foreground hover:text-foreground ml-1.5 cursor-pointer",children:e.jsx(X,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto pr-1 scrollbar-thin text-xs text-foreground leading-relaxed mb-4 break-words whitespace-pre-wrap text-left",children:o.content}),e.jsxs("div",{className:"mt-auto shrink-0 space-y-3 pt-3 border-t border-border/30",children:[e.jsxs("div",{className:"text-[9px] font-bold uppercase tracking-wider text-muted-foreground/70 flex items-center gap-1",children:[e.jsx(ee,{className:"h-2.5 w-2.5"})," verwandte Fakten"]}),e.jsx("div",{className:"flex flex-col gap-1 max-h-40 overflow-y-auto scrollbar-none text-left",children:H.length?H.map(r=>e.jsxs("button",{onClick:()=>g(r.id),className:"flex items-center gap-2 text-[10px] text-muted-foreground hover:text-foreground text-left transition-colors cursor-pointer py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:z[r.category]}}),e.jsx("span",{className:"truncate",children:r.content})]},r.id)):e.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:"—"})}),e.jsxs("button",{onClick:()=>{K(o.id),g(null)},className:"flex w-full items-center justify-center gap-1.5 text-[10px] font-bold text-red-400 border border-red-500/20 rounded-lg py-2 hover:bg-red-500/5 transition-all cursor-pointer",children:[e.jsx(Z,{className:"h-3.5 w-3.5"})," Eintrag vergessen"]})]})]})]}),xe]})}export{Qe as MemoryView}; +Zusammenführen?`,async()=>{try{await j("/api/memory/dedupe",{method:"POST",body:JSON.stringify({apply:!0})}),S()}catch(l){f("Fehler",`Fehler beim Löschen: ${l.message}`)}})}catch(r){f("Fehler",`Fehler bei der Deduplizierung: ${r.message}`)}finally{D(!1)}}const o=s.useMemo(()=>u.find(r=>r.id===p),[u,p]),H=s.useMemo(()=>{if(!o||!b)return[];const r=new Set([...b.edges.filter(t=>t.source===o.id).map(t=>t.target),...b.edges.filter(t=>t.target===o.id).map(t=>t.source)]);return u.filter(t=>r.has(t.id))},[o,b,u]),z={identity:"#00f5ff",knowledge:"#3b82f6",rules:"#d946ef",events:"#fbbf24"},ye={identity:"Identität",knowledge:"Wissen",rules:"Regeln",events:"Ereignisse"},U=new Set(["auto","agent","hermes"]);return e.jsxs("div",{className:"space-y-6",children:[me?e.jsxs("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 sm:p-10 flex flex-col items-center text-center gap-5",children:[e.jsx("div",{className:"h-14 w-14 rounded-2xl bg-primary/10 flex items-center justify-center",children:e.jsx(Fe,{className:"h-7 w-7 text-primary"})}),e.jsxs("div",{className:"space-y-1.5 max-w-lg",children:[e.jsx("h3",{className:"text-base font-semibold text-foreground",children:"Lass Hermes dich kennenlernen"}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Statt Fakten einzutippen: führ ein kurzes Onboarding-Gespräch mit Hermes. Was ihr besprecht, merkt sich das Gedächtnis automatisch — du musst nichts manuell pflegen."})]}),e.jsxs("div",{className:"w-full max-w-lg text-left",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:"Sende das an Hermes"}),e.jsx("button",{onClick:M,className:"flex items-center gap-1 text-[10px] font-semibold text-muted-foreground hover:text-foreground transition-colors",children:G?e.jsxs(e.Fragment,{children:[e.jsx(J,{className:"h-3 w-3 text-emerald-400"})," Kopiert"]}):e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"h-3 w-3"})," Kopieren"]})})]}),e.jsx("pre",{className:"w-full rounded-xl border border-border/60 bg-background/40 p-3.5 text-[11px] leading-relaxed text-foreground/90 whitespace-pre-wrap font-mono",children:ae})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[e.jsxs("button",{onClick:be,className:"h-9 px-4 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center gap-1.5 cursor-pointer",children:[e.jsx(Ee,{className:"h-4 w-4"})," Im Terminal starten"]}),e.jsxs("button",{onClick:M,className:"h-9 px-4 rounded-lg border border-border/60 bg-card text-xs font-semibold hover:border-primary/50 transition-all flex items-center gap-1.5 cursor-pointer",children:[G?e.jsx(J,{className:"h-4 w-4 text-emerald-400"}):e.jsx(Y,{className:"h-4 w-4"})," Prompt kopieren"]})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground/70 flex items-center gap-1.5",children:[e.jsx(Te,{className:"h-3 w-3"})," Funktioniert genauso über Telegram —"," ",e.jsx("button",{onClick:()=>w(!0),className:"underline hover:text-foreground",children:"oder lieber manuell anlegen"}),"."]})]}):e.jsxs("div",{className:x("bg-[#030712] overflow-hidden transition-all duration-300 ease-in-out",m?"fixed inset-0 z-50 w-screen h-screen":"relative w-full h-[calc(100vh-8.5rem)] min-h-[620px] rounded-2xl border border-border/60 flex flex-col lg:block"),children:[I&&e.jsx("div",{className:"absolute inset-0 z-0 hidden lg:block",children:e.jsx(re,{children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-muted-foreground",children:"Graph wird geladen…"}),children:e.jsx(te,{data:q,selectedNodeId:p,onNodeSelect:g})})})}),e.jsxs("div",{className:x("z-10 flex flex-col transition-all duration-300",m?"lg:absolute lg:left-6 lg:top-6 lg:bottom-6 lg:w-96 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-3rem)]":"lg:absolute lg:left-4 lg:top-4 lg:bottom-4 lg:w-96 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-2rem)]","w-full h-full p-4 flex-1 lg:flex-none",N==="graph"&&"hidden lg:flex"),children:[e.jsxs("div",{className:"space-y-3 mb-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Gedächtnis-Pool"}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-relaxed mt-0.5",children:"IDEs & Gateway lesen und lernen hier per MCP."})]}),e.jsx("button",{onClick:()=>F(!m),className:"p-1.5 rounded-lg border border-border/40 bg-card/45 hover:border-primary/50 text-muted-foreground hover:text-foreground transition-all cursor-pointer hidden lg:block",title:m?"Vollbild verlassen (Esc)":"In Vollbild maximieren",children:m?e.jsx(Ie,{className:"h-4 w-4"}):e.jsx(Le,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"text-[9px] font-semibold bg-primary/10 text-primary border border-primary/20 px-2 py-0.5 rounded-md",children:[C.total," Fakten"]}),e.jsxs("span",{className:"text-[9px] font-semibold bg-emerald-500/10 text-emerald-400 border border-emerald-500/20 px-2 py-0.5 rounded-md",children:[C.auto," auto"]}),e.jsxs("span",{className:"text-[9px] font-semibold bg-card/60 text-muted-foreground border border-border/40 px-2 py-0.5 rounded-md",children:[C.cats," Kat."]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 w-full",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx("input",{value:c,onChange:r=>oe(r.target.value),"aria-label":"Gedächtnis durchsuchen",type:"search",placeholder:"Semantisch suchen…",className:"w-full h-8 pl-8 pr-3 rounded-lg border border-border/50 bg-background/40 text-[11px] outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),e.jsx(Me,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),e.jsx("button",{onClick:()=>w(r=>!r),title:"Eintrag hinzufügen",className:"h-8 w-8 shrink-0 rounded-lg bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all flex items-center justify-center cursor-pointer shadow-md shadow-primary/10",children:e.jsx(ze,{className:"h-4 w-4"})}),e.jsx("button",{onClick:fe,disabled:de,title:"Deduplizieren",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-border/60 bg-card/45 hover:border-primary/50 transition-all cursor-pointer shadow-md disabled:opacity-50",children:e.jsx(_,{className:"h-3.5 w-3.5 text-primary"})}),e.jsx("div",{className:"flex items-center gap-1 p-0.5 bg-card/30 border border-border/40 rounded-lg lg:hidden",children:[["liste",Ge],["graph",ee]].map(([r,t])=>e.jsx("button",{onClick:()=>ie(r),className:x("flex h-7 w-7 items-center justify-center rounded-md transition-all cursor-pointer",N===r?"bg-primary text-primary-foreground":"text-muted-foreground"),children:e.jsx(t,{className:"h-3.5 w-3.5"})},r))})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1 p-0.5 bg-card/30 border border-border/40 rounded-lg w-full overflow-x-auto shrink-0 scrollbar-none",children:[e.jsx("button",{onClick:()=>i(""),className:x("h-6 px-2 rounded-md text-[9px] font-semibold uppercase tracking-wider transition-all cursor-pointer shrink-0",d?"text-muted-foreground hover:text-foreground":"bg-primary text-primary-foreground"),children:"Alle"}),k.map(r=>{const t=A[r]||ne;return e.jsx("button",{onClick:()=>i(r),className:x("h-6 px-2 rounded-md text-[9px] font-semibold uppercase tracking-wider transition-all cursor-pointer flex items-center gap-1 shrink-0",d===r?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:t.label},r)})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto pr-1 scrollbar-thin space-y-4",children:[ce&&e.jsxs("div",{className:"rounded-xl border border-border/50 bg-background/50 p-3 space-y-2 shrink-0",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Neuer Eintrag"}),e.jsx("button",{onClick:()=>w(!1),className:"text-muted-foreground hover:text-foreground",children:e.jsx(X,{className:"h-3.5 w-3.5"})})]}),e.jsx("textarea",{value:v,onChange:r=>O(r.target.value),rows:2,placeholder:"Vorliebe, Regel oder Fakt…",className:"w-full resize-none rounded-lg border border-border/50 bg-background/30 p-2 text-[11px] outline-none focus:ring-1 focus:ring-primary/50 text-foreground leading-relaxed"}),e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("select",{value:T,onChange:r=>le(r.target.value),className:"h-7 rounded-md border border-border/50 bg-background/50 px-1 text-[10px] outline-none text-foreground cursor-pointer",children:k.map(r=>{var t;return e.jsx("option",{value:r,className:"bg-popover text-foreground",children:((t=A[r])==null?void 0:t.label)||r},r)})}),e.jsx("button",{onClick:pe,className:"h-7 px-2.5 rounded-md bg-primary text-primary-foreground text-[10px] font-semibold hover:opacity-90 transition-all cursor-pointer",children:"Speichern"})]})]}),$&&e.jsxs("div",{className:"rounded-lg border border-red-500/20 bg-red-500/5 p-3 text-[10px] text-red-400",children:["Fehler: ",$]}),y.length===0?e.jsx("div",{className:"text-[11px] text-muted-foreground border border-dashed border-border/60 rounded-xl p-8 text-center bg-card/10",children:"Keine Einträge gefunden."}):e.jsx("div",{className:"space-y-4",children:[...k,"__other"].map(r=>{const t=r==="__other"?he:ge[r]||[];if(!t.length)return null;const n=A[r]||ne,l=n.icon;return e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-0.5",children:[e.jsx(l,{className:x("h-3 w-3",n.text)}),e.jsx("span",{className:x("text-[9px] font-bold uppercase tracking-wider",n.text),children:n.label}),e.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/60 bg-card/50 rounded px-1",children:t.length})]}),e.jsx("div",{className:"space-y-1.5",children:t.map(a=>{const we=se.has(a.source),B=p===a.id;return e.jsxs("div",{onClick:()=>g(B?null:a.id),className:x("flex items-start justify-between gap-3 p-2.5 rounded-lg border border-l-4 transition-all group cursor-pointer text-left",B?"bg-primary/10 border-primary shadow-md":"bg-card/45 border-border/40 hover:bg-card/75",Ve[a.category]||"border-l-muted"),children:[e.jsx("span",{className:"text-[11px] text-foreground leading-relaxed break-words whitespace-pre-wrap flex-1 min-w-0",children:a.content}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0 self-center",children:[we&&e.jsx("span",{title:"Auto gelernt",children:e.jsx(_,{className:"h-2.5 w-2.5 text-emerald-400"})}),e.jsx("button",{onClick:je=>{je.stopPropagation(),K(a.id),p===a.id&&g(null)},className:"h-5 w-5 rounded-md flex items-center justify-center border border-border/40 text-muted-foreground hover:text-red-400 hover:bg-red-500/5 transition-all opacity-0 group-hover:opacity-100",children:e.jsx(Z,{className:"h-3.5 w-3.5"})})]})]},a.id)})})]},r)})})]})]}),!I&&N==="graph"&&e.jsx("div",{className:"w-full h-[500px] relative lg:hidden",children:e.jsx(re,{children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"h-full rounded-2xl border border-border/60 bg-card/30 flex items-center justify-center text-xs text-muted-foreground",children:"Graph wird geladen…"}),children:e.jsx(te,{data:q,selectedNodeId:p,onNodeSelect:g})})})}),o&&e.jsxs("div",{className:x("z-10 flex flex-col transition-all duration-300",m?"lg:absolute lg:right-6 lg:top-6 lg:bottom-6 lg:w-80 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-3rem)]":"lg:absolute lg:right-4 lg:top-4 lg:bottom-4 lg:w-80 lg:rounded-xl lg:border lg:border-border/40 lg:bg-background/65 lg:backdrop-blur-md lg:p-4 lg:shadow-2xl lg:shadow-black/50 lg:h-[calc(100%-2rem)]","w-full p-4 border-t border-border/60 bg-card/45 shrink-0 flex flex-col"),children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 shrink-0",children:[e.jsx("span",{className:"w-2.5 h-2.5 rounded-full",style:{background:z[o.category]}}),e.jsx("span",{className:"text-[9px] font-bold uppercase tracking-wider",style:{color:z[o.category]},children:ye[o.category]||o.category}),e.jsxs("span",{className:`ml-auto text-[9px] font-mono flex items-center gap-1 ${U.has(o.source)?"text-emerald-400":"text-muted-foreground/70"}`,children:[U.has(o.source)&&e.jsx(_,{className:"h-2.5 w-2.5"}),o.source]}),e.jsx("button",{onClick:()=>g(null),className:"text-muted-foreground hover:text-foreground ml-1.5 cursor-pointer",children:e.jsx(X,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto pr-1 scrollbar-thin text-xs text-foreground leading-relaxed mb-4 break-words whitespace-pre-wrap text-left",children:o.content}),e.jsxs("div",{className:"mt-auto shrink-0 space-y-3 pt-3 border-t border-border/30",children:[e.jsxs("div",{className:"text-[9px] font-bold uppercase tracking-wider text-muted-foreground/70 flex items-center gap-1",children:[e.jsx(ee,{className:"h-2.5 w-2.5"})," verwandte Fakten"]}),e.jsx("div",{className:"flex flex-col gap-1 max-h-40 overflow-y-auto scrollbar-none text-left",children:H.length?H.map(r=>e.jsxs("button",{onClick:()=>g(r.id),className:"flex items-center gap-2 text-[10px] text-muted-foreground hover:text-foreground text-left transition-colors cursor-pointer py-0.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:z[r.category]}}),e.jsx("span",{className:"truncate",children:r.content})]},r.id)):e.jsx("span",{className:"text-[10px] text-muted-foreground/60",children:"—"})}),e.jsxs("button",{onClick:()=>{K(o.id),g(null)},className:"flex w-full items-center justify-center gap-1.5 text-[10px] font-bold text-red-400 border border-red-500/20 rounded-lg py-2 hover:bg-red-500/5 transition-all cursor-pointer",children:[e.jsx(Z,{className:"h-3.5 w-3.5"})," Eintrag vergessen"]})]})]})]}),xe]})}export{Be as MemoryView}; diff --git a/frontend/dist/assets/ModelsView-CWjoBiDg.js b/frontend/dist/assets/ModelsView-CWjoBiDg.js new file mode 100644 index 0000000..0234733 --- /dev/null +++ b/frontend/dist/assets/ModelsView-CWjoBiDg.js @@ -0,0 +1,78 @@ +import{c as q,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 P,h as Ie,r as N,C as Y,L as Oe,i as Pe,B as le,k as Te,E as Be,l as de,m as $e,n as Ge,o as He,p as ee,X as pe,P as Qe,H as fe,T as re,s as Ue,t as Ve,v as V,w as We,S as ye,x as Ze,y as Je,z as Xe,A as Ye,D as De,F as et,G as tt}from"./index-B7xWfxHK.js";import{R as rt}from"./rotate-ccw-CzU0JCRt.js";import{C as he,Z as ie,L as st,a as nt,b as at}from"./zap-DsIHOTxw.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 ot=q("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 lt=q("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 qe=q("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 dt=q("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ne=q("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 it=q("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 ct=q("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 xt=q("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 mt=q("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 ut=q("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 pt=q("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 Ee=q("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 ht=q("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 bt=q("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 gt=q("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"}]]);function ft(){const t=oe(),{data:r=[]}=Fe(),{showAlert:h,dialogElement:a}=ge();async function m(d){try{await K(`/api/jobs/${d}/cancel`,{method:"POST"}),t.invalidateQueries({queryKey:P.jobs})}catch(M){h("Fehler",M.message)}}const S=r.filter(d=>d.state==="running"||d.state==="queued"),v=r.filter(d=>d.state!=="running"&&d.state!=="queued").slice(-3);return S.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"}),S.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:()=>m(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)),a]})}const yt=["fast","heavy","heavy_chars"],jt=["coder_lite","coder","coding_escalate_chars"];function vt(){const t=oe(),{data:r,isLoading:h}=Ie(),[a,m]=N.useState(null),[S,v]=N.useState(!1),[d,M]=N.useState(""),[g,z]=N.useState(0);if(N.useEffect(()=>{r!=null&&r.policy&&!a&&m({...r.policy})},[r,a]),h||!r||!a)return e.jsx("div",{className:"mc-card p-5 text-xs text-muted-foreground",children:"Lade Routing-Policy…"});const x=s=>r.fields.find(o=>o.key===s),f=Object.keys(a).some(s=>a[s]!==r.policy[s]),b=(s,o)=>{m(c=>c&&{...c,[s]:o}),M("")},i=s=>b(s,r.defaults[s]);async function L(){if(!a)return;const s={};for(const o of Object.keys(a))a[o]!==r.policy[o]&&(s[o]=a[o]);if(Object.keys(s).length!==0){v(!0),M("");try{const{policy:o}=await Pe(s);m({...o}),t.invalidateQueries({queryKey:P.routingPolicy}),t.invalidateQueries({queryKey:P.routing}),z(Date.now()),setTimeout(()=>z(0),2e3)}catch(o){M(o.message||String(o))}finally{v(!1)}}}function B({k:s}){const o=x(s),c=a[s],$=a[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:()=>i(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(rt,{className:"h-2.5 w-2.5"})," Default"]})]}),o.type==="bool"?e.jsxs("button",{onClick:()=>b(s,!c),className:w("flex h-8 w-full items-center justify-between rounded-lg border px-3 text-[11px] font-semibold transition-all cursor-pointer",c?"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:c?"An":"Aus"}),e.jsx("span",{className:w("h-3.5 w-3.5 rounded-full transition-colors",c?"bg-emerald-400":"bg-muted-foreground/40")})]}):o.type==="int"?e.jsx("input",{type:"number",value:c,min:o.min,max:o.max,"aria-label":o.label,onChange:A=>b(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:c,"aria-label":o.label,spellCheck:!1,placeholder:s==="coder_lite"?"(leer = aus)":"",onChange:A=>b(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(ht,{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||S,className:w("h-8 px-4 rounded-lg text-[10px] font-bold uppercase tracking-wide transition-all flex items-center gap-1.5",f&&!S?"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:[S?e.jsx(Oe,{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(mt,{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(dt,{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:Te,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:xt,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:lt,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 (gründlich)",short:"Code gründlich",icon:he,desc:"Schreibt und prüft Code besonders sorgfältig — für schwere Coding-Aufgaben.",tone:"bg-fuchsia-500/15 text-fuchsia-400 border-fuchsia-500/25"},{role:"scout",label:"Späher",short:"Späher",icon:gt,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:Ee,desc:"Die unbestechliche Zweitmeinung — prüft Behauptungen und Patches (anderer Hersteller als das Hirn).",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:h}){const a=F(t),m=a.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",a.tone,h),title:`${a.desc} (${a.role})`,children:[e.jsx(m,{className:"h-3 w-3 shrink-0","aria-hidden":"true"}),r?a.short:a.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:h}=$e(),{data:a}=Ge(),{data:m}=He(),{showAlert:S,dialogElement:v}=ge(),[d,M]=N.useState(!1),[g,z]=N.useState(!1),x=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],b=(te=h==null?void 0:h.groups)==null?void 0:te.brains,i=(b==null?void 0:b.members)??[],L=p=>x.find(_=>_.name===p),B=p=>{var _;return((_=p.split("/").pop())==null?void 0:_.replace(/\.gguf$/i,""))||p},s=i.map(L).filter(Boolean),o=1024**3,c=m==null?void 0:m.budget,$=s.reduce((p,_)=>p+(_.size_bytes||0),0)/o,A=((H=a==null?void 0:a.gpu)==null?void 0:H.gtt_total)||((G=a==null?void 0:a.gpu)==null?void 0:G.vram_total)||0,C=(c==null?void 0:c.gtt_gb)||(A?A/o:0),k=(c==null?void 0:c.warm_projected_gb)??$,R=C>0?Math.min(100,k/C*100):0,E=x.filter(p=>!i.includes(p.name)&&!p.incomplete);async function I(p){z(!0);try{await Ue("brains",p,(b==null?void 0:b.swap)??!1,(b==null?void 0:b.persist)??!0),t.invalidateQueries({queryKey:P.groups}),t.invalidateQueries({queryKey:P.models}),t.invalidateQueries({queryKey:P.hermesBrain})}catch(_){S("Fehler",`Immer-bereit-Set konnte nicht geändert werden: ${(_==null?void 0:_.message)||_}`)}finally{z(!1)}}function T(p){const _=L(p);if(_&&F(_.role).protected){S("Geschützt",`„${F(_.role).label}" ist lebenswichtig und bleibt immer bereit.`);return}I(i.filter(Q=>Q!==p))}function W(p){M(!1),I([...i,p])}return b?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:()=>T(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:()=>M(!0),disabled:g||E.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(Qe,{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}%`}})}),c&&!c.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 (~",c.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)."]})]}),c&&c.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:()=>M(!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:E.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 h={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 ${h[r]}`,children:t})}function St({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 Mt({model:t,onClose:r,onChanged:h}){var L,B;const{data:a,isLoading:m}=Ve(t.gguf_path),[S,v]=N.useState(null),[d,M]=N.useState(""),g=a==null?void 0:a.target_vocab,z=(a==null?void 0:a.drafts)??[],x=z.filter(s=>s.compatible===!0),f=t.spec_draft_model;async function b(s){v(s??"__clear__"),M("");try{await K(`/api/models/${encodeURIComponent(t.name)}/draft`,{method:"POST",body:JSON.stringify({draft_path:s})}),h(),r()}catch(o){M(String((o==null?void 0:o.message)||o)),v(null)}}const i=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: ",i(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:()=>b(null),disabled:S!==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"})]}),!(a!=null&&a.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:m?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,c=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",c?"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: ",i(s.vocab)]})]}),c?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:()=>b(s.path),disabled:S!==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)})}),!m&&(a==null?void 0:a.target_exists)&&z.length>0&&x.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 Se={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"},Me={bar:"bg-slate-400",dot:"bg-slate-400",text:"text-slate-300"};function ae(t){return t&&(Se[t]||Se[Ct[t]])||Me}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:h,selected:a,onSelect:m}){const S=r>2*Ce?r:124*Ce,v=t.reduce((x,f)=>x+(f.size_bytes||0),0),d=Math.max(0,h-v),M=Math.max(0,S-Math.max(v,h)),g=M/S*100,z=d/S*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(S)," 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(M)," 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(x=>{const f=(x.size_bytes||0)/S*100,b=ae(x.role),i=a===x.name;return e.jsxs("button",{onClick:()=>m==null?void 0:m(x.name),style:{width:`${f}%`},title:`${F(x.role).label} · ${_e(x.name)} · ${ee(x.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",b.bar,i?"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(x.role).short}),e.jsx("span",{className:"truncate font-mono text-[9px] leading-tight opacity-85",children:ee(x.size_bytes)})]},x.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(M)} 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(x=>{const f=ae(x.role);return e.jsxs("button",{onClick:()=>m==null?void 0:m(x.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(x.role).short}),e.jsx("span",{className:"font-mono text-muted-foreground/70",children:_e(x.name)})]},x.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(M)," 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 n,y,D,U;const t=oe(),{data:r,isLoading:h,error:a}=de(),{data:m}=Ge(),{data:S}=$e(),{showAlert:v,showConfirm:d,showPrompt:M,dialogElement:g}=ge(),z=We(),x=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],b=l=>!!F(l).protected,i=(n=S==null?void 0:S.groups)==null?void 0:n.brains,L=(i==null?void 0:i.members)??[],B=l=>L.includes(l),[s,o]=N.useState(null),[c,$]=N.useState(""),[A,C]=N.useState("all"),[k,R]=N.useState(null),E=()=>{t.invalidateQueries({queryKey:P.models}),t.invalidateQueries({queryKey:P.routing}),t.invalidateQueries({queryKey:P.groups})},I=x.filter(l=>f.includes(l.name)),T=((y=m==null?void 0:m.gpu)==null?void 0:y.gtt_total)||((D=m==null?void 0:m.gpu)==null?void 0:D.vram_total)||0,W=((U=m==null?void 0:m.gpu)==null?void 0:U.gtt_used)||0,te=T>2*Le?T:124*Le,H=N.useMemo(()=>{const l=c.trim().toLowerCase();return x.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 O=f.includes(u.name)?0:1,Z=f.includes(j.name)?0:1;return O!==Z?O-Z:X(u.name).localeCompare(X(j.name))})},[x,f,A,c]),G=x.find(l=>l.name===s)??null;async function p(l){try{await K(`/api/models/${encodeURIComponent(l)}/load`,{method:"POST"}),E()}catch(u){v("Fehler",`Laden fehlgeschlagen: ${u.message||u}`)}}async function _(l){const u=L.some(j=>f.includes(j));if(i&&u&&!B(l)){const j=L.filter(O=>f.includes(O)).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=x.find(j=>j.name===l);if(u&&b(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"}),E()}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})});E(),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 O=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:";M("Kontextlänge anpassen",O,String(u||32768),async Z=>{if(Z)try{await K(`/api/models/${encodeURIComponent(l)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(Z,10)})}),E()}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=x.find(j=>j.name===l);if(u&&b(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),E()}catch(j){v("Fehler",`Löschen fehlgeschlagen: ${j.message||j}`)}})}return h?e.jsx("div",{className:"py-16 text-center text-xs text-muted-foreground",children:"Werkbank wird geladen …"}):a?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(a),")."]}):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:c,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,O=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",O.color),children:O.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:b(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(Ze,{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(Mt,{model:k,onClose:()=>R(null),onChanged:E}),g]})}function zt({m:t,warm:r,expert:h,protectedRole:a,coresident:m,onLoad:S,onUnload:v,onRole:d,onCtx:M,onSpec:g,onDelete:z}){const x=Ke(t.name),f=r&&a;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",x.color),children:x.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"}),a&&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(st,{className:"mr-0.5 inline h-3 w-3"}),"geschützt"]}),m&&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:S,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(pt,{className:"h-4 w-4"}):e.jsx(Je,{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.jsx("div",{className:"mb-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Rolle"}),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"}),je.map(b=>e.jsx(ze,{active:t.role===b.role,onClick:()=>d(b.role),dot:ae(b.role).dot,label:b.short},b.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:M,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(ut,{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:Xe(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"}),h&&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(St,{caps:t.capabilities})}),e.jsxs("button",{onClick:z,disabled:a,className:w("mt-auto flex h-9 items-center justify-center gap-1.5 rounded-lg border text-xs font-semibold transition-colors",a?"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(Ye,{className:"h-3.5 w-3.5"})," ",a?"geschützt — nicht löschbar":"Modell löschen"]})]})}function ze({active:t,onClick:r,dot:h,label:a}){return e.jsxs("button",{onClick:r,className:w("flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[10px] font-semibold transition-all cursor-pointer",t?"border-primary/60 bg-primary/15 text-foreground":"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",h)}),a,t&&e.jsx(Y,{className:"h-3 w-3 text-primary"})]})}function At({icon:t,label:r,value:h}){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:h})]})]})}function se({tone:t,label:r}){const h={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",h),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)??[],[h,a]=N.useState(""),[m,S]=N.useState([]),[v,d]=N.useState(!1),[M,g]=N.useState(""),[z,x]=N.useState("popular"),[f,b]=N.useState(""),[i,L]=N.useState(null),[B,s]=N.useState([]),[o,c]=N.useState("Q4_K_M"),[$,A]=N.useState(""),[C,k]=N.useState(null),[R,E]=N.useState(!1),[I,T]=N.useState({});async function W(n){d(!0),g("");try{const y=await K(`/api/hf/search?q=${encodeURIComponent(n)}`);S(y.results),y.results.length||g("Keine Ergebnisse.")}catch(y){g(`Suche fehlgeschlagen: ${y}`)}finally{d(!1)}}N.useEffect(()=>{W("")},[]);function te(n){x(n.key),a(""),W(n.q)}function H(){x(""),W(h)}async function G(n,y,D){E(!1);try{const U=await K(`/api/fit?params_b=0&quant=${encodeURIComponent(y)}&ctx=8192&name=${encodeURIComponent(n)}&role=${encodeURIComponent(D)}`);k(U)}catch{k(null)}}async function p(n){if(i===n){L(null);return}L(n),s([]),k(null),A(""),E(!1),g("Analysiere Repository…");try{const y=await K(`/api/hf/quants?repo=${encodeURIComponent(n)}`);s(y.quants);const D=y.quants.includes("Q4_K_M")?"Q4_K_M":y.quants[0]||"Q4_K_M";c(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 n=f.trim();n&&(S(y=>y.some(D=>D.repo===n)?y:[{repo:n,downloads:0,likes:0},...y]),b(""),p(n))}const Q=$?r.find(n=>(n.role||"").toLowerCase()===$):void 0;async function ce(n){if((C==null?void 0:C.fit.level)==="too_tight"&&!R){E(!0);return}T(y=>({...y,[n]:"Starte…"}));try{await K("/api/models/install",{method:"POST",body:JSON.stringify({repo:n,quant:o,role:$||void 0,jinja:!0})}),T(y=>({...y,[n]:"Download läuft"})),E(!1)}catch{T(D=>({...D,[n]:"Fehler"}))}}const xe=n=>{var D;const y=((D=n.split("/").pop())==null?void 0:D.toLowerCase().replace(/-gguf$/i,""))||"";return y.length>3&&r.some(U=>U.name.toLowerCase().includes(y))},me=n=>n==="perfect"?"text-emerald-400 border-emerald-500/40 bg-emerald-500/10":n==="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:h,onChange:n=>a(n.target.value),onKeyDown:n=>n.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(n=>e.jsxs("button",{onClick:()=>te(n),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===n.key?"bg-primary/15 text-primary border-primary/30":"border-border/50 text-muted-foreground hover:text-foreground hover:border-border"),children:[n.key==="popular"&&e.jsx(it,{className:"h-3 w-3"}),n.label]},n.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:[m.map(n=>{const y=i===n.repo,D=xe(n.repo),U=n.repo.includes("/")?n.repo.split("/")[0]:"—",l=n.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(n.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:n.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(n.downloads)]}),n.likes>0&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ct,{className:"h-3 w-3"})," ",Ae(n.likes)]})]})]}),y?e.jsx(qe,{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:M||"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=>{c(u.target.value),G(n.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(n.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(n.repo),disabled:!!I[n.repo]&&I[n.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[n.repo]?I[n.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."]})]})]})})]},n.repo)}),!m.length&&!v&&e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:M||"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:n=>b(n.target.value),onKeyDown:n=>n.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 qt={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:ot},scout:{title:"Multimodal-Allrounder",desc:"Multimodaler Allrounder für schnelle Antworten, Übersetzungen und Alltag.",icon:nt},kritiker:{title:"Kritisches Prüf-Hirn",desc:"Schärfer Blick für Fehler, Schwachstellen und Sicherheitslücken — denkt skeptisch, bevor du deployst.",icon:Ee},reranker:{title:"Gedächtnis-Sortierer",desc:"Sortiert und gewichtet gespeicherte Fakten nach Relevanz — damit die richtige Info sofort da ist.",icon:ye}};function Et(){const{data:t,isLoading:r,error:h}=et(),{data:a}=de(),{data:m}=tt(),S=(a==null?void 0:a.models)??[],v=h?String(h):"",[d,M]=N.useState({}),[g,z]=N.useState({}),[x,f]=N.useState("recommended");async function b(i,L,B,s){M(o=>({...o,[i]:"Starte..."}));try{await K("/api/models/install",{method:"POST",body:JSON.stringify({repo:i,role:L,quant:B,jinja:s})}),M(o=>({...o,[i]:"Download läuft"}))}catch{M(c=>({...c,[i]:"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(([i,L])=>e.jsx("button",{onClick:()=>f(i),className:w("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide transition-all cursor-pointer",x===i?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:L},i))}),x==="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(bt,{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(i=>{const L=qt[i.role]||{title:i.title||i.role,desc:"Spezifisches Modell für diese Systemrolle.",icon:at},B=L.icon,s=S.find(k=>k.role===i.role||(k.aliases||[]).includes(i.role)),o=m==null?void 0:m.model_list.find(k=>k.role===i.role),c=i.models.find(k=>k.repo===i.recommended)||i.models[0];if(!c)return null;const $=d[c.repo],A=i.models.filter(k=>k.repo!==i.recommended),C=!!g[i.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: ",i.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:c.name,children:c.name}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{children:["Ersteller: ",c.author]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",c.quant]})]}),e.jsx("div",{className:"flex items-center gap-1.5 pt-0.5",children:e.jsx(kt,{fit:c.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:()=>b(o.repo,i.role,c.quant||"Q4_K_M",c.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:()=>b(c.repo,i.role,c.quant||"Q4_K_M",c.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,[i.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(qe,{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:()=>b(k.repo,i.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))})]})]},i.role)})})]})]})}const Kt=[{id:"werkbank",label:"Werkbank"},{id:"routing",label:"Routing & Warm-Set"},{id:"discover",label:"Modelle finden"}];function Ot(){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(h=>e.jsx("button",{onClick:()=>r(h.id),className:w("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",t===h.id?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:h.label},h.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(Et,{})]})]})}export{Ot as ModelsView}; diff --git a/frontend/dist/assets/ModelsView-DaM533fz.js b/frontend/dist/assets/ModelsView-DaM533fz.js deleted file mode 100644 index d21371b..0000000 --- a/frontend/dist/assets/ModelsView-DaM533fz.js +++ /dev/null @@ -1,63 +0,0 @@ -import{c as D,u as Ce,a as Ee,b as Se,j as e,f as ce,d as De,e as g,g as B,q as te,B as ae,h as qe,E as _e,i as Ge,r as y,X as Re,C as J,T as re,k as Z,H as Ae,l as P,m as me,n as Fe,o as Ke,p as Oe,S as pe,s as Ie,P as Te,t as Ue,v as He,w as Le,x as Pe,y as Qe}from"./index-DgTg5QdX.js";import{C as xe,Z as ue,L as Ve,a as We,b as Je}from"./zap-BX-39Xxr.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 Ze=D("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 Ye=D("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 ze=D("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 se=D("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 Xe=D("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 et=D("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 tt=D("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 rt=D("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 st=D("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 $e=D("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 nt=D("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 at=D("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"}]]);function ot(){const t=Ce(),{data:s=[]}=Ee(),{showAlert:u,dialogElement:l}=Se();async function p(a){try{await B(`/api/jobs/${a}/cancel`,{method:"POST"}),t.invalidateQueries({queryKey:te.jobs})}catch(C){u("Fehler",C.message)}}const k=s.filter(a=>a.state==="running"||a.state==="queued"),f=s.filter(a=>a.state!=="running"&&a.state!=="queued").slice(-3);return k.length===0&&f.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"}),k.map(a=>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:a.label}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"text-muted-foreground font-mono",children:[a.progress??0,"% • ",ce(a.done_bytes),"/",ce(a.total_bytes),a.eta_s?` • ETA ${De(a.eta_s)}`:""]}),e.jsx("button",{onClick:()=>p(a.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:`${a.progress??0}%`}})})]},a.id)),f.map(a=>e.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[e.jsx("span",{className:"truncate",children:a.label}),e.jsx("span",{className:g("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",a.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:a.state})]},a.id)),l]})}function O({children:t,tone:s="muted"}){const u={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 ${u[s]}`,children:t})}function lt({caps:t}){return t?e.jsxs("span",{className:"inline-flex flex-wrap gap-1",children:[t.coder&&e.jsx(O,{children:"💻 Code"}),t.vision&&e.jsx(O,{children:"👁 Bild"}),t.reasoning&&e.jsx(O,{children:"🧠 Reason"}),t.moe&&e.jsxs(O,{tone:"primary",children:["🧩 MoE",t.active_b?`·${t.active_b}b`:""]}),t.tools==="yes"&&e.jsx(O,{tone:"primary",children:"🛠 Tools"}),t.tools==="likely"&&e.jsx(O,{tone:"warn",children:"🛠 Tools?"}),t.embedding&&e.jsx(O,{children:"🔢 Embed"})]}):null}const he=[{role:"hermes",label:"Lucys Hirn",short:"Hirn",icon:ae,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:qe,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:tt,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:_e,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:Ye,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:xe,desc:"Schnelles Programmieren im Alltag.",tone:"bg-violet-500/15 text-violet-400 border-violet-500/25"},{role:"coder",label:"Programmierer (gründlich)",short:"Code gründlich",icon:xe,desc:"Schreibt und prüft Code besonders sorgfältig — für schwere Coding-Aufgaben.",tone:"bg-fuchsia-500/15 text-fuchsia-400 border-fuchsia-500/25"},{role:"scout",label:"Späher",short:"Späher",icon:at,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:$e,desc:"Die unbestechliche Zweitmeinung — prüft Behauptungen und Patches (anderer Hersteller als das Hirn).",tone:"bg-cyan-500/15 text-cyan-400 border-cyan-500/25"}];he.map(t=>t.role);const ge=Object.fromEntries(he.map(t=>[t.role,t])),fe=t=>({role:t||"?",label:t||"unbekannt",short:t||"?",icon:ae,desc:"Rolle ohne hinterlegten Klartext-Namen.",tone:"bg-slate-500/15 text-slate-300 border-slate-500/25"}),it={fast:"hermes",coder_lite:"coder-lite"};function R(t){return t&&(ge[t]||ge[it[t]])||fe(t)}function dt({role:t,dense:s=!1,className:u}){const l=R(t),p=l.icon;return e.jsxs("span",{className:g("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-semibold border tracking-wide",l.tone,u),title:`${l.desc} (${l.role})`,children:[e.jsx(p,{className:"h-3 w-3 shrink-0","aria-hidden":"true"}),s?l.short:l.label]})}function ct({fit:t}){const s={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:g("rounded px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider font-mono",s),children:[t.text," • ",t.req_gb," GB RAM"]})}function Be(t){const s=t.toLowerCase();return s.includes("qwen")?{name:"Qwen",color:"bg-purple-500/20 text-purple-300 border-purple-500/30",initial:"Q"}:s.includes("gemma")?{name:"Gemma",color:"bg-blue-500/20 text-blue-300 border-blue-500/30",initial:"G"}:s.includes("llama")?{name:"Llama",color:"bg-red-500/20 text-red-300 border-red-500/30",initial:"🦙"}:s.includes("mistral")||s.includes("mixtral")?{name:"Mistral",color:"bg-orange-500/20 text-orange-300 border-orange-500/30",initial:"M"}:s.includes("deepseek")?{name:"DeepSeek",color:"bg-cyan-500/20 text-cyan-300 border-cyan-500/30",initial:"D"}:s.includes("hermes")||s.includes("nous")?{name:"Hermes",color:"bg-amber-500/20 text-amber-300 border-amber-500/30",initial:"H"}:s.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 xt({model:t,onClose:s,onChanged:u}){var _,E;const{data:l,isLoading:p}=Ge(t.gguf_path),[k,f]=y.useState(null),[a,C]=y.useState(""),o=l==null?void 0:l.target_vocab,N=(l==null?void 0:l.drafts)??[],w=N.filter(i=>i.compatible===!0),j=t.spec_draft_model;async function M(i){f(i??"__clear__"),C("");try{await B(`/api/models/${encodeURIComponent(t.name)}/draft`,{method:"POST",body:JSON.stringify({draft_path:i})}),u(),s()}catch(h){C(String((h==null?void 0:h.message)||h)),f(null)}}const c=i=>{var h;return i?`${i.pre??"?"} · ${((h=i.n_vocab)==null?void 0:h.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(ue,{className:"h-4 w-4"})," Speculative Draft"]}),e.jsx("button",{onClick:s,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:e.jsx(Re,{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:(_=t.name.split("/").pop())==null?void 0:_.replace(/\.gguf$/i,"")}),e.jsxs("span",{className:"text-foreground",children:["Vocab: ",c(o)]})]}),t.spec_active&&j&&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(J,{className:"h-3.5 w-3.5 shrink-0"})," Aktiv: ",j]}),e.jsx("button",{onClick:()=>M(null),disabled:k!==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"})]}),!(l!=null&&l.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:p?e.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Prüfe Vocab-Kompatibilität…"}):N.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."]}):N.map(i=>{var z,$;const h=i.filename===j,v=i.compatible===!0;return e.jsxs("div",{className:g("rounded-lg border px-3 py-2 flex items-center justify-between gap-2 text-left",v?"border-border/40 bg-background/20":"border-border/20 bg-background/10 opacity-60",h&&"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:[i.filename,i.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:[Z(i.size_bytes)," · Vocab: ",c(i.vocab)]})]}),v?h?e.jsxs("span",{className:"text-[9px] font-bold uppercase text-primary flex items-center gap-1 shrink-0",children:[e.jsx(J,{className:"h-3.5 w-3.5"})," Aktiv"]}):e.jsx("button",{onClick:()=>M(i.path),disabled:k!==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:i.compatible===!1?`Inkompatibel: Tokenizer/Vocab weicht ab (Draft ${(z=i.vocab)==null?void 0:z.pre}/${($=i.vocab)==null?void 0:$.n_vocab} ≠ Modell ${o==null?void 0:o.pre}/${o==null?void 0:o.n_vocab}).`:"Kompatibilität nicht prüfbar (Datei fehlt).",children:[e.jsx(re,{className:"h-3.5 w-3.5"})," ",i.compatible===!1?"Vocab ≠":"n/a"]})]},i.path)})}),!p&&(l==null?void 0:l.target_exists)&&N.length>0&&w.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:o==null?void 0:o.pre}),", n_vocab=",e.jsx("span",{className:"font-mono",children:(E=o==null?void 0:o.n_vocab)==null?void 0:E.toLocaleString()}),")."]}),a&&e.jsx("div",{className:"text-[10px] text-red-400 font-mono",children:a})]})})}const ye={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"}},mt={fast:"hermes",coder_lite:"coder-lite"},je={bar:"bg-slate-400",dot:"bg-slate-400",text:"text-slate-300"};function ne(t){return t&&(ye[t]||ye[mt[t]])||je}const ve=1024**3,ke=t=>{var s;return((s=t.split("/").pop())==null?void 0:s.replace(/\.gguf$/i,""))??t};function pt({running:t,capacityBytes:s,realUsedBytes:u,selected:l,onSelect:p}){const k=s>2*ve?s:124*ve,f=t.reduce((o,N)=>o+(N.size_bytes||0),0),a=Math.max(0,k-f),C=a/k*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(Ae,{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:"Arbeitsspeicher"}),e.jsxs("div",{className:"font-space text-xl font-bold tracking-tight text-foreground",children:[P(k)," 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:[P(f)," GB"]})," Modelle geladen"]}),u>0&&e.jsxs("div",{children:[P(u)," GB real belegt (inkl. KV-Cache)"]}),e.jsxs("div",{className:"text-emerald-400",children:[P(a)," 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(o=>{const N=(o.size_bytes||0)/k*100,w=ne(o.role),j=l===o.name;return e.jsxs("button",{onClick:()=>p==null?void 0:p(o.name),style:{width:`${N}%`},title:`${R(o.role).label} · ${ke(o.name)} · ${Z(o.size_bytes)}`,className:g("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",w.bar,j?"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:R(o.role).short}),e.jsx("span",{className:"truncate font-mono text-[9px] leading-tight opacity-85",children:Z(o.size_bytes)})]},o.name)}),C>1.5&&e.jsx("div",{style:{width:`${C}%`},className:"flex h-full min-w-[2rem] items-center justify-center rounded-lg text-[9px] font-mono text-muted-foreground/50",title:`${P(a)} 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(o=>{const N=ne(o.role);return e.jsxs("button",{onClick:()=>p==null?void 0:p(o.name),className:"flex items-center gap-1.5 text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:[e.jsx("span",{className:g("h-2.5 w-2.5 rounded-sm",N.dot)}),e.jsx("span",{className:g("font-semibold",N.text),children:R(o.role).short}),e.jsx("span",{className:"font-mono text-muted-foreground/70",children:ke(o.name)})]},o.name)}),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 · ",P(a)," GB"]})]})]})}const Ne=1024**3,I=t=>{var s;return((s=t.split("/").pop())==null?void 0:s.replace(/\.gguf$/i,""))??t};function ut(){var r,x,L,F;const t=Ce(),{data:s,isLoading:u,error:l}=me(),{data:p}=Fe(),{data:k}=Ke(),{showAlert:f,showConfirm:a,showPrompt:C,dialogElement:o}=Se(),N=Oe(),w=(s==null?void 0:s.models)??[],j=(s==null?void 0:s.running)??[],M=n=>!!R(n).protected,c=(r=k==null?void 0:k.groups)==null?void 0:r.brains,_=(c==null?void 0:c.members)??[],E=n=>_.includes(n),[i,h]=y.useState(null),[v,z]=y.useState(""),[$,S]=y.useState("all"),[b,T]=y.useState(null),q=()=>{t.invalidateQueries({queryKey:te.models}),t.invalidateQueries({queryKey:te.routing}),t.invalidateQueries({queryKey:te.groups})},U=w.filter(n=>j.includes(n.name)),H=((x=p==null?void 0:p.gpu)==null?void 0:x.gtt_total)||((L=p==null?void 0:p.gpu)==null?void 0:L.vram_total)||0,Q=((F=p==null?void 0:p.gpu)==null?void 0:F.gtt_used)||0,oe=H>2*Ne?H:124*Ne,V=y.useMemo(()=>{const n=v.trim().toLowerCase();return w.filter(d=>$==="in_use"?!!d.role||j.includes(d.name):!0).filter(d=>n?d.name.toLowerCase().includes(n):!0).sort((d,m)=>{const G=j.includes(d.name)?0:1,K=j.includes(m.name)?0:1;return G!==K?G-K:I(d.name).localeCompare(I(m.name))})},[w,j,$,v]),A=w.find(n=>n.name===i)??null;async function W(n){try{await B(`/api/models/${encodeURIComponent(n)}/load`,{method:"POST"}),q()}catch(d){f("Fehler",`Laden fehlgeschlagen: ${d.message||d}`)}}async function Y(n){const d=_.some(m=>j.includes(m));if(c&&d&&!E(n)){const m=_.filter(G=>j.includes(G)).map(I).join(", ");a("Verdrängt das Hirn?",`„${I(n)}" ist nicht ko-resident. Beim Laden wirft es das warme Hirn (${m}) raus — Lucy verliert Hirn bzw. Augen. - -Trotzdem exklusiv laden?`,()=>W(n));return}W(n)}async function X(n){const d=w.find(m=>m.name===n);if(d&&M(d.role)){f("Geschützt",`„${R(d.role).label}" ist lebenswichtig und bleibt geladen.`);return}try{await B(`/api/models/${encodeURIComponent(n)}/unload`,{method:"POST"}),q()}catch(m){f("Fehler",`Entladen fehlgeschlagen: ${m.message||m}`)}}async function le(n,d){try{const m=await B(`/api/models/${encodeURIComponent(d)}/role`,{method:"POST",body:JSON.stringify({role:n||null})});q(),m!=null&&m.warning&&f("Rolle gesetzt — Hinweis",m.warning)}catch(m){f("Fehler",`Rolle zuweisen fehlgeschlagen: ${m.message||m}`)}}async function ie(n,d){let m=null;try{m=await B(`/api/models/${encodeURIComponent(n)}/ctx/auto`)}catch{}const G=m?`Optimal für dein Setup: ${(m.ctx/1024).toFixed(0)}k (${m.ctx}). »Auto« trägt diesen Wert ein.`:"Gib die gewünschte Kontextlänge in Tokens an:";C("Kontextlänge anpassen",G,String(d||32768),async K=>{if(K)try{await B(`/api/models/${encodeURIComponent(n)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(K,10)})}),q()}catch(be){f("Fehler",`Kontext setzen fehlgeschlagen: ${be.message||be}`)}},void 0,m?{autoValue:String(m.ctx),autoLabel:`Auto (${(m.ctx/1024).toFixed(0)}k)`}:void 0)}async function de(n){const d=w.find(m=>m.name===n);if(d&&M(d.role)){f("Geschützt",`„${R(d.role).label}" kann nicht gelöscht werden. Weise die Rolle zuerst einem anderen Modell zu.`);return}a("Modell löschen?",`„${I(n)}" und alle GGUF-Dateien unwiderruflich von der Box löschen?`,async()=>{try{await B(`/api/models/${encodeURIComponent(n)}`,{method:"DELETE"}),i===n&&h(null),q()}catch(m){f("Fehler",`Löschen fehlgeschlagen: ${m.message||m}`)}})}return u?e.jsx("div",{className:"py-16 text-center text-xs text-muted-foreground",children:"Werkbank wird geladen …"}):l?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(l),")."]}):e.jsxs("div",{className:"space-y-5",children:[e.jsx(pt,{running:U,capacityBytes:oe,realUsedBytes:Q,selected:i,onSelect:h}),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(pe,{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:v,onChange:n=>z(n.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(n=>e.jsx("button",{onClick:()=>S(n),className:g("rounded-md px-2 py-1 text-[9px] font-bold uppercase transition-all cursor-pointer",$===n?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:n==="all"?"Alle":"In Benutzung"},n))})]}),e.jsx("div",{className:"max-h-[60vh] space-y-1.5 overflow-y-auto scrollbar-thin pr-1",children:V.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."}):V.map(n=>{const d=j.includes(n.name),m=i===n.name,G=Be(n.name),K=ne(n.role);return e.jsxs("button",{onClick:()=>h(n.name),className:g("flex w-full items-center gap-2.5 rounded-xl border p-2.5 text-left transition-all cursor-pointer",m?"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:g("flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border text-[10px] font-bold",G.color),children:G.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:I(n.name)}),e.jsxs("div",{className:"mt-0.5 flex items-center gap-1.5",children:[n.role&&e.jsx("span",{className:g("h-2 w-2 rounded-sm",K.dot)}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:n.role?R(n.role).short:"keine Rolle"}),e.jsxs("span",{className:"text-[10px] text-muted-foreground/50",children:["· ",Z(n.size_bytes)]})]})]}),d?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"]}):n.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"})]},n.name)})})]}),e.jsx("div",{className:"mc-card p-5",children:A?e.jsx(ht,{m:A,warm:j.includes(A.name),expert:N,protectedRole:M(A.role),coresident:E(A.name),onLoad:()=>Y(A.name),onUnload:()=>X(A.name),onRole:n=>le(n,A.name),onCtx:()=>ie(A.name,A.ctx),onSpec:()=>T(A),onDelete:()=>de(A.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(Ie,{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."})]})})]}),b&&e.jsx(xt,{model:b,onClose:()=>T(null),onChanged:q}),o]})}function ht({m:t,warm:s,expert:u,protectedRole:l,coresident:p,onLoad:k,onUnload:f,onRole:a,onCtx:C,onSpec:o,onDelete:N}){const w=Be(t.name),j=s&&l;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:g("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border text-sm font-bold",w.color),children:w.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:I(t.name)}),e.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[t.role?e.jsx(dt,{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"}),l&&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(Ve,{className:"mr-0.5 inline h-3 w-3"}),"geschützt"]}),p&&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(ae,{className:"mr-0.5 inline h-3 w-3"}),"Ko-resident"]}),s&&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:s?f:k,disabled:t.incomplete&&!s||j,className:g("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",s?"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:j?`„${R(t.role).label}" bleibt geladen (geschützt).`:void 0,children:[s?e.jsx(st,{className:"h-4 w-4"}):e.jsx(Te,{className:"h-4 w-4"}),j?"🔒 bleibt geladen":s?"Entladen":"Ins Warm-Set laden"]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsx("div",{className:"mb-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Rolle"}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx(we,{active:!t.role,onClick:()=>a(""),dot:"bg-slate-400",label:"keine"}),he.map(M=>e.jsx(we,{active:t.role===M.role,onClick:()=>a(M.role),dot:ne(M.role).dot,label:M.short},M.role))]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsx(bt,{icon:Ae,label:"Größe",value:Z(t.size_bytes)}),e.jsxs("button",{onClick:C,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(rt,{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:Ue(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"}),u&&e.jsxs("button",{onClick:o,className:g("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(ue,{className:"h-3 w-3"})," Spec"]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[t.spec_active&&e.jsx(ee,{tone:"emerald",label:"Spec-Decoding aktiv"}),!t.spec_active&&t.spec_draft_model&&e.jsx(ee,{tone:"amber",label:"Spec inaktiv"}),t.prompt_cache&&e.jsx(ee,{tone:"cyan",label:"Prompt-Cache"}),t.parallel_slots>1&&e.jsx(ee,{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(lt,{caps:t.capabilities})}),e.jsxs("button",{onClick:N,disabled:l,className:g("mt-auto flex h-9 items-center justify-center gap-1.5 rounded-lg border text-xs font-semibold transition-colors",l?"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(He,{className:"h-3.5 w-3.5"})," ",l?"geschützt — nicht löschbar":"Modell löschen"]})]})}function we({active:t,onClick:s,dot:u,label:l}){return e.jsxs("button",{onClick:s,className:g("flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[10px] font-semibold transition-all cursor-pointer",t?"border-primary/60 bg-primary/15 text-foreground":"border-border/40 bg-background/20 text-muted-foreground hover:border-primary/30"),children:[e.jsx("span",{className:g("h-2 w-2 rounded-sm",u)}),l,t&&e.jsx(J,{className:"h-3 w-3 text-primary"})]})}function bt({icon:t,label:s,value:u}){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:s}),e.jsx("div",{className:"font-semibold text-foreground",children:u})]})]})}function ee({tone:t,label:s}){const u={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:g("rounded border px-1.5 py-0.5 text-[10px] font-semibold",u),children:s})}const gt=[{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"}],ft=["fast","heavy","coder","vision","hermes","scout"],yt=new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1});function Me(t){return yt.format(t)}function jt(){const{data:t}=me(),s=(t==null?void 0:t.models)??[],[u,l]=y.useState(""),[p,k]=y.useState([]),[f,a]=y.useState(!1),[C,o]=y.useState(""),[N,w]=y.useState("popular"),[j,M]=y.useState(""),[c,_]=y.useState(null),[E,i]=y.useState([]),[h,v]=y.useState("Q4_K_M"),[z,$]=y.useState(""),[S,b]=y.useState(null),[T,q]=y.useState(!1),[U,H]=y.useState({});async function Q(r){a(!0),o("");try{const x=await B(`/api/hf/search?q=${encodeURIComponent(r)}`);k(x.results),x.results.length||o("Keine Ergebnisse.")}catch(x){o(`Suche fehlgeschlagen: ${x}`)}finally{a(!1)}}y.useEffect(()=>{Q("")},[]);function oe(r){w(r.key),l(""),Q(r.q)}function V(){w(""),Q(u)}async function A(r,x,L){q(!1);try{const F=await B(`/api/fit?params_b=0&quant=${encodeURIComponent(x)}&ctx=8192&name=${encodeURIComponent(r)}&role=${encodeURIComponent(L)}`);b(F)}catch{b(null)}}async function W(r){if(c===r){_(null);return}_(r),i([]),b(null),$(""),q(!1),o("Analysiere Repository…");try{const x=await B(`/api/hf/quants?repo=${encodeURIComponent(r)}`);i(x.quants);const L=x.quants.includes("Q4_K_M")?"Q4_K_M":x.quants[0]||"Q4_K_M";v(L),o(x.quants.length?"":"Keine GGUF-Dateien in diesem Repo gefunden."),x.quants.length&&A(x.repo,L,"")}catch(x){o(`Fehler: ${x}`)}}function Y(){const r=j.trim();r&&(k(x=>x.some(L=>L.repo===r)?x:[{repo:r,downloads:0,likes:0},...x]),M(""),W(r))}const X=z?s.find(r=>(r.role||"").toLowerCase()===z):void 0;async function le(r){if((S==null?void 0:S.fit.level)==="too_tight"&&!T){q(!0);return}H(x=>({...x,[r]:"Starte…"}));try{await B("/api/models/install",{method:"POST",body:JSON.stringify({repo:r,quant:h,role:z||void 0,jinja:!0})}),H(x=>({...x,[r]:"Download läuft"})),q(!1)}catch{H(L=>({...L,[r]:"Fehler"}))}}const ie=r=>{var L;const x=((L=r.split("/").pop())==null?void 0:L.toLowerCase().replace(/-gguf$/i,""))||"";return x.length>3&&s.some(F=>F.name.toLowerCase().includes(x))},de=r=>r==="perfect"?"text-emerald-400 border-emerald-500/40 bg-emerald-500/10":r==="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(pe,{className:"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx("input",{value:u,onChange:r=>l(r.target.value),onKeyDown:r=>r.key==="Enter"&&V(),"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:V,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:gt.map(r=>e.jsxs("button",{onClick:()=>oe(r),className:g("flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[11px] font-semibold transition-all cursor-pointer border",N===r.key?"bg-primary/15 text-primary border-primary/30":"border-border/50 text-muted-foreground hover:text-foreground hover:border-border"),children:[r.key==="popular"&&e.jsx(Xe,{className:"h-3 w-3"}),r.label]},r.key))}),f?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:[p.map(r=>{const x=c===r.repo,L=ie(r.repo),F=r.repo.includes("/")?r.repo.split("/")[0]:"—",n=r.repo.split("/").pop();return e.jsxs("div",{className:g("mc-card-sm",x?"border-primary/40 shadow-lg shadow-primary/5":"border-border/50 hover:border-primary/30"),children:[e.jsxs("button",{onClick:()=>W(r.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:r.repo,children:n}),L&&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(J,{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:F}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(se,{className:"h-3 w-3"})," ",Me(r.downloads)]}),r.likes>0&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(et,{className:"h-3 w-3"})," ",Me(r.likes)]})]})]}),x?e.jsx(ze,{className:"h-4 w-4 text-muted-foreground shrink-0"}):e.jsx(Le,{className:"h-4 w-4 text-muted-foreground shrink-0"})]}),x&&e.jsx("div",{className:"border-t border-border/30 p-3.5 space-y-3",children:E.length===0?e.jsx("div",{className:"text-[11px] text-muted-foreground font-mono",children:C||"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:h,onChange:d=>{v(d.target.value),A(r.repo,d.target.value,z)},"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:E.map(d=>e.jsx("option",{value:d,className:"bg-popover text-foreground",children:d},d))}),e.jsx("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground ml-1",children:"Rolle"}),e.jsxs("select",{value:z,onChange:d=>{$(d.target.value),A(r.repo,h,d.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"}),ft.map(d=>e.jsx("option",{value:d,className:"bg-popover text-foreground",children:d},d))]}),e.jsx("button",{onClick:()=>le(r.repo),disabled:!!U[r.repo]&&U[r.repo]==="Download läuft",className:g("h-8 px-3.5 ml-auto rounded-lg text-xs font-semibold transition-all cursor-pointer flex items-center gap-1.5",T?"bg-red-500 text-white hover:opacity-90":"bg-primary text-primary-foreground hover:opacity-90"),children:U[r.repo]?U[r.repo]:T?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(se,{className:"h-3.5 w-3.5"})," Herunterladen"]})})]}),S&&e.jsxs("div",{className:g("flex flex-wrap items-center gap-x-3 gap-y-1 rounded-lg border px-3 py-2 text-[11px] font-medium",de(S.fit.level)),children:[e.jsx("span",{className:"font-bold uppercase tracking-wide",children:S.fit.text}),e.jsxs("span",{className:"font-mono opacity-90",children:["~",S.params_b,"B · ~",S.fit.req_gb," GB / ",S.sys_ram_gb," GB · ~",S.fit.tps," t/s"]}),S.fit.level!=="too_tight"?e.jsxs("span",{className:"font-mono opacity-80",children:["ctx → ",(S.assigned_ctx/1024).toFixed(0),"k"]}):e.jsx("span",{className:"opacity-90",children:"— passt nicht, würde beim Laden abstürzen (OOM)."})]}),X&&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:["„",z,'"']})," hält aktuell ",e.jsx("strong",{children:X.name.split("/").pop()})," — wird beim Download übernommen."]})]})]})})]},r.repo)}),!p.length&&!f&&e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:C||"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:j,onChange:r=>M(r.target.value),onKeyDown:r=>r.key==="Enter"&&Y(),"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:Y,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 vt={fast:{title:"Schnelles Alltags-Hirn",desc:"Schnelle MoE-Antworten für Chat, Zusammenfassungen und alltägliche Aufgaben.",icon:ue},heavy:{title:"Schweres Reasoning",desc:"Große Modelle für komplexe Logik, Mathematik und tiefgründiges Planen.",icon:ae},coder:{title:"Coden & Entwicklung",desc:"Autovervollständigung, Refactoring und Codegenerierung direkt in deiner IDE.",icon:xe},vision:{title:"Bilder & Vision",desc:"Verarbeitet Bilder, Screenshots und visuelle Diagramme in multimodalen Chats.",icon:_e},hermes:{title:"Lucys Hirn (Agent)",desc:"Lucys dauer-warmes Agent-Hirn mit Tool-Calling — bleibt ko-resident, lädt nie kalt nach.",icon:Ze},scout:{title:"Multimodal-Allrounder",desc:"Multimodaler Allrounder für schnelle Antworten, Übersetzungen und Alltag.",icon:We},kritiker:{title:"Kritisches Prüf-Hirn",desc:"Schärfer Blick für Fehler, Schwachstellen und Sicherheitslücken — denkt skeptisch, bevor du deployst.",icon:$e},reranker:{title:"Gedächtnis-Sortierer",desc:"Sortiert und gewichtet gespeicherte Fakten nach Relevanz — damit die richtige Info sofort da ist.",icon:pe}};function kt(){const{data:t,isLoading:s,error:u}=Pe(),{data:l}=me(),{data:p}=Qe(),k=(l==null?void 0:l.models)??[],f=u?String(u):"",[a,C]=y.useState({}),[o,N]=y.useState({}),[w,j]=y.useState("recommended");async function M(c,_,E,i){C(h=>({...h,[c]:"Starte..."}));try{await B("/api/models/install",{method:"POST",body:JSON.stringify({repo:c,role:_,quant:E,jinja:i})}),C(h=>({...h,[c]:"Download läuft"}))}catch{C(v=>({...v,[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,_])=>e.jsx("button",{onClick:()=>j(c),className:g("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide transition-all cursor-pointer",w===c?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:_},c))}),w==="browse"?e.jsx(jt,{}):s?e.jsx("div",{className:"text-xs text-muted-foreground py-12 text-center",children:"Analysiere Hardware und suche passende GGUF-Empfehlungen…"}):f||!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 (",f,")."]}):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(nt,{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 _=vt[c.role]||{title:c.title||c.role,desc:"Spezifisches Modell für diese Systemrolle.",icon:Je},E=_.icon,i=k.find(b=>b.role===c.role||(b.aliases||[]).includes(c.role)),h=p==null?void 0:p.model_list.find(b=>b.role===c.role),v=c.models.find(b=>b.repo===c.recommended)||c.models[0];if(!v)return null;const z=a[v.repo],$=c.models.filter(b=>b.repo!==c.recommended),S=!!o[c.role];return e.jsxs("div",{className:g("mc-card p-5 flex flex-col justify-between gap-5",i?"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(E,{className:"h-5.5 w-5.5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-bold tracking-tight text-foreground",children:_.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]})]})]}),i?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:_.desc}),e.jsx("div",{className:"p-3.5 rounded-xl bg-background/35 border border-border/30 space-y-2.5",children:i?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:i.name,children:i.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: ",ce(i.size_bytes||0)]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",i.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:v.name,children:v.name}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{children:["Ersteller: ",v.author]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",v.quant]})]}),e.jsx("div",{className:"flex items-center gap-1.5 pt-0.5",children:e.jsx(ct,{fit:v.fit})})]})}),e.jsx("div",{className:"pt-1",children:i?h?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: ",h.repo.split("/").pop()]})]}),e.jsxs("button",{onClick:()=>M(h.repo,c.role,v.quant||"Q4_K_M",v.caps.tools!=="no"),disabled:!!a[h.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(se,{className:"h-3.5 w-3.5"}),a[h.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(J,{className:"h-4 w-4"})," Auf neuestem Stand"]}):e.jsxs("button",{onClick:()=>M(v.repo,c.role,v.quant||"Q4_K_M",v.caps.tools!=="no"),disabled:!!z,className:g("h-8 w-full flex items-center justify-center gap-1.5 rounded-lg text-xs font-bold transition-all cursor-pointer border",z?"border-primary/40 bg-primary/5 text-primary":"bg-primary text-primary-foreground hover:opacity-90 shadow-md shadow-primary/10"),children:[e.jsx(se,{className:"h-3.5 w-3.5"}),z||"Optimales Modell einsetzen"]})})]}),$.length>0&&e.jsxs("div",{className:"border-t border-border/20 pt-3",children:[e.jsxs("button",{onClick:()=>N(b=>({...b,[c.role]:!S})),className:"flex items-center gap-1.5 text-[10px] text-muted-foreground/80 hover:text-foreground transition-colors cursor-pointer",children:[S?e.jsx(ze,{className:"h-3 w-3"}):e.jsx(Le,{className:"h-3 w-3"}),e.jsxs("span",{children:["Alternative Empfehlungen anzeigen (",$.length,")"]})]}),S&&e.jsx("div",{className:"mt-2.5 space-y-2 max-h-36 overflow-y-auto pr-1 scrollbar-thin",children:$.map(b=>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:b.name,children:b.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: ",b.quant]}),e.jsx("span",{children:"•"}),e.jsx("span",{children:b.fit.text})]})]}),e.jsx("button",{onClick:()=>M(b.repo,c.role,b.quant||"Q4_K_M",b.caps.tools!=="no"),disabled:!!a[b.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:a[b.repo]||"Installieren"})]},b.repo))})]})]},c.role)})})]})]})}function Mt(){const[t,s]=y.useState("cockpit");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:"Verwalte deine Modelle und passe das Gateway-Routing live über das interaktive Cockpit an."})]}),e.jsx("div",{className:"flex mc-card-sm p-1 self-start",children:["cockpit","discover"].map(u=>e.jsx("button",{onClick:()=>s(u),className:g("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",t===u?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:u==="cockpit"?"Werkbank":"Modelle finden"},u))})]}),e.jsx(ot,{}),e.jsx("div",{className:"transition-all duration-300",children:t==="cockpit"?e.jsx(ut,{}):e.jsx(kt,{})})]})}export{Mt as ModelsView}; diff --git a/frontend/dist/assets/WissenView-BIHIR-Sv.js b/frontend/dist/assets/WissenView-Pm0MoK-1.js similarity index 97% rename from frontend/dist/assets/WissenView-BIHIR-Sv.js rename to frontend/dist/assets/WissenView-Pm0MoK-1.js index 7a60aa1..52d0250 100644 --- a/frontend/dist/assets/WissenView-BIHIR-Sv.js +++ b/frontend/dist/assets/WissenView-Pm0MoK-1.js @@ -1,4 +1,4 @@ -import{aj as y,r as x,g as L,j as e,L as v,S,ak as W,N as C,e as w,al as E}from"./index-DgTg5QdX.js";import{F as M}from"./folder-open-COXogvYR.js";const D={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function T(){const{data:o,isLoading:h}=y(),[l,f]=x.useState(null),[d,r]=x.useState(null),[u,i]=x.useState(!1),[a,p]=x.useState(""),t=x.useMemo(()=>(o==null?void 0:o.files)??[],[o]),m=x.useMemo(()=>{const s=new Map;for(const n of t)s.set(n.name.toLowerCase(),n.path);return s},[t]),g=x.useMemo(()=>{if(!a.trim())return t;const s=a.toLowerCase();return t.filter(n=>n.title.toLowerCase().includes(s)||n.path.toLowerCase().includes(s))},[t,a]),b=x.useMemo(()=>{const s=[];for(const n of g){const c=s.find(k=>k.dir===n.dir);c?c.files.push(n):s.push({dir:n.dir,files:[n]})}return s.sort((n,c)=>n.dir===""?-1:c.dir===""?1:n.dir.localeCompare(c.dir))},[g]);x.useEffect(()=>{if(!l&&t.length){const s=t.find(n=>n.path.toLowerCase()==="index.md");f((s==null?void 0:s.path)??t[0].path)}},[t,l]),x.useEffect(()=>{l&&(i(!0),L(`/api/wissen/datei?pfad=${encodeURIComponent(l)}`).then(r).catch(()=>r({path:l,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>i(!1)))},[l]);const j=s=>{const n=m.get(s.toLowerCase());n&&f(n)};return e.jsxs("div",{className:"space-y-5",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:"Wissen"}),e.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."})]}),o&&!o.available&&e.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."}),h&&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(v,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(o==null?void 0:o.available)&&t.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 Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),t.length>0&&e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[e.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[e.jsxs("div",{className:"relative",children:[e.jsx("input",{value:a,onChange:s=>p(s.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"}),e.jsx(S,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),e.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:b.map(({dir:s,files:n})=>e.jsxs("div",{children:[e.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(M,{className:"h-3 w-3"})," ",D[s]??s]}),e.jsx("div",{className:"space-y-0.5",children:n.map(c=>e.jsxs("button",{onClick:()=>f(c.path),className:w("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",l===c.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[e.jsx(W,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"truncate",title:c.title,children:c.name}),c.neu&&e.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:[e.jsx(C,{className:"h-2.5 w-2.5"}),"neu"]})]},c.path))})]},s||"__root"))})]}),e.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:u?e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(v,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):d?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[e.jsx(E,{className:"h-3.5 w-3.5"})," ",d.path]}),d.mtime>0&&e.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(d.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),e.jsx(z,{text:d.content,onWikiLink:j,known:m})]}):null})]})]})}function z({text:o,onWikiLink:h,known:l}){const f=o.split(` +import{an as y,r as x,g as L,j as e,L as v,S,ao as W,U as C,e as w,ap as E}from"./index-B7xWfxHK.js";import{F as M}from"./folder-open-DvJJWdCX.js";const D={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function T(){const{data:o,isLoading:h}=y(),[l,f]=x.useState(null),[d,r]=x.useState(null),[u,i]=x.useState(!1),[a,p]=x.useState(""),t=x.useMemo(()=>(o==null?void 0:o.files)??[],[o]),m=x.useMemo(()=>{const s=new Map;for(const n of t)s.set(n.name.toLowerCase(),n.path);return s},[t]),g=x.useMemo(()=>{if(!a.trim())return t;const s=a.toLowerCase();return t.filter(n=>n.title.toLowerCase().includes(s)||n.path.toLowerCase().includes(s))},[t,a]),b=x.useMemo(()=>{const s=[];for(const n of g){const c=s.find(k=>k.dir===n.dir);c?c.files.push(n):s.push({dir:n.dir,files:[n]})}return s.sort((n,c)=>n.dir===""?-1:c.dir===""?1:n.dir.localeCompare(c.dir))},[g]);x.useEffect(()=>{if(!l&&t.length){const s=t.find(n=>n.path.toLowerCase()==="index.md");f((s==null?void 0:s.path)??t[0].path)}},[t,l]),x.useEffect(()=>{l&&(i(!0),L(`/api/wissen/datei?pfad=${encodeURIComponent(l)}`).then(r).catch(()=>r({path:l,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>i(!1)))},[l]);const j=s=>{const n=m.get(s.toLowerCase());n&&f(n)};return e.jsxs("div",{className:"space-y-5",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:"Wissen"}),e.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."})]}),o&&!o.available&&e.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."}),h&&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(v,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(o==null?void 0:o.available)&&t.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 Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),t.length>0&&e.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[e.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[e.jsxs("div",{className:"relative",children:[e.jsx("input",{value:a,onChange:s=>p(s.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"}),e.jsx(S,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),e.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:b.map(({dir:s,files:n})=>e.jsxs("div",{children:[e.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(M,{className:"h-3 w-3"})," ",D[s]??s]}),e.jsx("div",{className:"space-y-0.5",children:n.map(c=>e.jsxs("button",{onClick:()=>f(c.path),className:w("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",l===c.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[e.jsx(W,{className:"h-3.5 w-3.5 shrink-0"}),e.jsx("span",{className:"truncate",title:c.title,children:c.name}),c.neu&&e.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:[e.jsx(C,{className:"h-2.5 w-2.5"}),"neu"]})]},c.path))})]},s||"__root"))})]}),e.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:u?e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(v,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):d?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[e.jsx(E,{className:"h-3.5 w-3.5"})," ",d.path]}),d.mtime>0&&e.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(d.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),e.jsx(z,{text:d.content,onWikiLink:j,known:m})]}):null})]})]})}function z({text:o,onWikiLink:h,known:l}){const f=o.split(` `),d=[];let r=[],u=null;const i=a=>{r.length&&(d.push(e.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:r},a)),r=[])};return f.forEach((a,p)=>{const t=`l${p}`;if(u!==null){a.trimEnd()==="```"?(d.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:u.join(` `)},t)),u=null):u.push(a);return}if(a.trimStart().startsWith("```")){i(t),u=[];return}const m=a.trimEnd();if(!m.trim()){i(t);return}const g=m.match(/^(#{1,4})\s+(.*)$/);if(g){i(t);const j=g[1].length,s=j===1?"text-lg font-bold mt-1 mb-3":j===2?"text-base font-bold mt-4 mb-2":"text-sm font-bold mt-3 mb-1.5";d.push(e.jsx("p",{className:w(s,"font-space text-foreground"),children:N(g[2],h,l,t)},t));return}const b=m.match(/^\s*[-*•]\s+(.*)$/);if(b){r.push(e.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:N(b[1],h,l,t)},t));return}i(t),d.push(e.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:N(m,h,l,t)},t))}),i("end"),u!==null&&d.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:u.join(` `)},"code-end")),e.jsx("div",{className:"max-w-3xl",children:d})}function N(o,h,l,f){return o.split(/(\[\[[^\]]+\]\]|\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((r,u)=>{const i=`${f}-${u}`,a=r.match(/^\[\[([^\]|]+)(?:\|([^\]]+))?\]\]$/);if(a){const p=a[1].trim(),t=(a[2]??a[1]).trim();return l.has(p.toLowerCase())?e.jsx("button",{onClick:()=>h(p),className:"rounded bg-primary/10 px-1 text-primary underline decoration-primary/40 underline-offset-2 hover:bg-primary/20 cursor-pointer",children:t},i):e.jsx("span",{className:"rounded bg-background/40 px-1 text-muted-foreground",title:"Notiz existiert (noch) nicht",children:t},i)}return r.startsWith("**")&&r.endsWith("**")?e.jsx("b",{className:"font-semibold text-foreground",children:r.slice(2,-2)},i):r.startsWith("*")&&r.endsWith("*")&&r.length>2?e.jsx("i",{children:r.slice(1,-1)},i):r.startsWith("`")&&r.endsWith("`")?e.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-teal-300",children:r.slice(1,-1)},i):e.jsx("span",{children:r},i)})}export{T as WissenView}; diff --git a/frontend/dist/assets/book-open-lYTKOEmg.js b/frontend/dist/assets/book-open-AAGxczYd.js similarity index 90% rename from frontend/dist/assets/book-open-lYTKOEmg.js rename to frontend/dist/assets/book-open-AAGxczYd.js index d07f2f1..54768c2 100644 --- a/frontend/dist/assets/book-open-lYTKOEmg.js +++ b/frontend/dist/assets/book-open-AAGxczYd.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DgTg5QdX.js";/** +import{c as a}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/circle-x-ADu9dwvS.js b/frontend/dist/assets/circle-x-CL-55we_.js similarity index 89% rename from frontend/dist/assets/circle-x-ADu9dwvS.js rename to frontend/dist/assets/circle-x-CL-55we_.js index 2cfeaeb..a1cbbb5 100644 --- a/frontend/dist/assets/circle-x-ADu9dwvS.js +++ b/frontend/dist/assets/circle-x-CL-55we_.js @@ -1,4 +1,4 @@ -import{c}from"./index-DgTg5QdX.js";/** +import{c}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/copy-BdEWnHoH.js b/frontend/dist/assets/copy-C9YTwYNu.js similarity index 90% rename from frontend/dist/assets/copy-BdEWnHoH.js rename to frontend/dist/assets/copy-C9YTwYNu.js index 3b1a8d2..0fae291 100644 --- a/frontend/dist/assets/copy-BdEWnHoH.js +++ b/frontend/dist/assets/copy-C9YTwYNu.js @@ -1,4 +1,4 @@ -import{c}from"./index-DgTg5QdX.js";/** +import{c}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/folder-open-COXogvYR.js b/frontend/dist/assets/folder-open-DvJJWdCX.js similarity index 90% rename from frontend/dist/assets/folder-open-COXogvYR.js rename to frontend/dist/assets/folder-open-DvJJWdCX.js index 9643c8d..2c1240c 100644 --- a/frontend/dist/assets/folder-open-COXogvYR.js +++ b/frontend/dist/assets/folder-open-DvJJWdCX.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DgTg5QdX.js";/** +import{c as a}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/index-B7xWfxHK.js b/frontend/dist/assets/index-B7xWfxHK.js new file mode 100644 index 0000000..f3c0627 --- /dev/null +++ b/frontend/dist/assets/index-B7xWfxHK.js @@ -0,0 +1,461 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelsView-CWjoBiDg.js","assets/rotate-ccw-CzU0JCRt.js","assets/zap-DsIHOTxw.js","assets/ConnectView-CGf1mhQH.js","assets/folder-open-DvJJWdCX.js","assets/circle-x-CL-55we_.js","assets/copy-C9YTwYNu.js","assets/MemoryView-C9JTzWkR.js","assets/send-CR5xzVO1.js","assets/book-open-AAGxczYd.js","assets/GuideView-CYlY1Sku.js","assets/lightbulb-BmFqk4PC.js","assets/AuftragsbuchView-BKC3af8o.js","assets/ChronikView-B6sTtHYw.js","assets/EigenlebenView-UQ_NPXNm.js","assets/WissenView-Pm0MoK-1.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 ws=(e,t,r)=>VI(e,typeof t!="symbol"?t+"":t,r),ym=(e,t,r)=>t.has(e)||b1("Cannot "+r);var $=(e,t,r)=>(ym(e,t,"read from private field"),r?r.call(e):t.get(e)),je=(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)=>(ym(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ze=(e,t,r)=>(ym(e,t,"access private method"),r);var qc=(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 My(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gm={exports:{}},Ss={},xm={exports:{}},Le={};/** + * @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 Le;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 y(M){return M===null||typeof M!="object"?null:(M=m&&M[m]||M["@@iterator"],typeof M=="function"?M:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,S={};function k(M,T,Z){this.props=M,this.context=T,this.refs=S,this.updater=Z||b}k.prototype.isReactComponent={},k.prototype.setState=function(M,T){if(typeof M!="object"&&typeof M!="function"&&M!=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,M,T,"setState")},k.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function P(){}P.prototype=k.prototype;function j(M,T,Z){this.props=M,this.context=T,this.refs=S,this.updater=Z||b}var _=j.prototype=new P;_.constructor=j,E(_,k.prototype),_.isPureReactComponent=!0;var O=Array.isArray,N=Object.prototype.hasOwnProperty,C={current:null},R={key:!0,ref:!0,__self:!0,__source:!0};function z(M,T,Z){var se,te={},ce=null,ye=null;if(T!=null)for(se in T.ref!==void 0&&(ye=T.ref),T.key!==void 0&&(ce=""+T.key),T)N.call(T,se)&&!R.hasOwnProperty(se)&&(te[se]=T[se]);var _e=arguments.length-2;if(_e===1)te.children=Z;else if(1<_e){for(var J=Array(_e),we=0;we<_e;we++)J[we]=arguments[we+2];te.children=J}if(M&&M.defaultProps)for(se in _e=M.defaultProps,_e)te[se]===void 0&&(te[se]=_e[se]);return{$$typeof:e,type:M,key:ce,ref:ye,props:te,_owner:C.current}}function F(M,T){return{$$typeof:e,type:M.type,key:T,ref:M.ref,props:M.props,_owner:M._owner}}function V(M){return typeof M=="object"&&M!==null&&M.$$typeof===e}function Q(M){var T={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(Z){return T[Z]})}var B=/\/+/g;function ue(M,T){return typeof M=="object"&&M!==null&&M.key!=null?Q(""+M.key):T.toString(36)}function G(M,T,Z,se,te){var ce=typeof M;(ce==="undefined"||ce==="boolean")&&(M=null);var ye=!1;if(M===null)ye=!0;else switch(ce){case"string":case"number":ye=!0;break;case"object":switch(M.$$typeof){case e:case t:ye=!0}}if(ye)return ye=M,te=te(ye),M=se===""?"."+ue(ye,0):se,O(te)?(Z="",M!=null&&(Z=M.replace(B,"$&/")+"/"),G(te,T,Z,"",function(we){return we})):te!=null&&(V(te)&&(te=F(te,Z+(!te.key||ye&&ye.key===te.key?"":(""+te.key).replace(B,"$&/")+"/")+M)),T.push(te)),1;if(ye=0,se=se===""?".":se+":",O(M))for(var _e=0;_e>>1,T=Y[M];if(0>>1;Mi(te,X))cei(ye,te)?(Y[M]=ye,Y[ce]=X,M=ce):(Y[M]=te,Y[se]=X,M=se);else if(cei(ye,X))Y[M]=ye,Y[ce]=X,M=ce;else break e}}return ae}function i(Y,ae){var X=Y.sortIndex-ae.sortIndex;return X!==0?X:Y.id-ae.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,y=3,b=!1,E=!1,S=!1,k=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(Y){for(var ae=r(f);ae!==null;){if(ae.callback===null)n(f);else if(ae.startTime<=Y)n(f),ae.sortIndex=ae.expirationTime,t(d,ae);else break;ae=r(f)}}function O(Y){if(S=!1,_(Y),!E)if(r(d)!==null)E=!0,fe(N);else{var ae=r(f);ae!==null&&de(O,ae.startTime-Y)}}function N(Y,ae){E=!1,S&&(S=!1,P(z),z=-1),b=!0;var X=y;try{for(_(ae),m=r(d);m!==null&&(!(m.expirationTime>ae)||Y&&!Q());){var M=m.callback;if(typeof M=="function"){m.callback=null,y=m.priorityLevel;var T=M(m.expirationTime<=ae);ae=e.unstable_now(),typeof T=="function"?m.callback=T:m===r(d)&&n(d),_(ae)}else n(d);m=r(d)}if(m!==null)var Z=!0;else{var se=r(f);se!==null&&de(O,se.startTime-ae),Z=!1}return Z}finally{m=null,y=X,b=!1}}var C=!1,R=null,z=-1,F=5,V=-1;function Q(){return!(e.unstable_now()-VY||125M?(Y.sortIndex=X,t(f,Y),r(d)===null&&Y===r(f)&&(S?(P(z),z=-1):S=!0,de(O,X-M))):(Y.sortIndex=T,t(d,Y),E||b||(E=!0,fe(N))),Y},e.unstable_shouldYield=Q,e.unstable_wrapCallback=function(Y){var ae=y;return function(){var X=y;y=ae;try{return Y.apply(this,arguments)}finally{y=X}}}})(Sm)),Sm}var A1;function ZI(){return A1||(A1=1,wm.exports=XI()),wm.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 hr;O1=1;var e=kl(),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 y(a){return d.call(m,a)?!0:d.call(h,a)?!1:f.test(a)?m[a]=!0:(h[a]=!0,!1)}function b(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 E(a,l,c,p){if(l===null||typeof l>"u"||b(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,v,w,A){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=p,this.attributeNamespace=v,this.mustUseProperty=c,this.propertyName=a,this.type=l,this.sanitizeURL=w,this.removeEmptyString=A}var k={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){k[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];k[l]=new S(l,1,!1,a[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){k[a]=new S(a,2,!1,a.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){k[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){k[a]=new S(a,3,!1,a.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(a){k[a]=new S(a,3,!0,a,null,!1,!1)}),["capture","download"].forEach(function(a){k[a]=new S(a,4,!1,a,null,!1,!1)}),["cols","rows","size","span"].forEach(function(a){k[a]=new S(a,6,!1,a,null,!1,!1)}),["rowSpan","start"].forEach(function(a){k[a]=new S(a,5,!1,a.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function j(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,j);k[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,j);k[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,j);k[l]=new S(l,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(a){k[a]=new S(a,1,!1,a.toLowerCase(),null,!1,!1)}),k.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(a){k[a]=new S(a,1,!1,a.toLowerCase(),null,!0,!0)});function _(a,l,c,p){var v=k.hasOwnProperty(l)?k[l]:null;(v!==null?v.type!==0:p||!(2I||v[A]!==w[I]){var D=` +`+v[A].replace(" at new "," at ");return a.displayName&&D.includes("")&&(D=D.replace("",a.displayName)),D}while(1<=A&&0<=I);break}}}finally{Z=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?T(a):""}function te(a){switch(a.tag){case 5:return T(a.type);case 16:return T("Lazy");case 13:return T("Suspense");case 19:return T("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 R:return"Fragment";case C:return"Portal";case F:return"Profiler";case z:return"StrictMode";case ue:return"Suspense";case G:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case Q:return(a.displayName||"Context")+".Consumer";case V: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===z?"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 J(a){var l=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function we(a){var l=J(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 v=c.get,w=c.set;return Object.defineProperty(a,l,{configurable:!0,get:function(){return v.call(this)},set:function(A){p=""+A,w.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 Ae(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=J(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 $e(a,l){var c=l.checked;return X({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??a._wrapperState.initialChecked})}function Pe(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&&_(a,"checked",l,!1)}function lr(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")?q(a,l.type,c):l.hasOwnProperty("defaultValue")&&q(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 q(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 Ze(a,l,c,p){if(a=a.options,l){l={};for(var v=0;v"+l.valueOf().toString()+"",l=zu.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}});function $l(a,l){if(l){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=l;return}}a.textContent=l}var Ll={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},Y_=["Webkit","ms","Moz","O"];Object.keys(Ll).forEach(function(a){Y_.forEach(function(l){l=l+a.charAt(0).toUpperCase()+a.substring(1),Ll[l]=Ll[a]})});function D0(a,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Ll.hasOwnProperty(a)&&Ll[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,v=D0(c,l[c],p);c==="float"&&(c="cssFloat"),p?a.setProperty(c,v):a[c]=v}}var Q_=X({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 jh(a,l){if(l){if(Q_[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 _h(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 Nh=null;function Ih(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var Mh=null,ro=null,no=null;function $0(a){if(a=os(a)){if(typeof Mh!="function")throw Error(r(280));var l=a.stateNode;l&&(l=sc(l),Mh(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 Hu=64,Ku=4194304;function Ul(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 Vu(a,l){var c=a.pendingLanes;if(c===0)return 0;var p=0,v=a.suspendedLanes,w=a.pingedLanes,A=c&268435455;if(A!==0){var I=A&~v;I!==0?p=Ul(I):(w&=A,w!==0&&(p=Ul(w)))}else A=c&~v,A!==0?p=Ul(A):w!==0&&(p=Ul(w));if(p===0)return 0;if(l!==0&&l!==p&&(l&v)===0&&(v=p&-p,w=l&-l,v>=w||v===16&&(w&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 Wl(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=Xl),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"||!Xh&&mx(a,l)?(a=lx(),Xu=Kh=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 ep(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&&ep(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 v=c.textContent.length,w=Math.min(p.start,v);p=p.end===void 0?w:Math.min(p.end,v),!a.extend&&w>p&&(v=p,p=w,w=v),v=Ex(c,w);var A=Ex(c,p);v&&A&&(a.rangeCount!==1||a.anchorNode!==v.node||a.anchorOffset!==v.offset||a.focusNode!==A.node||a.focusOffset!==A.offset)&&(l=l.createRange(),l.setStart(v.node,v.offset),a.removeAllRanges(),w>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,tp=null,ts=null,rp=!1;function Ox(a,l,c){var p=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;rp||lo==null||lo!==lt(p)||(p=lo,"selectionStart"in p&&ep(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}),ts&&es(ts,p)||(ts=p,p=ac(tp,"onSelect"),0ho||(a.current=pp[ho],pp[ho]=null,ho--)}function Ye(a,l){ho++,pp[ho]=a.current,a.current=l}var wi={},Kt=bi(wi),sr=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 v={},w;for(w in c)v[w]=l[w];return p&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=l,a.__reactInternalMemoizedMaskedChildContext=v),v}function ur(a){return a=a.childContextTypes,a!=null}function uc(){et(sr),et(Kt)}function Ux(a,l,c){if(Kt.current!==wi)throw Error(r(168));Ye(Kt,l),Ye(sr,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 v in p)if(!(v in l))throw Error(r(108,ye(a)||"Unknown",v));return X({},c,p)}function cc(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||wi,aa=Kt.current,Ye(Kt,a),Ye(sr,sr.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,et(sr),et(Kt),Ye(Kt,a)):et(sr),Ye(sr,c)}var Rn=null,dc=!1,mp=!1;function Kx(a){Rn===null?Rn=[a]:Rn.push(a)}function cI(a){dc=!0,Kx(a)}function Si(){if(!mp&&Rn!==null){mp=!0;var a=0,l=qe;try{var c=Rn;for(qe=1;a>=A,v-=A,$n=1<<32-qr(l)+v|c<Ne?(Ct=Ce,Ce=null):Ct=Ce.sibling;var He=ee(U,Ce,W[Ne],oe);if(He===null){Ce===null&&(Ce=Ct);break}a&&Ce&&He.alternate===null&&l(U,Ce),L=w(He,L,Ne),Oe===null?Se=He:Oe.sibling=He,Oe=He,Ce=Ct}if(Ne===W.length)return c(U,Ce),it&&la(U,Ne),Se;if(Ce===null){for(;NeNe?(Ct=Ce,Ce=null):Ct=Ce.sibling;var Ni=ee(U,Ce,He.value,oe);if(Ni===null){Ce===null&&(Ce=Ct);break}a&&Ce&&Ni.alternate===null&&l(U,Ce),L=w(Ni,L,Ne),Oe===null?Se=Ni:Oe.sibling=Ni,Oe=Ni,Ce=Ct}if(He.done)return c(U,Ce),it&&la(U,Ne),Se;if(Ce===null){for(;!He.done;Ne++,He=W.next())He=ie(U,He.value,oe),He!==null&&(L=w(He,L,Ne),Oe===null?Se=He:Oe.sibling=He,Oe=He);return it&&la(U,Ne),Se}for(Ce=p(U,Ce);!He.done;Ne++,He=W.next())He=he(Ce,U,Ne,He.value,oe),He!==null&&(a&&He.alternate!==null&&Ce.delete(He.key===null?Ne:He.key),L=w(He,L,Ne),Oe===null?Se=He:Oe.sibling=He,Oe=He);return a&&Ce.forEach(function(HI){return l(U,HI)}),it&&la(U,Ne),Se}function mt(U,L,W,oe){if(typeof W=="object"&&W!==null&&W.type===R&&W.key===null&&(W=W.props.children),typeof W=="object"&&W!==null){switch(W.$$typeof){case N:e:{for(var Se=W.key,Oe=L;Oe!==null;){if(Oe.key===Se){if(Se=W.type,Se===R){if(Oe.tag===7){c(U,Oe.sibling),L=v(Oe,W.props.children),L.return=U,U=L;break e}}else if(Oe.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===fe&&Xx(Se)===Oe.type){c(U,Oe.sibling),L=v(Oe,W.props),L.ref=ls(U,Oe,W),L.return=U,U=L;break e}c(U,Oe);break}else l(U,Oe);Oe=Oe.sibling}W.type===R?(L=ma(W.props.children,U.mode,oe,W.key),L.return=U,U=L):(oe=zc(W.type,W.key,W.props,null,U.mode,oe),oe.ref=ls(U,L,W),oe.return=U,U=oe)}return A(U);case C:e:{for(Oe=W.key;L!==null;){if(L.key===Oe)if(L.tag===4&&L.stateNode.containerInfo===W.containerInfo&&L.stateNode.implementation===W.implementation){c(U,L.sibling),L=v(L,W.children||[]),L.return=U,U=L;break e}else{c(U,L);break}else l(U,L);L=L.sibling}L=fm(W,U.mode,oe),L.return=U,U=L}return A(U);case fe:return Oe=W._init,mt(U,L,Oe(W._payload),oe)}if(Ie(W))return ge(U,L,W,oe);if(ae(W))return xe(U,L,W,oe);mc(U,W)}return typeof W=="string"&&W!==""||typeof W=="number"?(W=""+W,L!==null&&L.tag===6?(c(U,L.sibling),L=v(L,W),L.return=U,U=L):(c(U,L),L=dm(W,U.mode,oe),L.return=U,U=L),A(U)):c(U,L)}return mt}var go=Zx(!0),Jx=Zx(!1),vc=bi(null),yc=null,xo=null,wp=null;function Sp(){wp=xo=yc=null}function kp(a){var l=vc.current;et(vc),a._currentValue=l}function Ep(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){yc=a,wp=xo=null,a=a.dependencies,a!==null&&a.firstContext!==null&&((a.lanes&l)!==0&&(cr=!0),a.firstContext=null)}function Ir(a){var l=a._currentValue;if(wp!==a)if(a={context:a,memoizedValue:l,next:null},xo===null){if(yc===null)throw Error(r(308));xo=a,yc.dependencies={lanes:0,firstContext:a}}else xo=xo.next=a;return l}var sa=null;function Pp(a){sa===null?sa=[a]:sa.push(a)}function eb(a,l,c,p){var v=l.interleaved;return v===null?(c.next=c,Pp(l)):(c.next=v.next,v.next=c),l.interleaved=c,zn(a,p)}function zn(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 Ap(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 Fn(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 v=p.pending;return v===null?l.next=l:(l.next=v.next,v.next=l),p.pending=l,zn(a,c)}return v=p.interleaved,v===null?(l.next=l,Pp(p)):(l.next=v.next,v.next=l),p.interleaved=l,zn(a,c)}function gc(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,Fh(a,c)}}function rb(a,l){var c=a.updateQueue,p=a.alternate;if(p!==null&&(p=p.updateQueue,c===p)){var v=null,w=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};w===null?v=w=A:w=w.next=A,c=c.next}while(c!==null);w===null?v=w=l:w=w.next=l}else v=w=l;c={baseState:p.baseState,firstBaseUpdate:v,lastBaseUpdate:w,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 xc(a,l,c,p){var v=a.updateQueue;ki=!1;var w=v.firstBaseUpdate,A=v.lastBaseUpdate,I=v.shared.pending;if(I!==null){v.shared.pending=null;var D=I,K=D.next;D.next=null,A===null?w=K:A.next=K,A=D;var re=a.alternate;re!==null&&(re=re.updateQueue,I=re.lastBaseUpdate,I!==A&&(I===null?re.firstBaseUpdate=K:I.next=K,re.lastBaseUpdate=D))}if(w!==null){var ie=v.baseState;A=0,re=K=D=null,I=w;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"){ie=ge.call(he,ie,ee);break e}ie=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=xe.payload,ee=typeof ge=="function"?ge.call(he,ie,ee):ge,ee==null)break e;ie=X({},ie,ee);break e;case 2:ki=!0}}I.callback!==null&&I.lane!==0&&(a.flags|=64,ee=v.effects,ee===null?v.effects=[I]:ee.push(I))}else he={eventTime:he,lane:ee,tag:I.tag,payload:I.payload,callback:I.callback,next:null},re===null?(K=re=he,D=ie):re=re.next=he,A|=ee;if(I=I.next,I===null){if(I=v.shared.pending,I===null)break;ee=I,I=ee.next,ee.next=null,v.lastBaseUpdate=ee,v.shared.pending=null}}while(!0);if(re===null&&(D=ie),v.baseState=D,v.firstBaseUpdate=K,v.lastBaseUpdate=re,l=v.shared.interleaved,l!==null){v=l;do A|=v.lane,v=v.next;while(v!==l)}else w===null&&(v.shared.lanes=0);da|=A,a.lanes=A,a.memoizedState=ie}}function nb(a,l,c){if(a=l.effects,l.effects=null,a!==null)for(l=0;lc?c:4,a(!0);var p=Np.transition;Np.transition={};try{a(!1),l()}finally{qe=c,Np.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 v=tr();Jr(c,a,p,v),Pb(c,l,p)}}function mI(a,l,c){var p=Ci(a),v={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null};if(kb(a))Eb(l,v);else{var w=a.alternate;if(a.lanes===0&&(w===null||w.lanes===0)&&(w=l.lastRenderedReducer,w!==null))try{var A=l.lastRenderedState,I=w(A,c);if(v.hasEagerState=!0,v.eagerState=I,Gr(I,A)){var D=l.interleaved;D===null?(v.next=v,Pp(l)):(v.next=D.next,D.next=v),l.interleaved=v;return}}catch{}finally{}c=eb(a,l,v,p),c!==null&&(v=tr(),Jr(c,a,p,v),Pb(c,l,p))}}function kb(a){var l=a.alternate;return a===ut||l!==null&&l===ut}function Eb(a,l){ds=Sc=!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,Fh(a,c)}}var Pc={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,kc(4194308,4,yb.bind(null,l,a),c)},useLayoutEffect:function(a,l){return kc(4194308,4,a,l)},useInsertionEffect:function(a,l){return kc(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:Lp,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,v=hn();if(it){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)}v.memoizedState=c;var w={value:c,getSnapshot:l};return v.queue=w,pb(ub.bind(null,p,w,a),[a]),p.flags|=2048,ps(9,sb.bind(null,p,w,c,l),void 0,null),c},useId:function(){var a=hn(),l=Ot.identifierPrefix;if(it){var c=Ln,p=$n;c=(p&~(1<<32-qr(p)-1)).toString(32)+c,l=":"+l+"R"+c,c=fs++,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[as]=p,Kb(a,l,!1,!1),l.stateNode=a;e:{switch(A=_h(c,p),c){case"dialog":Je("cancel",a),Je("close",a),v=p;break;case"iframe":case"object":case"embed":Je("load",a),v=p;break;case"video":case"audio":for(v=0;vPo&&(l.flags|=128,p=!0,ms(w,!1),l.lanes=4194304)}else{if(!p)if(a=bc(A),a!==null){if(l.flags|=128,p=!0,c=a.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),ms(w,!0),w.tail===null&&w.tailMode==="hidden"&&!A.alternate&&!it)return qt(l),null}else 2*pt()-w.renderingStartTime>Po&&c!==1073741824&&(l.flags|=128,p=!0,ms(w,!1),l.lanes=4194304);w.isBackwards?(A.sibling=l.child,l.child=A):(c=w.last,c!==null?c.sibling=A:l.child=A,w.last=A)}return w.tail!==null?(l=w.tail,w.rendering=l,w.tail=l.sibling,w.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 sm(),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(yp(l),l.tag){case 1:return ur(l.type)&&uc(),a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 3:return wo(),et(sr),et(Kt),_p(),a=l.flags,(a&65536)!==0&&(a&128)===0?(l.flags=a&-65537|128,l):null;case 5:return Cp(l),null;case 13:if(et(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 et(st),null;case 4:return wo(),null;case 10:return kp(l.type._context),null;case 22:case 23:return sm(),null;case 24:return null;default:return null}}var jc=!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 Qp(a,l,c){try{c()}catch(p){ct(a,l,p)}}var Gb=!1;function AI(a,l){if(sp=Yu,a=Ax(),ep(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 v=p.anchorOffset,w=p.focusNode;p=p.focusOffset;try{c.nodeType,w.nodeType}catch{c=null;break e}var A=0,I=-1,D=-1,K=0,re=0,ie=a,ee=null;t:for(;;){for(var he;ie!==c||v!==0&&ie.nodeType!==3||(I=A+v),ie!==w||p!==0&&ie.nodeType!==3||(D=A+p),ie.nodeType===3&&(A+=ie.nodeValue.length),(he=ie.firstChild)!==null;)ee=ie,ie=he;for(;;){if(ie===a)break t;if(ee===c&&++K===v&&(I=A),ee===w&&++re===p&&(D=A),(he=ie.nextSibling)!==null)break;ie=ee,ee=ie.parentNode}ie=he}c=I===-1||D===-1?null:{start:I,end:D}}else c=null}c=c||{start:0,end:0}}else c=null;for(up={focusedElem:a,selectionRange:c},Yu=!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 vs(a,l,c){var p=l.updateQueue;if(p=p!==null?p.lastEffect:null,p!==null){var v=p=p.next;do{if((v.tag&a)===a){var w=v.destroy;v.destroy=void 0,w!==void 0&&Qp(l,c,w)}v=v.next}while(v!==p)}}function _c(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 Xp(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[as],delete l[hp],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 Zp(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=lc));else if(p!==4&&(a=a.child,a!==null))for(Zp(a,l,c),a=a.sibling;a!==null;)Zp(a,l,c),a=a.sibling}function Jp(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(Jp(a,l,c),a=a.sibling;a!==null;)Jp(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(Wu,c)}catch{}switch(c.tag){case 5:Gt||ko(c,l);case 6:var p=Dt,v=Xr;Dt=null,Pi(a,l,c),Dt=p,Xr=v,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?fp(a.parentNode,c):a.nodeType===1&&fp(a,c),Gl(a)):fp(Dt,c.stateNode));break;case 4:p=Dt,v=Xr,Dt=c.stateNode.containerInfo,Xr=!0,Pi(a,l,c),Dt=p,Xr=v;break;case 0:case 11:case 14:case 15:if(!Gt&&(p=c.updateQueue,p!==null&&(p=p.lastEffect,p!==null))){v=p=p.next;do{var w=v,A=w.destroy;w=w.tag,A!==void 0&&((w&2)!==0||(w&4)!==0)&&Qp(c,l,A),v=v.next}while(v!==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 v=DI.bind(null,a,p);c.has(p)||(c.add(p),p.then(v,v))})}}function Zr(a,l){var c=l.deletions;if(c!==null)for(var p=0;pv&&(v=A),p&=~w}if(p=v,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,Dc=0,(We&6)!==0)throw Error(r(331));var v=We;for(We|=4,me=a.current;me!==null;){var w=me,A=w.child;if((me.flags&16)!==0){var I=w.deletions;if(I!==null){for(var D=0;Dpt()-rm?ha(a,0):tm|=c),fr(a,l)}function f1(a,l){l===0&&((a.mode&1)===0?l=1:(l=Ku,Ku<<=1,(Ku&130023424)===0&&(Ku=4194304)));var c=tr();a=zn(a,l),a!==null&&(Wl(a,l,c),fr(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,v=a.memoizedState;v!==null&&(c=v.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||sr.current)cr=!0;else{if((a.lanes&c)===0&&(l.flags&128)===0)return cr=!1,SI(a,l,c);cr=(a.flags&131072)!==0}else cr=!1,it&&(l.flags&1048576)!==0&&Vx(l,hc,l.index);switch(l.lanes=0,l.tag){case 2:var p=l.type;Cc(a,l),a=l.pendingProps;var v=po(l,Kt.current);bo(l,c),v=Mp(null,l,p,a,v,c);var w=Tp();return l.flags|=1,typeof v=="object"&&v!==null&&typeof v.render=="function"&&v.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,ur(p)?(w=!0,cc(l)):w=!1,l.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,Ap(l),v.updater=Ac,l.stateNode=v,v._reactInternals=l,Fp(l,p,a,c),l=Hp(null,l,p,!0,w,c)):(l.tag=0,it&&w&&vp(l),er(null,l,v,c),l=l.child),l;case 16:p=l.elementType;e:{switch(Cc(a,l),a=l.pendingProps,v=p._init,p=v(p._payload),l.type=p,v=l.tag=$I(p),a=Qr(p,a),v){case 0:l=Wp(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,v=l.pendingProps,v=l.elementType===p?v:Qr(p,v),Wp(a,l,p,v,c);case 1:return p=l.type,v=l.pendingProps,v=l.elementType===p?v:Qr(p,v),zb(a,l,p,v,c);case 3:e:{if(Fb(l),a===null)throw Error(r(387));p=l.pendingProps,w=l.memoizedState,v=w.element,tb(a,l),xc(l,p,null,c);var A=l.memoizedState;if(p=A.element,w.isDehydrated)if(w={element:p,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},l.updateQueue.baseState=w,l.memoizedState=w,l.flags&256){v=So(Error(r(423)),l),l=Bb(a,l,p,c,v);break e}else if(p!==v){v=So(Error(r(424)),l),l=Bb(a,l,p,c,v);break e}else for(wr=xi(l.stateNode.containerInfo.firstChild),br=l,it=!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===v){l=Bn(a,l,c);break e}er(a,l,p,c)}l=l.child}return l;case 5:return ib(l),a===null&&xp(l),p=l.type,v=l.pendingProps,w=a!==null?a.memoizedProps:null,A=v.children,cp(p,v)?A=null:w!==null&&cp(p,w)&&(l.flags|=32),Lb(a,l),er(a,l,A,c),l.child;case 6:return a===null&&xp(l),null;case 13:return Ub(a,l,c);case 4:return Op(l,l.stateNode.containerInfo),p=l.pendingProps,a===null?l.child=go(l,null,p,c):er(a,l,p,c),l.child;case 11:return p=l.type,v=l.pendingProps,v=l.elementType===p?v:Qr(p,v),Tb(a,l,p,v,c);case 7:return er(a,l,l.pendingProps,c),l.child;case 8:return er(a,l,l.pendingProps.children,c),l.child;case 12:return er(a,l,l.pendingProps.children,c),l.child;case 10:e:{if(p=l.type._context,v=l.pendingProps,w=l.memoizedProps,A=v.value,Ye(vc,p._currentValue),p._currentValue=A,w!==null)if(Gr(w.value,A)){if(w.children===v.children&&!sr.current){l=Bn(a,l,c);break e}}else for(w=l.child,w!==null&&(w.return=l);w!==null;){var I=w.dependencies;if(I!==null){A=w.child;for(var D=I.firstContext;D!==null;){if(D.context===p){if(w.tag===1){D=Fn(-1,c&-c),D.tag=2;var K=w.updateQueue;if(K!==null){K=K.shared;var re=K.pending;re===null?D.next=D:(D.next=re.next,re.next=D),K.pending=D}}w.lanes|=c,D=w.alternate,D!==null&&(D.lanes|=c),Ep(w.return,c,l),I.lanes|=c;break}D=D.next}}else if(w.tag===10)A=w.type===l.type?null:w.child;else if(w.tag===18){if(A=w.return,A===null)throw Error(r(341));A.lanes|=c,I=A.alternate,I!==null&&(I.lanes|=c),Ep(A,c,l),A=w.sibling}else A=w.child;if(A!==null)A.return=w;else for(A=w;A!==null;){if(A===l){A=null;break}if(w=A.sibling,w!==null){w.return=A.return,A=w;break}A=A.return}w=A}er(a,l,v.children,c),l=l.child}return l;case 9:return v=l.type,p=l.pendingProps.children,bo(l,c),v=Ir(v),p=p(v),l.flags|=1,er(a,l,p,c),l.child;case 14:return p=l.type,v=Qr(p,l.pendingProps),v=Qr(p.type,v),Db(a,l,p,v,c);case 15:return Rb(a,l,l.type,l.pendingProps,c);case 17:return p=l.type,v=l.pendingProps,v=l.elementType===p?v:Qr(p,v),Cc(a,l),l.tag=1,ur(p)?(a=!0,cc(l)):a=!1,bo(l,c),Ob(l,p,v),Fp(l,p,v,c),Hp(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 cm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function $I(a){if(typeof a=="function")return cm(a)?1:0;if(a!=null){if(a=a.$$typeof,a===B)return 11;if(a===le)return 14}return 2}function _i(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 zc(a,l,c,p,v,w){var A=2;if(p=a,typeof a=="function")cm(a)&&(A=1);else if(typeof a=="string")A=5;else e:switch(a){case R:return ma(c.children,v,w,l);case z:A=8,v|=8;break;case F:return a=Dr(12,c,l,v|2),a.elementType=F,a.lanes=w,a;case ue:return a=Dr(13,c,l,v),a.elementType=ue,a.lanes=w,a;case G:return a=Dr(19,c,l,v),a.elementType=G,a.lanes=w,a;case de:return Fc(c,v,w,l);default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case V:A=10;break e;case Q: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,v),l.elementType=a,l.type=p,l.lanes=w,l}function ma(a,l,c,p){return a=Dr(7,a,p,l),a.lanes=c,a}function Fc(a,l,c,p){return a=Dr(22,a,p,l),a.elementType=de,a.lanes=c,a.stateNode={isHidden:!1},a}function dm(a,l,c){return a=Dr(6,a,null,l),a.lanes=c,a}function fm(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,v){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=zh(0),this.expirationTimes=zh(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zh(0),this.identifierPrefix=p,this.onRecoverableError=v,this.mutableSourceEagerHydrationData=null}function hm(a,l,c,p,v,w,A,I,D){return a=new LI(a,l,c,I,D),l===1?(l=1,w===!0&&(l|=8)):l=0,w=Dr(3,null,null,l),a.current=w,w.stateNode=a,w.memoizedState={element:p,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ap(w),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(),bm.exports=JI(),bm.exports}var j1;function eM(){if(j1)return Gc;j1=1;var e=AP();return Gc.createRoot=e.createRoot,Gc.hydrateRoot=e.hydrateRoot,Gc}var tM=eM();const rM=My(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(){}},_a,Fi,Jo,vP,nM=(vP=class extends gu{constructor(){super();je(this,_a);je(this,Fi);je(this,Jo);pe(this,Jo,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,Jo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Fi))==null||t.call(this),pe(this,Fi,void 0))}setEventListener(t){var r;pe(this,Jo,t),(r=$(this,Fi))==null||r.call(this),pe(this,Fi,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){$(this,_a)!==t&&(pe(this,_a,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof $(this,_a)=="boolean"?$(this,_a):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},_a=new WeakMap,Fi=new WeakMap,Jo=new WeakMap,vP),Dy=new nM,iM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Bi,Iy,yP,aM=(yP=class{constructor(){je(this,Bi,iM);je(this,Iy,!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,Iy=new WeakMap,yP),ka=new aM;function oM(e){setTimeout(e,0)}var lM=typeof window>"u"||"Deno"in globalThis;function mr(){}function sM(e,t){return typeof e=="function"?e(t):e}function hv(e){return typeof e=="number"&&e>=0&&e!==1/0}function OP(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 _1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:u}=e;if(s){if(n){if(t.queryHash!==Ry(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 Ry(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 CP(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?CP(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 $y=Symbol();function jP(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===$y?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function _P(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(),el,Ui,tl,gP,vM=(gP=class extends gu{constructor(){super();je(this,el,!0);je(this,Ui);je(this,tl);pe(this,tl,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,tl))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Ui))==null||t.call(this),pe(this,Ui,void 0))}setEventListener(t){var r;pe(this,tl,t),(r=$(this,Ui))==null||r.call(this),pe(this,Ui,t(this.setOnline.bind(this)))}setOnline(t){$(this,el)!==t&&(pe(this,el,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return $(this,el)}},el=new WeakMap,Ui=new WeakMap,tl=new WeakMap,gP),_d=new vM;function yM(e){return Math.min(1e3*2**e,3e4)}function NP(e){return(e??"online")==="online"?_d.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 IP(e){let t=!1,r=0,n;const i=yv(),o=()=>i.status!=="pending",s=S=>{var k;if(!o()){const P=new gv(S);y(P),(k=e.onCancel)==null||k.call(e,P)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Dy.isFocused()&&(e.networkMode==="always"||_d.isOnline())&&e.canRun(),h=()=>NP(e.networkMode)&&e.canRun(),m=S=>{o()||(n==null||n(),i.resolve(S))},y=S=>{o()||(n==null||n(),i.reject(S))},b=()=>new Promise(S=>{var k;n=P=>{(o()||f())&&S(P)},(k=e.onPause)==null||k.call(e)}).then(()=>{var S;n=void 0,o()||(S=e.onContinue)==null||S.call(e)}),E=()=>{if(o())return;let S;const k=r===0?e.initialPromise:void 0;try{S=k??e.fn()}catch(P){S=Promise.reject(P)}Promise.resolve(S).then(m).catch(P=>{var C;if(o())return;const j=e.retry??(qs.isServer()?0:3),_=e.retryDelay??yM,O=typeof _=="function"?_(r,P):_,N=j===!0||typeof j=="number"&&rf()?void 0:b()).then(()=>{t?y(P):E()})})};return{promise:i,status:()=>i.status,cancel:s,continue:()=>(n==null||n(),i),cancelRetry:u,continueRetry:d,canStart:h,start:()=>(h()?E():b().then(E),i)}}var Na,xP,MP=(xP=class{constructor(){je(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,xP);function gM(e){return{onFetch:(t,r)=>{var h,m,y,b,E;const n=t.options,i=(y=(m=(h=t.fetchOptions)==null?void 0:h.meta)==null?void 0:m.fetchMore)==null?void 0:y.direction,o=((b=t.state.data)==null?void 0:b.pages)||[],s=((E=t.state.data)==null?void 0:E.pageParams)||[];let u={pages:[],pageParams:[]},d=0;const f=async()=>{let S=!1;const k=_=>{hM(_,()=>t.signal,()=>S=!0)},P=jP(t.options,t.fetchOptions),j=async(_,O,N)=>{if(S)return Promise.reject(t.signal.reason);if(O==null&&_.pages.length)return Promise.resolve(_);const R=(()=>{const Q={client:t.client,queryKey:t.queryKey,pageParam:O,direction:N?"backward":"forward",meta:t.options.meta};return k(Q),Q})(),z=await P(R),{maxPages:F}=t.options,V=N?fM:dM;return{pages:V(_.pages,z,F),pageParams:V(_.pageParams,O,F)}};if(i&&o.length){const _=i==="backward",O=_?xM:T1,N={pages:o,pageParams:s},C=O(n,N);u=await j(N,C,_)}else{const _=e??o.length;do{const O=d===0?s[0]??n.initialPageParam:T1(n,u);if(d>0&&O==null)break;u=await j(u,O),d++}while(d<_)}return u};t.options.persister?t.fetchFn=()=>{var S,k;return(k=(S=t.options).persister)==null?void 0:k.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 rl,Ia,nl,$r,Ma,jt,hu,Ta,kr,TP,Hn,bP,bM=(bP=class extends MP{constructor(t){super();je(this,kr);je(this,rl);je(this,Ia);je(this,nl);je(this,$r);je(this,Ma);je(this,jt);je(this,hu);je(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,rl)}get promise(){var t;return(t=$(this,jt))==null?void 0:t.promise}setOptions(t){if(this.options={...$(this,hu),...t},t!=null&&t._type&&pe(this,rl,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 ze(this,kr,Hn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t){ze(this,kr,Hn).call(this,{type:"setState",state:t})}cancel(t){var n,i;const r=(n=$(this,jt))==null?void 0:n.promise;return(i=$(this,jt))==null||i.cancel(t),r?r.then(mr).catch(mr):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===$y||!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:!OP(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,jt))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,jt))==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,jt)&&($(this,Ta)||ze(this,kr,TP).call(this)?$(this,jt).cancel({revert:!0}):$(this,jt).cancelRetry()),this.scheduleGc()),$(this,$r).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ze(this,kr,Hn).call(this,{type:"invalidate"})}async fetch(t,r){var f,h,m,y,b,E,S,k,P,j,_;if(this.state.fetchStatus!=="idle"&&((f=$(this,jt))==null?void 0:f.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if($(this,jt))return $(this,jt).continueRetry(),$(this,jt).promise}if(t&&this.setOptions(t),!this.options.queryFn){const O=this.observers.find(N=>N.options.queryFn);O&&this.setOptions(O.options)}const n=new AbortController,i=O=>{Object.defineProperty(O,"signal",{enumerable:!0,get:()=>(pe(this,Ta,!0),n.signal)})},o=()=>{const O=jP(this.options,r),C=(()=>{const R={client:$(this,Ma),queryKey:this.queryKey,meta:this.meta};return i(R),R})();return pe(this,Ta,!1),this.options.persister?this.options.persister(O,C,this):O(C)},u=(()=>{const O={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:$(this,Ma),state:this.state,fetchFn:o};return i(O),O})(),d=$(this,rl)==="infinite"?gM(this.options.pages):this.options.behavior;d==null||d.onFetch(u,this),pe(this,nl,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((h=u.fetchOptions)==null?void 0:h.meta))&&ze(this,kr,Hn).call(this,{type:"fetch",meta:(m=u.fetchOptions)==null?void 0:m.meta}),pe(this,jt,IP({initialPromise:r==null?void 0:r.initialPromise,fn:u.fetchFn,onCancel:O=>{O instanceof gv&&O.revert&&this.setState({...$(this,nl),fetchStatus:"idle"}),n.abort()},onFail:(O,N)=>{ze(this,kr,Hn).call(this,{type:"failed",failureCount:O,error:N})},onPause:()=>{ze(this,kr,Hn).call(this,{type:"pause"})},onContinue:()=>{ze(this,kr,Hn).call(this,{type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0}));try{const O=await $(this,jt).start();if(O===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(O),(b=(y=$(this,$r).config).onSuccess)==null||b.call(y,O,this),(S=(E=$(this,$r).config).onSettled)==null||S.call(E,O,this.state.error,this),O}catch(O){if(O instanceof gv){if(O.silent)return $(this,jt).promise;if(O.revert){if(this.state.data===void 0)throw O;return this.state.data}}throw ze(this,kr,Hn).call(this,{type:"error",error:O}),(P=(k=$(this,$r).config).onError)==null||P.call(k,O,this),(_=(j=$(this,$r).config).onSettled)==null||_.call(j,this.state.data,O,this),O}finally{this.scheduleGc()}}},rl=new WeakMap,Ia=new WeakMap,nl=new WeakMap,$r=new WeakMap,Ma=new WeakMap,jt=new WeakMap,hu=new WeakMap,Ta=new WeakMap,kr=new WeakSet,TP=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Hn=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,...DP(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,nl,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})})},bP);function DP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:NP(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 pr,Be,pu,rr,Da,il,Vn,Wi,mu,al,ol,Ra,$a,Hi,ll,Ve,Ls,xv,bv,wv,Sv,kv,Ev,Pv,RP,wP,wM=(wP=class extends gu{constructor(t,r){super();je(this,Ve);je(this,pr);je(this,Be);je(this,pu);je(this,rr);je(this,Da);je(this,il);je(this,Vn);je(this,Wi);je(this,mu);je(this,al);je(this,ol);je(this,Ra);je(this,$a);je(this,Hi);je(this,ll,new Set);this.options=r,pe(this,pr,t),pe(this,Wi,null),pe(this,Vn,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)?ze(this,Ve,Ls).call(this):this.updateResult(),ze(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,ze(this,Ve,kv).call(this),ze(this,Ve,Ev).call(this),$(this,Be).removeObserver(this)}setOptions(t){const r=this.options,n=$(this,Be);if(this.options=$(this,pr).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");ze(this,Ve,Pv).call(this),$(this,Be).setOptions(this.options),r._defaulted&&!pv(this.options,r)&&$(this,pr).getQueryCache().notify({type:"observerOptionsUpdated",query:$(this,Be),observer:this});const i=this.hasListeners();i&&L1($(this,Be),n,this.options,r)&&ze(this,Ve,Ls).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)))&&ze(this,Ve,xv).call(this);const o=ze(this,Ve,bv).call(this);i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||o!==$(this,Hi))&&ze(this,Ve,wv).call(this,o)}getOptimisticResult(t){const r=$(this,pr).getQueryCache().build($(this,pr),t),n=this.createResult(r,t);return kM(this,n)&&(pe(this,rr,n),pe(this,il,this.options),pe(this,Da,$(this,Be).state)),n}getCurrentResult(){return $(this,rr)}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,Vn).status==="pending"&&$(this,Vn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){$(this,ll).add(t)}getCurrentQuery(){return $(this,Be)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=$(this,pr).defaultQueryOptions(t),n=$(this,pr).getQueryCache().build($(this,pr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return ze(this,Ve,Ls).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),$(this,rr)))}createResult(t,r){var F;const n=$(this,Be),i=this.options,o=$(this,rr),s=$(this,Da),u=$(this,il),f=t!==n?t.state:$(this,pu),{state:h}=t;let m={...h},y=!1,b;if(r._optimisticResults){const V=this.hasListeners(),Q=!V&&$1(t,r),B=V&&L1(t,n,r,i);(Q||B)&&(m={...m,...DP(h.data,t.options)}),r._optimisticResults==="isRestoring"&&(m.fetchStatus="idle")}let{error:E,errorUpdatedAt:S,status:k}=m;b=m.data;let P=!1;if(r.placeholderData!==void 0&&b===void 0&&k==="pending"){let V;o!=null&&o.isPlaceholderData&&r.placeholderData===(u==null?void 0:u.placeholderData)?(V=o.data,P=!0):V=typeof r.placeholderData=="function"?r.placeholderData((F=$(this,ol))==null?void 0:F.state.data,$(this,ol)):r.placeholderData,V!==void 0&&(k="success",b=vv(o==null?void 0:o.data,V,r),y=!0)}if(r.select&&b!==void 0&&!P)if(o&&b===(s==null?void 0:s.data)&&r.select===$(this,mu))b=$(this,al);else try{pe(this,mu,r.select),b=r.select(b),b=vv(o==null?void 0:o.data,b,r),pe(this,al,b),pe(this,Wi,null)}catch(V){pe(this,Wi,V)}$(this,Wi)&&(E=$(this,Wi),b=$(this,al),S=Date.now(),k="error");const j=m.fetchStatus==="fetching",_=k==="pending",O=k==="error",N=_&&j,C=b!==void 0,z={status:k,fetchStatus:m.fetchStatus,isPending:_,isSuccess:k==="success",isError:O,isInitialLoading:N,isLoading:N,data:b,dataUpdatedAt:m.dataUpdatedAt,error:E,errorUpdatedAt:S,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:j,isRefetching:j&&!_,isLoadingError:O&&!C,isPaused:m.fetchStatus==="paused",isPlaceholderData:y,isRefetchError:O&&C,isStale:Ly(t,r),refetch:this.refetch,promise:$(this,Vn),isEnabled:Er(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const V=z.data!==void 0,Q=z.status==="error"&&!V,B=le=>{Q?le.reject(z.error):V&&le.resolve(z.data)},ue=()=>{const le=pe(this,Vn,z.promise=yv());B(le)},G=$(this,Vn);switch(G.status){case"pending":t.queryHash===n.queryHash&&B(G);break;case"fulfilled":(Q||z.data!==G.value)&&ue();break;case"rejected":(!Q||z.error!==G.reason)&&ue();break}}return z}updateResult(){const t=$(this,rr),r=this.createResult($(this,Be),this.options);if(pe(this,Da,$(this,Be).state),pe(this,il,this.options),$(this,Da).data!==void 0&&pe(this,ol,$(this,Be)),pv(r,t))return;pe(this,rr,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!$(this,ll).size)return!0;const s=new Set(o??$(this,ll));return this.options.throwOnError&&s.add("error"),Object.keys($(this,rr)).some(u=>{const d=u;return $(this,rr)[d]!==t[d]&&s.has(d)})};ze(this,Ve,RP).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ze(this,Ve,Sv).call(this)}},pr=new WeakMap,Be=new WeakMap,pu=new WeakMap,rr=new WeakMap,Da=new WeakMap,il=new WeakMap,Vn=new WeakMap,Wi=new WeakMap,mu=new WeakMap,al=new WeakMap,ol=new WeakMap,Ra=new WeakMap,$a=new WeakMap,Hi=new WeakMap,ll=new WeakMap,Ve=new WeakSet,Ls=function(t){ze(this,Ve,Pv).call(this);let r=$(this,Be).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(mr)),r},xv=function(){ze(this,Ve,kv).call(this);const t=Yi(this.options.staleTime,$(this,Be));if(qs.isServer()||$(this,rr).isStale||!hv(t))return;const n=OP($(this,rr).dataUpdatedAt,t)+1;pe(this,Ra,ka.setTimeout(()=>{$(this,rr).isStale||this.updateResult()},n))},bv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval($(this,Be)):this.options.refetchInterval)??!1},wv=function(t){ze(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||Dy.isFocused())&&ze(this,Ve,Ls).call(this)},$(this,Hi)))},Sv=function(){ze(this,Ve,xv).call(this),ze(this,Ve,wv).call(this,ze(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,pr).getQueryCache().build($(this,pr),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))},RP=function(t){Ft.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r($(this,rr))}),$(this,pr).getQueryCache().notify({query:$(this,Be),type:"observerResultsUpdated"})})},wP);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&&Ly(e,t)}return!1}function L1(e,t,r,n){return(e!==t||Er(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&Ly(e,r)}function Ly(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,SP,EM=(SP=class extends MP{constructor(t){super();je(this,bn);je(this,vu);je(this,xn);je(this,Yt);je(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,y,b,E,S,k,P,j,_,O,N,C,R;const r=()=>{ze(this,bn,Di).call(this,{type:"continue"})},n={client:$(this,vu),meta:this.options.meta,mutationKey:this.options.mutationKey};pe(this,La,IP({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(z,F)=>{ze(this,bn,Di).call(this,{type:"failed",failureCount:z,error:F})},onPause:()=>{ze(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{ze(this,bn,Di).call(this,{type:"pending",variables:t,isPaused:o}),$(this,Yt).config.onMutate&&await $(this,Yt).config.onMutate(t,this,n);const F=await((u=(s=this.options).onMutate)==null?void 0:u.call(s,t,n));F!==this.state.context&&ze(this,bn,Di).call(this,{type:"pending",context:F,variables:t,isPaused:o})}const z=await $(this,La).start();return await((f=(d=$(this,Yt).config).onSuccess)==null?void 0:f.call(d,z,t,this.state.context,this,n)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,z,t,this.state.context,n)),await((b=(y=$(this,Yt).config).onSettled)==null?void 0:b.call(y,z,null,this.state.variables,this.state.context,this,n)),await((S=(E=this.options).onSettled)==null?void 0:S.call(E,z,null,t,this.state.context,n)),ze(this,bn,Di).call(this,{type:"success",data:z}),z}catch(z){try{await((P=(k=$(this,Yt).config).onError)==null?void 0:P.call(k,z,t,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((_=(j=this.options).onError)==null?void 0:_.call(j,z,t,this.state.context,n))}catch(F){Promise.reject(F)}try{await((N=(O=$(this,Yt).config).onSettled)==null?void 0:N.call(O,void 0,z,this.state.variables,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((R=(C=this.options).onSettled)==null?void 0:R.call(C,void 0,z,t,this.state.context,n))}catch(F){Promise.reject(F)}throw ze(this,bn,Di).call(this,{type:"error",error:z}),z}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})})},SP);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 qn,tn,yu,kP,AM=(kP=class extends gu{constructor(t={}){super();je(this,qn);je(this,tn);je(this,yu);this.config=t,pe(this,qn,new Set),pe(this,tn,new Map),pe(this,yu,0)}build(t,r,n){const i=new EM({client:t,mutationCache:this,mutationId:++qc(this,yu)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){$(this,qn).add(t);const r=Yc(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,qn).delete(t)){const r=Yc(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=Yc(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=Yc(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,qn).forEach(t=>{this.notify({type:"removed",mutation:t})}),$(this,qn).clear(),$(this,tn).clear()})}getAll(){return Array.from($(this,qn))}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(mr))))}},qn=new WeakMap,tn=new WeakMap,yu=new WeakMap,kP);function Yc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var wn,EP,OM=(EP=class extends gu{constructor(t={}){super();je(this,wn);this.config=t,pe(this,wn,new Map)}build(t,r,n){const i=r.queryKey,o=r.queryHash??Ry(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=>_1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>_1(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,EP),dt,Ki,Vi,sl,ul,qi,cl,dl,PP,CM=(PP=class{constructor(e={}){je(this,dt);je(this,Ki);je(this,Vi);je(this,sl);je(this,ul);je(this,qi);je(this,cl);je(this,dl);pe(this,dt,e.queryCache||new OM),pe(this,Ki,e.mutationCache||new AM),pe(this,Vi,e.defaultOptions||{}),pe(this,sl,new Map),pe(this,ul,new Map),pe(this,qi,0)}mount(){qc(this,qi)._++,$(this,qi)===1&&(pe(this,cl,Dy.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onFocus())})),pe(this,dl,_d.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onOnline())})))}unmount(){var e,t;qc(this,qi)._--,$(this,qi)===0&&((e=$(this,cl))==null||e.call(this),pe(this,cl,void 0),(t=$(this,dl))==null||t.call(this),pe(this,dl,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(mr).catch(mr)}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(mr)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(mr)}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(mr).catch(mr)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(mr).catch(mr)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return _d.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,sl).set(Ks(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...$(this,sl).values()],r={};return t.forEach(n=>{Vs(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){$(this,ul).set(Ks(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...$(this,ul).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=Ry(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===$y&&(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,sl=new WeakMap,ul=new WeakMap,qi=new WeakMap,cl=new WeakMap,dl=new WeakMap,PP),$P=g.createContext(void 0),xu=e=>{const t=g.useContext($P);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},jM=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),x.jsx($P.Provider,{value:e,children:t})),LP=g.createContext(!1),_M=()=>g.useContext(LP);LP.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"?_P(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||_P(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 b,E,S,k;const n=_M(),i=MM(),o=xu(),s=o.defaultQueryOptions(e);(E=(b=o.getDefaultOptions().queries)==null?void 0:b._experimental_beforeQuery)==null||E.call(b,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),y=!n&&d;if(g.useSyncExternalStore(g.useCallback(P=>{const j=y?h.subscribe(Ft.batchCalls(P)):mr;return h.updateResult(),j},[h,y]),()=>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((k=(S=o.getDefaultOptions().queries)==null?void 0:S._experimental_afterQuery)==null||k.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(mr).finally(()=>{h.updateResult()})}return s.notifyOnChangeProps?m:h.trackResult(m)}function Xe(e,t){return FM(e,wM)}const BM="modulepreload",UM=function(e){return"/"+e},F1={},In=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 y=document.createElement("link");if(y.rel=h?"stylesheet":BM,h||(y.as="script"),y.crossOrigin="",y.href=f,d&&y.setAttribute("nonce",d),document.head.appendChild(y),h)return new Promise((b,E)=>{y.addEventListener("load",b),y.addEventListener("error",()=>E(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(),zP=(...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:zP("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 ke=(e,t)=>{const r=g.forwardRef(({className:n,...i},o)=>g.createElement(KM,{ref:o,iconNode:t,className:zP(`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=ke("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 qM=ke("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 B1=ke("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 GM=ke("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 jf=ke("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 YM=ke("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 FP=ke("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 zy=ke("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=ke("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=ke("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=ke("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const JM=ke("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 Ko=ke("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 eT=ke("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 BP=ke("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 tT=ke("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 rT=ke("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 nT=ke("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 UP=ke("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 iT=ke("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=ke("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=ke("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 aT=ke("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 oT=ke("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 lT=ke("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 sT=ke("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 uT=ke("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 cT=ke("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=ke("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 dT=ke("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 fT=ke("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 hT=ke("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 _f=ke("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=ke("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=ke("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 vT=ke("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 W1=ke("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 By=ke("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 H1=ke("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 yT=ke("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 Vo=ke("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 gT=ke("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xT=ke("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 Nf=ke("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 Uy=ke("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 bT=ke("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 Wy=ke("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 WP=ke("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 wT=ke("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 HP=ke("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 ST=ke("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 kT=ke("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 ET=ke("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gs=ke("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 PT=ke("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 bu=ke("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),qo=[{id:"dashboard",label:"Cockpit",hint:"Deine Box auf einen Blick",icon:fT,group:"Operativ"},{id:"auftraege",label:"Auftragsbuch",hint:"Vorschläge der Box — annehmen oder ablehnen",icon:Fy,group:"Operativ"},{id:"eigenleben",label:"Skills",hint:"Fähigkeiten der Box — aktiv/inaktiv, Herkunft & Vorschlags-Bilanz",icon:HP,group:"Operativ"},{id:"chronik",label:"Chronik",hint:"Was die Box von allein getan hat + Zeitmaschine",icon:cT,group:"Operativ"},{id:"memory",label:"Gedächtnis",hint:"Geteiltes Memory verwalten",icon:zy,group:"Wissen"},{id:"wissen",label:"Wissen",hint:"Lucys Wissens-Vault (Traum-Notizen)",icon:hT,group:"Wissen"},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:By,group:"Werkzeuge"},{id:"konsole",label:"Konsole",hint:"Direkte Box-Shell (SSH-artig)",icon:ST,group:"Werkzeuge"},{id:"guide",label:"Anleitung",hint:"Einrichten & Vibe-Coding",icon:BP,group:"Werkzeuge"},{id:"models",label:"Modelle",hint:"Speicher, laden & Rollen",icon:FP,group:"Wartung"},{id:"agent",label:"Hermes",hint:"Agent-Status & Verdrahtung",icon:jf,group:"Wartung"}];var K1=1,AT=.9,OT=.8,CT=.17,km=.1,Em=.999,jT=.9999,_T=.99,NT=/[\\\/_+.#"@\[\(\{&]/,IT=/[\\\/_+.#"@\[\(\{&]/g,MT=/[\s-]/,KP=/[\s-]/g;function Cv(e,t,r,n,i,o,s){if(o===t.length)return i===e.length?K1:_T;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,y,b,E;f>=0;)m=Cv(e,t,r,n,f+1,o+1,s),m>h&&(f===i?m*=K1:NT.test(e.charAt(f-1))?(m*=OT,b=e.slice(i,f-1).match(IT),b&&i>0&&(m*=Math.pow(Em,b.length))):MT.test(e.charAt(f-1))?(m*=AT,E=e.slice(i,f-1).match(KP),E&&i>0&&(m*=Math.pow(Em,E.length))):(m*=CT,i>0&&(m*=Math.pow(Em,f-i))),e.charAt(f)!==t.charAt(o)&&(m*=jT)),(mm&&(m=y*km)),m>h&&(h=m),f=r.indexOf(d,f+1);return s[u]=h,h}function V1(e){return e.toLowerCase().replace(KP," ")}function TT(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,Cv(e,t,V1(e),V1(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 q1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function fl(...e){return t=>{let r=!1;const n=e.map(i=>{const o=q1(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i{var P;const{scope:y,children:b,...E}=m,S=((P=y==null?void 0:y[e])==null?void 0:P[d])||u,k=g.useMemo(()=>E,Object.values(E));return x.jsx(S.Provider,{value:k,children:b})};f.displayName=o+"Provider";function h(m,y){var S;const b=((S=y==null?void 0:y[e])==null?void 0:S[d])||u,E=g.useContext(b);if(E)return E;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,RT(i,...t)]}function RT(...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:()=>{},$T=Cf[" useId ".trim().toString()]||(()=>{}),LT=0;function Zn(e){const[t,r]=g.useState($T());return Ys(()=>{r(n=>n??String(LT++))},[e]),t?`radix-${t}`:""}var zT=Cf[" useInsertionEffect ".trim().toString()]||Ys;function FT({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=BT({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 y=UT(h)?h(e):h;y!==e&&((m=s.current)==null||m.call(s,y))}else o(h)},[u,e,o,s]);return[d,f]}function BT({defaultProp:e,onChange:t}){const[r,n]=g.useState(e),i=g.useRef(r),o=g.useRef(t);return zT(()=>{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 UT(e){return typeof e=="function"}var If=AP();function VP(e){const t=g.forwardRef((r,n)=>{let{children:i,...o}=r,s=null,u=!1;const d=[];G1(i)&&typeof Qc=="function"&&(i=Qc(i._payload)),g.Children.forEach(i,y=>{var b;if(qT(y)){u=!0;const E=y;let S="child"in E.props?E.props.child:E.props.children;G1(S)&&typeof Qc=="function"&&(S=Qc(S._payload)),s=HT(E,S),d.push((b=s==null?void 0:s.props)==null?void 0:b.children)}else d.push(y)}),s?s=g.cloneElement(s,void 0,d):!u&&g.Children.count(i)===1&&g.isValidElement(i)&&(s=i);const f=s?VT(s):void 0,h=Xa(n,f);if(!s){if(i||i===0)throw new Error(u?XT(e):QT(e));return i}const m=KT(o,s.props??{});return s.type!==g.Fragment&&(m.ref=n?h:f),g.cloneElement(s,m)});return t.displayName=`${e}.Slot`,t}var WT=Symbol.for("radix.slottable"),HT=(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 KT(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 VT(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 qT(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WT}var GT=Symbol.for("react.lazy");function G1(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===GT&&"_payload"in e&&YT(e._payload)}function YT(e){return typeof e=="object"&&e!==null&&"then"in e}var QT=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,XT=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Qc=Cf[" use ".trim().toString()],ZT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Wt=ZT.reduce((e,t)=>{const r=VP(`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),x.jsx(d,{...u,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function JT(e,t){e&&If.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 eD(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 tD="DismissableLayer",jv="dismissableLayer.update",rD="dismissableLayer.pointerDownOutside",nD="dismissableLayer.focusOutside",Y1,Hy=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),qP=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(Hy),[m,y]=g.useState(null),b=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,E]=g.useState({}),S=Xa(t,F=>y(F)),k=Array.from(h.layers),[P]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),j=k.indexOf(P),_=m?k.indexOf(m):-1,O=h.layersWithOutsidePointerEventsDisabled.size>0,N=_>=j,C=g.useRef(!1),R=lD(F=>{const V=F.target;if(!(V instanceof Node))return;const Q=[...h.branches].some(B=>B.contains(V));!N||Q||(o==null||o(F),u==null||u(F),F.defaultPrevented||d==null||d())},{ownerDocument:b,deferPointerDownOutside:n,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:h.dismissableSurfaces}),z=sD(F=>{if(n&&C.current)return;const V=F.target;[...h.branches].some(B=>B.contains(V))||(s==null||s(F),u==null||u(F),F.defaultPrevented||d==null||d())},b);return eD(F=>{_===h.layers.size-1&&(i==null||i(F),!F.defaultPrevented&&d&&(F.preventDefault(),d()))},b),g.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(Y1=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),Q1(),()=>{r&&(h.layersWithOutsidePointerEventsDisabled.delete(m),h.layersWithOutsidePointerEventsDisabled.size===0&&(b.body.style.pointerEvents=Y1))}},[m,b,r,h]),g.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),Q1())},[m,h]),g.useEffect(()=>{const F=()=>E({});return document.addEventListener(jv,F),()=>document.removeEventListener(jv,F)},[]),x.jsx(Wt.div,{...f,ref:S,style:{pointerEvents:O?N?"auto":"none":void 0,...e.style},onFocusCapture:Qi(e.onFocusCapture,z.onFocusCapture),onBlurCapture:Qi(e.onBlurCapture,z.onBlurCapture),onPointerDownCapture:Qi(e.onPointerDownCapture,R.onPointerDownCapture)})});qP.displayName=tD;var iD="DismissableLayerBranch",aD=g.forwardRef((e,t)=>{const r=g.useContext(Hy),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]),x.jsx(Wt.div,{...e,ref:i})});aD.displayName=iD;function oD(){const e=g.useContext(Hy),[t,r]=g.useState(null);return g.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),r}function lD(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 y(){return Array.from(f.current.values()).some(Boolean)}function b(j){if(!d.current)return;const _=j.target;_ instanceof Node&&[...o].some(N=>N.contains(_))||f.current.set(j.type,!0),j.type==="click"&&window.setTimeout(()=>{d.current&&h.current()},0)}function E(j){d.current&&f.current.set(j.type,!1)}const S=j=>{if(j.target&&!u.current){let _=function(){r.removeEventListener("click",h.current);const N=y();m(),N||GP(rD,s,O,{discrete:!0})};const O={originalEvent:j};d.current=!0,i.current=n&&j.button===0,f.current.clear(),!n||j.button!==0?_():(r.removeEventListener("click",h.current),h.current=_,r.addEventListener("click",h.current,{once:!0}))}else r.removeEventListener("click",h.current),m();u.current=!1},k=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const j of k)r.addEventListener(j,b,!0),r.addEventListener(j,E);const P=window.setTimeout(()=>{r.addEventListener("pointerdown",S)},0);return()=>{window.clearTimeout(P),r.removeEventListener("pointerdown",S),r.removeEventListener("click",h.current);for(const j of k)r.removeEventListener(j,b,!0),r.removeEventListener(j,E)}},[r,s,n,i,o]),{onPointerDownCapture:()=>u.current=!0}}function sD(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&&GP(nD,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 Q1(){const e=new CustomEvent(jv);document.dispatchEvent(e)}function GP(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?JT(i,o):i.dispatchEvent(o)}var Pm="focusScope.autoFocusOnMount",Am="focusScope.autoFocusOnUnmount",X1={bubbles:!1,cancelable:!0},uD="FocusScope",YP=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),y=Xa(t,S=>d(S)),b=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(n){let S=function(_){if(b.paused||!u)return;const O=_.target;u.contains(O)?m.current=O:Ri(m.current,{select:!0})},k=function(_){if(b.paused||!u)return;const O=_.relatedTarget;O!==null&&(u.contains(O)||Ri(m.current,{select:!0}))},P=function(_){if(document.activeElement===document.body)for(const N of _)N.removedNodes.length>0&&Ri(u)};document.addEventListener("focusin",S),document.addEventListener("focusout",k);const j=new MutationObserver(P);return u&&j.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",k),j.disconnect()}}},[n,u,b.paused]),g.useEffect(()=>{if(u){J1.add(b);const S=document.activeElement;if(!u.contains(S)){const P=new CustomEvent(Pm,X1);u.addEventListener(Pm,f),u.dispatchEvent(P),P.defaultPrevented||(cD(mD(QP(u)),{select:!0}),document.activeElement===S&&Ri(u))}return()=>{u.removeEventListener(Pm,f),setTimeout(()=>{const P=new CustomEvent(Am,X1);u.addEventListener(Am,h),u.dispatchEvent(P),P.defaultPrevented||Ri(S??document.body,{select:!0}),u.removeEventListener(Am,h),J1.remove(b)},0)}}},[u,f,h,b]);const E=g.useCallback(S=>{if(!r&&!n||b.paused)return;const k=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,P=document.activeElement;if(k&&P){const j=S.currentTarget,[_,O]=dD(j);_&&O?!S.shiftKey&&P===O?(S.preventDefault(),r&&Ri(_,{select:!0})):S.shiftKey&&P===_&&(S.preventDefault(),r&&Ri(O,{select:!0})):P===j&&S.preventDefault()}},[r,n,b.paused]);return x.jsx(Wt.div,{tabIndex:-1,...s,ref:y,onKeyDown:E})});YP.displayName=uD;function cD(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Ri(n,{select:t}),document.activeElement!==r)return}function dD(e){const t=QP(e),r=Z1(t,e),n=Z1(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 Z1(e,t){for(const r of e)if(!fD(r,{upTo:t}))return r}function fD(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 hD(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&&hD(e)&&t&&e.select()}}var J1=pD();function pD(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=ew(e,t),e.unshift(t)},remove(t){var r;e=ew(e,t),(r=e[0])==null||r.resume()}}}function ew(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function mD(e){return e.filter(t=>t.tagName!=="A")}var vD="Portal",XP=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?If.createPortal(x.jsx(Wt.div,{...n,ref:t}),s):null});XP.displayName=vD;function yD(e,t){return g.useReducer((r,n)=>t[r][n]??r,e)}var Mf=e=>{const{present:t,children:r}=e,n=gD(t),i=typeof r=="function"?r({present:n.isPresent}):g.Children.only(r),o=xD(n.ref,bD(i));return typeof r=="function"||n.isPresent?g.cloneElement(i,{ref:o}):null};Mf.displayName="Presence";function gD(e){const[t,r]=g.useState(),n=g.useRef(null),i=g.useRef(e),o=g.useRef("none"),s=e?"mounted":"unmounted",[u,d]=yD(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const f=Xc(n.current);o.current=u==="mounted"?f:"none"},[u]),Ys(()=>{const f=n.current,h=i.current;if(h!==e){const y=o.current,b=Xc(f);e?d("MOUNT"):b==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(h&&y!==b?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),Ys(()=>{if(t){let f;const h=t.ownerDocument.defaultView??window,m=b=>{const S=Xc(n.current).includes(CSS.escape(b.animationName));if(b.target===t&&S&&(d("ANIMATION_END"),!i.current)){const k=t.style.animationFillMode;t.style.animationFillMode="forwards",f=h.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=k)})}},y=b=>{b.target===t&&(o.current=Xc(n.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{h.clearTimeout(f),t.removeEventListener("animationstart",y),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 tw(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function xD(...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=tw(s,r);return!i&&typeof u=="function"&&(i=!0),u});if(i)return()=>{for(let s=0;s{mn||(mn={start:rw(),end:rw()});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),Zc++,()=>{Zc===1&&(mn==null||mn.start.remove(),mn==null||mn.end.remove(),mn=null),Zc=Math.max(0,Zc-1)}},[])}function rw(){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 LD;var t=zD(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])}},BD=tA(),Go="data-scroll-locked",UD=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(kD,` { + overflow: hidden `).concat(n,`; + padding-right: `).concat(u,"px ").concat(n,`; + } + body[`).concat(Go,`] { + 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(bd,` { + right: `).concat(u,"px ").concat(n,`; + } + + .`).concat(wd,` { + margin-right: `).concat(u,"px ").concat(n,`; + } + + .`).concat(bd," .").concat(bd,` { + right: 0 `).concat(n,`; + } + + .`).concat(wd," .").concat(wd,` { + margin-right: 0 `).concat(n,`; + } + + body[`).concat(Go,`] { + `).concat(ED,": ").concat(u,`px; + } +`)},iw=function(){var e=parseInt(document.body.getAttribute(Go)||"0",10);return isFinite(e)?e:0},WD=function(){g.useEffect(function(){return document.body.setAttribute(Go,(iw()+1).toString()),function(){var e=iw()-1;e<=0?document.body.removeAttribute(Go):document.body.setAttribute(Go,e.toString())}},[])},HD=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;WD();var o=g.useMemo(function(){return FD(i)},[i]);return g.createElement(BD,{styles:UD(o,!t,i,r?"":"!important")})},_v=!1;if(typeof window<"u")try{var Jc=Object.defineProperty({},"passive",{get:function(){return _v=!0,!0}});window.addEventListener("test",Jc,Jc),window.removeEventListener("test",Jc,Jc)}catch{_v=!1}var Oo=_v?{passive:!1}:!1,KD=function(e){return e.tagName==="TEXTAREA"},rA=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!KD(e)&&r[t]==="visible")},VD=function(e){return rA(e,"overflowY")},qD=function(e){return rA(e,"overflowX")},aw=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=nA(e,n);if(i){var o=iA(e,n),s=o[1],u=o[2];if(s>u)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},GD=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},YD=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},nA=function(e,t){return e==="v"?VD(t):qD(t)},iA=function(e,t){return e==="v"?GD(t):YD(t)},QD=function(e,t){return e==="h"&&t==="rtl"?-1:1},XD=function(e,t,r,n,i){var o=QD(e,window.getComputedStyle(t).direction),s=o*n,u=r.target,d=t.contains(u),f=!1,h=s>0,m=0,y=0;do{if(!u)break;var b=iA(e,u),E=b[0],S=b[1],k=b[2],P=S-k-o*E;(E||P)&&nA(e,u)&&(m+=P,y+=E);var j=u.parentNode;u=j&&j.nodeType===Node.DOCUMENT_FRAGMENT_NODE?j.host:j}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(h&&Math.abs(m)<1||!h&&Math.abs(y)<1)&&(f=!0),f},ed=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ow=function(e){return[e.deltaX,e.deltaY]},lw=function(e){return e&&"current"in e?e.current:e},ZD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},JD=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},eR=0,Co=[];function tR(e){var t=g.useRef([]),r=g.useRef([0,0]),n=g.useRef(),i=g.useState(eR++)[0],o=g.useState(tA)[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=SD([e.lockRef.current],(e.shards||[]).map(lw),!0).filter(Boolean);return S.forEach(function(k){return k.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),S.forEach(function(k){return k.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=g.useCallback(function(S,k){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!s.current.allowPinchZoom;var P=ed(S),j=r.current,_="deltaX"in S?S.deltaX:j[0]-P[0],O="deltaY"in S?S.deltaY:j[1]-P[1],N,C=S.target,R=Math.abs(_)>Math.abs(O)?"h":"v";if("touches"in S&&R==="h"&&C.type==="range")return!1;var z=window.getSelection(),F=z&&z.anchorNode,V=F?F===C||F.contains(C):!1;if(V)return!1;var Q=aw(R,C);if(!Q)return!0;if(Q?N=R:(N=R==="v"?"h":"v",Q=aw(R,C)),!Q)return!1;if(!n.current&&"changedTouches"in S&&(_||O)&&(n.current=N),!N)return!0;var B=n.current||N;return XD(B,k,S,B==="h"?_:O)},[]),d=g.useCallback(function(S){var k=S;if(!(!Co.length||Co[Co.length-1]!==o)){var P="deltaY"in k?ow(k):ed(k),j=t.current.filter(function(N){return N.name===k.type&&(N.target===k.target||k.target===N.shadowParent)&&ZD(N.delta,P)})[0];if(j&&j.should){k.cancelable&&k.preventDefault();return}if(!j){var _=(s.current.shards||[]).map(lw).filter(Boolean).filter(function(N){return N.contains(k.target)}),O=_.length>0?u(k,_[0]):!s.current.noIsolation;O&&k.cancelable&&k.preventDefault()}}},[]),f=g.useCallback(function(S,k,P,j){var _={name:S,delta:k,target:P,should:j,shadowParent:rR(P)};t.current.push(_),setTimeout(function(){t.current=t.current.filter(function(O){return O!==_})},1)},[]),h=g.useCallback(function(S){r.current=ed(S),n.current=void 0},[]),m=g.useCallback(function(S){f(S.type,ow(S),S.target,u(S,e.lockRef.current))},[]),y=g.useCallback(function(S){f(S.type,ed(S),S.target,u(S,e.lockRef.current))},[]);g.useEffect(function(){return Co.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:y}),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 b=e.removeScrollBar,E=e.inert;return g.createElement(g.Fragment,null,E?g.createElement(o,{styles:JD(i)}):null,b?g.createElement(HD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function rR(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const nR=ND(eA,tR);var aA=g.forwardRef(function(e,t){return g.createElement(Tf,Sn({},e,{ref:t,sideCar:nR}))});aA.classNames=Tf.classNames;var iR=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},jo=new WeakMap,td=new WeakMap,rd={},_m=0,oA=function(e){return e&&(e.host||oA(e.parentNode))},aR=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=oA(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})},oR=function(e,t,r,n){var i=aR(t,Array.isArray(e)?e:[e]);rd[r]||(rd[r]=new WeakMap);var o=rd[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(y){if(u.has(y))h(y);else try{var b=y.getAttribute(n),E=b!==null&&b!=="false",S=(jo.get(y)||0)+1,k=(o.get(y)||0)+1;jo.set(y,S),o.set(y,k),s.push(y),S===1&&E&&td.set(y,!0),k===1&&y.setAttribute(r,"true"),E||y.setAttribute(n,"true")}catch(P){console.error("aria-hidden: cannot operate on ",y,P)}})};return h(t),u.clear(),_m++,function(){s.forEach(function(m){var y=jo.get(m)-1,b=o.get(m)-1;jo.set(m,y),o.set(m,b),y||(td.has(m)||m.removeAttribute(n),td.delete(m)),b||m.removeAttribute(r)}),_m--,_m||(jo=new WeakMap,jo=new WeakMap,td=new WeakMap,rd={})}},lR=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=iR(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),oR(n,i,r,"aria-hidden")):function(){return null}},Df="Dialog",[lA]=DT(Df),[sR,sn]=lA(Df),sA=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]=FT({prop:n,defaultProp:i??!1,onChange:o,caller:Df});return x.jsx(sR,{scope:t,triggerRef:u,contentRef:d,contentId:Zn(),titleId:Zn(),descriptionId:Zn(),open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),modal:s,children:r})};sA.displayName=Df;var uA="DialogTrigger",uR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(uA,r),o=Xa(t,i.triggerRef);return x.jsx(Wt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Vy(i.open),...n,ref:o,onClick:Qi(e.onClick,i.onOpenToggle)})});uR.displayName=uA;var Ky="DialogPortal",[cR,cA]=lA(Ky,{forceMount:void 0}),dA=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=sn(Ky,t);return x.jsx(cR,{scope:t,forceMount:r,children:g.Children.map(n,s=>x.jsx(Mf,{present:r||o.open,children:x.jsx(XP,{asChild:!0,container:i,children:s})}))})};dA.displayName=Ky;var Nd="DialogOverlay",fA=g.forwardRef((e,t)=>{const r=cA(Nd,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(Nd,e.__scopeDialog);return o.modal?x.jsx(Mf,{present:n||o.open,children:x.jsx(fR,{...i,ref:t})}):null});fA.displayName=Nd;var dR=VP("DialogOverlay.RemoveScroll"),fR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(Nd,r),o=oD(),s=Xa(t,o);return x.jsx(aA,{as:dR,allowPinchZoom:!0,shards:[i.contentRef],children:x.jsx(Wt.div,{"data-state":Vy(i.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})}),hl="DialogContent",hA=g.forwardRef((e,t)=>{const r=cA(hl,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(hl,e.__scopeDialog);return x.jsx(Mf,{present:n||o.open,children:o.modal?x.jsx(hR,{...i,ref:t}):x.jsx(pR,{...i,ref:t})})});hA.displayName=hl;var hR=g.forwardRef((e,t)=>{const r=sn(hl,e.__scopeDialog),n=g.useRef(null),i=Xa(t,r.contentRef,n);return g.useEffect(()=>{const o=n.current;if(o)return lR(o)},[]),x.jsx(pA,{...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())})}),pR=g.forwardRef((e,t)=>{const r=sn(hl,e.__scopeDialog),n=g.useRef(!1),i=g.useRef(!1);return x.jsx(pA,{...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()}})}),pA=g.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,u=sn(hl,r);return wD(),x.jsx(x.Fragment,{children:x.jsx(YP,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o,children:x.jsx(qP,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":Vy(u.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),mA="DialogTitle",mR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(mA,r);return x.jsx(Wt.h2,{id:i.titleId,...n,ref:t})});mR.displayName=mA;var vA="DialogDescription",vR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(vA,r);return x.jsx(Wt.p,{id:i.descriptionId,...n,ref:t})});vR.displayName=vA;var yA="DialogClose",yR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(yA,r);return x.jsx(Wt.button,{type:"button",...n,ref:t,onClick:Qi(e.onClick,()=>i.onOpenChange(!1))})});yR.displayName=yA;function Vy(e){return e?"open":"closed"}var ks='[cmdk-group=""]',Nm='[cmdk-group-items=""]',gR='[cmdk-group-heading=""]',gA='[cmdk-item=""]',sw=`${gA}:not([aria-disabled="true"])`,Nv="cmdk-item-select",Fo="data-value",xR=(e,t,r)=>TT(e,t,r),xA=g.createContext(void 0),wu=()=>g.useContext(xA),bA=g.createContext(void 0),qy=()=>g.useContext(bA),wA=g.createContext(void 0),SA=g.forwardRef((e,t)=>{let r=Bo(()=>{var T,Z;return{search:"",value:(Z=(T=e.value)!=null?T:e.defaultValue)!=null?Z:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=Bo(()=>new Set),i=Bo(()=>new Map),o=Bo(()=>new Map),s=Bo(()=>new Set),u=kA(e),{label:d,children:f,value:h,onValueChange:m,filter:y,shouldFilter:b,loop:E,disablePointerSelection:S=!1,vimBindings:k=!0,...P}=e,j=Zn(),_=Zn(),O=Zn(),N=g.useRef(null),C=_R();Ua(()=>{if(h!==void 0){let T=h.trim();r.current.value=T,R.emit()}},[h]),Ua(()=>{C(6,ue)},[]);let R=g.useMemo(()=>({subscribe:T=>(s.current.add(T),()=>s.current.delete(T)),snapshot:()=>r.current,setState:(T,Z,se)=>{var te,ce,ye,_e;if(!Object.is(r.current[T],Z)){if(r.current[T]=Z,T==="search")B(),V(),C(1,Q);else if(T==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let J=document.getElementById(O);J?J.focus():(te=document.getElementById(j))==null||te.focus()}if(C(7,()=>{var J;r.current.selectedItemId=(J=G())==null?void 0:J.id,R.emit()}),se||C(5,ue),((ce=u.current)==null?void 0:ce.value)!==void 0){let J=Z??"";(_e=(ye=u.current).onValueChange)==null||_e.call(ye,J);return}}R.emit()}},emit:()=>{s.current.forEach(T=>T())}}),[]),z=g.useMemo(()=>({value:(T,Z,se)=>{var te;Z!==((te=o.current.get(T))==null?void 0:te.value)&&(o.current.set(T,{value:Z,keywords:se}),r.current.filtered.items.set(T,F(Z,se)),C(2,()=>{V(),R.emit()}))},item:(T,Z)=>(n.current.add(T),Z&&(i.current.has(Z)?i.current.get(Z).add(T):i.current.set(Z,new Set([T]))),C(3,()=>{B(),V(),r.current.value||Q(),R.emit()}),()=>{o.current.delete(T),n.current.delete(T),r.current.filtered.items.delete(T);let se=G();C(4,()=>{B(),(se==null?void 0:se.getAttribute("id"))===T&&Q(),R.emit()})}),group:T=>(i.current.has(T)||i.current.set(T,new Set),()=>{o.current.delete(T),i.current.delete(T)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:j,inputId:O,labelId:_,listInnerRef:N}),[]);function F(T,Z){var se,te;let ce=(te=(se=u.current)==null?void 0:se.filter)!=null?te:xR;return T?ce(T,r.current.search,Z):0}function V(){if(!r.current.search||u.current.shouldFilter===!1)return;let T=r.current.filtered.items,Z=[];r.current.filtered.groups.forEach(te=>{let ce=i.current.get(te),ye=0;ce.forEach(_e=>{let J=T.get(_e);ye=Math.max(J,ye)}),Z.push([te,ye])});let se=N.current;le().sort((te,ce)=>{var ye,_e;let J=te.getAttribute("id"),we=ce.getAttribute("id");return((ye=T.get(we))!=null?ye:0)-((_e=T.get(J))!=null?_e:0)}).forEach(te=>{let ce=te.closest(Nm);ce?ce.appendChild(te.parentElement===ce?te:te.closest(`${Nm} > *`)):se.appendChild(te.parentElement===se?te:te.closest(`${Nm} > *`))}),Z.sort((te,ce)=>ce[1]-te[1]).forEach(te=>{var ce;let ye=(ce=N.current)==null?void 0:ce.querySelector(`${ks}[${Fo}="${encodeURIComponent(te[0])}"]`);ye==null||ye.parentElement.appendChild(ye)})}function Q(){let T=le().find(se=>se.getAttribute("aria-disabled")!=="true"),Z=T==null?void 0:T.getAttribute(Fo);R.setState("value",Z||void 0)}function B(){var T,Z,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=(Z=(T=o.current.get(ye))==null?void 0:T.value)!=null?Z:"",J=(te=(se=o.current.get(ye))==null?void 0:se.keywords)!=null?te:[],we=F(_e,J);r.current.filtered.items.set(ye,we),we>0&&ce++}for(let[ye,_e]of i.current)for(let J of _e)if(r.current.filtered.items.get(J)>0){r.current.filtered.groups.add(ye);break}r.current.filtered.count=ce}function ue(){var T,Z,se;let te=G();te&&(((T=te.parentElement)==null?void 0:T.firstChild)===te&&((se=(Z=te.closest(ks))==null?void 0:Z.querySelector(gR))==null||se.scrollIntoView({block:"nearest"})),te.scrollIntoView({block:"nearest"}))}function G(){var T;return(T=N.current)==null?void 0:T.querySelector(`${gA}[aria-selected="true"]`)}function le(){var T;return Array.from(((T=N.current)==null?void 0:T.querySelectorAll(sw))||[])}function fe(T){let Z=le()[T];Z&&R.setState("value",Z.getAttribute(Fo))}function de(T){var Z;let se=G(),te=le(),ce=te.findIndex(_e=>_e===se),ye=te[ce+T];(Z=u.current)!=null&&Z.loop&&(ye=ce+T<0?te[te.length-1]:ce+T===te.length?te[0]:te[ce+T]),ye&&R.setState("value",ye.getAttribute(Fo))}function Y(T){let Z=G(),se=Z==null?void 0:Z.closest(ks),te;for(;se&&!te;)se=T>0?CR(se,ks):jR(se,ks),te=se==null?void 0:se.querySelector(sw);te?R.setState("value",te.getAttribute(Fo)):de(T)}let ae=()=>fe(le().length-1),X=T=>{T.preventDefault(),T.metaKey?ae():T.altKey?Y(1):de(1)},M=T=>{T.preventDefault(),T.metaKey?fe(0):T.altKey?Y(-1):de(-1)};return g.createElement(Wt.div,{ref:t,tabIndex:-1,...P,"cmdk-root":"",onKeyDown:T=>{var Z;(Z=P.onKeyDown)==null||Z.call(P,T);let se=T.nativeEvent.isComposing||T.keyCode===229;if(!(T.defaultPrevented||se))switch(T.key){case"n":case"j":{k&&T.ctrlKey&&X(T);break}case"ArrowDown":{X(T);break}case"p":case"k":{k&&T.ctrlKey&&M(T);break}case"ArrowUp":{M(T);break}case"Home":{T.preventDefault(),fe(0);break}case"End":{T.preventDefault(),ae();break}case"Enter":{T.preventDefault();let te=G();if(te){let ce=new Event(Nv);te.dispatchEvent(ce)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:z.inputId,id:z.labelId,style:IR},d),Rf(e,T=>g.createElement(bA.Provider,{value:R},g.createElement(xA.Provider,{value:z},T))))}),bR=g.forwardRef((e,t)=>{var r,n;let i=Zn(),o=g.useRef(null),s=g.useContext(wA),u=wu(),d=kA(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=EA(i,o,[e.value,e.children,o],e.keywords),m=qy(),y=Ji(C=>C.value&&C.value===h.current),b=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,E),()=>C.removeEventListener(Nv,E)},[b,e.onSelect,e.disabled]);function E(){var C,R;S(),(R=(C=d.current).onSelect)==null||R.call(C,h.current)}function S(){m.setState("value",h.current,!0)}if(!b)return null;let{disabled:k,value:P,onSelect:j,forceMount:_,keywords:O,...N}=e;return g.createElement(Wt.div,{ref:fl(o,t),...N,id:i,"cmdk-item":"",role:"option","aria-disabled":!!k,"aria-selected":!!y,"data-disabled":!!k,"data-selected":!!y,onPointerMove:k||u.getDisablePointerSelection()?void 0:S,onClick:k?void 0:E},e.children)}),wR=g.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:i,...o}=e,s=Zn(),u=g.useRef(null),d=g.useRef(null),f=Zn(),h=wu(),m=Ji(b=>i||h.filter()===!1?!0:b.search?b.filtered.groups.has(s):!0);Ua(()=>h.group(s),[]),EA(s,u,[e.value,e.heading,d]);let y=g.useMemo(()=>({id:s,forceMount:i}),[i]);return g.createElement(Wt.div,{ref:fl(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),Rf(e,b=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},g.createElement(wA.Provider,{value:y},b))))}),SR=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:fl(i,t),...n,"cmdk-separator":"",role:"separator"})}),kR=g.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,i=e.value!=null,o=qy(),s=Ji(f=>f.search),u=Ji(f=>f.selectedItemId),d=wu();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)}})}),ER=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=wu();return g.useEffect(()=>{if(s.current&&o.current){let f=s.current,h=o.current,m,y=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let b=f.offsetHeight;h.style.setProperty("--cmdk-list-height",b.toFixed(1)+"px")})});return y.observe(f),()=>{cancelAnimationFrame(m),y.unobserve(f)}}},[]),g.createElement(Wt.div,{ref:fl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":n,id:d.listId},Rf(e,f=>g.createElement("div",{ref:fl(s,d.listInnerRef),"cmdk-list-sizer":""},f)))}),PR=g.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:i,contentClassName:o,container:s,...u}=e;return g.createElement(sA,{open:r,onOpenChange:n},g.createElement(dA,{container:s},g.createElement(fA,{"cmdk-overlay":"",className:i}),g.createElement(hA,{"aria-label":e.label,"cmdk-dialog":"",className:o},g.createElement(SA,{ref:t,...u}))))}),AR=g.forwardRef((e,t)=>Ji(r=>r.filtered.count===0)?g.createElement(Wt.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),OR=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},Rf(e,s=>g.createElement("div",{"aria-hidden":!0},s)))}),_o=Object.assign(SA,{List:ER,Item:bR,Input:kR,Group:wR,Separator:SR,Dialog:PR,Empty:AR,Loading:OR});function CR(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function jR(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function kA(e){let t=g.useRef(e);return Ua(()=>{t.current=e}),t}var Ua=typeof window>"u"?g.useEffect:g.useLayoutEffect;function Bo(e){let t=g.useRef();return t.current===void 0&&(t.current=e()),t}function Ji(e){let t=qy(),r=()=>e(t.snapshot());return g.useSyncExternalStore(t.subscribe,r,r)}function EA(e,t,r,n=[]){let i=g.useRef(),o=wu();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(Fo,u),i.current=u}),i}var _R=()=>{let[e,t]=g.useState(),r=Bo(()=>new Map);return Ua(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,i)=>{r.current.set(n,i),t({})}};function NR(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Rf({asChild:e,children:t},r){return e&&g.isValidElement(t)?g.cloneElement(NR(t),{ref:t.ref},r(t.props.children)):r(t)}var IR={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function MR({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)},[]),x.jsx(_o.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:x.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:[x.jsx(_o.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"}),x.jsxs(_o.List,{className:"max-h-80 overflow-y-auto p-2",children:[x.jsx(_o.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),x.jsx(_o.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:qo.map(n=>x.jsxs(_o.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:[x.jsx(n.icon,{className:"h-4 w-4 text-primary"}),x.jsx("span",{children:n.label}),x.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:n.hint})]},n.id))})]})]})})}const PA="mc_expert_mode",Iv="mc-expert-mode-change",TR=()=>{try{return localStorage.getItem(PA)==="true"}catch{return!1}};function DR(e){return window.addEventListener(Iv,e),window.addEventListener("storage",e),()=>{window.removeEventListener(Iv,e),window.removeEventListener("storage",e)}}function uw(e){localStorage.setItem(PA,String(e)),window.dispatchEvent(new Event(Iv))}function RR(){return g.useSyncExternalStore(DR,TR,()=>!1)}function AA(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=zR(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{const u=s.split(Gy);return u[0]===""&&u.length!==1&&u.shift(),OA(u,t)||LR(s)},getConflictingClassGroupIds:(s,u)=>{const d=r[s]||[];return u&&n[s]?[...d,...n[s]]:d}}},OA=(e,t)=>{var s;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),i=n?OA(e.slice(1),n):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(Gy);return(s=t.validators.find(({validator:u})=>u(o)))==null?void 0:s.classGroupId},cw=/^\[(.+)\]$/,LR=e=>{if(cw.test(e)){const t=cw.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},zR=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return BR(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:dw(t,i);o.classGroupId=r;return}if(typeof i=="function"){if(FR(i)){Mv(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([o,s])=>{Mv(s,dw(t,o),r,n)})})},dw=(e,t)=>{let r=e;return t.split(Gy).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},FR=e=>e.isThemeGetter,BR=(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,UR=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)}}},CA="!",WR=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 k=0;kh?m-h:void 0;return{modifiers:d,hasImportantModifier:b,baseClassName:E,maybePostfixModifierPosition:S}};return r?u=>r({className:u,parseClassName:s}):s},HR=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},KR=e=>({cache:UR(e.cacheSize),parseClassName:WR(e),...$R(e)}),VR=/\s+/,qR=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,o=[],s=e.trim().split(VR);let u="";for(let d=s.length-1;d>=0;d-=1){const f=s[d],{modifiers:h,hasImportantModifier:m,baseClassName:y,maybePostfixModifierPosition:b}=r(f);let E=!!b,S=n(E?y.substring(0,b):y);if(!S){if(!E){u=f+(u.length>0?" "+u:u);continue}if(S=n(y),!S){u=f+(u.length>0?" "+u:u);continue}E=!1}const k=HR(h).join(":"),P=m?k+CA:k,j=P+S;if(o.includes(j))continue;o.push(j);const _=i(S,E);for(let O=0;O<_.length;++O){const N=_[O];o.push(P+N)}u=f+(u.length>0?" "+u:u)}return u};function GR(){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=KR(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=qR(d,r);return i(d,h),h}return function(){return o(GR.apply(null,arguments))}}const tt=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},_A=/^\[(?:([a-z-]+):)?(.+)\]$/i,QR=/^\d+\/\d+$/,XR=new Set(["px","full","screen"]),ZR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,JR=/\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$/,e3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,t3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,r3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Wn=e=>Yo(e)||XR.has(e)||QR.test(e),Ii=e=>El(e,"length",c3),Yo=e=>!!e&&!Number.isNaN(Number(e)),Im=e=>El(e,"number",Yo),Es=e=>!!e&&Number.isInteger(Number(e)),n3=e=>e.endsWith("%")&&Yo(e.slice(0,-1)),Te=e=>_A.test(e),Mi=e=>ZR.test(e),i3=new Set(["length","size","percentage"]),a3=e=>El(e,i3,NA),o3=e=>El(e,"position",NA),l3=new Set(["image","url"]),s3=e=>El(e,l3,f3),u3=e=>El(e,"",d3),Ps=()=>!0,El=(e,t,r)=>{const n=_A.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},c3=e=>JR.test(e)&&!e3.test(e),NA=()=>!1,d3=e=>t3.test(e),f3=e=>r3.test(e),h3=()=>{const e=tt("colors"),t=tt("spacing"),r=tt("blur"),n=tt("brightness"),i=tt("borderColor"),o=tt("borderRadius"),s=tt("borderSpacing"),u=tt("borderWidth"),d=tt("contrast"),f=tt("grayscale"),h=tt("hueRotate"),m=tt("invert"),y=tt("gap"),b=tt("gradientColorStops"),E=tt("gradientColorStopPositions"),S=tt("inset"),k=tt("margin"),P=tt("opacity"),j=tt("padding"),_=tt("saturate"),O=tt("scale"),N=tt("sepia"),C=tt("skew"),R=tt("space"),z=tt("translate"),F=()=>["auto","contain","none"],V=()=>["auto","hidden","clip","visible","scroll"],Q=()=>["auto",Te,t],B=()=>[Te,t],ue=()=>["",Wn,Ii],G=()=>["auto",Yo,Te],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"],Y=()=>["start","end","center","between","around","evenly","stretch"],ae=()=>["","0",Te],X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],M=()=>[Yo,Te];return{cacheSize:500,separator:":",theme:{colors:[Ps],spacing:[Wn,Ii],blur:["none","",Mi,Te],brightness:M(),borderColor:[e],borderRadius:["none","","full",Mi,Te],borderSpacing:B(),borderWidth:ue(),contrast:M(),grayscale:ae(),hueRotate:M(),invert:ae(),gap:B(),gradientColorStops:[e],gradientColorStopPositions:[n3,Ii],inset:Q(),margin:Q(),opacity:M(),padding:B(),saturate:M(),scale:M(),sepia:ae(),skew:M(),space:B(),translate:B()},classGroups:{aspect:[{aspect:["auto","square","video",Te]}],container:["container"],columns:[{columns:[Mi]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"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(),Te]}],overflow:[{overflow:V()}],"overflow-x":[{"overflow-x":V()}],"overflow-y":[{"overflow-y":V()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],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",Es,Te]}],basis:[{basis:Q()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Te]}],grow:[{grow:ae()}],shrink:[{shrink:ae()}],order:[{order:["first","last","none",Es,Te]}],"grid-cols":[{"grid-cols":[Ps]}],"col-start-end":[{col:["auto",{span:["full",Es,Te]},Te]}],"col-start":[{"col-start":G()}],"col-end":[{"col-end":G()}],"grid-rows":[{"grid-rows":[Ps]}],"row-start-end":[{row:["auto",{span:[Es,Te]},Te]}],"row-start":[{"row-start":G()}],"row-end":[{"row-end":G()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Te]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Te]}],gap:[{gap:[y]}],"gap-x":[{"gap-x":[y]}],"gap-y":[{"gap-y":[y]}],"justify-content":[{justify:["normal",...Y()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...Y(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...Y(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[j]}],px:[{px:[j]}],py:[{py:[j]}],ps:[{ps:[j]}],pe:[{pe:[j]}],pt:[{pt:[j]}],pr:[{pr:[j]}],pb:[{pb:[j]}],pl:[{pl:[j]}],m:[{m:[k]}],mx:[{mx:[k]}],my:[{my:[k]}],ms:[{ms:[k]}],me:[{me:[k]}],mt:[{mt:[k]}],mr:[{mr:[k]}],mb:[{mb:[k]}],ml:[{ml:[k]}],"space-x":[{"space-x":[R]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[R]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Te,t]}],"min-w":[{"min-w":[Te,t,"min","max","fit"]}],"max-w":[{"max-w":[Te,t,"none","full","min","max","fit","prose",{screen:[Mi]},Mi]}],h:[{h:[Te,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Te,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",Im]}],"font-family":[{font:[Ps]}],"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",Te]}],"line-clamp":[{"line-clamp":["none",Yo,Im]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Wn,Te]}],"list-image":[{"list-image":["none",Te]}],"list-style-type":[{list:["none","disc","decimal",Te]}],"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",Wn,Ii]}],"underline-offset":[{"underline-offset":["auto",Wn,Te]}],"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",Te]}],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",Te]}],"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(),o3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",a3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},s3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[E]}],"gradient-via-pos":[{via:[E]}],"gradient-to-pos":[{to:[E]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],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":[Wn,Te]}],"outline-w":[{outline:[Wn,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":[Wn,Ii]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Mi,u3]}],"shadow-color":[{shadow:[Ps]}],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,Te]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[_]}],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":[_]}],"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",Te]}],duration:[{duration:M()}],ease:[{ease:["linear","in","out","in-out",Te]}],delay:[{delay:M()}],animate:[{animate:["none","spin","ping","pulse","bounce",Te]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[O]}],"scale-x":[{"scale-x":[O]}],"scale-y":[{"scale-y":[O]}],rotate:[{rotate:[Es,Te]}],"translate-x":[{"translate-x":[z]}],"translate-y":[{"translate-y":[z]}],"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",Te]}],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",Te]}],"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",Te]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Wn,Ii,Im]}],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"]}}},p3=YR(h3);function Re(...e){return p3(Qe(e))}function DQ(e){return e?e.replace(/127\.0\.0\.1|localhost/g,"192.168.178.151"):""}function m3(){const e=RR();return x.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:[x.jsxs("button",{onClick:()=>uw(!1),"aria-pressed":!e,className:Re("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:[x.jsx(HP,{className:"h-3.5 w-3.5"})," Einfach"]}),x.jsxs("button",{onClick:()=>uw(!0),"aria-pressed":e,className:Re("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:[x.jsx(wT,{className:"h-3.5 w-3.5"})," Experte"]})]})}async function Me(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 RQ=(e,t,r=!1,n=!0)=>Me("/api/groups",{method:"PUT",body:JSON.stringify({group:e,members:t,swap:r,persist:n})}),$Q=e=>Me("/api/routing/policy",{method:"PUT",body:JSON.stringify(e)});function v3({type:e,title:t,message:r,defaultValue:n,autoValue:i,autoLabel:o,onConfirm:s,onCancel:u}){const d=g.useRef(null);return x.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:x.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:[x.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:t}),x.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:x.jsx(bu,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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"&&x.jsxs("div",{className:"flex gap-2",children:[x.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&&x.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"})]}),x.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[(e==="confirm"||e==="prompt")&&x.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"}),x.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 Yy(){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,y)=>{t({type:"prompt",title:u,message:d,defaultValue:f,autoValue:y==null?void 0:y.autoValue,autoLabel:y==null?void 0:y.autoLabel,onConfirm:b=>{t(null),h(b)},onCancel:()=>{t(null),m==null||m()}})},[]),s=e?x.jsx(v3,{...e}):null;return{showAlert:n,showConfirm:i,showPrompt:o,close:r,dialogElement:s}}let Sd=!1;const y3=()=>Sd;function g3(){const e=xu();g.useEffect(()=>{const t=new EventSource("/api/events");return t.onopen=()=>{Sd=!0},t.onerror=()=>{Sd=!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{}}),()=>{Sd=!1,t.close()}},[e])}const De={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"],eigenleben:["eigenleben"],wissen:["wissen"],zeitmaschine:["zeitmaschine"],reminders:["reminders"]},Zt={graph:3e3,schnell:8e3,normal:1e4,gemuetlich:3e4,traege:6e4},Su=e=>()=>y3()?e*5:e,x3=(e=Zt.schnell)=>Xe({queryKey:De.auftragsbuch,queryFn:()=>Me("/api/auftragsbuch"),refetchInterval:Su(e)}),b3=(e=Zt.gemuetlich)=>Xe({queryKey:De.ideen,queryFn:()=>Me("/api/ideen"),refetchInterval:Su(e)}),LQ=(e,t=!1)=>Xe({queryKey:["ideen-log",e],queryFn:()=>Me(`/api/ideen/${e}/log`),enabled:t,refetchInterval:4e3,staleTime:0}),w3=(e=150,t=Zt.gemuetlich)=>Xe({queryKey:[...De.chronik,e],queryFn:()=>Me(`/api/chronik?limit=${e}`),refetchInterval:Su(t),select:r=>r.items??[]}),zQ=()=>Xe({queryKey:De.wissen,queryFn:()=>Me("/api/wissen")}),FQ=(e=Zt.traege)=>Xe({queryKey:De.eigenleben,queryFn:()=>Me("/api/eigenleben"),refetchInterval:e}),S3=(e=Zt.traege,t=!0)=>Xe({queryKey:De.zeitmaschine,queryFn:()=>Me("/api/zeitmaschine"),refetchInterval:e,enabled:t}),k3=(e=Zt.traege)=>Xe({queryKey:De.reminders,queryFn:()=>Me("/api/reminders"),refetchInterval:Su(e),select:t=>t.items??[]}),E3=(e=12,t=Zt.schnell)=>Xe({queryKey:De.voiceTrace,queryFn:()=>Me(`/api/voice/trace?limit=${e}`),refetchInterval:t,select:r=>r.turns??[]}),BQ=(e=!0)=>Xe({queryKey:De.memoryGraph,queryFn:()=>Me("/api/memory/graph"),enabled:e}),IA=()=>Xe({queryKey:De.health,queryFn:()=>Me("/api/health"),refetchInterval:Zt.normal}),$f=(e=Zt.graph)=>Xe({queryKey:De.systemStatus,queryFn:()=>Me("/api/system/status"),refetchInterval:e}),Qy=(e=Zt.normal)=>Xe({queryKey:De.services,queryFn:()=>Me("/api/system/services"),refetchInterval:e}),MA=(e=Zt.schnell)=>Xe({queryKey:De.models,queryFn:()=>Me("/api/models"),refetchInterval:Su(e)}),UQ=(e=Zt.normal)=>Xe({queryKey:De.groups,queryFn:()=>Me("/api/groups"),refetchInterval:e}),WQ=()=>Xe({queryKey:De.routingPolicy,queryFn:()=>Me("/api/routing/policy")}),P3=(e=3e3,t=!0)=>Xe({queryKey:De.jobs,queryFn:()=>Me("/api/jobs"),refetchInterval:e,enabled:t,select:r=>r.jobs??[]}),TA=(e=Zt.graph)=>Xe({queryKey:De.tokenStats,queryFn:()=>Me("/api/system/token-stats"),refetchInterval:e}),A3=(e=Zt.normal)=>Xe({queryKey:De.agentStatus,queryFn:()=>Me("/api/agent/status"),refetchInterval:e}),HQ=(e=Zt.traege)=>Xe({queryKey:De.hermesBrain,queryFn:()=>Me("/api/agent/brain"),refetchInterval:e}),DA=(e=Zt.traege)=>Xe({queryKey:De.updates,queryFn:()=>Me("/api/maintenance/updates"),refetchInterval:e}),KQ=()=>Xe({queryKey:De.discover,queryFn:()=>Me("/api/discover")}),VQ=e=>Xe({queryKey:De.drafts(e),queryFn:()=>Me(`/api/models/drafts?target=${encodeURIComponent(e??"")}`),enabled:!!e}),qQ=e=>Xe({queryKey:De.connect(e),queryFn:()=>Me(e?`/api/connect?${e}`:"/api/connect")}),O3=()=>Xe({queryKey:De.connectHealth,queryFn:()=>Me("/api/connect/health"),refetchInterval:15e3}),C3=e=>Xe({queryKey:De.memory(e==null?void 0:e.q,e==null?void 0:e.category),queryFn:()=>{const t=new URLSearchParams;return e!=null&&e.q&&t.set("q",e.q),e!=null&&e.category&&t.set("category",e.category),Me(`/api/memory?${t}`)},select:t=>e!=null&&e.limit?t.slice(0,e.limit):t});function As(e,...t){for(const r of t)e.invalidateQueries({queryKey:r})}function No(e){return(e/1024**3).toFixed(1)}function Mm(e){return e?e>1024**3?`${(e/1024**3).toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`:""}function GQ(e){if(!e)return"—";const t=e/1024**3;return t>=1?`${t.toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`}function YQ(e){if(!e)return"";const t=Math.floor(e/60);return t>0?`${t} min`:`${e} s`}function QQ(e){return e?`${Math.round(e/1024)}k`:"—"}function Os({icon:e,iconClass:t,name:r,status:n,available:i,busy:o,actionLabel:s,onAction:u}){return x.jsxs("div",{className:Re("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:[x.jsx(e,{className:Re("h-4 w-4 shrink-0",t)}),x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-xs text-foreground truncate",children:r}),x.jsx("div",{className:Re("text-[10px] truncate",i?"text-amber-400/90":"text-muted-foreground"),children:n})]}),x.jsx("button",{onClick:u,disabled:!i||o,className:Re("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 j3({label:e,ok:t,system:r,busy:n,onRestart:i,onLogs:o}){return x.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[x.jsx("span",{className:Re("w-1.5 h-1.5 rounded-full shrink-0",t===!0?"bg-emerald-500":t===!1?"bg-red-500":"bg-muted-foreground/40")}),x.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[e,r&&x.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),x.jsx("button",{onClick:i,disabled:n,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:x.jsx(Vo,{className:Re("h-3.5 w-3.5",n&&"animate-spin")})}),x.jsx("button",{onClick:o,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:x.jsx(aT,{className:"h-3.5 w-3.5"})})]})}const _3=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,N3=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function I3(e){return _3.test(e)?"error":N3.test(e)?"warn":"info"}const M3={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function T3({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(k=>({t:k,level:I3(k)})):[],[t]),y=g.useMemo(()=>m.filter(k=>k.level!=="info").length,[m]),b=d.trim().toLowerCase(),E=m.filter(k=>(!s||k.level!=="info")&&(!b||k.t.toLowerCase().includes(b))),S=n==="password_required"||n==="incorrect_password";return x.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:[x.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:[x.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[x.jsx(kT,{className:"h-3 w-3 text-primary"}),x.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",e]}),x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsxs("div",{className:"relative",children:[x.jsx(xT,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),x.jsx("input",{value:d,onChange:k=>f(k.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"})]}),x.jsxs("button",{onClick:()=>u(k=>!k),title:"Nur Fehler und Warnungen zeigen",className:Re("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:[x.jsx(Gs,{className:"h-3 w-3"}),"Nur Probleme",y>0?` (${y})`:""]}),x.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:x.jsx(Vo,{className:Re("h-3 w-3",r&&"animate-spin")})})]})]}),x.jsx("div",{ref:h,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:S?x.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[x.jsx(Gs,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),x.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."}),x.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."]}),x.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?x.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):m.length===0?x.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):E.length===0?x.jsx("span",{className:"text-muted-foreground",children:s?"Keine Fehler oder Warnungen — der Dienst läuft sauber. ✓":"Kein Treffer für den Filter."}):E.map((k,P)=>x.jsx("div",{className:Re("whitespace-pre-wrap",M3[k.level]),children:k.t||" "},P))})]})}function D3({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]),x.jsxs("div",{className:"space-y-6",children:[x.jsxs("div",{className:"space-y-2",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),x.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."})]}),x.jsxs("div",{className:"space-y-2",children:[x.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[x.jsx(Wy,{className:"h-4 w-4 text-amber-400"}),"Host Sudo-Passwort"]}),x.jsxs("div",{className:"relative",children:[x.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"}),x.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?x.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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."})]}),x.jsxs("div",{className:"space-y-2",children:[x.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[x.jsx(dT,{className:"h-4 w-4 text-violet-400"}),"HuggingFace API Token"]}),x.jsxs("div",{className:"relative",children:[x.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"}),x.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?x.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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."})]}),x.jsxs("div",{className:"flex gap-3 pt-2",children:[x.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"}),x.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 R3({detail:e,maintenanceJob:t,onClose:r,onApply:n}){var d,f;const i=e.data,o={os:{icon:Wy,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:Nf,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:WP,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:jf,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 x.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[x.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:r}),x.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:[x.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(s,{className:Re("h-4.5 w-4.5",o.cls)}),x.jsx("h3",{className:"text-sm font-semibold",children:o.title})]}),x.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:x.jsx(bu,{className:"h-4 w-4"})})]}),x.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:e.loading?x.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[x.jsx(Vo,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):i!=null&&i.error?x.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:i.error}):x.jsxs(x.Fragment,{children:[(i==null?void 0:i.action_needed)!=null&&x.jsxs("div",{className:Re("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?x.jsx(Gs,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):x.jsx(eT,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),x.jsxs("div",{className:"min-w-0",children:[x.jsxs("div",{className:Re("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&&x.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:i.action_text})]})]}),(i==null?void 0:i.summary)&&x.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[x.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),x.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:i.summary})]}),e.kind==="os"?x.jsxs(x.Fragment,{children:[((i==null?void 0:i.count)??0)===0?x.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-muted-foreground",children:[i.count," Paket(e) werden aktualisiert:"]}),x.jsx("div",{className:"space-y-1",children:i.packages.map(h=>x.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:[x.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[x.jsx(W1,{className:"h-3 w-3 text-cyan-400 shrink-0"}),h.name]}),x.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[x.jsx("span",{children:h.current}),x.jsx(B1,{className:"h-3 w-3"}),x.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&&x.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[x.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[x.jsx(tT,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),x.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."}),x.jsx("div",{className:"space-y-1",children:i.held_back.map(h=>x.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:[x.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[x.jsx(W1,{className:"h-3 w-3 text-muted-foreground shrink-0"}),h.name]}),x.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"?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[x.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)??"?"]}),x.jsx(B1,{className:"h-3.5 w-3.5 text-muted-foreground"}),x.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))&&x.jsxs("div",{className:"text-muted-foreground",children:["Release: ",x.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)&&x.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 ",x.jsx(iT,{className:"h-3 w-3"})]}),(i==null?void 0:i.body)&&x.jsxs("details",{className:"group",children:[x.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),x.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?x.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-muted-foreground",children:[i.behind," neue Commit(s) auf ",x.jsxs("span",{className:"font-mono text-foreground",children:["origin/",i.branch]}),":"]}),x.jsx("div",{className:"space-y-1",children:i.commits.map(h=>x.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[x.jsx(lT,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),x.jsxs("div",{className:"min-w-0",children:[x.jsx("div",{className:"text-[11px] truncate",children:h.subject}),x.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[h.hash," · ",h.when]})]})]},h.hash))})]}),e.kind!=="os"&&!u&&x.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[x.jsx(bT,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),x.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":"","."]})]})]})}),x.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[x.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"}),x.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 $3({open:e,onClose:t,defaultTab:r="maintenance"}){var lr,fi;const n=xu(),{showAlert:i,showConfirm:o,dialogElement:s}=Yy(),{data:u}=DA(),{data:d}=Qy(),f=P3(3e3,e).data??[],{data:h}=S3(void 0,e),[m,y]=g.useState("llama-swap"),[b,E]=g.useState(""),[S,k]=g.useState(!1),[P,j]=g.useState(null),[_,O]=g.useState({}),[N,C]=g.useState("maintenance"),[R,z]=g.useState(!1),[F,V]=g.useState(""),[Q,B]=g.useState(!1),[ue,G]=g.useState(!1),[le,fe]=g.useState(null),de=(d==null?void 0:d.services)??[],Y=()=>As(n,De.jobs);function ae(q){return q?new Date(q*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&&As(n,De.updates,De.services,De.jobs,De.zeitmaschine)},[e]);function X(q){k(!0),j(null),Me(`/api/maintenance/logs?service=${q}&lines=150`).then(Ie=>{Ie.ok?E(Ie.text):(E(`Fehler beim Laden der Logs: ${Ie.err||"Unbekannter Fehler"}`),(Ie.status==="incorrect_password"||Ie.status==="password_required")&&j(Ie.status))}).catch(Ie=>E(`Fehler: ${Ie.message}`)).finally(()=>k(!1))}g.useEffect(()=>{!e||N!=="logs"||X(m)},[e,N,m]);function M(q){return(q==null?void 0:q.status)==="busy"?(i("Update läuft bereits",`Es läuft gerade „${q.running}". Bitte warte, bis es fertig ist.`),Y(),!0):!1}function T(q){return(q==null?void 0:q.status)==="password_required"||(q==null?void 0:q.status)==="incorrect_password"?(i("Box-Passwort nötig",(q.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):q&&q.ok===!1?(i("Update fehlgeschlagen",q.err||"Unbekannter Fehler."),!0):!1}async function Z(q){const Ie={os:"os-update",engine:"engine-update",swap:"swap-update"}[q];try{const Ze=await Me(`/api/maintenance/${Ie}`,{method:"POST"});if(M(Ze)||T(Ze))return;Y(),C("maintenance")}catch(Ze){i("Fehler",`Update konnte nicht starten: ${Ze.message}`)}}async function se(){G(!0);try{const q=await Me("/api/maintenance/hermes-update",{method:"POST"});if(M(q))return;Y()}catch(q){i("Fehler",`Hermes-Update fehlgeschlagen: ${q.message}`)}finally{G(!1)}}async function te(q){fe({kind:q,loading:!0,data:null});try{const Ie=await Me(`/api/maintenance/update-details?kind=${q}`);fe({kind:q,loading:!1,data:Ie})}catch(Ie){fe({kind:q,loading:!1,data:{kind:q,error:Ie.message}})}}function ce(){const q=le==null?void 0:le.kind;fe(null),q==="os"||q==="engine"||q==="swap"?Z(q):q==="hermes"&&se()}function ye(){var Ie;const q=[u!=null&&u.engine?"Engine":null,u!=null&&u.swap?"Router":null,(Ie=u==null?void 0:u.components)!=null&&Ie.some(Ze=>Ze.update===!0)?"Hermes-Agent":null,u!=null&&u.os?`OS (${u.os} Pakete)`:null].filter(Boolean);o("Alle Updates einspielen?",`Nacheinander in einem Job: ${q.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 Ze=await Me("/api/maintenance/update-all",{method:"POST"});if(M(Ze)||T(Ze))return;if((Ze==null?void 0:Ze.status)==="nothing"){i("Nichts zu tun","Es stehen keine Updates aus.");return}Y(),C("maintenance")}catch(Ze){i("Fehler",`„Alle aktualisieren" konnte nicht starten: ${Ze.message}`)}})}async function _e(){z(!0);try{await Me("/api/maintenance/check-updates",{method:"POST"}),As(n,De.jobs,De.updates),C("maintenance")}catch(q){i("Fehler",`Fehler bei der Update-Suche: ${q.message}`)}finally{z(!1)}}async function J(q,Ie){try{await Me("/api/models/install",{method:"POST",body:JSON.stringify({repo:q,role:Ie})}),i("Gestartet",`Modell-Upgrade für '${Ie}' (${q}) gestartet.`),Y(),C("maintenance")}catch(Ze){i("Fehler",`Fehler beim Starten des Modell-Upgrades: ${Ze.message}`)}}async function we(){o("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await Me("/api/maintenance/reboot",{method:"POST"}),i("Reboot","Reboot ausgelöst. System startet neu...",()=>t())}catch(q){i("Fehler",`Fehler beim Reboot: ${q.message}`)}})}async function Ae(){B(!0),V("Snapshot wird erzeugt...");try{const q=await Me("/api/system/backup",{method:"POST"});V(q.ok?`Snapshot erzeugt: ${q.snapshot} (${q.files.length} Komponenten)`:"Backup fehlgeschlagen."),As(n,De.zeitmaschine)}catch(q){V(`Fehler: ${q.message}`)}finally{B(!1)}}async function ne(q){O(Ie=>({...Ie,[q]:!0}));try{const Ie=await Me("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:q})});Ie.ok?(i("Dienst neu gestartet",`Dienst ${q} wurde erfolgreich neu gestartet.`,()=>{N==="logs"&&m===q&&X(q)}),As(n,De.services,De.health,De.models)):i("Fehler",`Fehler beim Neustart: ${Ie.err||"Unbekannter Fehler"}`)}catch(Ie){i("Fehler",`Fehler beim Neustart: ${Ie.message}`)}finally{O(Ie=>({...Ie,[q]:!1}))}}async function lt(q){try{await Me(`/api/jobs/${q}/cancel`,{method:"POST"}),Y()}catch(Ie){i("Fehler",`Fehler beim Abbrechen: ${Ie.message}`)}}const $e=f.find(q=>(q.state==="running"||q.state==="queued")&&q.group==="maintenance"),Pe=(u?(u.os>0?1:0)+(u.engine?1:0)+(u.swap?1:0):0)+(((lr=u==null?void 0:u.components)==null?void 0:lr.filter(q=>q.update===!0).length)??0),vt=(h==null?void 0:h.backups)??[];return x.jsxs(x.Fragment,{children:[x.jsx("div",{className:Re("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}),x.jsxs("div",{className:Re("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:[x.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(UP,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),x.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:x.jsx(bu,{className:"h-4 w-4"})})]}),x.jsx("div",{className:"flex border-b border-border/40 px-6",children:["maintenance","logs","settings"].map(q=>x.jsx("button",{onClick:()=>C(q),className:Re("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",N===q?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:q==="maintenance"?"System-Wartung":q==="logs"?"System-Logs":"Einstellungen"},q))}),x.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[N==="maintenance"&&x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"space-y-2.5",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),x.jsxs("div",{className:"flex items-center gap-3",children:[Pe>0&&x.jsxs("button",{onClick:ye,disabled:!!$e,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:[x.jsx(rT,{className:"h-3 w-3"})," Alle aktualisieren (",Pe,")"]}),x.jsxs("button",{onClick:_e,disabled:R||!!$e,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[x.jsx(Vo,{className:Re("h-3 w-3",R&&"animate-spin")})," Nach Updates suchen"]})]})]}),(u==null?void 0:u.last_check)&&x.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",ae(u.last_check)]}),$e&&x.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:[x.jsx(Vo,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),x.jsxs("span",{children:["Update läuft: ",x.jsx("span",{className:"font-semibold",children:$e.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),x.jsxs("div",{className:"space-y-1.5",children:[x.jsx(Os,{icon:Wy,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")}),x.jsx(Os,{icon:Nf,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")}),x.jsx(Os,{icon:WP,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 q=(Ie=u==null?void 0:u.components)==null?void 0:Ie.find(Ze=>Ze.key==="hermes_agent");return x.jsx(Os,{icon:jf,iconClass:"text-amber-400",name:"Hermes-Agent",available:(q==null?void 0:q.update)===!0,busy:ue,status:(q==null?void 0:q.update)===!0?`Update: ${q.latest}`:(q==null?void 0:q.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("hermes")})})(),(fi=u==null?void 0:u.model_list)==null?void 0:fi.map(q=>x.jsx(Os,{icon:YM,iconClass:"text-emerald-400",name:`Modell · ${q.role}`,available:!0,status:q.title,actionLabel:"Upgrade",onAction:()=>J(q.repo,q.role)},q.role))]})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),x.jsxs("div",{className:"space-y-1.5",children:[de.length===0&&x.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(q=>x.jsx(j3,{label:q.name,system:q.scope==="system",ok:q.ok,busy:_[q.unit],onRestart:()=>ne(q.unit),onLogs:()=>{y(q.unit),C("logs")}},q.unit))]})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),x.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-xs text-foreground truncate",children:vt[0]?`Letztes: ${vt[0].snapshot}`:"Noch kein Backup"}),x.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[vt.length," Snapshots · Wiederherstellen: Chronik → Zeitmaschine"]})]}),x.jsxs("button",{onClick:Ae,disabled:Q,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:[x.jsx(QM,{className:Re("h-3.5 w-3.5",Q&&"animate-pulse")})," Snapshot"]})]}),F&&x.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:F})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),x.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:[x.jsx(yT,{className:"h-4.5 w-4.5"}),x.jsxs("div",{children:[x.jsx("div",{children:"Host-System neu starten"}),x.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),x.jsxs("div",{className:"space-y-3",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),x.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(q=>q.state==="running"||q.state==="queued").length," Aktiv"]})]}),x.jsx("div",{className:"space-y-3",children:f.length===0?x.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(q=>{const Ie=q.state==="running"||q.state==="queued";return x.jsxs("div",{className:Re("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:[x.jsxs("div",{className:"flex items-start justify-between gap-3",children:[x.jsxs("div",{className:"space-y-1",children:[x.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[Ie&&x.jsxs("span",{className:"flex h-2 w-2 relative",children:[x.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),x.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),q.label]}),x.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[x.jsxs("span",{children:["ID: ",q.id]}),x.jsx("span",{children:"•"}),x.jsx("span",{className:Re(q.state==="done"&&"text-emerald-400",q.state==="failed"&&"text-red-400",q.state==="running"&&"text-primary",q.state==="queued"&&"text-amber-400",q.state==="canceled"&&"text-muted-foreground"),children:q.state})]})]}),Ie&&x.jsx("button",{onClick:()=>lt(q.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"})]}),q.state==="running"&&x.jsxs("div",{className:"mt-3 space-y-1",children:[x.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:x.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${q.progress??0}%`}})}),x.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[x.jsxs("span",{children:[q.progress??0,"%"]}),q.done_bytes!=null&&q.total_bytes!=null&&x.jsxs("span",{children:[Mm(q.done_bytes)," / ",Mm(q.total_bytes),q.rate_bps!=null&&` (${Mm(q.rate_bps)}/s)`]}),q.eta_s!=null&&x.jsxs("span",{children:["ETA: ",q.eta_s,"s"]})]})]})]},q.id)})})]})]}),N==="logs"&&x.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx("select",{value:m,onChange:q=>y(q.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(q=>x.jsxs("option",{value:q.unit,children:[q.name," (",q.scope==="system"?"systemd-root":"user",")"]},q.unit))}),x.jsxs("button",{onClick:()=>ne(m),disabled:_[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:[x.jsx(Vo,{className:Re("h-3.5 w-3.5",_[m]&&"animate-spin")}),"Restart"]})]}),x.jsx(T3,{service:m,text:b,loading:S,logStatus:P,onRefresh:()=>X(m),onOpenSettings:()=>C("settings")})]}),N==="settings"&&x.jsx(D3,{open:e,showAlert:i})]})]}),le&&x.jsx(R3,{detail:le,maintenanceJob:$e,onClose:()=>fe(null),onApply:ce}),s]})}let Tv=[],Dv=[];const Rv=new Set,RA=()=>Rv.forEach(e=>e());function $A(e){return Rv.add(e),()=>{Rv.delete(e)}}function L3(e){Tv=[...Tv,e].slice(-40),RA()}function z3(e){Dv=[...Dv,e].slice(-40),RA()}const F3=()=>g.useSyncExternalStore($A,()=>Tv),B3=()=>g.useSyncExternalStore($A,()=>Dv);function U3(){const{data:e,dataUpdatedAt:t}=$f(),{data:r,dataUpdatedAt:n}=TA(),i=g.useRef(null);g.useEffect(()=>{var o,s,u,d;e&&L3({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);z3({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 W3(){var z,F,V,Q,B,ue;const{data:e,isError:t}=IA(),{data:r,isError:n}=Qy(),{data:i}=MA(),{data:o}=$f(),s=t||n,u=!!e&&!!r,d=G=>{var le;return(le=r==null?void 0:r.services.find(fe=>fe.unit===G))==null?void 0:le.ok},f=G=>!!(r!=null&&r.services.some(le=>le.unit===G)),h=e==null?void 0:e.engine_reachable,m=(z=e==null?void 0:e.brain)==null?void 0:z.ready,y=((F=e==null?void 0:e.brain)==null?void 0:F.model)||((V=i==null?void 0:i.models.find(G=>G.role==="hermes"))==null?void 0:V.name)||"",b=[];s&&b.push({id:"mc2",label:"Steuerpult (MC2)",icon:Nf,critical:!0,status:"down",detail:"Die Zentrale antwortet nicht — alle Anzeigen hier können veraltet sein. Läuft die Box? Deploy aktiv?"}),b.push((()=>{const G={id:"brain",label:"Lucys Hirn",icon:zy,critical:!0};return u?h===!1?{...G,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?{...G,status:"down",detail:"Lucys Hirn ist gerade eingeschlafen — einmal aufwecken.",repair:y?{kind:"loadModel",model:y,label:"Hirn aufwecken"}:void 0}:{...G,status:"ok",detail:"Wach und ansprechbar."}:{...G,status:"loading",detail:"Wird geprüft …"}})()),b.push((()=>{const G={id:"vision",label:"Lucys Augen",icon:Ov,critical:!1};if(!u||!i)return{...G,status:"loading",detail:"Wird geprüft …"};const le=i.models.find(de=>de.role==="vision");return le?(i.running??[]).includes(le.name)?{...G,status:"ok",detail:"Sieht gerade zu (geladen, solange Lucy sie nutzt)."}:{...G,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"}}:{...G,status:"warn",detail:"Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen."}})()),b.push((()=>{const G={id:"memory",label:"Lucys Gedächtnis",icon:GM,critical:!0},le=d("mem0-service");return!u||le===void 0?{...G,status:"loading",detail:"Wird geprüft …"}:le?{...G,status:"ok",detail:"Merkt sich Neues und findet Altes wieder."}:{...G,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"}}})()),b.push((()=>{const G={id:"gateway",label:"Verbindung (Gateway)",icon:By,critical:!0},le=e?e.gateway_reachable:d("mc2-gateway");if(!u||le===void 0)return{...G,status:"loading",detail:"Wird geprüft …"};const fe=f("mc2-gateway")?"mc2-gateway":"mission-control-2";return le?{...G,status:"ok",detail:"Apps und IDEs können Lucy erreichen."}:{...G,status:"down",detail:"Der Modell-Gateway antwortet nicht — Lucy und die IDEs erreichen kein Modell.",repair:{kind:"restart",service:fe,label:"Gateway neu starten"}}})()),b.push((()=>{const G={id:"steward",label:"Wächter (Steward)",icon:Uy,critical:!1};return u?f("mc2-steward")?d("mc2-steward")?{...G,status:"ok",detail:"Wacht über Warm-Set, Dienste und Gedächtnis."}:{...G,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"}}:{...G,status:"ok",detail:"Auf dieser Installation nicht eingerichtet."}:{...G,status:"loading",detail:"Wird geprüft …"}})()),b.push((()=>{const G={id:"agent",label:"Lucys Agent (Hermes)",icon:jf,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...G,status:"loading",detail:"Wird geprüft …"}:le?{...G,status:"ok",detail:"Lucy ist bereit zu reden und zu handeln."}:{...G,status:"down",detail:"Lucys Agent ist offline — sie reagiert gerade nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Agent neu starten"}}})()),b.push((()=>{const G={id:"voice",label:"Lucys Stimme",icon:mT,critical:!1},le=d("voice-service");return!u||le===void 0?{...G,status:"loading",detail:"Wird geprüft …"}:le?{...G,status:"ok",detail:"Lucy kann hören und sprechen."}:{...G,status:"warn",detail:"Sprechen ist gerade aus — Tippen geht weiter normal.",repair:{kind:"restart",service:"voice-service",label:"Stimme neu starten"}}})());const E=((Q=o==null?void 0:o.ram)==null?void 0:Q.total)??0,S=((B=o==null?void 0:o.ram)==null?void 0:B.used)??0,k=((ue=o==null?void 0:o.ram)==null?void 0:ue.percent)??(E>0?Math.min(100,S/E*100):0),P=1024**3,j=E?k>=93?{status:"full",usedGb:S/P,totalGb:E/P,pct:k,text:"Speicher fast voll — Lucy könnte langsamer werden."}:k>=85?{status:"warn",usedGb:S/P,totalGb:E/P,pct:k,text:"Speicher gut gefüllt — noch okay."}:{status:"ok",usedGb:S/P,totalGb:E/P,pct:k,text:"Genug Speicher frei."}:{status:"unknown",usedGb:0,totalGb:0,pct:0,text:"Speicher-Auslastung unbekannt."},_=b.some(G=>G.status==="loading"),O=b.filter(G=>G.critical&&G.status==="down"),N=b.filter(G=>G.status==="warn"||!G.critical&&G.status==="down"),C=j.status==="full";return{verdict:_&&!O.length?"loading":O.length?"problem":N.length||C?"warn":"gut",checks:b,memory:j,problems:O,warns:N,unreachable:s}}const H3={ok:"bg-emerald-500",warn:"bg-amber-500",alert:"bg-red-500",muted:"bg-muted-foreground/40",loading:"bg-muted-foreground/40 animate-pulse"},K3={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 Io({icon:e,title:t,value:r,unit:n,tone:i="muted",hint:o,onClick:s}){return x.jsxs("button",{onClick:s,className:Re("group relative flex flex-col items-start mc-card p-5 text-left cursor-pointer",K3[i]),children:[x.jsxs("div",{className:"mb-4 flex w-full items-center justify-between",children:[x.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:x.jsx(e,{className:"h-5 w-5"})}),x.jsx("span",{className:Re("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",H3[i]),title:o})]}),x.jsxs("div",{className:"flex items-baseline gap-1.5",children:[x.jsx("span",{className:"text-2xl font-bold tracking-tight text-foreground font-space tabular-nums",children:r}),n&&x.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n})]}),x.jsxs("div",{className:"mt-1 flex w-full items-center justify-between",children:[x.jsx("span",{className:"text-sm font-semibold text-foreground/90",children:t}),x.jsx(Ko,{className:"h-4 w-4 text-muted-foreground/40 transition-all group-hover:translate-x-0.5 group-hover:text-primary"})]}),o&&x.jsx("span",{className:"mt-0.5 text-[11px] text-muted-foreground",children:o})]})}function V3(){var s;const{data:e=[]}=w3(),[t,r]=g.useState(!1),n=e.find(u=>u.source==="chef-gutachter");if(!n)return null;const i=new Date(n.ts*1e3).toLocaleString("de-DE",{weekday:"long",day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}),o=(s=n.text.split(` +`).find(u=>u.trim().startsWith("VERDIKT:")))==null?void 0:s.replace(/^\s*VERDIKT:\s*/,"");return x.jsxs("div",{className:"rounded-2xl border border-violet-500/25 bg-violet-500/[0.05] p-4 shadow-lg shadow-black/15 backdrop-blur-md",children:[x.jsxs("button",{onClick:()=>r(u=>!u),className:"flex w-full items-center gap-3 text-left cursor-pointer",children:[x.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-violet-500/30 bg-background/30 text-violet-300",children:x.jsx(vT,{className:"h-4.5 w-4.5"})}),x.jsxs("span",{className:"min-w-0 flex-1",children:[x.jsx("span",{className:"block text-sm font-bold text-foreground",children:"Morgenlage"}),x.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:o||n.subject||"Nächtliches Gutachten über die autonome Arbeit"})]}),x.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",children:i}),t?x.jsx(ZM,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):x.jsx(Ko,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]}),t&&x.jsxs("div",{className:"mt-3 border-t border-violet-500/15 pt-3",children:[n.subject&&x.jsx("p",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-violet-300/80",children:n.subject}),x.jsx("p",{className:"whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:n.text})]})]})}const fw={"":"einmalig",daily:"täglich",weekdays:"werktags",weekly:"wöchentlich"};function q3(){const{data:e=[],isLoading:t}=k3(),r=xu(),{showAlert:n,showConfirm:i,dialogElement:o}=Yy(),[s,u]=g.useState(!1),[d,f]=g.useState(""),[h,m]=g.useState(""),[y,b]=g.useState(""),[E,S]=g.useState(!1),k=()=>r.invalidateQueries({queryKey:De.reminders});async function P(){if(!(!d.trim()||!h)){S(!0);try{await Me("/api/reminders",{method:"POST",body:JSON.stringify({text:d,when:h,repeat:y})}),f(""),m(""),b(""),u(!1),k()}catch(O){n("Anlegen fehlgeschlagen",String((O==null?void 0:O.message)||O))}finally{S(!1)}}}function j(O,N){i("Erinnerung löschen?",`„${N}" wird entfernt.`,async()=>{try{await Me(`/api/reminders/${O}`,{method:"DELETE"}),k()}catch(C){n("Fehler",String((C==null?void 0:C.message)||C))}})}const _=[...e].sort((O,N)=>O.next_ts-N.next_ts);return x.jsxs("div",{className:"mc-card p-4",children:[x.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[x.jsxs("span",{className:"flex items-center gap-2 text-sm font-bold text-foreground",children:[x.jsx("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 bg-background/30 text-amber-300",children:x.jsx(qM,{className:"h-4 w-4"})}),"Anstehendes"]}),x.jsxs("button",{onClick:()=>u(O=>!O),className:"flex h-8 items-center gap-1 rounded-lg border border-border/60 bg-background/30 px-2.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground hover:border-primary/40 transition-all cursor-pointer",children:[s?x.jsx(bu,{className:"h-3.5 w-3.5"}):x.jsx(H1,{className:"h-3.5 w-3.5"})," ",s?"Abbrechen":"Neu"]})]}),s&&x.jsxs("div",{className:"mb-3 space-y-2 rounded-xl border border-border/50 bg-background/30 p-3",children:[x.jsx("input",{value:d,onChange:O=>f(O.target.value),placeholder:"Woran soll Lucy erinnern?","aria-label":"Erinnerungstext",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 px-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),x.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[x.jsx("input",{type:"datetime-local",value:h,onChange:O=>m(O.target.value),"aria-label":"Zeitpunkt",className:"h-9 rounded-lg border border-border/60 bg-card/45 px-2 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50 [color-scheme:dark]"}),x.jsx("select",{value:y,onChange:O=>b(O.target.value),"aria-label":"Wiederholung",className:"h-9 cursor-pointer rounded-lg border border-border/60 bg-card/45 px-2 text-xs font-semibold text-foreground outline-none",children:Object.entries(fw).map(([O,N])=>x.jsx("option",{value:O,className:"bg-popover",children:N},O))}),x.jsxs("button",{onClick:P,disabled:E||!d.trim()||!h,className:"ml-auto flex h-9 items-center gap-1.5 rounded-lg bg-primary px-3 text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50",children:[E?x.jsx(_f,{className:"h-3.5 w-3.5 animate-spin"}):x.jsx(H1,{className:"h-3.5 w-3.5"})," Anlegen"]})]})]}),t?x.jsx("p",{className:"text-xs text-muted-foreground",children:"Wird geladen …"}):_.length===0?x.jsx("p",{className:"text-xs text-muted-foreground",children:"Keine Erinnerungen. Lucy sagt dir hier (und per Stimme) Bescheid, wenn etwas ansteht."}):x.jsxs("div",{className:"space-y-1.5",children:[_.slice(0,6).map(O=>{const N=O.next_ts*1e3j(O.id,O.text),"aria-label":"Erinnerung löschen",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground opacity-0 transition-all hover:bg-red-500/5 hover:text-red-400 group-hover:opacity-100 cursor-pointer",children:x.jsx(ET,{className:"h-3.5 w-3.5"})})]},O.id)}),_.length>6&&x.jsxs("p",{className:"text-[10px] text-muted-foreground/60",children:["+",_.length-6," weitere"]})]}),o]})}function G3(){const{data:e,error:t}=$f(),r=F3();return{sys:e,hist:r,error:t}}var Y3=["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=Y3;return t.includes(e)}var Q3=["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"],X3=new Set(Q3);function LA(e){return typeof e!="string"?!1:X3.has(e)}function zA(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)&&(LA(r)||zA(r))&&(t[r]=e[r]);return t}function Lf(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)&&(LA(r)||zA(r)||Xy(r))&&(t[r]=e[r]);return t}function Z3(e){return e==null?null:g.isValidElement(e)?Br(e.props):typeof e=="object"&&!Array.isArray(e)?Br(e):null}var J3=["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=e5(e,J3),m=o||{width:n,height:i,x:0,y:0},y=Qe("recharts-surface",s);return g.createElement("svg",$v({},Br(h),{className:y,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)}),r5=["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=n5(e,r5),o=Qe("recharts-layer",n);return g.createElement("g",Lv({className:o},Br(i),{ref:t}),r)}),a5=g.createContext(null);function ft(e){return function(){return e}}const zv=Math.PI,Fv=2*zv,ba=1e-6,o5=Fv-ba;function BA(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return BA;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 b=n-s,E=i-u,S=d*d+f*f,k=b*b+E*E,P=Math.sqrt(S),j=Math.sqrt(y),_=o*Math.tan((zv-Math.acos((S+y-k)/(2*P*j)))/2),O=_/j,N=_/P;Math.abs(O-1)>ba&&this._append`L${t+O*h},${r+O*m}`,this._append`A${o},${o},0,0,${+(m*b>h*E)},${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,y=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&&(y<0&&(y=y%Fv+Fv),y>o5?this._append`A${n},${n},0,1,${m},${t-u},${r-d}A${n},${n},0,1,${m},${this._x1=f},${this._y1=h}`:y>ba&&this._append`A${n},${n},0,${+(y>=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 UA(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 s5(t)}function Zy(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function WA(e){this._context=e}WA.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 zf(e){return new WA(e)}function HA(e){return e[0]}function KA(e){return e[1]}function VA(e,t){var r=ft(!0),n=null,i=zf,o=null,s=UA(u);e=typeof e=="function"?e:e===void 0?HA:ft(e),t=typeof t=="function"?t:t===void 0?KA:ft(t);function u(d){var f,h=(d=Zy(d)).length,m,y=!1,b;for(n==null&&(o=i(b=s())),f=0;f<=h;++f)!(f=b;--E)u.point(_[E],O[E]);u.lineEnd(),u.areaEnd()}P&&(_[y]=+e(k,y,m),O[y]=+t(k,y,m),u.point(n?+n(k,y,m):_[y],r?+r(k,y,m):O[y]))}if(j)return u=null,j+""||null}function h(){return VA().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 qA{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 u5(e){return new qA(e,!0)}function c5(e){return new qA(e,!1)}function Id(){}function Md(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 GA(e){this._context=e}GA.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:Md(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:Md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function d5(e){return new GA(e)}function YA(e){this._context=e}YA.prototype={areaStart:Id,areaEnd:Id,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:Md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function f5(e){return new YA(e)}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(){(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:Md(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function h5(e){return new QA(e)}function XA(e){this._context=e}XA.prototype={areaStart:Id,areaEnd:Id,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 p5(e){return new XA(e)}function hw(e){return e<0?-1:1}function pw(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(hw(o)+hw(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function mw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Tm(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 Td(e){this._context=e}Td.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:Tm(this,this._t0,mw(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,Tm(this,mw(this,r=pw(this,e,t)),r);break;default:Tm(this,this._t0,r=pw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function ZA(e){this._context=new JA(e)}(ZA.prototype=Object.create(Td.prototype)).point=function(e,t){Td.prototype.point.call(this,t,e)};function JA(e){this._context=e}JA.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 m5(e){return new Td(e)}function v5(e){return new ZA(e)}function e2(e){this._context=e}e2.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=vw(e),i=vw(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 g5(e){return new Ff(e,.5)}function x5(e){return new Ff(e,0)}function b5(e){return new Ff(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 w5(e,t){return e[t]}function S5(e){const t=[];return t.key=e,t}function k5(){var e=ft([]),t=Bv,r=Wa,n=w5;function i(o){var s=Array.from(e.apply(this,arguments),S5),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]:C5,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",j5=0,Xs=e=>{var t=++j5;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},n2=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 vr(e){return e!=null}function Pl(){}var a2=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},_5=(e,t,r)=>n=>(e(t,r,n),null),N5=(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]=_5(o,t,r))}),n};function yw(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 I5(e){for(var t=1;t(s[u]===void 0&&n[u]!==void 0&&(s[u]=n[u]),s),r);return o}function R5(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 B5="[object RegExp]",l2="[object String]",s2="[object Number]",u2="[object Boolean]",c2="[object Arguments]",U5="[object Symbol]",W5="[object Date]",H5="[object Map]",K5="[object Set]",V5="[object Array]",q5="[object ArrayBuffer]",G5="[object Object]",Y5="[object DataView]",Q5="[object Uint8Array]",X5="[object Uint8ClampedArray]",Z5="[object Uint16Array]",J5="[object Uint32Array]",e$="[object Int8Array]",t$="[object Int16Array]",r$="[object Int32Array]",n$="[object Float32Array]",i$="[object Float64Array]",gw=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function a$(e){return typeof gw.Buffer<"u"&&gw.Buffer.isBuffer(e)}function o$(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 u$(e,t,r,n);case"function":return Object.keys(t).length>0?Hv(e,{...t},r,n,i):kd(e,t);default:return d2(e)&&i?typeof t=="string"?t==="":!0:kd(e,t)}}function u$(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return h2(e,t,r,n);if(t instanceof Map)return c$(e,t,r,n);if(t instanceof Set)return d$(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 f$(e){return e=s$(e),t=>p2(t,e)}function h$(e,t){return o$(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 s2:case l2:case u2:{const s=new e.constructor(e==null?void 0:e.valueOf());return en(s,e),s}case c2:{const s={};return en(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function p$(e){return h$(e)}const m$=/^(?:0|[1-9]\d*)$/;function m2(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function v2(e){return e!=null&&typeof e!="function"&&b$(e.length)}function w$(e){return typeof e=="object"&&e!==null}function S$(e){return w$(e)&&v2(e)}function xw(e,t=o2){return S$(e)?R5(Array.from(e),$5(x$(t),1)):[]}function k$(e,t,r){return t===!0?xw(e,r):typeof t=="function"?xw(e,t):e}var Dm={exports:{}},Rm={},$m={exports:{}},Lm={};/** + * @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 bw;function E$(){if(bw)return Lm;bw=1;var e=kl();function t(m,y){return m===y&&(m!==0||1/m===1/y)||m!==m&&y!==y}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,i=e.useEffect,o=e.useLayoutEffect,s=e.useDebugValue;function u(m,y){var b=y(),E=n({inst:{value:b,getSnapshot:y}}),S=E[0].inst,k=E[1];return o(function(){S.value=b,S.getSnapshot=y,d(S)&&k({inst:S})},[m,b,y]),i(function(){return d(S)&&k({inst:S}),m(function(){d(S)&&k({inst:S})})},[m]),s(b),b}function d(m){var y=m.getSnapshot;m=m.value;try{var b=y();return!r(m,b)}catch{return!0}}function f(m,y){return y()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return Lm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Lm}var ww;function P$(){return ww||(ww=1,$m.exports=E$()),$m.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 Sw;function A$(){if(Sw)return Rm;Sw=1;var e=kl(),t=P$();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 Rm.useSyncExternalStoreWithSelector=function(f,h,m,y,b){var E=o(null);if(E.current===null){var S={hasValue:!1,value:null};E.current=S}else S=E.current;E=u(function(){function P(C){if(!j){if(j=!0,_=C,C=y(C),b!==void 0&&S.hasValue){var R=S.value;if(b(R,C))return O=R}return O=C}if(R=O,n(_,C))return R;var z=y(C);return b!==void 0&&b(R,z)?(_=C,R):(_=C,O=z)}var j=!1,_,O,N=m===void 0?null:m;return[function(){return P(h())},N===null?void 0:function(){return P(N())}]},[h,m,y,b]);var k=i(f,E[0],E[1]);return s(function(){S.hasValue=!0,S.value=k},[k]),d(k),k},Rm}var kw;function O$(){return kw||(kw=1,Dm.exports=A$()),Dm.exports}var C$=O$(),ig=g.createContext(null),j$=e=>e,xt=()=>{var e=g.useContext(ig);return e?e.store.dispatch:j$},Ed=()=>{},_$=()=>Ed,N$=(e,t)=>e===t;function Ee(e){var t=g.useContext(ig),r=g.useMemo(()=>t?n=>{if(n!=null)return e(n)}:Ed,[t,e]);return C$.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:_$,t?t.store.getState:Ed,t?t.store.getState:Ed,r,N$)}function I$(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function M$(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 Ew=e=>Array.isArray(e)?e:[e];function T$(e){const t=Array.isArray(e[0])?e[0]:e;return M$(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function D$(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?R$:WeakRef,y2=$$(),L$=0,Pw=1;function id(){return{s:L$,v:void 0,o:null,p:null}}function z$(e){return e instanceof y2?e.deref():e}function g2(e,t={}){let r=id();const{resultEqualityCheck:n}=t;let i,o=0;function s(){let u=r;const{length:d}=arguments;for(let m=0,y=d;m{r=id(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function F$(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()),I$(f,`createSelector expects an output function after the inputs, but received: [${typeof f}]`);const h={...r,...d},{memoize:m,memoizeOptions:y=[],argsMemoize:b=g2,argsMemoizeOptions:E=[]}=h,S=Ew(y),k=Ew(E),P=T$(i),j=m(function(){return o++,f.apply(null,arguments)},...S),_=b(function(){s++;const N=D$(P,arguments);return u=j.apply(null,N),u},...k);return Object.assign(_,{resultFunc:f,memoizedResultFunc:j,dependencies:P,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>u,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:b})};return Object.assign(n,{withTypes:()=>n}),n}var H=F$(g2);function B$(e,t=1){const r=[],n=Math.floor(t),i=(o,s)=>{for(let u=0;u{if(e!==t){const n=Aw(e),i=Aw(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function x2(e){return typeof e=="symbol"||e instanceof Symbol}const W$=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H$=/^\w*$/;function K$(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||x2(e)?!0:typeof e=="string"&&(H$.test(e)||!W$.test(e))||t!=null}function V$(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)||K$(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 Bf(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]]),V$(e,B$(t),["asc"])}var b2=e=>e.legend.settings,q$=e=>e.legend.size,G$=e=>e.legend.payload;H([G$,b2],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?Bf(n,r):n});function Y$(e,t){return J$(e)||Z$(e,t)||X$(e,t)||Q$()}function Q$(){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 X$(e,t){if(e){if(typeof e=="string")return Ow(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)?Ow(e,t):void 0}}function Ow(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rad||Math.abs(e.left-t.left)>ad||Math.abs(e.top-t.top)>ad||Math.abs(e.width-t.width)>ad}function jw(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function eL(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=g.useState({height:0,left:0,top:0,width:0}),r=Y$(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=jw(d);if(Cw(f,s.current)&&i(f),typeof ResizeObserver<"u"){var h=new ResizeObserver(()=>{var m=jw(d);Cw(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 tL=typeof Symbol=="function"&&Symbol.observable||"@@observable",_w=tL,zm=()=>Math.random().toString(36).substring(7).split("").join("."),rL={INIT:`@@redux/INIT${zm()}`,REPLACE:`@@redux/REPLACE${zm()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${zm()}`},Dd=rL;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 w2(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(w2)(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((k,P)=>{s.set(P,k)}))}function h(){if(d)throw new Error($t(3));return i}function m(k){if(typeof k!="function")throw new Error($t(4));if(d)throw new Error($t(5));let P=!0;f();const j=u++;return s.set(j,k),function(){if(P){if(d)throw new Error($t(6));P=!1,f(),s.delete(j),o=null}}}function y(k){if(!ag(k))throw new Error($t(7));if(typeof k.type>"u")throw new Error($t(8));if(typeof k.type!="string")throw new Error($t(17));if(d)throw new Error($t(9));try{d=!0,i=n(i,k)}finally{d=!1}return(o=s).forEach(j=>{j()}),k}function b(k){if(typeof k!="function")throw new Error($t(10));n=k,y({type:Dd.REPLACE})}function E(){const k=m;return{subscribe(P){if(typeof P!="object"||P===null)throw new Error($t(11));function j(){const O=P;O.next&&O.next(h())}return j(),{unsubscribe:k(j)}},[_w](){return this}}}return y({type:Dd.INIT}),{dispatch:y,subscribe:m,getState:h,replaceReducer:b,[_w]:E}}function nL(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Dd.INIT})>"u")throw new Error($t(12));if(typeof r(void 0,{type:Dd.PROBE_UNKNOWN_ACTION()})>"u")throw new Error($t(13))})}function S2(e){const t=Object.keys(e),r={};for(let o=0;o"u")throw u&&u.type,new Error($t(14));f[m]=E,d=d||E!==b}return d=d||n.length!==Object.keys(s).length,d?f:s}}function Rd(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function iL(...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=Rd(...u)(i.dispatch),{...i,dispatch:o}}}function k2(e){return ag(e)&&"type"in e&&typeof e.type=="string"}var E2=Symbol.for("immer-nothing"),Nw=Symbol.for("immer-draftable"),ar=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,pl=Ar.getPrototypeOf,$d="constructor",Uf="prototype",Vv="configurable",Ld="enumerable",Pd="writable",Zs="value",ti=e=>!!e&&!!e[ar];function ln(e){var t;return e?P2(e)||Hf(e)||!!e[Nw]||!!((t=e[$d])!=null&&t[Nw])||Kf(e)||Vf(e):!1}var aL=Ar[Uf][$d].toString(),Iw=new WeakMap;function P2(e){if(!e||!og(e))return!1;const t=pl(e);if(t===null||t===Ar[Uf])return!0;const r=Ar.hasOwnProperty.call(t,$d)&&t[$d];if(r===Object)return!0;if(!Uo(r))return!1;let n=Iw.get(r);return n===void 0&&(n=Function.toString.call(r),Iw.set(r,n)),n===aL}function Wf(e,t,r=!0){ku(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 ku(e){const t=e[ar];return t?t.type_:Hf(e)?1:Kf(e)?2:Vf(e)?3:0}var Mw=(e,t,r=ku(e))=>r===2?e.has(t):Ar[Uf].hasOwnProperty.call(e,t),qv=(e,t,r=ku(e))=>r===2?e.get(t):e[t],zd=(e,t,r,n=ku(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function oL(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Hf=Array.isArray,Kf=e=>e instanceof Map,Vf=e=>e instanceof Set,og=e=>typeof e=="object",Uo=e=>typeof e=="function",Fm=e=>typeof e=="boolean";function lL(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Kn=e=>e.copy_||e.base_,lg=e=>e.modified_?e.copy_:e.base_;function Gv(e,t){if(Kf(e))return new Map(e);if(Vf(e))return new Set(e);if(Hf(e))return Array[Uf].slice.call(e);const r=P2(e);if(t===!0||t==="class_only"&&!r){const n=Ar.getOwnPropertyDescriptors(e);delete n[ar];let i=Reflect.ownKeys(n);for(let o=0;o1&&Ar.defineProperties(e,{set:od,add:od,clear:od,delete:od}),Ar.freeze(e),t&&Wf(e,(r,n)=>{sg(n,!0)},!1)),e}function sL(){rn(2)}var od={[Zs]:sL};function qf(e){return e===null||!og(e)?!0:Ar.isFrozen(e)}var Fd="MapSet",Yv="Patches",Tw="ArrayMethods",A2={};function Ka(e){const t=A2[e];return t||rn(0,e),t}var Dw=e=>!!A2[e],Js,O2=()=>Js,uL=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Dw(Fd)?Ka(Fd):void 0,arrayMethodsPlugin_:Dw(Tw)?Ka(Tw):void 0});function Rw(e,t){t&&(e.patchPlugin_=Ka(Yv),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Qv(e){Xv(e),e.drafts_.forEach(cL),e.drafts_=null}function Xv(e){e===Js&&(Js=e.parent_)}var $w=e=>Js=uL(Js,e);function cL(e){const t=e[ar];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Lw(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[ar].modified_&&(Qv(t),rn(4)),ln(e)&&(e=zw(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[ar].base_,e,t)}else e=zw(t,r);return dL(t,e,!0),Qv(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==E2?e:void 0}function zw(e,t){if(qf(t))return t;const r=t[ar];if(!r)return Bd(t,e.handledSet_,e);if(!Gf(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);_2(r,e)}return r.copy_}function dL(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sg(t,r)}function C2(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Gf=(e,t)=>e.scope_===t,fL=[];function j2(e,t,r,n){const i=Kn(e),o=e.type_;if(n!==void 0&&qv(i,n,o)===t){zd(i,n,r,o);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;Wf(i,(d,f)=>{if(ti(f)){const h=u.get(f)||[];h.push(d),u.set(f,h)}})}const s=e.draftLocations_.get(t)??fL;for(const u of s)zd(i,u,r,o)}function hL(e,t,r){e.callbacks_.push(function(i){var u;const o=t;if(!o||!Gf(o,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(o);const s=lg(o);j2(e,o.draft_??o,s,r),_2(o,i)})}function _2(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)}C2(e)}}function pL(e,t,r){const{scope_:n}=e;if(ti(r)){const i=r[ar];Gf(i,n)&&i.callbacks_.push(function(){Ad(e);const s=lg(i);j2(e,r,s,t)})}else ln(r)&&e.callbacks_.push(function(){const o=Kn(e);e.type_===3?o.has(r)&&Bd(r,n.handledSet_,n):qv(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Bd(qv(e.copy_,t,e.type_),n.handledSet_,n)})}function Bd(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ti(e)||t.has(e)||!ln(e)||qf(e)||(t.add(e),Wf(e,(n,i)=>{if(ti(i)){const o=i[ar];if(Gf(o,r)){const s=lg(o);zd(e,n,s,e.type_),C2(o)}}else ln(i)&&Bd(i,t,r)})),e}function mL(e,t){const r=Hf(e),n={type_:r?1:0,scope_:t?t.scope_:O2(),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=Ud;r&&(i=[n],o=eu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,[u,n]}var Ud={get(e,t){if(t===ar)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=Kn(e);if(!Mw(i,t,e.type_))return vL(e,i,t);const o=i[t];if(e.finalized_||!ln(o)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&lL(t))return o;if(o===Bm(e.base_,t)){Ad(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 Kn(e)},ownKeys(e){return Reflect.ownKeys(Kn(e))},set(e,t,r){const n=N2(Kn(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Bm(Kn(e),t),o=i==null?void 0:i[ar];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(oL(r,i)&&(r!==void 0||Mw(e.base_,t,e.type_)))return!0;Ad(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),pL(e,t,r)),!0},deleteProperty(e,t){return Ad(e),Bm(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=Kn(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Pd]:!0,[Vv]:e.type_!==1||t!=="length",[Ld]:n[Ld],[Zs]:r[t]}},defineProperty(){rn(11)},getPrototypeOf(e){return pl(e.base_)},setPrototypeOf(){rn(12)}},eu={};for(let e in Ud){let t=Ud[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 Ud.set.call(this,e[0],t,r,e[0])};function Bm(e,t){const r=e[ar];return(r?Kn(r):e)[t]}function vL(e,t,r){var i;const n=N2(t,r);return n?Zs in n?n[Zs]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function N2(e,t){if(!(t in e))return;let r=pl(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=pl(r)}}function Zv(e){e.modified_||(e.modified_=!0,e.parent_&&Zv(e.parent_))}function Ad(e){e.copy_||(e.assigned_=new Map,e.copy_=Gv(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var yL=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Uo(r)&&!Uo(n)){const s=n;n=r;const u=this;return function(f=s,...h){return u.produce(f,m=>n.call(this,m,...h))}}Uo(n)||rn(6),i!==void 0&&!Uo(i)&&rn(7);let o;if(ln(r)){const s=$w(this),u=Jv(s,r,void 0);let d=!0;try{o=n(u),d=!1}finally{d?Qv(s):Xv(s)}return Rw(s,i),Lw(o,s)}else if(!r||!og(r)){if(o=n(r),o===void 0&&(o=r),o===E2&&(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(Uo(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]},Fm(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Fm(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Fm(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){ln(t)||rn(8),ti(t)&&(t=zr(t));const r=$w(this),n=Jv(r,t,void 0);return n[ar].isManual_=!0,Xv(r),n}finishDraft(t,r){const n=t&&t[ar];(!n||!n.isManual_)&&rn(9);const{scope_:i}=n;return Rw(i,r),Lw(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 ti(t)?i(t,r):this.produce(t,o=>i(o,r))}};function Jv(e,t,r,n){const[i,o]=Kf(t)?Ka(Fd).proxyMap_(t,r):Vf(t)?Ka(Fd).proxySet_(t,r):mL(t,r);return((r==null?void 0:r.scope_)??O2()).drafts_.push(i),o.callbacks_=(r==null?void 0:r.callbacks_)??[],o.key_=n,r&&n!==void 0?hL(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 ti(e)||rn(10,e),I2(e)}function I2(e){if(!ln(e)||qf(e))return e;const t=e[ar];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 Wf(r,(i,o)=>{zd(r,i,I2(o))},n),t&&(t.finalized_=!1),r}var gL=new yL,M2=gL.produce;function T2(e){return({dispatch:r,getState:n})=>i=>o=>typeof o=="function"?o(r,n,e):i(o)}var xL=T2(),bL=T2,wL=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Rd:Rd.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=>k2(n)&&n.type===e,r}var D2=class zs extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,zs.prototype)}static get[Symbol.species](){return zs}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new zs(...t[0].concat(this)):new zs(...t.concat(this))}};function Fw(e){return ln(e)?M2(e,()=>{}):e}function ld(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function SL(e){return typeof e=="boolean"}var kL=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let s=new D2;return r&&(SL(r)?s.push(xL):s.push(bL(r.extraArgument))),s},R2="RTK_autoBatch",rt=()=>e=>({payload:e,meta:{[R2]:!0}}),Bw=e=>t=>{setTimeout(t,e)},EL=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(s),r())},o=e(i),s=setTimeout(i,t)},$2=(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?EL(window.requestAnimationFrame,100):Bw(10):e.type==="callback"?e.queueNotification:Bw(e.timeout),f=()=>{s=!1,o&&(o=!1,u.forEach(h=>h()))};return Object.assign({},n,{subscribe(h){const m=()=>i&&h(),y=n.subscribe(m);return u.add(h),()=>{y(),u.delete(h)}},dispatch(h){var m;try{return i=!((m=h==null?void 0:h.meta)!=null&&m[R2]),o=!i,o&&(s||(s=!0,d(f))),n.dispatch(h)}finally{i=!0}}})},PL=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new D2(e);return n&&i.push($2(typeof n=="object"?n:void 0)),i};function AL(e){const t=kL(),{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=S2(r);else throw new Error(Or(1));let d;typeof n=="function"?d=n(t):d=t();let f=Rd;i&&(f=wL({trace:!1,...typeof i=="object"&&i}));const h=iL(...d),m=PL(h);let y=typeof s=="function"?s(m):m();const b=f(...y);return w2(u,o,b)}function L2(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 OL(e){return typeof e=="function"}function CL(e,t){let[r,n,i]=L2(t),o;if(OL(e))o=()=>Fw(e());else{const u=Fw(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(ti(h)){const b=m(h,d);return b===void 0?h:b}else{if(ln(h))return M2(h,y=>m(y,d));{const y=m(h,d);if(y===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return y}}return h},u)}return s.getInitialState=o,s}var jL="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",_L=(e=21)=>{let t="",r=e;for(;r--;)t+=jL[Math.random()*64|0];return t},NL=Symbol.for("rtk-slice-createasyncthunk");function IL(e,t){return`${e}/${t}`}function ML({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[NL];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(DL()):i.reducers)||{},d=Object.keys(u),f={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(O,N){const C=typeof O=="string"?O:O.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(O,N){return f.sliceMatchers.push({matcher:O,reducer:N}),h},exposeAction(O,N){return f.actionCreators[O]=N,h},exposeCaseReducer(O,N){return f.sliceCaseReducersByName[O]=N,h}};d.forEach(O=>{const N=u[O],C={reducerName:O,type:IL(o,O),createNotation:typeof i.reducers=="function"};$L(N)?zL(C,N,h,t):RL(C,N,h)});function m(){const[O={},N=[],C=void 0]=typeof i.extraReducers=="function"?L2(i.extraReducers):[i.extraReducers],R={...O,...f.sliceCaseReducersByType};return CL(i.initialState,z=>{for(let F in R)z.addCase(F,R[F]);for(let F of f.sliceMatchers)z.addMatcher(F.matcher,F.reducer);for(let F of N)z.addMatcher(F.matcher,F.reducer);C&&z.addDefaultCase(C)})}const y=O=>O,b=new Map,E=new WeakMap;let S;function k(O,N){return S||(S=m()),S(O,N)}function P(){return S||(S=m()),S.getInitialState()}function j(O,N=!1){function C(z){let F=z[O];return typeof F>"u"&&N&&(F=ld(E,C,P)),F}function R(z=y){const F=ld(b,N,()=>new WeakMap);return ld(F,z,()=>{const V={};for(const[Q,B]of Object.entries(i.selectors??{}))V[Q]=TL(B,z,()=>ld(E,z,P),N);return V})}return{reducerPath:O,getSelectors:R,get selectors(){return R(C)},selectSlice:C}}const _={name:o,reducer:k,actions:f.actionCreators,caseReducers:f.sliceCaseReducersByName,getInitialState:P,...j(s),injectInto(O,{reducerPath:N,...C}={}){const R=N??s;return O.inject({reducerPath:R,reducer:k},C),{..._,...j(R,!0)}}};return _}}function TL(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 Jt=ML();function DL(){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 RL({type:e,reducerName:t,createNotation:r},n,i){let o,s;if("reducer"in n){if(r&&!LL(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 $L(e){return e._reducerDefinitionType==="asyncThunk"}function LL(e){return e._reducerDefinitionType==="reducerWithPrepare"}function zL({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||sd,pending:u||sd,rejected:d||sd,settled:f||sd})}function sd(){}var FL="task",z2="listener",F2="completed",ug="cancelled",BL=`task-${ug}`,UL=`task-${F2}`,ey=`${z2}-${ug}`,WL=`${z2}-${F2}`,Yf=class{constructor(e){ws(this,"code");ws(this,"name","TaskAbortError");ws(this,"message");this.code=e,this.message=`${FL} ${ug} (reason: ${e})`}},cg=(e,t)=>{if(typeof e!="function")throw new TypeError(Or(32))},Wd=()=>{},B2=(e,t=Wd)=>(e.catch(t),e),U2=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),za=e=>{if(e.aborted)throw new Yf(e.reason)};function W2(e,t){let r=Wd;return new Promise((n,i)=>{const o=()=>i(new Yf(e.reason));if(e.aborted){o();return}r=U2(e,o),t.finally(()=>r()).then(n,i)}).finally(()=>{r=Wd})}var HL=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Yf?"cancelled":"rejected",error:r}}finally{t==null||t()}},Hd=e=>t=>B2(W2(e,t).then(r=>(za(e),r))),H2=e=>{const t=Hd(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Qo}=Object,Uw={},Qf="listenerMiddleware",KL=(e,t)=>{const r=n=>U2(e,()=>n.abort(e.reason));return(n,i)=>{cg(n);const o=new AbortController;r(o);const s=HL(async()=>{za(e),za(o.signal);const u=await n({pause:Hd(o.signal),delay:H2(o.signal),signal:o.signal});return za(o.signal),u},()=>o.abort(UL));return i!=null&&i.autoJoin&&t.push(s.catch(Wd)),{result:Hd(e)(s),cancel(){o.abort(BL)}}}},VL=(e,t)=>{const r=async(n,i)=>{za(t);let o=()=>{};const u=[new Promise((d,f)=>{let h=e({predicate:n,effect:(m,y)=>{y.unsubscribe(),d([m,y.getState(),y.getOriginalState()])}});o=()=>{h(),f()}})];i!=null&&u.push(new Promise(d=>setTimeout(d,i,null)));try{const d=await W2(t,Promise.race(u));return za(t),d}finally{o()}};return((n,i)=>B2(r(n,i)))},K2=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}},V2=Qo(e=>{const{type:t,predicate:r,effect:n}=K2(e);return{id:_L(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Or(22))}}},{withTypes:()=>V2}),Ww=(e,t)=>{const{type:r,effect:n,predicate:i}=K2(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)})},qL=(e,t)=>()=>{for(const r of t.keys())ty(r);e.clear()},Hw=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},q2=Qo(Cr(`${Qf}/add`),{withTypes:()=>q2}),GL=Cr(`${Qf}/removeAll`),G2=Qo(Cr(`${Qf}/remove`),{withTypes:()=>G2}),YL=(...e)=>{console.error(`${Qf}/error`,...e)},Eu=(e={})=>{const t=new Map,r=new Map,n=b=>{const E=r.get(b)??0;r.set(b,E+1)},i=b=>{const E=r.get(b)??1;E===1?r.delete(b):r.set(b,E-1)},{extra:o,onError:s=YL}=e;cg(s);const u=b=>(b.unsubscribe=()=>t.delete(b.id),t.set(b.id,b),E=>{b.unsubscribe(),E!=null&&E.cancelActive&&ty(b)}),d=(b=>{const E=Ww(t,b)??V2(b);return u(E)});Qo(d,{withTypes:()=>d});const f=b=>{const E=Ww(t,b);return E&&(E.unsubscribe(),b.cancelActive&&ty(E)),!!E};Qo(f,{withTypes:()=>f});const h=async(b,E,S,k)=>{const P=new AbortController,j=VL(d,P.signal),_=[];try{b.pending.add(P),n(b),await Promise.resolve(b.effect(E,Qo({},S,{getOriginalState:k,condition:(O,N)=>j(O,N).then(Boolean),take:j,delay:H2(P.signal),pause:Hd(P.signal),extra:o,signal:P.signal,fork:KL(P.signal,_),unsubscribe:b.unsubscribe,subscribe:()=>{t.set(b.id,b)},cancelActiveListeners:()=>{b.pending.forEach((O,N,C)=>{O!==P&&(O.abort(ey),C.delete(O))})},cancel:()=>{P.abort(ey),b.pending.delete(P)},throwIfCancelled:()=>{za(P.signal)}})))}catch(O){O instanceof Yf||Hw(s,O,{raisedBy:"effect"})}finally{await Promise.all(_),P.abort(WL),i(b),b.pending.delete(P)}},m=qL(t,r);return{middleware:b=>E=>S=>{if(!k2(S))return E(S);if(q2.match(S))return d(S.payload);if(GL.match(S)){m();return}if(G2.match(S))return f(S.payload);let k=b.getState();const P=()=>{if(k===Uw)throw new Error(Or(23));return k};let j;try{if(j=E(S),t.size>0){const _=b.getState(),O=Array.from(t.values());for(const N of O){let C=!1;try{C=N.predicate(S,_,k)}catch(R){C=!1,Hw(s,R,{raisedBy:"predicate"})}C&&h(N,S,b,P)}}}finally{k=Uw}return j},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 QL={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},Y2=Jt({name:"chartLayout",initialState:QL,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}}}),Xf=Y2.actions,XL=Xf.setMargin,ZL=Xf.setLayout,JL=Xf.setChartSize,e4=Xf.setScale,t4=Y2.reducer;function Q2(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 jn(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Kw(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 Wo(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 Wo(Wo({},e),{},{[o]:e[o]+(n||0)});if((u==="horizontal"||u==="vertical"&&o==="center")&&s!=="middle"&&be(e[s]))return Wo(Wo({},e),{},{[s]:e[s]+(i||0)})}return e},Mn=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",X2=(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},Z2=(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,y=e.niceTicks,b=e.axisType;if(!s)return null;var E=u==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,S=i==="category"&&s.bandwidth?s.bandwidth()/E:0;if(S=b==="angleAxis"&&o&&o.length>=2?Lr(o[0]-o[1])*2*S:S,m||y){var k=(m||y||[]).map((P,j)=>{var _=n?n.indexOf(P):P,O=s.map(_);return Fe(O)?{coordinate:O+S,value:P,offset:S,index:j}:null}).filter(vr);return k}return d&&f?f.map((P,j)=>{var _=s.map(P);return Fe(_)?{coordinate:_+S,value:P,index:j,offset:S}:null}).filter(vr):s.ticks&&h!=null?s.ticks(h).map((P,j)=>{var _=s.map(P);return Fe(_)?{coordinate:_+S,value:P,index:j,offset:S}:null}).filter(vr):s.domain().map((P,j)=>{var _=s.map(P);return Fe(_)?{coordinate:_+S,value:n?n[P]:P,index:j,offset:S}:null}).filter(vr)},o4=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+=y,f[1]=o):(f[0]=s,s+=y,f[1]=s)}}}},l4=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)}}}},s4={sign:o4,expand:E5,none:Wa,silhouette:P5,wiggle:A5,positive:l4},u4=(e,t,r)=>{var n,i=(n=s4[r])!==null&&n!==void 0?n:Wa,o=k5().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 c4(e){return e==null?void 0:String(e)}function Vw(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=i2(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 d4=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},f4=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],h4=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return f4(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=Q2(f,t,r),m=d4(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]))},qw=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Gw=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Kd=(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=Bf(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},m4=(e,t)=>t==="centric"?e.angle:e.radius,ai=e=>e.layout.width,oi=e=>e.layout.height,v4=e=>e.layout.scale,eO=e=>e.layout.margin,Zf=H(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Jf=H(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),y4="data-recharts-item-index",g4="data-recharts-item-id",Pu=60;function Qw(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 ud(e){for(var t=1;te.brush.height;function k4(e){var t=Jf(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Pu;return r+i}return r},0)}function E4(e){var t=Jf(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Pu;return r+i}return r},0)}function P4(e){var t=Zf(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function A4(e){var t=Zf(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Ht=H([ai,oi,eO,S4,k4,E4,P4,A4,b2,q$],(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},y=ud(ud({},m),h),b=y.bottom;y.bottom+=n,y=a4(y,d,f);var E=e-y.left-y.right,S=t-y.top-y.bottom;return ud(ud({brushBottom:b},y),{},{width:Math.max(E,0),height:Math.max(S,0)})}),O4=H(Ht,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),tO=H(ai,oi,(e,t)=>({x:0,y:0,width:e,height:t})),C4=g.createContext(null),gr=()=>g.useContext(C4)!=null,eh=e=>e.brush,th=H([eh,Ht,eO],(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 j4(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(),b()};let h=null;const m=()=>{h!=null&&clearTimeout(h),h=setTimeout(()=>{h=null,f()},t)},y=()=>{h!==null&&(clearTimeout(h),h=null)},b=()=>{y(),i=void 0,o=null},E=()=>{d()},S=function(...k){if(r!=null&&r.aborted)return;i=this,o=k;const P=h==null;m(),s&&P&&d()};return S.schedule=m,S.cancel=b,S.flush=E,r==null||r.addEventListener("abort",b,{once:!0}),S}function _4(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=j4(function(...y){u=e.apply(this,y),d=null},t,{edges:s}),h=function(...y){return o!=null&&(d===null&&(d=Date.now()),Date.now()-d>=o)?(u=e.apply(this,y),d=Date.now(),f.cancel(),f.schedule(),u):(f.apply(this,y),u)},m=()=>(f.flush(),u);return h.cancel=f.cancel,h.flush=m,h}function N4(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return _4(e,t,{leading:n,maxWait:t,trailing:i})}var Vd=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}},rO=(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}},I4={width:0,height:0,overflow:"visible"},M4={width:0,overflowX:"visible"},T4={height:0,overflowY:"visible"},D4={},R4=e=>{var t=e.width,r=e.height,n=Ha(t),i=Ha(r);return n&&i?I4:n?M4:i?T4:D4};function $4(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 L4=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function qd(){return qd=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 Y4(i)?g.createElement(nO.Provider,{value:i},t):null}var dg=()=>g.useContext(nO),Q4=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,y=e.debounce,b=y===void 0?kn.debounce:y,E=e.id,S=e.className,k=e.onResize,P=e.style,j=P===void 0?{}:P,_=q4(e,L4),O=g.useRef(null),N=g.useRef();N.current=k,g.useImperativeHandle(t,()=>O.current);var C=g.useState({containerWidth:i.width,containerHeight:i.height}),R=U4(C,2),z=R[0],F=R[1],V=g.useCallback((fe,de)=>{F(Y=>{var ae=Math.round(fe),X=Math.round(de);return Y.containerWidth===ae&&Y.containerHeight===X?Y:{containerWidth:ae,containerHeight:X}})},[]);g.useEffect(()=>{if(O.current==null||typeof ResizeObserver>"u")return Pl;var fe=M=>{var T,Z=M[0];if(Z!=null){var se=Z.contentRect,te=se.width,ce=se.height;V(te,ce),(T=N.current)===null||T===void 0||T.call(N,te,ce)}};b>0&&(fe=N4(fe,b,{trailing:!0,leading:!1}));var de=new ResizeObserver(fe),Y=O.current.getBoundingClientRect(),ae=Y.width,X=Y.height;return V(ae,X),de.observe(O.current),()=>{de.disconnect()}},[V,b]);var Q=z.containerWidth,B=z.containerHeight;Vd(!r||r>0,"The aspect(%s) must be greater than zero.",r);var ue=rO(Q,B,{width:o,height:s,aspect:r,maxHeight:h}),G=ue.calculatedWidth,le=ue.calculatedHeight;return Vd(Q<0||B<0||G!=null&&G>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.`,G,le,o,s,d,f,r),g.createElement("div",qd({id:E?"".concat(E):void 0,className:Qe("recharts-responsive-container",S),style:Zw(Zw({},j),{},{width:o,height:s,minWidth:d,minHeight:f,maxHeight:h}),ref:O},_),g.createElement("div",{style:R4({width:o,height:s})},g.createElement(iO,{width:G,height:le},m)))}),X4=g.forwardRef((e,t)=>{var r=dg();if(jn(r.width)&&jn(r.height))return e.children;var n=$4({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,o=n.height,s=rO(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(iO,{width:u,height:d},e.children):g.createElement(Q4,qd({},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 rh=()=>{var e,t=gr(),r=Ee(O4),n=Ee(th),i=(e=Ee(eh))===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}},Z4={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},aO=()=>{var e;return(e=Ee(Ht))!==null&&e!==void 0?e:Z4},oO=()=>Ee(ai),lO=()=>Ee(oi),ot=e=>e.layout.layoutType,Al=()=>Ee(ot),hg=()=>{var e=Al();if(e==="horizontal"||e==="vertical")return e},sO=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},J4=()=>{var e=Al();return e!==void 0},Au=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&&jn(s)&&jn(u)&&t(JL({width:s,height:u}))},[t,r,s,u]),null},uO=Symbol.for("immer-nothing"),eS=Symbol.for("immer-draftable"),jr=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 ml(e){return!!e&&!!e[jr]}function Va(e){var t;return e?cO(e)||Array.isArray(e)||!!e[eS]||!!((t=e.constructor)!=null&&t[eS])||Ou(e)||ih(e):!1}var ez=Object.prototype.constructor.toString(),tS=new WeakMap;function cO(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=tS.get(r);return n===void 0&&(n=Function.toString.call(r),tS.set(r,n)),n===ez}function Gd(e,t,r=!0){nh(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 nh(e){const t=e[jr];return t?t.type_:Array.isArray(e)?1:Ou(e)?2:ih(e)?3:0}function ry(e,t){return nh(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function dO(e,t,r){const n=nh(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function tz(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Ou(e){return e instanceof Map}function ih(e){return e instanceof Set}function wa(e){return e.copy_||e.base_}function ny(e,t){if(Ou(e))return new Map(e);if(ih(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=cO(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[jr];let i=Reflect.ownKeys(n);for(let o=0;o1&&Object.defineProperties(e,{set:cd,add:cd,clear:cd,delete:cd}),Object.freeze(e),t&&Object.values(e).forEach(r=>pg(r,!0))),e}function rz(){nn(2)}var cd={value:rz};function ah(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var nz={};function qa(e){const t=nz[e];return t||nn(0,e),t}var ru;function fO(){return ru}function iz(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function rS(e,t){t&&(qa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function iy(e){ay(e),e.drafts_.forEach(az),e.drafts_=null}function ay(e){e===ru&&(ru=e.parent_)}function nS(e){return ru=iz(ru,e)}function az(e){const t=e[jr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function iS(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[jr].modified_&&(iy(t),nn(4)),Va(e)&&(e=Yd(t,e),t.parent_||Qd(t,e)),t.patches_&&qa("Patches").generateReplacementPatches_(r[jr].base_,e,t.patches_,t.inversePatches_)):e=Yd(t,r,[]),iy(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==uO?e:void 0}function Yd(e,t,r){if(ah(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[jr];if(!i)return Gd(t,(o,s)=>aS(e,i,t,o,s,r),n),t;if(i.scope_!==e)return t;if(!i.modified_)return Qd(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),Gd(s,(d,f)=>aS(e,i,o,d,f,r,u),n),Qd(e,o,!1),r&&e.patches_&&qa("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function aS(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;const u=ah(i);if(!(u&&!s)){if(ml(i)){const d=o&&t&&t.type_!==3&&!ry(t.assigned_,n)?o.concat(n):void 0,f=Yd(e,i,d);if(dO(r,n,f),ml(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;Yd(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Ou(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&Qd(e,i)}}}function Qd(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&pg(t,r)}function oz(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:fO(),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===jr)return e;const r=wa(e);if(!ry(r,t))return lz(e,r,t);const n=r[t];return e.finalized_||!Va(n)?n:n===Um(e.base_,t)?(Wm(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=hO(wa(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Um(wa(e),t),o=i==null?void 0:i[jr];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(tz(r,i)&&(r!==void 0||ry(e.base_,t)))return!0;Wm(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 Um(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Wm(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={};Gd(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 Um(e,t){const r=e[jr];return(r?wa(r):e)[t]}function lz(e,t,r){var i;const n=hO(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function hO(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 Wm(e){e.copy_||(e.copy_=ny(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var sz=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=nS(this),s=ly(t,void 0);let u=!0;try{i=r(s),u=!1}finally{u?iy(o):ay(o)}return rS(o,n),iS(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===uO&&(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),ml(e)&&(e=uz(e));const t=nS(this),r=ly(e,void 0);return r[jr].isManual_=!0,ay(t),r}finishDraft(e,t){const r=e&&e[jr];(!r||!r.isManual_)&&nn(9);const{scope_:n}=r;return rS(n,t),iS(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 ml(e)?n(e,t):this.produce(e,i=>n(i,t))}};function ly(e,t){const r=Ou(e)?qa("MapSet").proxyMap_(e,t):ih(e)?qa("MapSet").proxySet_(e,t):oz(e,t);return(t?t.scope_:fO()).drafts_.push(r),r}function uz(e){return ml(e)||nn(10,e),pO(e)}function pO(e){if(!Va(e)||ah(e))return e;const t=e[jr];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 Gd(r,(i,o)=>{dO(r,i,pO(o))},n),t&&(t.finalized_=!1),r}var cz=new sz;cz.produce;var dz={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},mO=Jt({name:"legend",initialState:dz,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:rt()},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:rt()},removeLegendPayload:{reducer(e,t){var r=zr(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:rt()}}}),Cu=mO.actions;Cu.setLegendSize;Cu.setLegendSettings;var fz=Cu.addLegendPayload,hz=Cu.replaceLegendPayload,pz=Cu.removeLegendPayload,mz=mO.reducer,Hm={exports:{}},Km={};/** + * @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 oS;function vz(){if(oS)return Km;oS=1;var e=kl();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 Km.useSyncExternalStoreWithSelector=function(d,f,h,m,y){var b=i(null);if(b.current===null){var E={hasValue:!1,value:null};b.current=E}else E=b.current;b=s(function(){function k(N){if(!P){if(P=!0,j=N,N=m(N),y!==void 0&&E.hasValue){var C=E.value;if(y(C,N))return _=C}return _=N}if(C=_,r(j,N))return C;var R=m(N);return y!==void 0&&y(C,R)?(j=N,C):(j=N,_=R)}var P=!1,j,_,O=h===void 0?null:h;return[function(){return k(f())},O===null?void 0:function(){return k(O())}]},[f,h,m,y]);var S=n(d,b[0],b[1]);return o(function(){E.hasValue=!0,E.value=S},[S]),u(S),S},Km}var lS;function yz(){return lS||(lS=1,Hm.exports=vz()),Hm.exports}yz();function gz(e){e()}function xz(){let e=null,t=null;return{clear(){e=null,t=null},notify(){gz(()=>{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 sS={notify(){},get:()=>[]};function bz(e,t){let r,n=sS,i=0,o=!1;function s(S){h();const k=n.subscribe(S);let P=!1;return()=>{P||(P=!0,k(),m())}}function u(){n.notify()}function d(){E.onStateChange&&E.onStateChange()}function f(){return o}function h(){i++,r||(r=e.subscribe(d),n=xz())}function m(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=sS)}function y(){o||(o=!0,h())}function b(){o&&(o=!1,m())}const E={addNestedSub:s,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:f,trySubscribe:y,tryUnsubscribe:b,getListeners:()=>n};return E}var wz=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Sz=wz(),kz=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Ez=kz(),Pz=()=>Sz||Ez?g.useLayoutEffect:g.useEffect,Az=Pz();function uS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Oz(e,t){if(uS(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=bz(i);return{store:i,subscription:d,getServerState:n?()=>n:void 0}},[i,n]),s=g.useMemo(()=>i.getState(),[i]);Az(()=>{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||jz;return g.createElement(u.Provider,{value:o},t)}var Nz=_z,Iz=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Mz(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function oh(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Iz.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Oz(e[n],t[n]))return!1}else if(!Mz(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?Mo.separator:t,n=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?Mo.labelStyle:o,u=e.payload,d=e.formatter,f=e.itemSorter,h=e.wrapperClassName,m=e.labelClassName,y=e.label,b=e.labelFormatter,E=e.accessibilityLayer,S=E===void 0?Mo.accessibilityLayer:E,k=()=>{if(u&&u.length){var z={padding:0,margin:0},F=Wz(u,f),V=F.map((Q,B)=>{if(!Q||Q.type==="none")return null;var ue=Q.formatter||d||Uz,G=Q.value,le=Q.name,fe=G,de=le;if(ue){var Y=ue(G,le,Q,B,u);if(Array.isArray(Y)){var ae=$z(Y,2);fe=ae[0],de=ae[1]}else if(Y!=null)fe=Y;else return null}var X=Cs(Cs({},Mo.itemStyle),{},{color:Q.color||Mo.itemStyle.color},i);return g.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(B),style:X},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"},Q.unit||""))});return g.createElement("ul",{className:"recharts-tooltip-item-list",style:z},V)}return null},P=Cs(Cs({},Mo.contentStyle),n),j=Cs({margin:0},s),_=!Ut(y),O=_?y:"",N=Qe("recharts-default-tooltip",h),C=Qe("recharts-tooltip-label",m);_&&b&&u!==void 0&&u!==null&&(O=b(y,u));var R=S?{role:"status","aria-live":"assertive"}:{};return g.createElement("div",sy({className:N,style:P},R),g.createElement("p",{className:C,style:j},g.isValidElement(O)?O:"".concat(O)),k())},js="recharts-tooltip-wrapper",Kz={visibility:"hidden"};function Vz(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Qe(js,{["".concat(js,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(js,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(js,"-top")]:be(n)&&t&&be(t.y)&&n0?i:0),m=r[n]+i;if(t[n])return s[n]?h:m;var y=d[n];if(y==null)return 0;if(s[n]){var b=h,E=y;return bk?Math.max(h,y):Math.max(m,y)}function qz(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 Gz(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,y;return u.height>0&&u.width>0&&r?(m=fS({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:o,reverseDirection:s,tooltipDimension:u.width,viewBox:f,viewBoxDimension:f.width}),y=fS({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:s,tooltipDimension:u.height,viewBox:f,viewBoxDimension:f.height}),h=qz({translateX:m,translateY:y,useTranslate3d:d})):h=Kz,{cssProperties:h,cssClasses:Vz({translateX:m,translateY:y,coordinate:r})}}var Yz=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),ju={isSsr:Yz()};function Qz(e,t){return eF(e)||Jz(e,t)||Zz(e,t)||Xz()}function Xz(){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 Zz(e,t){if(e){if(typeof e=="string")return hS(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)?hS(e,t):void 0}}function hS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rju.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Qz(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 pS(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 To(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=iF(d,2),h=f[0],m=f[1];g.useEffect(()=>{var P=j=>{if(j.key==="Escape"){var _,O,N,C;m({dismissed:!0,dismissedAtCoordinate:{x:(_=(O=e.coordinate)===null||O===void 0?void 0:O.x)!==null&&_!==void 0?_: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(To(To({},h),{},{dismissed:!1}));var y=Gz({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}),b=y.cssClasses,E=y.cssProperties,S=e.hasPortalFromProps?{}:To(To({transition:uF({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},E),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),k=To(To({},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:b,style:k,ref:e.innerRef},e.children)}var dF=g.memo(cF),yO=()=>{var e;return(e=Ee(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),xS=e=>e.base!=null&&Xd(e.base)&&Xd(e),_s=e=>e.x,Ns=e=>e.y,mF=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(tg(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=gS["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return gS[r]||zf},bS={connectNulls:!1,type:"linear"},vF=e=>{var t=e.type,r=t===void 0?bS.type:t,n=e.points,i=n===void 0?[]:n,o=e.baseLine,s=e.layout,u=e.connectNulls,d=u===void 0?bS.connectNulls:u,f=mF(r,s),h=d?i.filter(Xd):i;if(Array.isArray(o)){var m,y=i.map((P,j)=>yS(yS({},P),{},{base:o[j]}));s==="vertical"?m=nd().y(Ns).x1(_s).x0(P=>P.base.x):m=nd().x(_s).y1(Ns).y0(P=>P.base.y);var b=m.defined(xS).curve(f),E=d?y.filter(xS):y;return b(E)}var S;s==="vertical"&&be(o)?S=nd().y(Ns).x1(_s).x0(o):be(o)?S=nd().x(_s).y1(Ns).y0(o):S=VA().x(_s).y(Ns);var k=S.defined(Xd).curve(f);return k(h)},Od=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,o=Al();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?vF(s):n;return g.createElement("path",uy({},on(e),rg(e),{className:Qe("recharts-curve",t),d:u===null?void 0:u,ref:i}))},yF=["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),PF=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,y=m===void 0?0:m,b=e.className,E=SF(e,yF),S=gF({x:r,y:i,top:s,left:d,width:h,height:y},E);return!be(r)||!be(i)||!be(h)||!be(y)||!be(s)||!be(d)?null:g.createElement("path",cy({},Br(S),{className:Qe("recharts-cross",b),d:EF(r,i,h,y,s,d)}))};function AF(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 Zd=1e-4,gO=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],xO=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),SS=(e,t)=>r=>{var n=gO(e,t);return xO(n,r)},OF=(e,t)=>r=>{var n=gO(e,t),i=[...n.map((o,s)=>o*s).slice(1),0];return xO(i,r)},CF=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]]},jF=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=SS(e,r),o=SS(t,n),s=OF(e,r),u=f=>f>1?1:f<0?0:f,d=f=>{for(var h=f>1?1:f,m=h,y=0;y<8;++y){var b=i(m)-h,E=s(m);if(Math.abs(b-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,y=1e4,b=0;b{var j,_,O;if(P<=0)return 0;if(P>=1)return d;var N=P*k,C=Math.floor(N),R=N-C;return((j=f[C])!==null&&j!==void 0?j:0)+(((_=f[C+1])!==null&&_!==void 0?_:0)-((O=f[C])!==null&&O!==void 0?O:0))*R}},IF=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return kS(e);case"spring":return NF();default:if(e.split("(")[0]==="cubic-bezier")return kS(e)}return typeof e=="function"?e:null},MF=(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()}},bO=g.createContext(MF);bO.Provider;function TF(e){var t=g.useContext(bO);return g.useMemo(()=>e??t,[e,t])}function DF(e,t,r){return(t=RF(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function RF(e){var t=$F(e,"string");return typeof t=="symbol"?t:t+""}function $F(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 ES="init",PS="pending",AS="active",LF="completed";function Gm(e){return Math.max(0,e)}class zF{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;DF(this,"state",ES),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Gm(t.animationDuration),this.animationBegin=Gm(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()===ES)return this.state=PS,this.beginStartedTime=t,this.animationBegin;if(this.getState()===PS){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=AS,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Gm(this.animationBegin-r)}if(this.getState()===AS){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=LF}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class FF extends zF{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Yn(this.getFrom(),this.getTo(),this.getProgress()))}}class BF{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 UF(e,t){return VF(e)||KF(e,t)||HF(e,t)||WF()}function WF(){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 HF(e,t){if(e){if(typeof e=="string")return OS(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)?OS(e,t):void 0}}function OS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},CS=0,Ym=1;function wO(e){var t=Hr(e,qF),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=vO(),y=n==="auto"?!ju.isSsr&&!m:n,b=TF(t.animationController),E=g.useState(y?CS:Ym),S=UF(E,2),k=S[0],P=S[1];return g.useEffect(()=>{y||P(Ym)},[y]),g.useEffect(()=>{var j=IF(s);if(!y||!i||j==null)return Pl;var _=new BF,O=new FF({animationId:r,easing:j,animationDuration:o,animationBegin:u,onAnimationStart:f,onAnimationEnd:d,from:CS,to:Ym});return b(_,O,P)},[b,r,y,i,o,s,u,f,d]),h(Number(k))}function SO(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 GF=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),YF=(e,t,r)=>e.map(n=>"".concat(GF(n)," ").concat(t,"ms ").concat(r)).join(","),QF=["radius"],XF=["radius"],jS,_S,NS,IS,MS,TS,DS,RS,$S,LS;function zS(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 FS(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 y=[0,0,0,0],b=0,E=4;bu?u:k}m=Lt(jS||(jS=vn(["M",",",""])),e,t+d*y[0]),y[0]>0&&(m+=Lt(_S||(_S=vn(["A ",",",",0,0,",",",",",""])),y[0],y[0],h,e+f*y[0],t)),m+=Lt(NS||(NS=vn(["L ",",",""])),e+r-f*y[1],t),y[1]>0&&(m+=Lt(IS||(IS=vn(["A ",",",",0,0,",`, + `,",",""])),y[1],y[1],h,e+r,t+d*y[1])),m+=Lt(MS||(MS=vn(["L ",",",""])),e+r,t+n-d*y[2]),y[2]>0&&(m+=Lt(TS||(TS=vn(["A ",",",",0,0,",`, + `,",",""])),y[2],y[2],h,e+r-f*y[2],t+n)),m+=Lt(DS||(DS=vn(["L ",",",""])),e+f*y[3],t+n),y[3]>0&&(m+=Lt(RS||(RS=vn(["A ",",",",0,0,",`, + `,",",""])),y[3],y[3],h,e,t+n-d*y[3])),m+="Z"}else if(u>0&&i===+i&&i>0){var P=Math.min(u,i);m=Lt($S||($S=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(LS||(LS=vn(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return m},HS={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},l6=e=>{var t=Hr(e,HS),r=g.useRef(null),n=g.useState(-1),i=r6(n,2),o=i[0],s=i[1];g.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var Y=r.current.getTotalLength();Y&&s(Y)}catch{}},[]);var u=t.x,d=t.y,f=t.width,h=t.height,m=t.radius,y=t.className,b=t.animationEasing,E=t.animationDuration,S=t.animationBegin,k=t.isAnimationActive,P=t.isUpdateAnimationActive,j=g.useRef(f),_=g.useRef(h),O=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]),R=SO(C,"rectangle-");if(u!==+u||d!==+d||f!==+f||h!==+h||f===0||h===0)return null;var z=Qe("recharts-rectangle",y);if(!P){var F=Br(t);F.radius;var V=BS(F,QF);return g.createElement("path",Jd({},V,{x:Gi(u),y:Gi(d),width:Gi(f),height:Gi(h),radius:typeof m=="number"?m:void 0,className:z,d:WS(u,d,f,h,m)}))}var Q=j.current,B=_.current,ue=O.current,G=N.current,le="0px ".concat(o===-1?1:o,"px"),fe="".concat(o,"px ").concat(o,"px"),de=YF(["strokeDasharray"],E,typeof b=="string"?b:HS.animationEasing);return g.createElement(wO,{animationId:R,key:R,canBegin:o>0,duration:E,easing:b,isActive:P,begin:S},Y=>{var ae=Yn(Q,f,Y),X=Yn(B,h,Y),M=Yn(ue,u,Y),T=Yn(G,d,Y);r.current&&(j.current=ae,_.current=X,O.current=M,N.current=T);var Z;k?Y>0?Z={transition:de,strokeDasharray:fe}:Z={strokeDasharray:le}:Z={strokeDasharray:fe};var se=Br(t);se.radius;var te=BS(se,XF);return g.createElement("path",Jd({},te,{radius:typeof m=="number"?m:void 0,className:z,d:WS(M,T,ae,X,m),ref:r,style:FS(FS({},Z),t.style)}))})};function KS(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 VS(e){for(var t=1;te*180/Math.PI,Bt=(e,t,r,n)=>({x:e+Math.cos(-ef*n)*r,y:t+Math.sin(-ef*n)*r}),f6=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},h6=(e,t)=>{var r=e.x,n=e.y,i=t.x,o=t.y;return Math.sqrt((r-i)**2+(n-o)**2)},p6=(e,t)=>{var r=e.x,n=e.y,i=t.cx,o=t.cy,s=h6({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:d6(d),angleInRadian:d}},m6=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}},v6=(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},y6=(e,t)=>{var r=e.relativeX,n=e.relativeY,i=p6({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=m6(t),h=f.startAngle,m=f.endAngle,y=s,b;if(h<=m){for(;y>m;)y-=360;for(;y=h&&y<=m}else{for(;y>h;)y-=360;for(;y=m&&y<=h}return b?VS(VS({},t),{},{radius:o,angle:v6(y,t)}):null};function kO(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 qS,GS,YS,QS,XS,ZS,JS;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},dd=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)/ef,m=d?i:i+o*h,y=Bt(t,r,f,m),b=Bt(t,r,n,m),E=d?i-o*h:i,S=Bt(t,r,f*Math.cos(h*ef),E);return{center:y,circleTangency:b,lineTangency:S,theta:h}},EO=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,o=e.startAngle,s=e.endAngle,u=g6(o,s),d=o+u,f=Bt(t,r,i,o),h=Bt(t,r,i,d),m=Lt(qS||(qS=Pa(["M ",",",` + A `,",",`,0, + `,",",`, + `,",",` + `])),f.x,f.y,i,i,+(Math.abs(u)>180),+(o>d),h.x,h.y);if(n>0){var y=Bt(t,r,n,o),b=Bt(t,r,n,d);m+=Lt(GS||(GS=Pa(["L ",",",` + A `,",",`,0, + `,",",`, + `,","," Z"])),b.x,b.y,n,n,+(Math.abs(u)>180),+(o<=d),y.x,y.y)}else m+=Lt(YS||(YS=Pa(["L ",","," Z"])),t,r);return m},x6=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=dd({cx:t,cy:r,radius:i,angle:d,sign:h,cornerRadius:o,cornerIsExternal:u}),y=m.circleTangency,b=m.lineTangency,E=m.theta,S=dd({cx:t,cy:r,radius:i,angle:f,sign:-h,cornerRadius:o,cornerIsExternal:u}),k=S.circleTangency,P=S.lineTangency,j=S.theta,_=u?Math.abs(d-f):Math.abs(d-f)-E-j;if(_<0)return s?Lt(QS||(QS=Pa(["M ",",",` + a`,",",",0,0,1,",`,0 + a`,",",",0,0,1,",`,0 + `])),b.x,b.y,o,o,o*2,o,o,-o*2):EO({cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:d,endAngle:f});var O=Lt(XS||(XS=Pa(["M ",",",` + A`,",",",0,0,",",",",",` + A`,",",",0,",",",",",",",` + A`,",",",0,0,",",",",",` + `])),b.x,b.y,o,o,+(h<0),y.x,y.y,i,i,+(_>180),+(h<0),k.x,k.y,o,o,+(h<0),P.x,P.y);if(n>0){var N=dd({cx:t,cy:r,radius:n,angle:d,sign:h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),C=N.circleTangency,R=N.lineTangency,z=N.theta,F=dd({cx:t,cy:r,radius:n,angle:f,sign:-h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),V=F.circleTangency,Q=F.lineTangency,B=F.theta,ue=u?Math.abs(d-f):Math.abs(d-f)-z-B;if(ue<0&&o===0)return"".concat(O,"L").concat(t,",").concat(r,"Z");O+=Lt(ZS||(ZS=Pa(["L",",",` + A`,",",",0,0,",",",",",` + A`,",",",0,",",",",",",",` + A`,",",",0,0,",",",",","Z"])),Q.x,Q.y,o,o,+(h<0),V.x,V.y,n,n,+(ue>180),+(h>0),C.x,C.y,o,o,+(h<0),R.x,R.y)}else O+=Lt(JS||(JS=Pa(["L",",","Z"])),t,r);return O},b6={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},w6=e=>{var t=Hr(e,b6),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=x6({cx:r,cy:n,innerRadius:i,outerRadius:o,cornerRadius:Math.min(E,b/2),forceCornerRadius:u,cornerIsExternal:d,startAngle:f,endAngle:h}):S=EO({cx:r,cy:n,innerRadius:i,outerRadius:o,startAngle:f,endAngle:h}),g.createElement("path",dy({},Br(t),{className:y,d:S}))};function S6(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(a2(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 kO(t)}}function k6(e){return x2(e)?NaN:Number(e)}function Qm(e){return e?(e=k6(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function PO(e,t,r){r&&typeof r!="number"&&Kv(e,t,r)&&(t=r=void 0),e=Qm(e),t===void 0?(t=e,e=0):t=Qm(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}}),lh=(e,t,r,n)=>n?vg(e):un(e),E6=(e,t,r)=>r?vg(e):un(e),P6=H([lh],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 A6=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 _6(e)||j6(e,t)||C6(e,t)||O6()}function O6(){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 C6(e,t){if(e){if(typeof e=="string")return ek(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)?ek(e,t):void 0}}function ek(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)*nt;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 Jn(this,new this.constructor(e))};ve.dividedToIntegerBy=ve.idiv=function(e){var t=this,r=t.constructor;return Ge(Jn(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):(at=!1,t=Jn(iu(r,o),iu(e,o),o),at=!0,Ge(t,i))};ve.minus=ve.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_O(t,e):CO(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?(at=!1,t=Jn(r,e,0,1).times(e),at=!0,r.minus(t)):Ge(new n(r),i)};ve.naturalExponential=ve.exp=function(){return jO(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?CO(t,e):_O(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*nt+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),at=!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=Cl((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(Jn(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 at=!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,y=h.d,b=(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=y.length,f=b.length,d=0;){for(t=0,i=d+n;i>n;)u=o[i]+b[n]*y[i-n-1]+t,o[i--]=u%_t|0,t=u/_t|0;o[i]=(o[i]+t)%_t|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,at?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:(_n(e,0,Ol),t===void 0?t=n.rounding:_n(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):(_n(e,0,Ol),t===void 0?t=i.rounding:_n(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):(_n(e,0,Ol),t===void 0?t=o.rounding:_n(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)<=OO){for(i=new d(Pr),t=Math.ceil(n/nt+4),at=!1;r%2&&(i=i.times(u),nk(i.d,t)),r=Cl(r/2),r!==0;)u=u.times(u),nk(u.d,t);return at=!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,at=!1,i=e.times(iu(u,n+f)),at=!0,i=jO(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)):(_n(e,1,Ol),t===void 0?t=o.rounding:_n(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):(_n(e,1,Ol),t===void 0?t=n.rounding:_n(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 CO(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)),at?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/nt),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)/_t|0,d[o]%=_t;for(r&&(d.unshift(r),++i),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=i,at?Ge(t,m):t}function _n(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,y,b,E,S,k,P,j,_,O,N,C,R,z,F=n.constructor,V=n.s==i.s?1:-1,Q=n.d,B=i.d;if(!n.s)return new F(n);if(!i.s)throw Error(Wr+"Division by zero");for(d=n.e-i.e,R=B.length,N=Q.length,b=new F(V),E=b.d=[],f=0;B[f]==(Q[f]||0);)++f;if(B[f]>(Q[f]||0)&&--d,o==null?j=o=F.precision:s?j=o+(gt(n)-gt(i))+1:j=o,j<0)return new F(0);if(j=j/nt+2|0,f=0,R==1)for(h=0,B=B[0],j++;(f1&&(B=e(B,h),Q=e(Q,h),R=B.length,N=Q.length),O=R,S=Q.slice(0,R),k=S.length;k=_t/2&&++C;do h=0,u=t(B,S,R,k),u<0?(P=S[0],R!=k&&(P=P*_t+(S[1]||0)),h=P/C|0,h>1?(h>=_t&&(h=_t-1),m=e(B,h),y=m.length,k=S.length,u=t(m,S,y,k),u==1&&(h--,r(m,R16)throw Error(gg+gt(e));if(!e.s)return new h(Pr);for(at=!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(Jn(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?(at=!0,Ge(o,m)):o}o=s}}function gt(e){for(var t=e.e*nt,r=e.d[0];r>=10;r/=10)t++;return t}function Xm(e,t,r){if(t>e.LN10.sd())throw at=!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,y=10,b=e,E=b.d,S=b.constructor,k=S.precision;if(b.s<1)throw Error(Wr+(b.s?"NaN":"-Infinity"));if(b.eq(Pr))return new S(0);if(t==null?(at=!1,f=k):f=t,b.eq(10))return t==null&&(at=!0),Xm(S,f);if(f+=y,S.precision=f,r=En(E),n=r.charAt(0),o=gt(b),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)b=b.times(e),r=En(b.d),n=r.charAt(0),m++;o=gt(b),n>1?(b=new S("0."+r),o++):b=new S(n+"."+r.slice(1))}else return d=Xm(S,f+2,k).times(o+""),b=iu(new S(n+"."+r.slice(1)),f-y).plus(d),S.precision=k,t==null?(at=!0,Ge(b,k)):b;for(u=s=b=Jn(b.minus(Pr),b.plus(Pr),f),h=Ge(b.times(b),f),i=3;;){if(s=Ge(s.times(h),f),d=u.plus(Jn(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(Xm(S,f+2,k).times(o+""))),u=Jn(u,new S(m),f),S.precision=k,t==null?(at=!0,Ge(u,k)):u;u=d,i+=2}}function rk(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=Cl(r/nt),e.d=[],n=(r+1)%nt,r<0&&(n+=nt),ntf||e.e<-tf))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+=nt,i=t,f=m[h=0];else{if(h=Math.ceil((n+1)/nt),o=m.length,h>=o)return e;for(f=o=m[h],s=1;o>=10;o/=10)s++;n%=nt,i=n-nt+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,(nt-t%nt)%nt),e.e=Cl(-t/nt)||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,nt-n),m[h]=i>0?(f/Sa(10,s-i)%Sa(10,i)|0)*o:0),d)for(;;)if(h==0){(m[0]+=o)==_t&&(m[0]=1,++e.e);break}else{if(m[h]+=o,m[h]!=_t)break;m[h--]=0,o=1}for(n=m.length;m[--n]===0;)m.pop();if(at&&(e.e>tf||e.e<-tf))throw Error(gg+gt(e));return e}function _O(e,t){var r,n,i,o,s,u,d,f,h,m,y=e.constructor,b=y.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new y(e),at?Ge(t,b):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(b/nt),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 nk(e,t){if(e.length>t)return e.length=t,!0}function NO(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 rk(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,M6.test(o))rk(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=NO,i.config=i.set=T6,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=NO(I6);Pr=new xg(1);const Ue=xg;function IO(e){var t;return e===0?t=1:t=Math.floor(new Ue(e).abs().log(10).toNumber())+1,t}function MO(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 L6(e)||$6(e,t)||R6(e,t)||D6()}function D6(){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 R6(e,t){if(e){if(typeof e=="string")return ik(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)?ik(e,t):void 0}}function ik(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=IO(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()))},DO=(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(b=>b>=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,y=new Ue(m).mul(u);return t?y:new Ue(Math.ceil(y.toNumber()))},z6=(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(IO(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?RO(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))})},ak=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=TO([n,i]),h=au(f,2),m=h[0],y=h[1];if(m===-1/0||y===1/0){var b=y===1/0?[m,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),y];return n>i?b.reverse():b}if(m===y)return z6(m,o,s);var E=u==="snap125"?DO:bg,S=RO(m,y,d,s,0,E),k=S.step,P=S.tickMin,j=S.tickMax,_=MO(P,j.add(new Ue(.1).mul(k)),k);return n>i?_.reverse():_},ok=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=TO([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 y=u==="snap125"?DO:bg,b=Math.max(r,2),E=y(new Ue(m).sub(h).div(b-1),s,0),S=[...MO(new Ue(h),new Ue(m),E),m];return s===!1&&(S=S.map(k=>Math.round(k))),i>o?S.reverse():S},F6=e=>e.rootProps.barCategoryGap,sh=e=>e.rootProps.stackOffset,$O=e=>e.rootProps.reverseStackOrder,wg=e=>e.options.chartName,Sg=e=>e.rootProps.syncId,LO=e=>e.rootProps.syncMethod,kg=e=>e.options.eventEmitter,B6=e=>e.rootProps.baseValue,nr={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"},uh=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function ch(e,t,r){if(r!=="auto")return r;if(e!=null)return Mn(e,t)?"category":"number"}function lk(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 rf(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Eg=H([K6,sO],(e,t)=>{var r;if(e!=null)return e;var n=(r=ch(t,"angleAxis",sk.type))!==null&&r!==void 0?r:"category";return rf(rf({},sk),{},{type:n})}),V6=(e,t)=>e.polarAxis.radiusAxis[t],Pg=H([V6,sO],(e,t)=>{var r;if(e!=null)return e;var n=(r=ch(t,"radiusAxis",uk.type))!==null&&r!==void 0?r:"category";return rf(rf({},uk),{},{type:n})}),dh=e=>e.polarOptions,Ag=H([ai,oi,Ht],f6),zO=H([dh,Ag],(e,t)=>{if(e!=null)return ea(e.innerRadius,t,0)}),FO=H([dh,Ag],(e,t)=>{if(e!=null)return ea(e.outerRadius,t,t*.8)}),q6=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},BO=H([dh],q6);H([Eg,BO],uh);var UO=H([Ag,zO,FO],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});H([Pg,UO],uh);var WO=H([ot,dh,zO,FO,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,fh=(e,t,r)=>r;function Og(e){return e==null?void 0:e.id}function HO(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((y,b)=>{var E=s==null||o?b:String(Nt(y,s,null)),S=Nt(y,d.dataKey,0),k;u.has(E)?k=u.get(E):k={},Object.assign(k,{[m]:S}),u.set(E,k)})}}),Array.from(u.values())}function Cg(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var hh=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function ph(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function G6(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"},jl=e=>e.tooltip.settings.axisId;function jg(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 Y6=(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 Q6(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function _g(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===Q6?e:X6,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 X6(){return 0}function KO(e){return e===null?NaN:+e}function*Z6(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const J6=_g(Xi),_u=J6.right;_g(KO).center;class ck extends Map{constructor(t,r=r8){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(dk(this,t))}has(t){return super.has(dk(this,t))}set(t,r){return super.set(e8(this,t),r)}delete(t){return super.delete(t8(this,t))}}function dk({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function e8({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function t8({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function r8(e){return e!==null&&typeof e=="object"?e.valueOf():e}function n8(e=Xi){if(e===Xi)return VO;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 VO(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const i8=Math.sqrt(50),a8=Math.sqrt(10),o8=Math.sqrt(2);function nf(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>=i8?10:o>=a8?5:o>=o8?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 hk(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 qO(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?VO:n8(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),y=.5*Math.sqrt(h*m*(d-m)/d)*(f-d/2<0?-1:1),b=Math.max(r,Math.floor(t-f*m/d+y)),E=Math.min(n,Math.floor(t+(d-f)*m/d+y));qO(e,t,b,E,i)}const o=e[t];let s=r,u=n;for(Is(e,r,t),i(e[n],o)>0&&Is(e,r,n);s0;)--u}i(e[r],o)===0?Is(e,r,u):(++u,Is(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function Is(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function l8(e,t,r){if(e=Float64Array.from(Z6(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return hk(e);if(t>=1)return fk(e);var n,i=(n-1)*t,o=Math.floor(i),s=fk(qO(e,o).subarray(0,o+1)),u=hk(e.subarray(o+1));return s+(u-s)*(i-o)}}function s8(e,t,r=KO){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 u8(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?fd(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?fd(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=f8.exec(e))?new yr(t[1],t[2],t[3],1):(t=h8.exec(e))?new yr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=p8.exec(e))?fd(t[1],t[2],t[3],t[4]):(t=m8.exec(e))?fd(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=v8.exec(e))?bk(t[1],t[2]/100,t[3]/100,1):(t=y8.exec(e))?bk(t[1],t[2]/100,t[3]/100,t[4]):pk.hasOwnProperty(e)?yk(pk[e]):e==="transparent"?new yr(NaN,NaN,NaN,0):null}function yk(e){return new yr(e>>16&255,e>>8&255,e&255,1)}function fd(e,t,r,n){return n<=0&&(e=t=r=NaN),new yr(e,t,r,n)}function b8(e){return e instanceof Nu||(e=su(e)),e?(e=e.rgb(),new yr(e.r,e.g,e.b,e.opacity)):new yr}function vy(e,t,r,n){return arguments.length===1?b8(e):new yr(e,t,r,n??1)}function yr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Mg(yr,vy,YO(Nu,{brighter(e){return e=e==null?af:Math.pow(af,e),new yr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ou:Math.pow(ou,e),new yr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yr(Ba(this.r),Ba(this.g),Ba(this.b),of(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:gk,formatHex:gk,formatHex8:w8,formatRgb:xk,toString:xk}));function gk(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function w8(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function xk(){const e=of(this.opacity);return`${e===1?"rgb(":"rgba("}${Ba(this.r)}, ${Ba(this.g)}, ${Ba(this.b)}${e===1?")":`, ${e})`}`}function of(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 bk(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 QO(e){if(e instanceof an)return new an(e.h,e.s,e.l,e.opacity);if(e instanceof Nu||(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 S8(e,t,r,n){return arguments.length===1?QO(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,S8,YO(Nu,{brighter(e){return e=e==null?af:Math.pow(af,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 yr(Zm(e>=240?e-240:e+120,i,n),Zm(e,i,n),Zm(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new an(wk(this.h),hd(this.s),hd(this.l),of(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=of(this.opacity);return`${e===1?"hsl(":"hsla("}${wk(this.h)}, ${hd(this.s)*100}%, ${hd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function wk(e){return e=(e||0)%360,e<0?e+360:e}function hd(e){return Math.max(0,Math.min(1,e||0))}function Zm(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 k8(e,t){return function(r){return e+r*t}}function E8(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 P8(e){return(e=+e)==1?XO:function(t,r){return r-t?E8(t,r,e):Tg(isNaN(t)?r:t)}}function XO(e,t){var r=t-e;return r?k8(e,r):Tg(isNaN(e)?t:e)}const Sk=(function e(t){var r=P8(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=XO(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 A8(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:lf(n,i)})),r=Jm.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function $8(e,t,r){var n=e[0],i=e[1],o=t[0],s=t[1];return i2?L8:$8,d=f=null,m}function m(y){return y==null||isNaN(y=+y)?o:(d||(d=u(e.map(n),t,r)))(n(s(y)))}return m.invert=function(y){return s(i((f||(f=u(t,e.map(n),lf)))(y)))},m.domain=function(y){return arguments.length?(e=Array.from(y,sf),h()):e.slice()},m.range=function(y){return arguments.length?(t=Array.from(y),h()):t.slice()},m.rangeRound=function(y){return t=Array.from(y),r=Dg,h()},m.clamp=function(y){return arguments.length?(s=y?!0:ir,h()):s!==ir},m.interpolate=function(y){return arguments.length?(r=y,h()):r},m.unknown=function(y){return arguments.length?(o=y,m):o},function(y,b){return n=y,i=b,h()}}function Rg(){return mh()(ir,ir)}function z8(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function uf(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 vl(e){return e=uf(Math.abs(e)),e?e[1]:NaN}function F8(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 B8(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var U8=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function uu(e){if(!(t=U8.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 W8(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 cf;function H8(e,t){var r=uf(e,t);if(!r)return cf=void 0,e.toPrecision(t);var n=r[0],i=r[1],o=i-(cf=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")+uf(e,Math.max(0,t+o-1))[0]}function Ek(e,t){var r=uf(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 Pk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:z8,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)=>Ek(e*100,t),r:Ek,s:H8,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ak(e){return e}var Ok=Array.prototype.map,Ck=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function K8(e){var t=e.grouping===void 0||e.thousands===void 0?Ak:F8(Ok.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?Ak:B8(Ok.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,y){m=uu(m);var b=m.fill,E=m.align,S=m.sign,k=m.symbol,P=m.zero,j=m.width,_=m.comma,O=m.precision,N=m.trim,C=m.type;C==="n"?(_=!0,C="g"):Pk[C]||(O===void 0&&(O=12),N=!0,C="g"),(P||b==="0"&&E==="=")&&(P=!0,b="0",E="=");var R=(y&&y.prefix!==void 0?y.prefix:"")+(k==="$"?r:k==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),z=(k==="$"?n:/[%p]/.test(C)?s:"")+(y&&y.suffix!==void 0?y.suffix:""),F=Pk[C],V=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function Q(B){var ue=R,G=z,le,fe,de;if(C==="c")G=F(B)+G,B="";else{B=+B;var Y=B<0||1/B<0;if(B=isNaN(B)?d:F(Math.abs(B),O),N&&(B=W8(B)),Y&&+B==0&&S!=="+"&&(Y=!1),ue=(Y?S==="("?S:u:S==="-"||S==="("?"":S)+ue,G=(C==="s"&&!isNaN(B)&&cf!==void 0?Ck[8+cf/3]:"")+G+(Y&&S==="("?")":""),V){for(le=-1,fe=B.length;++lede||de>57){G=(de===46?i+B.slice(le+1):B.slice(le))+G,B=B.slice(0,le);break}}}_&&!P&&(B=t(B,1/0));var ae=ue.length+B.length+G.length,X=ae>1)+ue+B+G+X.slice(ae);break;default:B=X+ue+B+G;break}return o(B)}return Q.toString=function(){return m+""},Q}function h(m,y){var b=Math.max(-8,Math.min(8,Math.floor(vl(y)/3)))*3,E=Math.pow(10,-b),S=f((m=uu(m),m.type="f",m),{suffix:Ck[8+b/3]});return function(k){return S(E*k)}}return{format:f,formatPrefix:h}}var pd,Lg,ZO;V8({thousands:",",grouping:[3],currency:["$",""]});function V8(e){return pd=K8(e),Lg=pd.format,ZO=pd.formatPrefix,pd}function q8(e){return Math.max(0,-vl(Math.abs(e)))}function G8(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(vl(t)/3)))*3-vl(Math.abs(e)))}function Y8(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,vl(t)-vl(e))+1}function JO(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=G8(i,s))&&(n.precision=o),ZO(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Y8(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=q8(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 JO(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 eC(){var e=Rg();return e.copy=function(){return Iu(e,eC())},Kr.apply(e,arguments),ta(e)}function tC(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,sf),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return tC(e).unknown(t)},e=arguments.length?Array.from(e,sf):[0,1],ta(r)}function rC(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 eB(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 Nk(e){return(t,r)=>-e(-t,r)}function zg(e){const t=e(jk,_k),r=t.domain;let n=10,i,o;function s(){return i=eB(n),o=J8(n),r()[0]<0?(i=Nk(i),o=Nk(o),e(Q8,X8)):e(jk,_k),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(;y<=b;++y)for(E=1;Eh)break;P.push(S)}}else for(;y<=b;++y)for(E=n-1;E>=1;--E)if(S=y>0?E/o(-y):E*o(y),!(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(rC(r(),{floor:u=>o(Math.floor(i(u))),ceil:u=>o(Math.ceil(i(u)))})),t}function nC(){const e=zg(mh()).domain([1,10]);return e.copy=()=>Iu(e,nC()).base(e.base()),Kr.apply(e,arguments),e}function Ik(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Mk(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Fg(e){var t=1,r=e(Ik(t),Mk(t));return r.constant=function(n){return arguments.length?e(Ik(t=+n),Mk(t)):t},ta(r)}function iC(){var e=Fg(mh());return e.copy=function(){return Iu(e,iC()).constant(e.constant())},Kr.apply(e,arguments)}function Tk(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function tB(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function rB(e){return e<0?-e*e:e*e}function Bg(e){var t=e(ir,ir),r=1;function n(){return r===1?e(ir,ir):r===.5?e(tB,rB):e(Tk(r),Tk(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},ta(t)}function Ug(){var e=Bg(mh());return e.copy=function(){return Iu(e,Ug()).exponent(e.exponent())},Kr.apply(e,arguments),e}function nB(){return Ug.apply(null,arguments).exponent(.5)}function Dk(e){return Math.sign(e)*e*e}function iB(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function aC(){var e=Rg(),t=[0,1],r=!1,n;function i(o){var s=iB(e(o));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(o){return e.invert(Dk(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,sf)).map(Dk)),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 aC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Kr.apply(i,arguments),ta(i)}function oC(){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 lC().domain([e,t]).range(i).unknown(o)},Kr.apply(ta(s),arguments)}function sC(){var e=[.5],t=[0,1],r,n=1;function i(o){return o!=null&&o<=o?t[_u(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 sC().domain(e).range(t).unknown(r)},Kr.apply(i,arguments)}const ev=new Date,tv=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)=>(ev.setTime(+o),tv.setTime(+s),e(ev),e(tv),Math.floor(r(ev,tv))),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 df=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);df.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):df);df.range;const Qn=1e3,Fr=Qn*60,Xn=Fr*60,ri=Xn*24,Wg=ri*7,Rk=ri*30,rv=ri*365,Oa=Et(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Qn)},(e,t)=>(t-e)/Qn,e=>e.getUTCSeconds());Oa.range;const Hg=Et(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Qn)},(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()*Qn-e.getMinutes()*Fr)},(e,t)=>{e.setTime(+e+t*Xn)},(e,t)=>(t-e)/Xn,e=>e.getHours());Vg.range;const qg=Et(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Xn)},(e,t)=>(t-e)/Xn,e=>e.getUTCHours());qg.range;const Mu=Et(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Fr)/ri,e=>e.getDate()-1);Mu.range;const vh=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>e.getUTCDate()-1);vh.range;const uC=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>Math.floor(e/ri));uC.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 yh=Ja(0),ff=Ja(1),aB=Ja(2),oB=Ja(3),yl=Ja(4),lB=Ja(5),sB=Ja(6);yh.range;ff.range;aB.range;oB.range;yl.range;lB.range;sB.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 gh=eo(0),hf=eo(1),uB=eo(2),cB=eo(3),gl=eo(4),dB=eo(5),fB=eo(6);gh.range;hf.range;uB.range;cB.range;gl.range;dB.range;fB.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 ni=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());ni.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)});ni.range;const ii=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());ii.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)});ii.range;function cC(e,t,r,n,i,o){const s=[[Oa,1,Qn],[Oa,5,5*Qn],[Oa,15,15*Qn],[Oa,30,30*Qn],[o,1,Fr],[o,5,5*Fr],[o,15,15*Fr],[o,30,30*Fr],[i,1,Xn],[i,3,3*Xn],[i,6,6*Xn],[i,12,12*Xn],[n,1,ri],[n,2,2*ri],[r,1,Wg],[t,1,Rk],[t,3,3*Rk],[e,1,rv]];function u(f,h,m){const y=hk).right(s,y);if(b===s.length)return e.every(py(f/rv,h/rv,m));if(b===0)return df.every(Math.max(py(f,h,m),1));const[E,S]=s[y/s[b-1][2]53)return null;"w"in ne||(ne.w=1),"Z"in ne?($e=iv(Ms(ne.y,0,1)),Pe=$e.getUTCDay(),$e=Pe>4||Pe===0?hf.ceil($e):hf($e),$e=vh.offset($e,(ne.V-1)*7),ne.y=$e.getUTCFullYear(),ne.m=$e.getUTCMonth(),ne.d=$e.getUTCDate()+(ne.w+6)%7):($e=nv(Ms(ne.y,0,1)),Pe=$e.getDay(),$e=Pe>4||Pe===0?ff.ceil($e):ff($e),$e=Mu.offset($e,(ne.V-1)*7),ne.y=$e.getFullYear(),ne.m=$e.getMonth(),ne.d=$e.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),Pe="Z"in ne?iv(Ms(ne.y,0,1)).getUTCDay():nv(Ms(ne.y,0,1)).getDay(),ne.m=0,ne.d="W"in ne?(ne.w+6)%7+ne.W*7-(Pe+5)%7:ne.w+ne.U*7-(Pe+6)%7);return"Z"in ne?(ne.H+=ne.Z/100|0,ne.M+=ne.Z%100,iv(ne)):nv(ne)}}function z(J,we,Ae,ne){for(var lt=0,$e=we.length,Pe=Ae.length,vt,lr;lt<$e;){if(ne>=Pe)return-1;if(vt=we.charCodeAt(lt++),vt===37){if(vt=we.charAt(lt++),lr=N[vt in $k?we.charAt(lt++):vt],!lr||(ne=lr(J,Ae,ne))<0)return-1}else if(vt!=Ae.charCodeAt(ne++))return-1}return ne}function F(J,we,Ae){var ne=f.exec(we.slice(Ae));return ne?(J.p=h.get(ne[0].toLowerCase()),Ae+ne[0].length):-1}function V(J,we,Ae){var ne=b.exec(we.slice(Ae));return ne?(J.w=E.get(ne[0].toLowerCase()),Ae+ne[0].length):-1}function Q(J,we,Ae){var ne=m.exec(we.slice(Ae));return ne?(J.w=y.get(ne[0].toLowerCase()),Ae+ne[0].length):-1}function B(J,we,Ae){var ne=P.exec(we.slice(Ae));return ne?(J.m=j.get(ne[0].toLowerCase()),Ae+ne[0].length):-1}function ue(J,we,Ae){var ne=S.exec(we.slice(Ae));return ne?(J.m=k.get(ne[0].toLowerCase()),Ae+ne[0].length):-1}function G(J,we,Ae){return z(J,t,we,Ae)}function le(J,we,Ae){return z(J,r,we,Ae)}function fe(J,we,Ae){return z(J,n,we,Ae)}function de(J){return s[J.getDay()]}function Y(J){return o[J.getDay()]}function ae(J){return d[J.getMonth()]}function X(J){return u[J.getMonth()]}function M(J){return i[+(J.getHours()>=12)]}function T(J){return 1+~~(J.getMonth()/3)}function Z(J){return s[J.getUTCDay()]}function se(J){return o[J.getUTCDay()]}function te(J){return d[J.getUTCMonth()]}function ce(J){return u[J.getUTCMonth()]}function ye(J){return i[+(J.getUTCHours()>=12)]}function _e(J){return 1+~~(J.getUTCMonth()/3)}return{format:function(J){var we=C(J+="",_);return we.toString=function(){return J},we},parse:function(J){var we=R(J+="",!1);return we.toString=function(){return J},we},utcFormat:function(J){var we=C(J+="",O);return we.toString=function(){return J},we},utcParse:function(J){var we=R(J+="",!0);return we.toString=function(){return J},we}}}var $k={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,gB=/^%/,xB=/[\\^$*+?|[\]().{}]/g;function Ke(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",o=i.length;return n+(o[t.toLowerCase(),r]))}function wB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function SB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function kB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function EB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function PB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Lk(e,t,r){var n=Tt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function zk(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 AB(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 OB(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 CB(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 Fk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function jB(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 Bk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function _B(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function NB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function IB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function MB(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 TB(e,t,r){var n=gB.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function DB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function RB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function Uk(e,t){return Ke(e.getDate(),t,2)}function $B(e,t){return Ke(e.getHours(),t,2)}function LB(e,t){return Ke(e.getHours()%12||12,t,2)}function zB(e,t){return Ke(1+Mu.count(ni(e),e),t,3)}function dC(e,t){return Ke(e.getMilliseconds(),t,3)}function FB(e,t){return dC(e,t)+"000"}function BB(e,t){return Ke(e.getMonth()+1,t,2)}function UB(e,t){return Ke(e.getMinutes(),t,2)}function WB(e,t){return Ke(e.getSeconds(),t,2)}function HB(e){var t=e.getDay();return t===0?7:t}function KB(e,t){return Ke(yh.count(ni(e)-1,e),t,2)}function fC(e){var t=e.getDay();return t>=4||t===0?yl(e):yl.ceil(e)}function VB(e,t){return e=fC(e),Ke(yl.count(ni(e),e)+(ni(e).getDay()===4),t,2)}function qB(e){return e.getDay()}function GB(e,t){return Ke(ff.count(ni(e)-1,e),t,2)}function YB(e,t){return Ke(e.getFullYear()%100,t,2)}function QB(e,t){return e=fC(e),Ke(e.getFullYear()%100,t,2)}function XB(e,t){return Ke(e.getFullYear()%1e4,t,4)}function ZB(e,t){var r=e.getDay();return e=r>=4||r===0?yl(e):yl.ceil(e),Ke(e.getFullYear()%1e4,t,4)}function JB(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ke(t/60|0,"0",2)+Ke(t%60,"0",2)}function Wk(e,t){return Ke(e.getUTCDate(),t,2)}function eU(e,t){return Ke(e.getUTCHours(),t,2)}function tU(e,t){return Ke(e.getUTCHours()%12||12,t,2)}function rU(e,t){return Ke(1+vh.count(ii(e),e),t,3)}function hC(e,t){return Ke(e.getUTCMilliseconds(),t,3)}function nU(e,t){return hC(e,t)+"000"}function iU(e,t){return Ke(e.getUTCMonth()+1,t,2)}function aU(e,t){return Ke(e.getUTCMinutes(),t,2)}function oU(e,t){return Ke(e.getUTCSeconds(),t,2)}function lU(e){var t=e.getUTCDay();return t===0?7:t}function sU(e,t){return Ke(gh.count(ii(e)-1,e),t,2)}function pC(e){var t=e.getUTCDay();return t>=4||t===0?gl(e):gl.ceil(e)}function uU(e,t){return e=pC(e),Ke(gl.count(ii(e),e)+(ii(e).getUTCDay()===4),t,2)}function cU(e){return e.getUTCDay()}function dU(e,t){return Ke(hf.count(ii(e)-1,e),t,2)}function fU(e,t){return Ke(e.getUTCFullYear()%100,t,2)}function hU(e,t){return e=pC(e),Ke(e.getUTCFullYear()%100,t,2)}function pU(e,t){return Ke(e.getUTCFullYear()%1e4,t,4)}function mU(e,t){var r=e.getUTCDay();return e=r>=4||r===0?gl(e):gl.ceil(e),Ke(e.getUTCFullYear()%1e4,t,4)}function vU(){return"+0000"}function Hk(){return"%"}function Kk(e){return+e}function Vk(e){return Math.floor(+e/1e3)}var Do,mC,vC;yU({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 yU(e){return Do=yB(e),mC=Do.format,Do.parse,vC=Do.utcFormat,Do.utcParse,Do}function gU(e){return new Date(e)}function xU(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,y=h.domain,b=f(".%L"),E=f(":%S"),S=f("%I:%M"),k=f("%I %p"),P=f("%a %d"),j=f("%b %d"),_=f("%B"),O=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)=>l8(e,o/n))},r.copy=function(){return bC(t).domain(e)},li.apply(r,arguments)}function bh(){var e=0,t=.5,r=1,n=1,i,o,s,u,d,f=ir,h,m=!1,y;function b(S){return isNaN(S=+S)?y:(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 AU(n)?n:"point"}};function OU(e,t){for(var r=0,n=e.length,i=e[0]t)?r=o+1:n=o}return r}function AC(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=OU(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 CU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):AC(e,void 0)}function Gk(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 pf(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=CC(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:Pu},jC=(e,t)=>e.cartesianAxis.yAxis[t],ui=(e,t)=>{var r=jC(e,t);return r??kt},RU={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??RU},or=(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))}},$U=(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))}},Tu=(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 NC(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 IC=e=>e.graphicalItems.cartesianItems,LU=H([It,fh],NC),MC=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),Nl=H([IC,or,LU],MC,{memoizeOptions:{resultEqualityCheck:ph}}),TC=H([Nl],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Cg)),DC=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),zU=H([Nl],DC),RC=e=>e.map(t=>t.data).filter(Boolean).flat(1),FU=H([Nl],e=>e.some(t=>!t.data)),$C=H([Nl],RC,{memoizeOptions:{resultEqualityCheck:ph}}),LC=(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([$C,lh],LC),BU=(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})),zC=(e,t,r,n,i,o)=>{var s=n.chartData,u=s===void 0?[]:s,d=n.dataStartIndex,f=n.dataEndIndex,h=BU(e,t,r);if(i&&(t==null?void 0:t.dataKey)!=null&&o.length>0){var m=u.slice(d,f+1),y=m.map(b=>({value:Nt(b,t.dataKey)})).filter(b=>b.value!=null);return[...y,...h]}return h},Du=H([t0,or,Nl,lh,FU,$C],zC);function Zo(e){if(Cn(e)||e instanceof Date){var t=Number(e);if(Fe(t))return t}}function Qk(e){if(Array.isArray(e)){var t=[Zo(e[0]),Zo(e[1])];return Pn(t)?t:void 0}var r=Zo(e);if(r!=null)return[r,r]}function Nn(e){return e.map(Zo).filter(vr)}function UU(e,t){var r=Zo(e),n=Zo(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var WU=H([Du],e=>e==null?void 0:e.map(t=>t.value).sort(UU));function FC(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function HU(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=OC(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=jl(e);return Tu(e,t,r)},xl=H([Pt],e=>e==null?void 0:e.dataKey),KU=H([TC,lh,Pt],HO),BC=(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=OC(s,2),d=u[0],f=u[1],h=n?[...f].reverse():f,m=h.map(Og);return[d,{stackedData:u4(e,m,r),graphicalItems:h}]}))},UC=H([KU,TC,sh,$O],BC),WC=(e,t,r,n)=>{var i=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return h4(e,i,o)},VU=H([or],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},HC=H([or],r0),KC=H([HC,VU],AO),qU=H([UC,un,It,KC],WC,{memoizeOptions:{resultEqualityCheck:hh}}),n0=e=>e.errorBars,GU=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>FC(r,n)),mf=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,y=(h=i[f.id])===null||h===void 0?void 0:h.filter(b=>FC(o,b));m.forEach(b=>{var E,S=Nt(b,(E=r.dataKey)!==null&&E!==void 0?E:f.dataKey),k=HU(b,S,y);if(k.length>=2){var P=Math.min(...k),j=Math.max(...k);(u==null||Pd)&&(d=j)}var _=Qk(S);_!=null&&(u=u==null?_[0]:Math.min(u,_[0]),d=d==null?_[1]:Math.max(d,_[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(f=>{var h=Qk(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]},YU=H([t0,or,zU,n0,It,P6],VC,{memoizeOptions:{resultEqualityCheck:hh}});function QU(e){var t=e.value;if(Cn(t)||t instanceof Date)return t}var XU=(e,t,r)=>{var n=e.map(QU).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&n2(n))?PO(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},qC=e=>e.referenceElements.dots,Il=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),ZU=H([qC,It,fh],Il),GC=e=>e.referenceElements.areas,JU=H([GC,It,fh],Il),YC=e=>e.referenceElements.lines,e7=H([YC,It,fh],Il),QC=(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)]}},t7=H(ZU,It,QC),XC=(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)]}},r7=H([JU,It],XC);function n7(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 i7(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 ZC=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?n7(n):i7(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},a7=H([e7,It],ZC),o7=H(t7,a7,r7,(e,t,r)=>mf(e,r,t)),JC=(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?mf(n,o,i):mf(o,i);return N6(t,f,e.allowDataOverflow)},l7=H([or,HC,KC,qU,YU,o7,ot,It],JC,{memoizeOptions:{resultEqualityCheck:hh}}),s7=[0,1],ej=(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=Mn(t,o);if(f&&u==null){var h;return PO(0,(h=r==null?void 0:r.length)!==null&&h!==void 0?h:0)}return d==="category"?XU(n,e,f):i==="expand"&&!f?s7:s}},i0=H([or,ot,t0,Du,sh,It,l7],ej),Ml=H([or,_C,wg],PC),tj=(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 ak(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ok(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Pn(e))return ak(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Pn(e))return ok(e,t.tickCount,t.allowDecimals,"adaptive")}}},a0=H([i0,Tu,Ml],tj),rj=(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},u7=H([or,i0,a0,It],rj),c7=H(Du,or,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Nn(e.map(m=>m.value))).sort((m,y)=>m-y),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}),d7=(e,t,r)=>{var n=si(e,t);return n==null||typeof n.padding!="string"?0:nj(e,"xAxis",t,r,n.padding)},f7=(e,t,r)=>{var n=ui(e,t);return n==null||typeof n.padding!="string"?0:nj(e,"yAxis",t,r,n.padding)},h7=H(si,d7,(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}}),p7=H(ui,f7,(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}}),ij=H([Ht,h7,th,eh,(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]}),aj=H([Ht,ot,p7,th,eh,(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]}),Ru=(e,t,r,n)=>{var i;switch(t){case"xAxis":return ij(e,r,n);case"yAxis":return aj(e,r,n);case"zAxis":return(i=e0(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return BO(e);case"radiusAxis":return UO(e,r);default:return}},oj=H([or,Ru],uh),m7=H([Ml,u7],Y6),o0=H([or,Ml,m7,oj],Jg),lj=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var i=r.type,o=r.scale,s=Mn(e,n);if(s&&(i==="number"||o!=="auto"))return t.map(u=>u.value)}},l0=H([ot,Du,Tu,It],lj),wh=H([o0],jg);H([o0],CU);H([o0,WU],AC);H([Nl,n0,It],GU);function sj(e,t){return e.idt.id?1:0}var Sh=(e,t)=>t,kh=(e,t,r)=>r,v7=H(Zf,Sh,kh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(sj)),y7=H(Jf,Sh,kh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(sj)),uj=(e,t)=>({width:e.width,height:t.height}),g7=(e,t)=>{var r=typeof t.width=="number"?t.width:Pu;return{width:r,height:e.height}},x7=H(Ht,si,uj),b7=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},w7=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},S7=H(oi,Ht,v7,Sh,kh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=uj(t,u);s==null&&(s=b7(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}),k7=H(ai,Ht,y7,Sh,kh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=g7(t,u);s==null&&(s=w7(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}),E7=(e,t)=>{var r=si(e,t);if(r!=null)return S7(e,r.orientation,r.mirror)},P7=H([Ht,si,E7,(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}}}),A7=(e,t)=>{var r=ui(e,t);if(r!=null)return k7(e,r.orientation,r.mirror)},O7=H([Ht,ui,A7,(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}}}),C7=H(Ht,ui,(e,t)=>{var r=typeof t.width=="number"?t.width:Pu;return{width:r,height:e.height}}),cj=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,o=r.type,s=r.dataKey,u=Mn(e,n),d=t.map(h=>h.value),f=d.filter(h=>h!=null);if(s&&u&&o==="category"&&i&&n2(f))return d}},s0=H([ot,Du,or,It],cj),Xk=H([ot,$U,Ml,wh,s0,l0,Ru,a0,It],(e,t,r,n,i,o,s,u,d)=>{if(t!=null){var f=Mn(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}}}),j7=(e,t,r,n,i,o,s,u,d)=>{if(!(t==null||n==null)){var f=Mn(e,d),h=t.type,m=t.ticks,y=t.tickCount,b=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,E=h==="category"&&n.bandwidth?n.bandwidth()/b:0;E=d==="angleAxis"&&o!=null&&o.length>=2?Lr(o[0]-o[1])*2*E:E;var S=m||i;return S?S.map((k,P)=>{var j=s?s.indexOf(k):k,_=n.map(j);return Fe(_)?{index:P,coordinate:_+E,value:k,offset:E}:null}).filter(vr):f&&u?u.map((k,P)=>{var j=n.map(k);return Fe(j)?{coordinate:j+E,value:k,index:P,offset:E}:null}).filter(vr):n.ticks?n.ticks(y).map((k,P)=>{var j=n.map(k);return Fe(j)?{coordinate:j+E,value:k,index:P,offset:E}:null}).filter(vr):n.domain().map((k,P)=>{var j=n.map(k);return Fe(j)?{coordinate:j+E,value:s?s[k]:k,index:P,offset:E}:null}).filter(vr)}},dj=H([ot,Tu,Ml,wh,a0,Ru,s0,l0,It],j7),_7=(e,t,r,n,i,o,s)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=Mn(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 y=r.map(h);return Fe(y)?{coordinate:y+f,value:h,index:m,offset:f}:null}).filter(vr):r.ticks?r.ticks(d).map((h,m)=>{var y=r.map(h);return Fe(y)?{coordinate:y+f,value:h,index:m,offset:f}:null}).filter(vr):r.domain().map((h,m)=>{var y=r.map(h);return Fe(y)?{coordinate:y+f,value:i?i[h]:h,index:m,offset:f}:null}).filter(vr)}},fj=H([ot,Tu,wh,Ru,s0,l0,It],_7),hj=H(or,wh,(e,t)=>{if(!(e==null||t==null))return pf(pf({},e),{},{scale:t})}),N7=H([or,Ml,i0,oj],Jg),I7=H([N7],jg);H((e,t,r)=>e0(e,r),I7,(e,t)=>{if(!(e==null||t==null))return pf(pf({},e),{},{scale:t})});var M7=H([ot,Zf,Jf],(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}}),T7=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};H([T7],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,mj=e=>e.options.validateTooltipEventTypes;function vj(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function $u(e,t){var r=pj(e),n=mj(e);return vj(t,r,n)}function D7(e){return Ee(t=>$u(t,e))}var yj=(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},R7=e=>e.tooltip.settings,zi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},$7={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}},gj=Jt({name:"tooltip",initialState:$7,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:rt()},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:rt()},removeTooltipEntrySettings:{reducer(e,t){var r=zr(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:rt()},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=gj.actions,L7=Vr.addTooltipEntrySettings,z7=Vr.replaceTooltipEntrySettings,F7=Vr.removeTooltipEntrySettings,B7=Vr.setTooltipSettingsState,U7=Vr.setActiveMouseOverItemIndex;Vr.mouseLeaveItem;var xj=Vr.mouseLeaveChart;Vr.setActiveClickItemIndex;var bj=Vr.setMouseOverAxisIndex,W7=Vr.setMouseClickAxisIndex,Fs=Vr.setSyncInteraction,vf=Vr.setKeyboardInteraction,H7=gj.reducer;function Zk(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 md(e){for(var t=1;t{if(t==null)return zi;var i=G7(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(Y7(i)){if(o)return md(md({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return md(md({},zi),{},{coordinate:i.coordinate})};function Q7(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 X7(e,t){var r=Q7(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 Z7(e,t,r){if(r==null||t==null)return!0;var n=Nt(e,t);return n==null||!Pn(r)?!0:X7(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||Z7(f,r,n)?String(d):null},Sj=(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}}}},kj=(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})},Ej=e=>e.options.tooltipPayloadSearcher,Tl=e=>e.tooltip;function Jk(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 eE(e){for(var t=1;te(t)}function tE(e){if(typeof e=="string")return e}function a9(e){if(!(e==null||typeof e!="object")){var t="name"in e?r9(e.name):void 0,r="unit"in e?n9(e.unit):void 0,n="dataKey"in e?i9(e.dataKey):void 0,i="payload"in e?e.payload:void 0,o="color"in e?tE(e.color):void 0,s="fill"in e?tE(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:o,fill:s}}}function o9(e,t){return e??t}var Pj=(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((y,b)=>{var E,S=b.dataDefinedOnItem,k=b.settings,P=o9(S,u),j=Array.isArray(P)?Q2(P,f,h):P,_=(E=k==null?void 0:k.dataKey)!==null&&E!==void 0?E:n,O=k==null?void 0:k.nameKey,N;if(n&&Array.isArray(j)&&!Array.isArray(j[0])&&s==="axis"?N=i2(j,n,i):N=o(j,t,d,O),Array.isArray(N))N.forEach(R=>{var z,F,V=a9(R),Q=V==null?void 0:V.name,B=V==null?void 0:V.dataKey,ue=V==null?void 0:V.payload,G=eE(eE({},k),{},{name:Q,unit:V==null?void 0:V.unit,color:(z=V==null?void 0:V.color)!==null&&z!==void 0?z:k==null?void 0:k.color,fill:(F=V==null?void 0:V.fill)!==null&&F!==void 0?F:k==null?void 0:k.fill});y.push(Yw({tooltipEntrySettings:G,dataKey:B,payload:ue,value:Nt(ue,B),name:Q==null?void 0:String(Q)}))});else{var C;y.push(Yw({tooltipEntrySettings:k,dataKey:_,payload:N,value:Nt(N,_),name:(C=Nt(N,O))!==null&&C!==void 0?C:k==null?void 0:k.name}))}return y},m)}},u0=H([Pt,_C,wg],PC),l9=H([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),s9=H([Mt,jl],NC),to=H([l9,Pt,s9],MC,{memoizeOptions:{resultEqualityCheck:ph}}),u9=H([to],e=>e.filter(Cg)),Aj=H([to],RC,{memoizeOptions:{resultEqualityCheck:ph}}),c9=H([to],e=>e.some(t=>!t.data)),Ya=H([Aj,un],LC),d9=H([u9,un,Pt],HO),c0=H([Ya,Pt,to,un,c9,Aj],zC),Oj=H([Pt],r0),f9=H([Pt],e=>e.allowDataOverflow),Cj=H([Oj,f9],AO),h9=H([to],e=>e.filter(Cg)),p9=H([d9,h9,sh,$O],BC),m9=H([p9,un,Mt,Cj],WC),v9=H([to],DC),y9=H([Ya,Pt,v9,n0,Mt,A6],VC,{memoizeOptions:{resultEqualityCheck:hh}}),g9=H([qC,Mt,jl],Il),x9=H([g9,Mt],QC),b9=H([GC,Mt,jl],Il),w9=H([b9,Mt],XC),S9=H([YC,Mt,jl],Il),k9=H([S9,Mt],ZC),E9=H([x9,k9,w9],mf),P9=H([Pt,Oj,Cj,m9,y9,E9,ot,Mt],JC),bl=H([Pt,ot,Ya,c0,sh,Mt,P9],ej),A9=H([bl,Pt,u0],tj),O9=H([Pt,bl,A9,Mt],rj),jj=e=>{var t=Mt(e),r=jl(e),n=!1;return Ru(e,t,r,n)},_j=H([Pt,jj],uh),C9=H([Pt,u0,O9,_j],Jg),Nj=H([C9],jg),j9=H([ot,c0,Pt,Mt],cj),_9=H([ot,c0,Pt,Mt],lj),N9=(e,t,r,n,i,o,s,u)=>{if(t){var d=t.type,f=Mn(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((y,b)=>{var E=n.map(y);return Fe(E)?{coordinate:E+m,value:y,index:b,offset:m}:null}).filter(vr):n.domain().map((y,b)=>{var E=n.map(y);return Fe(E)?{coordinate:E+m,value:o?o[y]:y,index:b,offset:m}:null}).filter(vr)}}},ci=H([ot,Pt,u0,Nj,jj,j9,_9,Mt],N9),d0=H([pj,mj,R7],(e,t,r)=>vj(r.shared,e,t)),Ij=e=>e.tooltip.settings.trigger,f0=e=>e.tooltip.settings.defaultIndex,Lu=H([Tl,d0,Ij,f0],wj),cu=H([Lu,Ya,xl,bl],Us),Mj=H([ci,cu],yj),I9=H([Lu],e=>{if(e)return e.dataKey}),M9=H([Lu],e=>{if(e)return e.graphicalItemId}),Tj=H([Tl,d0,Ij,f0],kj),T9=H([ai,oi,ot,Ht,ci,f0,Tj],Sj),D9=H([Lu,T9],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),R9=H([Lu],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),$9=H([Tj,cu,un,xl,Mj,Ej,d0],Pj),L9=H([$9],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(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 nE(e){for(var t=1;tEe(Pt),W9=()=>{var e=U9(),t=Ee(ci),r=Ee(Nj);return Kd(!e||!r?void 0:nE(nE({},e),{},{scale:r}),t)};function iE(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;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}},G9=(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 Ro(Ro(Ro({},n),Bt(n.cx,n.cy,s,o)),{},{angle:o,radius:s})}var u=i.coordinate,d=n.angle;return Ro(Ro(Ro({},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 Y9(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 Dj=(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,E=(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:(y=r[u+1])===null||y===void 0?void 0:y.coordinate,k=void 0;if(!(b==null||E==null||S==null))if(Lr(E-b)!==Lr(S-E)){var P=[];if(Lr(S-E)===Lr(i[1]-i[0])){k=S;var j=E+i[1]-i[0];P[0]=Math.min(j,(j+b)/2),P[1]=Math.max(j,(j+b)/2)}else{k=b;var _=S+i[1]-i[0];P[0]=Math.min(E,(_+E)/2),P[1]=Math.max(E,(_+E)/2)}var O=[Math.min(E,(k+E)/2),Math.max(E,(k+E)/2)];if(e>O[0]&&e<=O[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(b,S),R=Math.max(b,S);if(e>(C+E)/2&&e<=(R+E)/2){var z;return(z=r[u])===null||z===void 0?void 0:z.index}}}else if(t)for(var F=0;F(V.coordinate+B.coordinate)/2||F>0&&F(V.coordinate+B.coordinate)/2&&e<=(V.coordinate+Q.coordinate)/2)return V.index}}return-1},Rj=()=>Ee(wg),h0=(e,t)=>t,$j=(e,t,r)=>r,p0=(e,t,r,n)=>n,Q9=H(ci,e=>Bf(e,t=>t.coordinate)),m0=H([Tl,h0,$j,p0],wj),v0=H([m0,Ya,xl,bl],Us),X9=(e,t,r)=>{if(t!=null){var n=Tl(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},Lj=H([Tl,h0,$j,p0],kj),yf=H([ai,oi,ot,Ht,ci,p0,Lj],Sj),Z9=H([m0,yf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),zj=H([ci,v0],yj),J9=H([Lj,v0,un,xl,zj,Ej,h0],Pj),eW=H([m0,v0],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),tW=(e,t,r,n,i,o,s)=>{if(!(!e||!r||!n||!i)&&Y9(e,s)){var u=p4(e,t),d=Dj(u,o,i,r,n),f=q9(t,i,d,e);return{activeIndex:String(d),activeCoordinate:f}}},rW=(e,t,r,n,i,o,s)=>{if(!(!e||!n||!i||!o||!r)){var u=y6(e,r);if(u){var d=m4(u,t),f=Dj(d,s,o,n,i),h=G9(t,o,f,u);return{activeIndex:String(f),activeCoordinate:h}}}},nW=(e,t,r,n,i,o,s,u)=>{if(!(!e||!t||!n||!i||!o))return t==="horizontal"||t==="vertical"?tW(e,t,n,i,o,s,u):rW(e,t,r,n,i,o,s)},iW=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}}),aW=H(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(nr)),r=Array.from(new Set(t));return r.sort((n,i)=>n-i)},{memoizeOptions:{resultEqualityCheck:G6}});function aE(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 oE(e){for(var t=1;toE(oE({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),uW)},dW=new Set(Object.values(nr));function fW(e){return dW.has(e)}var Fj=Jt({name:"zIndex",initialState:cW,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:rt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!fW(r)&&delete e.zIndexMap[r])},prepare:rt()},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:rt()},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:rt()}}}),Eh=Fj.actions,hW=Eh.registerZIndexPortal,av=Eh.unregisterZIndexPortal,pW=Eh.registerZIndexPortalElement,mW=Eh.unregisterZIndexPortalElement,vW=Fj.reducer;function di(e){var t=e.zIndex,r=e.children,n=J4(),i=n&&t!==void 0&&t!==0,o=gr(),s=g.useRef(void 0),u=g.useRef(new Set),d=xt(),f=Ee(m=>iW(m,t,o));if(g.useLayoutEffect(()=>{if(!i){var m=u.current;m.forEach(b=>{d(av({zIndex:b}))}),m.clear(),s.current=void 0;return}if(u.current.has(t)||(d(hW({zIndex:t})),u.current.add(t)),f){s.current=f;var y=u.current;y.forEach(b=>{b!==t&&(d(av({zIndex:b})),y.delete(b))})}},[d,t,i,f]),g.useLayoutEffect(()=>{var m=u.current;return()=>{m.forEach(y=>{d(av({zIndex:y}))}),m.clear()}},[d]),!i)return r;var h=f??s.current;return h?If.createPortal(r,h):null}function by(){return by=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.useContext(Bj),ov={exports:{}},sE;function EW(){return sE||(sE=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,y){if(typeof h!="function")throw new TypeError("The listener must be a function");var b=new i(h,m||d,y),E=r?r+f:f;return d._events[E]?d._events[E].fn?d._events[E]=[d._events[E],b]:d._events[E].push(b):(d._events[E]=b,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 y=0,b=m.length,E=new Array(b);y{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!On(r))return e[r]}},CW={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},Uj=Jt({name:"options",initialState:CW,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),jW=Uj.reducer,_W=Uj.actions.createEventEmitter;function NW(e){return e.tooltip.syncInteraction}var IW={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},Wj=Jt({name:"chartData",initialState:IW,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=Wj.actions,cE=y0.setChartData,MW=y0.setDataStartEndIndexes;y0.setComputedData;var TW=Wj.reducer,DW=["x","y"];function dE(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 $o(e){for(var t=1;td.rootProps.className);g.useEffect(()=>{if(e==null)return Pl;var d=(f,h,m)=>{if(t!==m&&e===f){if(h.payload.active===!1){r(Fs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var y;if(s&&h!==null&&h!==void 0&&(y=h.payload)!==null&&y!==void 0&&y.coordinate&&h.payload.sourceViewBox){var b=h.payload.coordinate,E=b.x,S=b.y,k=zW(b,DW),P=h.payload.sourceViewBox,j=P.x,_=P.y,O=P.width,N=P.height,C=$o($o({},k),{},{x:s.x+(O?(E-j)/O:0)*s.width,y:s.y+(N?(S-_)/N:0)*s.height});r($o($o({},h),{},{payload:$o($o({},h.payload),{},{coordinate:C})}))}else r(h);return}if(i!=null){var R;if(typeof n=="function"){var z={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},F=n(i,z);R=i[F]}else n==="value"&&(R=i.find(de=>String(de.value)===h.payload.label));var V=h.payload.coordinate;if(V==null||s==null){r(Fs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(R==null){r(Fs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:void 0}));return}var Q=V.x,B=V.y,ue=Math.min(Q,s.x+s.width),G=Math.min(B,s.y+s.height),le={x:o==="horizontal"?R.coordinate:ue,y:o==="horizontal"?G:R.coordinate},fe=Fs({active:h.payload.active,coordinate:le,dataKey:h.payload.dataKey,index:String(R.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 UW(){var e=Ee(Sg),t=Ee(kg),r=xt();g.useEffect(()=>{if(e==null)return Pl;var n=(i,o,s)=>{t!==s&&e===i&&r(MW(o))};return du.on(uE,n),()=>{du.off(uE,n)}},[r,t,e])}function WW(){var e=xt();g.useEffect(()=>{e(_W())},[e]),BW(),UW()}function HW(e,t,r,n,i,o){var s=Ee(E=>X9(E,e,t)),u=Ee(M9),d=Ee(kg),f=Ee(Sg),h=Ee(LO),m=Ee(NW),y=(m==null?void 0:m.sourceViewBox)!=null,b=rh();g.useEffect(()=>{if(!y&&f!=null&&d!=null){var E=Fs({active:o,coordinate:r,dataKey:s,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:b,graphicalItemId:u});du.emit(wy,f,E,d)}},[y,r,s,u,i,n,d,f,h,o,b])}function fE(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 hE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{R(B7({shared:j,trigger:_,axisId:C,active:i,defaultIndex:z}))},[R,j,_,C,i,z]);var F=rh(),V=yO(),Q=D7(j),B=(t=Ee(Ae=>eW(Ae,Q,_,z)))!==null&&t!==void 0?t:{},ue=B.activeIndex,G=B.isActive,le=Ee(Ae=>J9(Ae,Q,_,z)),fe=Ee(Ae=>zj(Ae,Q,_,z)),de=Ee(Ae=>Z9(Ae,Q,_,z)),Y=le,ae=kW(),X=(r=i??G)!==null&&r!==void 0?r:!1,M=eL([Y,X]),T=GW(M,2),Z=T[0],se=T[1],te=Q==="axis"?fe:void 0;HW(Q,_,de,te,ue,X);var ce=N??ae;if(ce==null||F==null||Q==null)return null;var ye=Y??mE;X||(ye=mE),f&&ye.length&&(ye=k$(ye.filter(Ae=>Ae.value!=null&&(Ae.hide!==!0||n.includeHidden)),y,JW));var _e=ye.length>0,J=hE(hE({},n),{},{payload:ye,label:te,active:X,activeIndex:ue,coordinate:de,accessibilityLayer:V}),we=g.createElement(dF,{allowEscapeViewBox:o,animationDuration:s,animationEasing:u,isAnimationActive:h,active:X,coordinate:de,hasPayload:_e,offset:m,position:b,reverseDirection:E,useTranslate3d:S,viewBox:F,wrapperStyle:k,lastBoundingBox:Z,innerRef:se,hasPortalFromProps:!!N},eH(d,J));return g.createElement(g.Fragment,null,If.createPortal(we,ce),X&&g.createElement(SW,{cursor:P,tooltipEventType:Q,coordinate:de,payload:ye,index:ue}))}function nH(e,t,r){return(t=iH(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function iH(e){var t=aH(e,"string");return typeof t=="symbol"?t:t+""}function aH(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 oH{constructor(t){nH(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 vE(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 lH(e){for(var t=1;t{try{var r=document.getElementById(gE);r||(r=document.createElement("span"),r.setAttribute("id",gE),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,fH,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||ju.isSsr)return{width:0,height:0};if(!Hj.enableCache)return xE(t,r);var n=hH(t,r),i=yE.get(n);if(i)return i;var o=xE(t,r);return yE.set(n,o),o},Kj;function gf(e,t){return yH(e)||vH(e,t)||mH(e,t)||pH()}function pH(){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 mH(e,t){if(e){if(typeof e=="string")return bE(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)?bE(e,t):void 0}}function bE(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(qj));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 Yj(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function $H(e){return Ut(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Qj=(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),LH="…",OE=(e,t,r,n,i,o,s,u)=>{var d=e.slice(0,t),f=Gj({breakAll:r,style:n,children:d+LH});if(!f)return[!1,[]];var h=Qj(f.wordsWithComputedWidth,o,s,u),m=h.length>i||Xj(h).width>Number(o);return[m,h]},zH=(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=Qj(t,n,r,i);if(!f||i)return m;var y=m.length>o||Xj(m).width>Number(n);if(!y)return m;for(var b=0,E=h.length-1,S=0,k;b<=E&&S<=h.length-1;){var P=Math.floor((b+E)/2),j=P-1,_=OE(h,j,d,u,o,n,r,i),O=PE(_,2),N=O[0],C=O[1],R=OE(h,P,d,u,o,n,r,i),z=PE(R,1),F=z[0];if(!N&&!F&&(b=P+1),N&&F&&(E=P-1),!N&&F){k=C;break}S++}return k||m},CE=e=>{var t=Ut(e)?[]:e.toString().split(qj);return[{words:t,width:void 0}]},FH=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,o=e.breakAll,s=e.maxLines;if((t||r)&&!ju.isSsr){var u,d,f=Gj({breakAll:o,children:n,style:i});if(f){var h=f.wordsWithComputedWidth,m=f.spaceWidth;u=h,d=m}else return CE(n);return zH({breakAll:o,children:n,maxLines:s,style:i},u,d,t,!!r)}return CE(n)},Zj="#808080",BH={angle:0,breakAll:!1,capHeight:"0.71em",fill:Zj,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},g0=g.forwardRef((e,t)=>{var r=Hr(e,BH),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=EE(r,_H),y=g.useMemo(()=>FH({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]),b=m.dx,E=m.dy,S=m.angle,k=m.className,P=m.breakAll,j=EE(m,NH);if(!Cn(n)||!Cn(i)||y.length===0)return null;var _=Number(n)+(be(b)?b:0),O=Number(i)+(be(E)?E:0);if(!Fe(_)||!Fe(O))return null;var N;switch(h){case"start":N=lv("calc(".concat(s,")"));break;case"middle":N=lv("calc(".concat((y.length-1)/2," * -").concat(o," + (").concat(s," / 2))"));break;default:N=lv("calc(".concat(y.length-1," * -").concat(o,")"));break}var C=[],R=y[0];if(d&&R!=null){var z=R.width,F=m.width;C.push("scale(".concat(be(F)&&be(z)?F/z:1,")"))}return S&&C.push("rotate(".concat(S,", ").concat(_,", ").concat(O,")")),C.length&&(j.transform=C.join(" ")),g.createElement("text",Sy({},Br(j),{ref:t,x:_,y:O,className:Qe("recharts-text",k),textAnchor:f,fill:u.includes("url")?Zj:u}),y.map((V,Q)=>{var B=V.words.join(P?"":" ");return g.createElement("tspan",{x:_,dy:Q===0?N:o,key:"".concat(B,"-").concat(Q)},B)}))});g0.displayName="Text";function jE(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,y=u,b=u+(h-m)/2,E=(y+b)/2,S=(h+m)/2,k=y+h/2,P=f>=0?1:-1,j=P*i,_=P>0?"end":"start",O=P>0?"start":"end",N=h>=0?1:-1,C=N*i,R=N>0?"end":"start",z=N>0?"start":"end",F=o;if(r==="top"){var V={x:y+h/2,y:d-j,horizontalAnchor:"middle",verticalAnchor:_};return F&&(V.height=Math.max(d-F.y,0),V.width=h),V}if(r==="bottom"){var Q={x:b+m/2,y:d+f+j,horizontalAnchor:"middle",verticalAnchor:O};return F&&(Q.height=Math.max(F.y+F.height-(d+f),0),Q.width=m),Q}if(r==="left"){var B={x:E-C,y:d+f/2,horizontalAnchor:R,verticalAnchor:"middle"};return F&&(B.width=Math.max(B.x-F.x,0),B.height=f),B}if(r==="right"){var ue={x:E+S+C,y:d+f/2,horizontalAnchor:z,verticalAnchor:"middle"};return F&&(ue.width=Math.max(F.x+F.width-ue.x,0),ue.height=f),ue}var G=F?{width:S,height:f}:{};return r==="insideLeft"?gn({x:E+C,y:d+f/2,horizontalAnchor:z,verticalAnchor:"middle"},G):r==="insideRight"?gn({x:E+S-C,y:d+f/2,horizontalAnchor:R,verticalAnchor:"middle"},G):r==="insideTop"?gn({x:y+h/2,y:d+j,horizontalAnchor:"middle",verticalAnchor:O},G):r==="insideBottom"?gn({x:b+m/2,y:d+f-j,horizontalAnchor:"middle",verticalAnchor:_},G):r==="insideTopLeft"?gn({x:y+C,y:d+j,horizontalAnchor:z,verticalAnchor:O},G):r==="insideTopRight"?gn({x:y+h-C,y:d+j,horizontalAnchor:R,verticalAnchor:O},G):r==="insideBottomLeft"?gn({x:b+C,y:d+f-j,horizontalAnchor:z,verticalAnchor:_},G):r==="insideBottomRight"?gn({x:b+m-C,y:d+f-j,horizontalAnchor:R,verticalAnchor:_},G):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"},G):gn({x:k,y:d+f/2,horizontalAnchor:"middle",verticalAnchor:"middle"},G)},VH=["labelRef"],qH=["content"];function _E(e,t){if(e==null)return{};var r,n,i=GH(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(Jj.Provider,{value:d},u)},e_=()=>{var e=g.useContext(Jj),t=rh();return e||(t?fg(t):void 0)},JH=g.createContext(null),eK=()=>{var e=g.useContext(JH),t=Ee(WO);return e||t},tK=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",rK=(e,t)=>{var r=Lr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},nK=(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,y=i.endAngle,b=i.clockWise,E=(f+h)/2,S=rK(m,y),k=S>=0?1:-1,P,j;switch(t){case"insideStart":P=m+k*o,j=b;break;case"insideEnd":P=y-k*o,j=!b;break;case"end":P=y+k*o,j=b;break;default:throw new Error("Unsupported position ".concat(t))}j=S<=0?j:!j;var _=Bt(u,d,E,P),O=Bt(u,d,E,P+(j?1:-1)*359),N="M".concat(_.x,",").concat(_.y,` + A`).concat(E,",").concat(E,",0,1,").concat(j?0:1,`, + `).concat(O.x,",").concat(O.y),C=Ut(e.id)?Xs("recharts-radial-line-"):e.id;return g.createElement("text",Gn({},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))},iK=(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,y=h.y;return{x:m,y,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 b=(o+s)/2,E=Bt(n,i,b,f),S=E.x,k=E.y;return{x:S,y:k,textAnchor:"middle",verticalAnchor:"middle"}},Cd=e=>e!=null&&"cx"in e&&be(e.cx),aK={angle:0,offset:5,zIndex:nr.label,position:"middle",textBreakAll:!1};function oK(e){if(!Cd(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,aK),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,y=eK(),b=e_(),E=i==="center"?b:y??b,S,k,P;r==null?S=E:Cd(r)?S=r:S=fg(r);var j=oK(S);if(!S||Ut(o)&&Ut(s)&&!g.isValidElement(u)&&typeof u!="function")return null;var _=Bs(Bs({},t),{},{viewBox:S});if(g.isValidElement(u)){_.labelRef;var O=_E(_,VH);return g.cloneElement(u,O)}if(typeof u=="function"){_.content;var N=_E(_,qH);if(k=g.createElement(u,N),g.isValidElement(k))return k}else k=tK(t);var C=Br(t);if(Cd(S)){if(i==="insideStart"||i==="insideEnd"||i==="end")return nK(t,i,k,C,S);P=iK(S,t.offset,t.position)}else{if(!j)return null;var R=KH({viewBox:j,position:i,offset:t.offset,parentViewBox:Cd(n)?void 0:n});P=Bs(Bs({x:R.x,y:R.y,textAnchor:R.horizontalAnchor,verticalAnchor:R.verticalAnchor},R.width!==void 0?{width:R.width}:{}),R.height!==void 0?{height:R.height}:{})}return g.createElement(di,{zIndex:t.zIndex},g.createElement(g0,Gn({ref:m,className:Qe("recharts-label",f)},C,P,{textAnchor:Yj(C.textAnchor)?C.textAnchor:P.textAnchor,breakAll:h}),k))}Li.displayName="Label";var lK=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?g.createElement(Li,Gn({key:"label-implicit"},n)):Cn(e)?g.createElement(Li,Gn({key:"label-implicit",value:e},n)):g.isValidElement(e)?e.type===Li?g.cloneElement(e,Bs({key:"label-implicit"},n)):g.createElement(Li,Gn({key:"label-implicit",content:e},n)):x0(e)?g.createElement(Li,Gn({key:"label-implicit",content:e},n)):e&&typeof e=="object"?g.createElement(Li,Gn({},e,{key:"label-implicit"},n)):null};function sK(e){var t=e.label,r=e.labelRef,n=e_();return lK(t,n,r)||null}var uK=["valueAccessor"],cK=["dataKey","clockWise","id","textBreakAll","zIndex"];function xf(){return xf=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($H(t))return t},t_=g.createContext(void 0),hK=t_.Provider,r_=g.createContext(void 0);r_.Provider;function pK(){return g.useContext(t_)}function mK(){return g.useContext(r_)}function jd(e){var t=e.valueAccessor,r=t===void 0?fK:t,n=IE(e,uK),i=n.dataKey;n.clockWise;var o=n.id,s=n.textBreakAll,u=n.zIndex,d=IE(n,cK),f=pK(),h=mK(),m=f||h;return!m||!m.length?null:g.createElement(di,{zIndex:u??nr.label},g.createElement(Ur,{className:"recharts-label-list"},m.map((y,b)=>{var E,S=Ut(i)?r(y,b):Nt(y.payload,i),k=Ut(o)?{}:{id:"".concat(o,"-").concat(b)};return g.createElement(Li,xf({key:"label-".concat(b)},Br(y),d,k,{fill:(E=n.fill)!==null&&E!==void 0?E:y.fill,parentViewBox:y.parentViewBox,value:S,textBreakAll:s,viewBox:y.viewBox,index:b,zIndex:0}))})))}jd.displayName="LabelList";function vK(e){var t=e.label;return t?t===!0?g.createElement(jd,{key:"labelList-implicit"}):g.isValidElement(t)||x0(t)?g.createElement(jd,{key:"labelList-implicit",content:t}):typeof t=="object"?g.createElement(jd,xf({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},yK={radiusAxis:{},angleAxis:{}},i_=Jt({name:"polarAxis",initialState:yK,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]}}}),Ph=i_.actions;Ph.addRadiusAxis;Ph.removeRadiusAxis;Ph.addAngleAxis;Ph.removeAngleAxis;var gK=i_.reducer;function xK(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var a_=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function ME(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;t{n||(i.current===null?r(L7(t)):i.current!==t&&r(z7({prev:i.current,next:t})),i.current=t)},[t,r,n]),g.useLayoutEffect(()=>()=>{i.current&&(r(F7(i.current)),i.current=null)},[r]),null}function jK(e){var t=e.legendPayload,r=xt(),n=gr(),i=g.useRef(null);return g.useLayoutEffect(()=>{n||(i.current===null?r(fz(t)):i.current!==t&&r(hz({prev:i.current,next:t})),i.current=t)},[r,n,t]),g.useLayoutEffect(()=>()=>{i.current&&(r(pz(i.current)),i.current=null)},[r]),null}function _K(e,t){return TK(e)||MK(e,t)||IK(e,t)||NK()}function NK(){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 IK(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);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 $K(e,t){var r=t.map((n,i)=>e[i]);return w0(r,t)}function LK(e,t){for(var r=new Map,n=0;n{var b=r(m,y);if(b!=null){var E=n.get(b);if(E!==void 0)return i.add(b),E}}),s=[];for(var u of n){var d=_K(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?RK(e,t):r===DK?$K(e,t):zK(e,t,r)}function l_(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 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 RE(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)?RE(e,t):void 0}}function RE(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 VK(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,y=e.animationInterpolateFn,b=e.animationMatchBy,E=e.shouldUpdatePreviousRef,S=e.children,k=e.layout,P=SO(r,n),j=l_(P,o),_=(t=j.startValue)!==null&&t!==void 0?t:null,O=Ey(_,i,b??b0);return g.createElement(wO,{animationId:P,begin:u,duration:d,isActive:s,easing:f,onAnimationEnd:m,onAnimationStart:h,key:P},N=>{var C=_==null,R=i==null?i:y(O,N,k),z=E?E(N):N>0;return j.syncStepValue(R,N,z),R==null?null:S(R,N,C)})}var sv;function qK(e,t){return XK(e)||QK(e,t)||YK(e,t)||GK()}function GK(){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 YK(e,t){if(e){if(typeof e=="string")return $E(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)?$E(e,t):void 0}}function $E(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=qK(e,1),r=t[0];return r},s_=(sv=Cf.useId)!==null&&sv!==void 0?sv:ZK;function JK(e,t){var r=s_();return t||(e?"".concat(e,"-").concat(r):r)}var eV=g.createContext(void 0),tV=e=>{var t=e.id,r=e.type,n=e.children,i=JK("recharts-".concat(r),t);return g.createElement(eV.Provider,{value:i},n(i))},rV={cartesianItems:[],polarItems:[]},u_=Jt({name:"graphicalItems",initialState:rV,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:rt()},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:rt()},removeCartesianGraphicalItem:{reducer(e,t){var r=zr(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:rt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:rt()},removePolarGraphicalItem:{reducer(e,t){var r=zr(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:rt()},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:rt()}}}),Dl=u_.actions,nV=Dl.addCartesianGraphicalItem,iV=Dl.replaceCartesianGraphicalItem,aV=Dl.removeCartesianGraphicalItem;Dl.addPolarGraphicalItem;Dl.removePolarGraphicalItem;Dl.replacePolarGraphicalItem;var oV=u_.reducer,lV=e=>{var t=xt(),r=g.useRef(null);return g.useLayoutEffect(()=>{r.current===null?t(nV(e)):r.current!==e&&t(iV({prev:r.current,next:e})),r.current=e},[t,e]),g.useLayoutEffect(()=>()=>{r.current&&(t(aV(r.current)),r.current=null)},[t]),null},sV=g.memo(lV),uV=["points"];function LE(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 uv(e){for(var t=1;t{var P,j,_=uv(uv(uv({r:3},s),y),{},{index:k,cx:(P=S.x)!==null&&P!==void 0?P:void 0,cy:(j=S.y)!==null&&j!==void 0?j:void 0,dataKey:o,value:S.value,payload:S.payload,points:t});return g.createElement(mV,{key:"dot-".concat(k),option:r,dotProps:_,className:i})}),E={};return u&&d!=null&&(E.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),g.createElement(di,{zIndex:h},g.createElement(Ur,bf({className:n},E),b))}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 FE(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),NV=H([_V,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=()=>Ee(NV),IV=()=>Ee(L9);function BE(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 cv(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=cv(cv(cv({},u),Lf(i)),rg(i)),f;return g.isValidElement(i)?f=g.cloneElement(i,d):typeof i=="function"?f=i(d):f=g.createElement(n_,d),g.createElement(Ur,{className:"recharts-active-dot",clipPath:s},f)};function UE(e){var t=e.points,r=e.mainColor,n=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,u=s===void 0?nr.activeDot:s,d=Ee(cu),f=IV();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(RV,{point:h,childIndex:Number(d),mainColor:r,dataKey:i,activeDot:n,clipPath:o}))}var $V=e=>{var t=e.chartData,r=xt(),n=gr();return g.useEffect(()=>n?()=>{}:(r(cE(t)),()=>{r(cE(void 0))}),[t,r,n]),null},WE={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},f_=Jt({name:"brush",initialState:WE,reducers:{setBrushSettings(e,t){return t.payload==null?WE:t.payload}}});f_.actions.setBrushSettings;var LV=f_.reducer;function zV(e){return(e%180+180)%180}var FV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=zV(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)}}}),Rl=h_.actions;Rl.addDot;Rl.removeDot;Rl.addArea;Rl.removeArea;Rl.addLine;Rl.removeLine;var UV=h_.reducer;function WV(e,t){return qV(e)||VV(e,t)||KV(e,t)||HV()}function HV(){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 KV(e,t){if(e){if(typeof e=="string")return HE(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)?HE(e,t):void 0}}function HE(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=WV(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(GV.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 p_(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 ZV(e,t){return p_(e,t+1)}function JV(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 E=n==null?void 0:n[d];if(E===void 0)return{v:p_(n,f)};var S=d,k,P=()=>(k===void 0&&(k=r(E,S)),k),j=E.coordinate,_=d===0||fu(e,j,P,h,u);_||(d=0,h=s,f+=1),_&&(h=j+e*(P()/2+i),d+=f)},y;f<=o.length;)if(y=m(),y)return y.v;return[]}function eq(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,y=!0,b=function(){var O=n[S];if(O==null)return 0;var N=S,C,R=()=>(C===void 0&&(C=r(O,N)),C),z=O.coordinate,F=S===h||fu(e,z,R,m,d);if(!F)return y=!1,1;F&&(m=z+e*(R()/2+i))},E,S=h;S(S===void 0&&(S=r(b,y)),S);if(y===s-1){var P=e*(E.coordinate+e*k()/2-d);o[y]=E=Qt(Qt({},E),{},{tickCoord:P>0?E.coordinate-P*e:E.coordinate})}else o[y]=E=Qt(Qt({},E),{},{tickCoord:E.coordinate});if(E.tickCoord!=null){var j=fu(e,E.tickCoord,k,u,d);j&&(d=E.tickCoord-e*(k()/2+i),o[y]=Qt(Qt({},E),{},{isShow:!0}))}},h=s-1;h>=0;h--)f(h);return o}function aq(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),y=e*(h.coordinate+e*m/2-f);if(s[u-1]=h=Qt(Qt({},h),{},{tickCoord:y>0?h.coordinate-y*e:h.coordinate}),h.tickCoord!=null){var b=fu(e,h.tickCoord,()=>m,d,f);b&&(f=h.tickCoord-e*(m/2+i),s[u-1]=Qt(Qt({},h),{},{isShow:!0}))}}}for(var E=o?u-1:u,S=function(j){var _=s[j];if(_==null)return 1;var O=_,N,C=()=>(N===void 0&&(N=r(_,j)),N);if(j===0){var R=e*(O.coordinate-e*C()/2-d);s[j]=O=Qt(Qt({},O),{},{tickCoord:R<0?O.coordinate-R*e:O.coordinate})}else s[j]=O=Qt(Qt({},O),{},{tickCoord:O.coordinate});if(O.tickCoord!=null){var z=fu(e,O.tickCoord,C,d,f);z&&(d=O.tickCoord+e*(C()/2+i),s[j]=Qt(Qt({},O),{},{isShow:!0}))}},k=0;k{var R=typeof f=="function"?f(N.value,C):N.value;return E==="width"?QV(Ws(R,{fontSize:t,letterSpacing:r}),S,m):Ws(R,{fontSize:t,letterSpacing:r})[E]},P=i[0],j=i[1],_=i.length>=2&&P!=null&&j!=null?Lr(j.coordinate-P.coordinate):1,O=XV(o,_,E);return d==="equidistantPreserveStart"?JV(_,O,k,i,s):d==="equidistantPreserveEnd"?eq(_,O,k,i,s):(d==="preserveStart"||d==="preserveStartEnd"?b=aq(_,O,k,i,s,d==="preserveStartEnd"):b=iq(_,O,k,i,s),b.filter(N=>N.isShow))}var oq=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(b=>{if(b){var E=b.getBoundingClientRect();E.width>f&&(f=E.width)}});var h=r?r.getBoundingClientRect().width:0,m=s+d,y=f+m+h+(r?i:0);return Math.round(y)}return 0},lq={xAxis:{},yAxis:{}},m_=Jt({name:"renderedTicks",initialState:lq,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]}}}),v_=m_.actions,sq=v_.setRenderedTicks,uq=v_.removeRenderedTicks,cq=m_.reducer,dq=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function VE(e,t){return mq(e)||pq(e,t)||hq(e,t)||fq()}function fq(){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 hq(e,t){if(e){if(typeof e=="string")return qE(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)?qE(e,t):void 0}}function qE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return Pl;var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return i(sq({ticks:o,axisId:n,axisType:r})),()=>{i(uq({axisId:n,axisType:r}))}},[i,t,n,r]),null}var Oq=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,y=e.mirror,b=e.x,E=e.y,S=e.width,k=e.height,P=e.tickSize,j=e.tickMargin,_=e.fontSize,O=e.letterSpacing,N=e.getTicksConfig,C=e.events,R=e.axisType,z=e.axisId,F=k0(ht(ht({},N),{},{ticks:n}),_,O),V=on(N),Q=Lf(i),B=Yj(V.textAnchor)?V.textAnchor:kq(m,y),ue=Eq(m,y),G={};typeof o=="object"&&(G=o);var le=ht(ht({},V),{},{fill:"none"},G),fe=F.map(ae=>ht({entry:ae},Sq(ae,b,E,S,k,m,P,y,j))),de=fe.map(ae=>{var X=ae.entry,M=ae.line;return g.createElement(Ur,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(X.value,"-").concat(X.coordinate,"-").concat(X.tickCoord)},o&&g.createElement("line",Qa({},le,M,{className:Qe("recharts-cartesian-axis-tick-line",Za(o,"className"))})))}),Y=fe.map((ae,X)=>{var M,T,Z=ae.entry,se=ae.tick,te=ht(ht(ht(ht({verticalAnchor:ue},V),{},{textAnchor:B,stroke:"none",fill:s},se),{},{index:X,payload:Z,visibleTicksCount:F.length,tickFormatter:u,padding:f},h),{},{angle:(M=(T=h==null?void 0:h.angle)!==null&&T!==void 0?T:V.angle)!==null&&M!==void 0?M:0}),ce=ht(ht({},te),Q);return g.createElement(Ur,Qa({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(Z.value,"-").concat(Z.coordinate,"-").concat(Z.tickCoord)},N5(C,Z,X)),i&&g.createElement(Pq,{option:i,tickProps:ce,value:"".concat(typeof u=="function"?u(Z.value,X):Z.value).concat(d||"")}))});return g.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(R,"-ticks")},g.createElement(Aq,{ticks:F,axisId:z,axisType:R}),Y.length>0&&g.createElement(di,{zIndex:nr.label},g.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(R,"-tick-labels"),ref:t},Y)),de.length>0&&g.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(R,"-tick-lines")},de))}),Cq=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=vq(e,dq),m=g.useState(""),y=VE(m,2),b=y[0],E=y[1],S=g.useState(""),k=VE(S,2),P=k[0],j=k[1],_=g.useRef(null);g.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var N;return oq({ticks:_.current,label:(N=e.labelRef)===null||N===void 0?void 0:N.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var O=g.useCallback(N=>{if(N){var C=N.getElementsByClassName("recharts-cartesian-axis-tick-value");_.current=C;var R=C[0];if(R){var z=window.getComputedStyle(R),F=z.fontSize,V=z.letterSpacing;(F!==b||V!==P)&&(E(F),j(V))}}},[b,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(wq,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:on(e)}),g.createElement(Oq,{ref:O,axisType:d,events:h,fontSize:b,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(ZH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},g.createElement(sK,{label:e.label,labelRef:e.labelRef}),e.children)))}),E0=g.forwardRef((e,t)=>{var r=Hr(e,ei);return g.createElement(Cq,Qa({},r,{ref:t}))});E0.displayName="CartesianAxis";var jq=["x1","y1","x2","y2","key"],_q=["offset"],Nq=["xAxisId","yAxisId"],Iq=["xAxisId","yAxisId"];function YE(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 y_(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=wf(r,jq),m=(i=on(h))!==null&&i!==void 0?i:{};m.offset;var y=wf(m,_q);n=g.createElement("line",Ca({},y,{x1:o,y1:s,x2:u,y2:d,fill:"none",key:f}))}return n}function Lq(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=wf(e,Nq),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(y_,{key:"line-".concat(f),option:i,lineItemProps:h})});return g.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function zq(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=wf(e,Iq),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(y_,{option:i,lineItemProps:h,key:"line-".concat(f)})});return g.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Fq(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(y=>Math.round(y+i-i)).sort((y,b)=>y-b);i!==h[0]&&h.unshift(0);var m=h.map((y,b)=>{var E=h[b+1],S=E==null,k=S?i+s-y:E-y;if(k<=0)return null;var P=b%t.length;return g.createElement("rect",{key:"react-".concat(b),y,x:n,height:k,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 Bq(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(y=>Math.round(y+o-o)).sort((y,b)=>y-b);o!==h[0]&&h.unshift(0);var m=h.map((y,b)=>{var E=h[b+1],S=E==null,k=S?o+u-y:E-y;if(k<=0)return null;var P=b%n.length;return g.createElement("rect",{key:"react-".concat(b),x:y,y:s,width:k,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 Uq=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,o=e.offset;return X2(k0(Xt(Xt(Xt({},ei),r),{},{ticks:Z2(r),viewBox:{x:0,y:0,width:n,height:i}})),o.left,o.left+o.width,t)},Wq=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,o=e.offset;return X2(k0(Xt(Xt(Xt({},ei),r),{},{ticks:Z2(r),viewBox:{x:0,y:0,width:n,height:i}})),o.top,o.top+o.height,t)},Hq={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:nr.grid};function g_(e){var t=oO(),r=lO(),n=aO(),i=Xt(Xt({},Hr(e,Hq)),{},{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,y=i.horizontalValues,b=i.verticalValues,E=gr(),S=Ee(F=>Xk(F,"xAxis",o,E)),k=Ee(F=>Xk(F,"yAxis",s,E));if(!jn(f)||!jn(h)||!be(u)||!be(d))return null;var P=i.verticalCoordinatesGenerator||Uq,j=i.horizontalCoordinatesGenerator||Wq,_=i.horizontalPoints,O=i.verticalPoints;if((!_||!_.length)&&typeof j=="function"){var N=y&&y.length,C=j({yAxis:k?Xt(Xt({},k),{},{ticks:N?y:k.ticks}):void 0,width:t??f,height:r??h,offset:n},N?!0:m);Vd(Array.isArray(C),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof C,"]")),Array.isArray(C)&&(_=C)}if((!O||!O.length)&&typeof P=="function"){var R=b&&b.length,z=P({xAxis:S?Xt(Xt({},S),{},{ticks:R?b:S.ticks}):void 0,width:t??f,height:r??h,offset:n},R?!0:m);Vd(Array.isArray(z),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof z,"]")),Array.isArray(z)&&(O=z)}return g.createElement(di,{zIndex:i.zIndex},g.createElement("g",{className:"recharts-cartesian-grid"},g.createElement($q,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),g.createElement(Fq,Ca({},i,{horizontalPoints:_})),g.createElement(Bq,Ca({},i,{verticalPoints:O})),g.createElement(Lq,Ca({},i,{offset:n,horizontalPoints:_,xAxis:S,yAxis:k})),g.createElement(zq,Ca({},i,{offset:n,verticalPoints:O,xAxis:S,yAxis:k}))))}g_.displayName="CartesianGrid";var Kq={},x_=Jt({name:"errorBars",initialState:Kq,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=x_.actions;P0.addErrorBar;P0.replaceErrorBar;P0.removeErrorBar;var Vq=x_.reducer;function b_(e,t){var r,n,i=Ee(f=>si(f,e)),o=Ee(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 qq(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=S0(),o=b_(t,r),s=o.needClipX,u=o.needClipY,d=o.needClip,f=Ee(_=>ij(_,t,!1)),h=Ee(_=>aj(_,r,!1));if(!d||!i)return null;var m=i.x,y=i.y,b=i.width,E=i.height,S=s&&f?Math.min(f[0],f[1]):m-b/2,k=u&&h?Math.min(h[0],h[1]):y-E/2,P=s&&f?Math.abs(f[1]-f[0]):b*2,j=u&&h?Math.abs(h[1]-h[0]):E*2;return g.createElement("clipPath",{id:"clipPath-".concat(n)},g.createElement("rect",{x:S,y:k,width:P,height:j}))}function Gq(e){var t=Lf(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:c_}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:c_}var w_=(e,t,r)=>hj(e,"xAxis",A0(e,t),r),S_=(e,t,r)=>fj(e,"xAxis",A0(e,t),r),k_=(e,t,r)=>hj(e,"yAxis",O0(e,t),r),E_=(e,t,r)=>fj(e,"yAxis",O0(e,t),r),Yq=H([ot,w_,k_,S_,E_],(e,t,r,n,i)=>Mn(e,"xAxis")?Kd(t,n,!1):Kd(r,i,!1)),Qq=(e,t)=>t,P_=H([IC,Qq],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),A_=e=>{var t=ot(e),r=Mn(t,"xAxis");return r?"yAxis":"xAxis"},Xq=(e,t)=>{var r=A_(e);return r==="yAxis"?O0(e,t):A0(e,t)},Zq=(e,t,r)=>UC(e,A_(e),Xq(e,t),r),Jq=H([P_,Zq],(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]])}}}),eG=H([ot,w_,k_,S_,E_,Jq,E6,Yq,P_,B6],(e,t,r,n,i,o,s,u,d,f)=>{var h=s.chartData,m=s.dataStartIndex,y=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 b=d.data,E;if(b&&b.length>0?E=b:E=h==null?void 0:h.slice(m,y+1),E!=null)return AG({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:m,areaSettings:d,stackedData:o,displayedData:E,chartBaseValue:f,bandSize:u})}}),tG=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],rG=["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"?[wl(wl({},r.next),{},{x:Yn(r.prev.x,r.next.x,t),y:Yn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),C_={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:b0,animationInterpolateFn:pG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:lG,xAxisId:0,yAxisId:0,zIndex:nr.area};function kf(e,t){return e&&e!=="none"?e:t}var mG=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:kf(n,i),value:J2(r,t),payload:e}]},vG=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:Pl,settings:{stroke:n,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:J2(s,t),hide:u,type:f,color:kf(n,o),unit:d,graphicalItemId:h}};return g.createElement(CK,{tooltipEntrySettings:m})});function yG(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(yV,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:u,needClip:i,clipPathId:t})}function gG(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 wl(wl({},d),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return g.createElement(hK,{value:t?i:void 0},r)}function xG(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,y=o.connectNulls,b=o.isRange,E=o.shape,S=o.id,k=O_(o,sG),P=Br(k),j=wl(wl({},P),{},{id:S,points:t,connectNulls:y,type:h,baseLine:r,layout:f,stroke:m,isRange:b,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(OK,{option:E,DefaultShape:C_.shape,shapeProps:j})),g.createElement(yG,{points:t,props:k,clipPathId:i}))}function bG(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Yn(n,e,r)}if(Ut(e)||On(e)){var i=be(t)?t:void 0;return Yn(i,0,r)}return e}function wG(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,y=n.animationMatchBy,b=n.animationInterpolateFn,E=g.useMemo(()=>({points:s,baseLine:u}),[s,u]),S=l_(E,o),k=hg(),P=KK(n.onAnimationStart,n.onAnimationEnd),j=P.isAnimating,_=P.handleAnimationStart,O=P.handleAnimationEnd,N=S.startValue;if(k==null)return null;var C;return Array.isArray(u)&&Array.isArray(N)?C=Ey(N,u,y):Array.isArray(u)?C=Ey(null,u,y):C=null,g.createElement(VK,{animationInput:E,animationIdPrefix:"recharts-area-",items:s,previousItemsRef:i,isAnimationActive:d,animationBegin:f,animationDuration:h,animationEasing:m,onAnimationStart:_,onAnimationEnd:O,animationInterpolateFn:b,animationMatchBy:y,layout:k},(R,z,F)=>{var V;return z===1?V=u:Array.isArray(u)?V=b(C,z,k):V=F?u:bG(u,N,z),S.syncStepValue(V,z),g.createElement(gG,{showLabels:!j,points:s},n.children,g.createElement(xG,{points:R,baseLine:V,needClip:t,clipPathId:r,props:n,animationElapsedTime:z,isAnimating:j||z<1,isEntrance:F}),g.createElement(vK,{label:n.label}))})}function SG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=g.useRef(null),o=g.useRef();return g.createElement(wG,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:o})}class kG 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,y=t.height,b=t.id,E=t.baseLine,S=t.zIndex;if(r)return null;var k=Qe("recharts-area",o),P=b,j=Gq(n),_=j.r,O=j.strokeWidth,N=a_(n),C=_*2+O,R=d?"url(#clipPath-".concat(N?"":"dots-").concat(P,")"):void 0;return g.createElement(di,{zIndex:S},g.createElement(Ur,{className:k},d&&g.createElement("defs",null,g.createElement(qq,{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:y+C}))),g.createElement(SG,{needClip:d,clipPathId:P,props:this.props})),g.createElement(UE,{points:i,mainColor:kf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:R}),this.props.isRange&&Array.isArray(E)&&g.createElement(UE,{points:E,mainColor:kf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:R}))}}function EG(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,y=e.legendType,b=e.stroke,E=e.xAxisId,S=e.yAxisId,k=O_(e,uG),P=Al(),j=Rj(),_=b_(E,S),O=_.needClip,N=gr(),C=(t=Ee(le=>eG(le,e.id,N)))!==null&&t!==void 0?t:{},R=C.points,z=C.isRange,F=C.baseLine,V=S0();if(P!=="horizontal"&&P!=="vertical"||V==null||j!=="AreaChart"&&j!=="ComposedChart")return null;var Q=V.height,B=V.width,ue=V.x,G=V.y;return!R||!R.length?null:g.createElement(kG,Sf({},k,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:o,baseLine:F,connectNulls:s,dot:u,fill:d,fillOpacity:f,height:Q,hide:h,layout:P,isAnimationActive:m,isRange:z,legendType:y,needClip:O,points:R,stroke:b,width:B,left:ue,top:G,xAxisId:E,yAxisId:S}))}var PG=(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 AG(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,y=e.xAxisTicks,b=e.yAxisTicks,E=e.bandSize,S=o&&o.length,k=PG(s,u,n,d,f),P=s==="horizontal",j=!1,_=h.map((N,C)=>{var R,z,F,V;if(S)V=o[m+C];else{var Q=Nt(N,i);Array.isArray(Q)?(V=Q,j=!0):V=[k,Q]}var B=(R=(z=V)===null||z===void 0?void 0:z[1])!==null&&R!==void 0?R:null,ue=B==null||S&&!r&&Nt(N,i)==null;if(P){var G;return{x:Vw({axis:d,ticks:y,bandSize:E,entry:N,index:C}),y:ue?null:(G=f.scale.map(B))!==null&&G!==void 0?G:null,value:V,payload:N}}return{x:ue?null:(F=d.scale.map(B))!==null&&F!==void 0?F:null,y:Vw({axis:f,ticks:b,bandSize:E,entry:N,index:C}),value:V,payload:N}}),O;return S||j?O=_.map(N=>{var C,R=Array.isArray(N.value)?N.value[0]:null;if(P){var z;return{x:N.x,y:R!=null&&N.y!=null&&(z=f.scale.map(R))!==null&&z!==void 0?z:null,payload:N.payload}}return{x:R!=null&&(C=d.scale.map(R))!==null&&C!==void 0?C:null,y:N.y,payload:N.payload}}):O=P?f.scale.map(k):d.scale.map(k),{points:_,baseLine:O??0,isRange:j}}function OG(e){var t=Hr(e,C_),r=gr();return g.createElement(tV,{id:t.id,type:"area"},n=>g.createElement(g.Fragment,null,g.createElement(jK,{legendPayload:mG(t)}),g.createElement(vG,{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(sV,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:c4(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),g.createElement(EG,Sf({},t,{id:n}))))}var j_=g.memo(OG,oh);j_.displayName="Area";var CG=["domain","range"],jG=["domain","range"];function ZE(e,t){if(e==null)return{};var r,n,i=_G(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(s!=null)return tP(tP({},o),{},{type:s})},[o,s]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(SV(u)):r.current!==u&&t(kV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(EV(r.current)),r.current=null)},[t]),null}var zG=e=>{var t=e.xAxisId,r=e.className,n=Ee(tO),i=gr(),o="xAxis",s=Ee(y=>dj(y,o,t,i)),u=Ee(y=>x7(y,t)),d=Ee(y=>P7(y,t)),f=Ee(y=>CC(y,t));if(u==null||d==null||f==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=Ay(e,IG);f.id,f.scale;var m=Ay(f,MG);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}))},FG={allowDataOverflow:St.allowDataOverflow,allowDecimals:St.allowDecimals,allowDuplicatedCategory:St.allowDuplicatedCategory,angle:St.angle,axisLine:ei.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:ei.tickLine,tickSize:ei.tickSize,type:St.type,niceTicks:St.niceTicks,xAxisId:0},BG=e=>{var t=Hr(e,FG);return g.createElement(g.Fragment,null,g.createElement(LG,{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(zG,t))},N_=g.memo(BG,__);N_.displayName="XAxis";var UG=["type"],WG=["dangerouslySetInnerHTML","ticks","scale"],HG=["id","scale"];function Oy(){return Oy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return nP(nP({},o),{},{type:s})},[s,o]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(PV(u)):r.current!==u&&t(AV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(OV(r.current)),r.current=null)},[t]),null}function QG(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,o=g.useRef(null),s=g.useRef(null),u=Ee(tO),d=gr(),f=xt(),h="yAxis",m=Ee(P=>C7(P,t)),y=Ee(P=>O7(P,t)),b=Ee(P=>dj(P,h,t,d)),E=Ee(P=>jC(P,t));if(g.useLayoutEffect(()=>{if(!(n!=="auto"||!m||x0(i)||g.isValidElement(i)||E==null)){var P=o.current;if(P){var j=P.getCalculatedWidth();Math.round(m.width)!==Math.round(j)&&f(CV({id:t,width:j}))}}},[b,m,f,i,t,n,E]),m==null||y==null||E==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var S=Cy(e,WG);E.id,E.scale;var k=Cy(E,HG);return g.createElement(E0,Oy({},S,k,{ref:o,labelRef:s,x:y.x,y:y.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:b,axisType:h,axisId:t}))}var XG={allowDataOverflow:kt.allowDataOverflow,allowDecimals:kt.allowDecimals,allowDuplicatedCategory:kt.allowDuplicatedCategory,angle:kt.angle,axisLine:ei.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:ei.tickLine,tickSize:ei.tickSize,type:kt.type,niceTicks:kt.niceTicks,width:kt.width,yAxisId:0},ZG=e=>{var t=Hr(e,XG);return g.createElement(g.Fragment,null,g.createElement(YG,{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(QG,t))},I_=g.memo(ZG,__);I_.displayName="YAxis";var JG=(e,t)=>t,C0=H([JG,ot,WO,Mt,_j,ci,Q9,Ht],nW);function eY(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function j0(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(eY(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 M_=Cr("mouseClick"),T_=Eu();T_.startListening({actionCreator:M_,effect:(e,t)=>{var r=e.payload,n=C0(t.getState(),j0(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(W7({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var jy=Cr("mouseMove"),D_=Eu(),Lo=null,ya=null,dv=null;D_.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"));Lo!==null&&(cancelAnimationFrame(Lo),Lo=null),ya!==null&&(typeof o!="number"||!u)&&(clearTimeout(ya),ya=null),dv=j0(r);var d=()=>{var f=t.getState(),h=$u(f,f.tooltip.settings.shared);if(!dv){Lo=null,ya=null;return}if(h==="axis"){var m=C0(f,dv);(m==null?void 0:m.activeIndex)!=null?t.dispatch(bj({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(xj())}Lo=null,ya=null};if(!u){d();return}o==="raf"?Lo=requestAnimationFrame(d):typeof o=="number"&&ya===null&&(ya=setTimeout(d,o))}});function tY(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 iP={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},R_=Jt({name:"rootProps",initialState:iP,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:iP.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}}}),rY=R_.reducer,nY=R_.actions.updateOptions,iY=null,aY={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)},$_=Jt({name:"polarOptions",initialState:iY,reducers:aY});$_.actions.updatePolarOptions;var oY=$_.reducer,L_=Cr("keyDown"),z_=Cr("focus"),F_=Cr("blur"),Ah=Eu(),zo=null,ga=null,yd=null;Ah.startListening({actionCreator:L_,effect:(e,t)=>{yd=e.payload,zo!==null&&(cancelAnimationFrame(zo),zo=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=yd;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var y=Us(h,Ya(d),xl(d),bl(d)),b=y==null?-1:Number(y),E=!Number.isFinite(b)||b<0,S=ci(d),k=Ya(d),P=$u(d,d.tooltip.settings.shared);if(m==="Enter"){if(E)return;var j=yf(d,P,"hover",String(h.index));t.dispatch(vf({active:!h.active,activeIndex:h.index,activeCoordinate:j}));return}var _=M7(d),O=_==="left-to-right"?1:-1,N=m==="ArrowRight"?1:-1,C;if(E){var R=xl(d),z=bl(d),F=N*O,V=le=>({active:!1,index:String(le),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(C=-1,F>0){for(var Q=0;Q=0;B--)if(Us(V(B),k,R,z)!=null){C=B;break}if(C<0)return}else{C=b+N*O;var ue=(S==null?void 0:S.length)||k.length;if(ue===0||C>=ue||C<0)return}var G=yf(d,P,"hover",String(C));t.dispatch(vf({active:!0,activeIndex:C.toString(),activeCoordinate:G}))}finally{zo=null,ga=null}};if(!s){u();return}i==="raf"?zo=requestAnimationFrame(u):typeof i=="number"&&ga===null&&(u(),yd=null,ga=setTimeout(()=>{yd?u():(ga=null,zo=null)},i))}});Ah.startListening({actionCreator:z_,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=$u(r,r.tooltip.settings.shared),u=yf(r,s,"hover",String(o));t.dispatch(vf({active:!0,activeIndex:o,activeCoordinate:u}))}}}});Ah.startListening({actionCreator:F_,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(vf({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function B_(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"),U_=Eu(),gd=new Map,Rs=new Map,fv=new Map;U_.startListening({actionCreator:Rr,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var o=i.type,s=B_(i);fv.set(o,{handler:n,reactEvent:s});var u=gd.get(o);u!==void 0&&(cancelAnimationFrame(u),gd.delete(o));var d=t.getState(),f=d.eventSettings,h=f.throttleDelay,m=f.throttledEvents,y=m,b=y==="all"||(y==null?void 0:y.includes(o)),E=Rs.get(o);E!==void 0&&(typeof h!="number"||!b)&&(clearTimeout(E),Rs.delete(o));var S=()=>{var j=fv.get(o);try{if(!j)return;var _=j.handler,O=j.reactEvent,N=t.getState(),C={activeCoordinate:D9(N),activeDataKey:I9(N),activeIndex:cu(N),activeLabel:Mj(N),activeTooltipIndex:cu(N),isTooltipActive:R9(N)};_&&_(C,O)}finally{gd.delete(o),Rs.delete(o),fv.delete(o)}};if(!b){S();return}if(h==="raf"){var k=requestAnimationFrame(S);gd.set(o,k)}else if(typeof h=="number"){if(!Rs.has(o)){S();var P=setTimeout(S,h);Rs.set(o,P)}}else S()}}});var lY=H([Tl],e=>e.tooltipItemPayloads),sY=H([lY,(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)}}}),W_=Cr("touchMove"),H_=Eu(),xa=null,Ti=null,aP=null,$s=null;H_.startListening({actionCreator:W_,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){$s=B_(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),aP=Array.from(r.touches).map(f=>j0({clientX:f.clientX,clientY:f.clientY,currentTarget:r.currentTarget}));var d=()=>{if($s!=null){var f=t.getState(),h=$u(f,f.tooltip.settings.shared);if(h==="axis"){var m,y=(m=aP)===null||m===void 0?void 0:m[0];if(y==null){xa=null,Ti=null;return}var b=C0(f,y);(b==null?void 0:b.activeIndex)!=null&&t.dispatch(bj({activeIndex:b.activeIndex,activeDataKey:void 0,activeCoordinate:b.activeCoordinate}))}else if(h==="item"){var E,S=$s.touches[0];if(document.elementFromPoint==null||S==null)return;var k=document.elementFromPoint(S.clientX,S.clientY);if(!k||!k.getAttribute)return;var P=k.getAttribute(y4),j=(E=k.getAttribute(g4))!==null&&E!==void 0?E:void 0,_=to(f).find(C=>C.id===j);if(P==null||_==null||j==null)return;var O=_.dataKey,N=sY(f,P,j);t.dispatch(U7({activeDataKey:O,activeIndex:P,activeCoordinate:N,activeGraphicalItemId:j}))}xa=null,Ti=null}};if(!u){d();return}o==="raf"?xa=requestAnimationFrame(d):typeof o=="number"&&Ti===null&&(d(),$s=null,Ti=setTimeout(()=>{$s?d():(Ti=null,xa=null)},o))}}});var K_={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},V_=Jt({name:"eventSettings",initialState:K_,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),uY=V_.actions.setEventSettings,cY=V_.reducer,dY=S2({brush:LV,cartesianAxis:jV,chartData:TW,errorBars:Vq,eventSettings:cY,graphicalItems:oV,layout:t4,legend:mz,options:jW,polarAxis:gK,polarOptions:oY,referenceElements:UV,renderedTicks:cq,rootProps:rY,tooltip:H7,zIndex:vW}),fY=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return AL({reducer:dY,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([T_.middleware,D_.middleware,Ah.middleware,U_.middleware,H_.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat($2({type:"raf"}))},devTools:{serialize:{replacer:tY},name:"recharts-".concat(r)}})};function hY(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=fY(t,n));var s=ig;return g.createElement(Nz,{context:s,store:o.current},r)}function pY(e){var t=e.layout,r=e.margin,n=xt(),i=gr();return g.useEffect(()=>{i||(n(ZL(t)),n(XL(r)))},[n,i,t,r]),null}var mY=g.memo(pY,oh);function vY(e){var t=xt();return g.useEffect(()=>{t(nY(e))},[t,e]),null}var yY=e=>{var t=xt();return g.useEffect(()=>{t(uY(e))},[t,e]),null},gY=g.memo(yY,oh);function oP(e){var t=e.zIndex,r=e.isPanorama,n=g.useRef(null),i=xt();return g.useLayoutEffect(()=>(n.current&&i(pW({zIndex:t,element:n.current,isPanorama:r})),()=>{i(mW({zIndex:t,isPanorama:r}))}),[i,t,r]),g.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function lP(e){var t=e.children,r=e.isPanorama,n=Ee(aW);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(oP,{key:s,zIndex:s,isPanorama:r})),t,o.map(s=>g.createElement(oP,{key:s,zIndex:s,isPanorama:r})))}var xY=["children"];function bY(e,t){if(e==null)return{};var r,n,i=wY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=oO(),n=lO(),i=yO();if(!jn(r)||!jn(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(FA,Ef({},s,{title:u,desc:d,role:h,tabIndex:f,width:r,height:n,style:SY,ref:t}),o)}),EY=e=>{var t=e.children,r=Ee(th);if(!r)return null;var n=r.width,i=r.height,o=r.y,s=r.x;return g.createElement(FA,{width:n,height:i,x:s,y:o},t)},sP=g.forwardRef((e,t)=>{var r=e.children,n=bY(e,xY),i=gr();return i?g.createElement(EY,null,g.createElement(lP,{isPanorama:!0},r)):g.createElement(kY,Ef({ref:t},n),g.createElement(lP,{isPanorama:!1},r))});function PY(e,t){return jY(e)||CY(e,t)||OY(e,t)||AY()}function AY(){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 OY(e,t){if(e){if(typeof e=="string")return uP(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)?uP(e,t):void 0}}function uP(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(e4(u))}},[n,e,o]),i}function cP(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 NY(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(WW(),null);function Af(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var FY=g.forwardRef((e,t)=>{var r,n,i=g.useRef(null),o=g.useState({containerWidth:Af((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:Af((n=e.style)===null||n===void 0?void 0:n.height)}),s=Pf(o,2),u=s[0],d=s[1],f=g.useCallback((m,y)=>{d(b=>{var E=Math.round(m),S=Math.round(y);return b.containerWidth===E&&b.containerHeight===S?b:{containerWidth:E,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 y=m.getBoundingClientRect(),b=y.width,E=y.height;f(b,E);var S=P=>{var j=P[0];if(j!=null){var _=j.contentRect,O=_.width,N=_.height;f(O,N)}},k=new ResizeObserver(S);k.observe(m),i.current=k}},[t,f]);return g.useEffect(()=>()=>{var m=i.current;m!=null&&m.disconnect()},[f]),g.createElement(g.Fragment,null,g.createElement(Au,{width:u.containerWidth,height:u.containerHeight}),g.createElement("div",Zi({ref:h},e)))}),BY=g.forwardRef((e,t)=>{var r=e.width,n=e.height,i=g.useState({containerWidth:Af(r),containerHeight:Af(n)}),o=Pf(i,2),s=o[0],u=o[1],d=g.useCallback((h,m)=>{u(y=>{var b=Math.round(h),E=Math.round(m);return y.containerWidth===b&&y.containerHeight===E?y:{containerWidth:b,containerHeight:E}})},[]),f=g.useCallback(h=>{if(typeof t=="function"&&t(h),h!=null){var m=h.getBoundingClientRect(),y=m.width,b=m.height;d(y,b)}},[t,d]);return g.createElement(g.Fragment,null,g.createElement(Au,{width:s.containerWidth,height:s.containerHeight}),g.createElement("div",Zi({ref:f},e)))}),UY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return g.createElement(g.Fragment,null,g.createElement(Au,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))}),WY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?g.createElement(BY,Zi({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?g.createElement(UY,Zi({},e,{width:r,height:n,ref:t})):g.createElement(g.Fragment,null,g.createElement(Au,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))});function HY(e){return e?FY:WY}var KY=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,y=e.onMouseUp,b=e.onTouchEnd,E=e.onTouchMove,S=e.onTouchStart,k=e.style,P=e.width,j=e.responsive,_=e.dispatchTouchEvents,O=_===void 0?!0:_,N=g.useRef(null),C=xt(),R=g.useState(null),z=Pf(R,2),F=z[0],V=z[1],Q=g.useState(null),B=Pf(Q,2),ue=B[0],G=B[1],le=_Y(),fe=dg(),de=(fe==null?void 0:fe.width)>0?fe.width:P,Y=(fe==null?void 0:fe.height)>0?fe.height:i,ae=g.useCallback(Pe=>{le(Pe),typeof t=="function"&&t(Pe),V(Pe),G(Pe),Pe!=null&&(N.current=Pe)},[le,t,V,G]),X=g.useCallback(Pe=>{C(M_(Pe)),C(Rr({handler:o,reactEvent:Pe}))},[C,o]),M=g.useCallback(Pe=>{C(jy(Pe)),C(Rr({handler:f,reactEvent:Pe}))},[C,f]),T=g.useCallback(Pe=>{C(xj()),C(Rr({handler:h,reactEvent:Pe}))},[C,h]),Z=g.useCallback(Pe=>{C(jy(Pe)),C(Rr({handler:m,reactEvent:Pe}))},[C,m]),se=g.useCallback(()=>{C(z_())},[C]),te=g.useCallback(()=>{C(F_())},[C]),ce=g.useCallback(Pe=>{C(L_(Pe.key))},[C]),ye=g.useCallback(Pe=>{C(Rr({handler:s,reactEvent:Pe}))},[C,s]),_e=g.useCallback(Pe=>{C(Rr({handler:u,reactEvent:Pe}))},[C,u]),J=g.useCallback(Pe=>{C(Rr({handler:d,reactEvent:Pe}))},[C,d]),we=g.useCallback(Pe=>{C(Rr({handler:y,reactEvent:Pe}))},[C,y]),Ae=g.useCallback(Pe=>{C(Rr({handler:S,reactEvent:Pe}))},[C,S]),ne=g.useCallback(Pe=>{O&&C(W_(Pe)),C(Rr({handler:E,reactEvent:Pe}))},[C,O,E]),lt=g.useCallback(Pe=>{C(Rr({handler:b,reactEvent:Pe}))},[C,b]),$e=HY(j);return g.createElement(Bj.Provider,{value:F},g.createElement(a5.Provider,{value:ue},g.createElement($e,{width:de??(k==null?void 0:k.width),height:Y??(k==null?void 0:k.height),className:Qe("recharts-wrapper",n),style:NY({position:"relative",cursor:"default",width:de,height:Y},k),onClick:X,onContextMenu:ye,onDoubleClick:_e,onFocus:se,onBlur:te,onKeyDown:ce,onMouseDown:J,onMouseEnter:M,onMouseLeave:T,onMouseMove:Z,onMouseUp:we,onTouchEnd:lt,onTouchMove:ne,onTouchStart:Ae,ref:ae},g.createElement(zY,null),r)))}),VY=["width","height","responsive","children","className","style","compact","title","desc"];function qY(e,t){if(e==null)return{};var r,n,i=GY(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=qY(e,VY),y=on(m);return d?g.createElement(g.Fragment,null,g.createElement(Au,{width:r,height:n}),g.createElement(sP,{otherAttributes:y,title:f,desc:h},o)):g.createElement(KY,{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(sP,{otherAttributes:y,title:f,desc:h,ref:t},g.createElement(YV,null,o)))});function _y(){return _y=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.createElement(rQ,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:nQ,tooltipPayloadSearcher:OW,categoricalChartProps:e,ref:t}));const aQ="rgba(130,130,150,0.14)",hP="rgba(130,130,150,0.85)";function oQ(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 q_(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function lQ({active:e,payload:t,unit:r}){return!e||!(t!=null&&t.length)?null:x.jsx("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:x.jsx("div",{className:"space-y-1",children:t.map(n=>x.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:n.color}}),x.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:n.name}),x.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:q_(n.value,r)})]},n.dataKey))})})}function G_({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176}){const o=e.reduce((u,d)=>t.reduce((f,h)=>Math.max(f,Number(d[h.key])||0),u),0),s=n==="percent"?Math.min(100,Math.max(25,Math.ceil(o*1.2/25)*25)):Math.max(oQ(o*1.15),10);return x.jsx("div",{style:{height:i},className:"w-full",children:x.jsx(X4,{width:"100%",height:"100%",children:x.jsxs(iQ,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[x.jsx("defs",{children:t.map(u=>x.jsxs("linearGradient",{id:`grad-${u.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[x.jsx("stop",{offset:"0%",stopColor:u.color,stopOpacity:.22}),x.jsx("stop",{offset:"100%",stopColor:u.color,stopOpacity:0})]},u.key))}),x.jsx(g_,{vertical:!1,stroke:aQ}),x.jsx(N_,{dataKey:"t",hide:!0}),x.jsx(I_,{domain:[0,s],ticks:[0,s/2,s],tickFormatter:u=>q_(u,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:hP}}),x.jsx(rH,{content:x.jsx(lQ,{unit:r}),cursor:{stroke:hP,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(u=>x.jsx(j_,{type:"monotone",dataKey:u.key,name:u.label,stroke:u.color,strokeWidth:2,fill:`url(#grad-${u.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},u.key))]})})})}const sQ=[{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 uQ(){var s,u,d,f;const{sys:e,hist:t}=G3(),r=!!(e!=null&&e.gpu&&e.gpu.busy_percent!=null&&e.gpu.gtt_used!=null&&e.gpu.gtt_total!=null),n=sQ.filter(h=>h.key!=="gpu"||r),i={cpu:(s=e==null?void 0:e.cpu)==null?void 0:s.percent,ram:(u=e==null?void 0:e.ram)==null?void 0:u.percent,gpu:r?e.gpu.busy_percent:null,disk:(d=e==null?void 0:e.disk)==null?void 0:d.percent},o={cpu:(f=e==null?void 0:e.cpu)!=null&&f.cores?`${e.cpu.cores} Cores`:"",ram:e?`${No(e.ram.used)}/${No(e.ram.total)} GB`:"",gpu:r?`${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 x.jsxs("div",{className:"flex flex-col justify-between mc-card p-5",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[x.jsx(UP,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"System-Status"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),e?x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"mb-2 grid grid-cols-2 gap-x-4 gap-y-1.5",children:n.map(h=>x.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:h.color}}),x.jsx("span",{className:"shrink-0 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:h.label}),x.jsxs("span",{className:"shrink-0 font-mono text-xs font-bold tabular-nums text-foreground",children:[Math.round(i[h.key]??0),"%"]}),o[h.key]&&x.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/60",children:o[h.key]})]},h.key))}),x.jsx(G_,{data:t,series:n,unit:"%",yMode:"percent",height:176})]}):x.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)&&x.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&&x.jsxs("span",{children:["CPU Temp: ",e.temp.cpu," °C"]}),e.temp.gpu!=null&&x.jsxs("span",{children:["GPU Temp: ",e.temp.gpu," °C"]})]})]})}const pP=[{key:"prompt",label:"Prompt",color:"#f59e0b"},{key:"completion",label:"Antwort",color:"#2dd4bf"}];function cQ(){const{data:e}=TA(),t=B3(),r=t[t.length-1],n=r?Math.round(r.prompt+r.completion):0;return x.jsxs("div",{className:"mc-card p-5",children:[x.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(VM,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Token-Durchsatz"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),e&&x.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[x.jsx("span",{className:"font-space text-3xl font-bold tracking-tight text-foreground tabular-nums",children:n.toLocaleString("de-DE")}),x.jsx("span",{className:"text-xs text-muted-foreground",children:"tok/s aktuell"})]}),e&&x.jsxs("div",{className:"mt-0.5 space-y-0.5 font-mono text-[11px] text-muted-foreground/70",children:[x.jsxs("div",{children:[e.total_tokens.toLocaleString("de-DE")," Tokens gesamt · ",x.jsxs("span",{className:"text-emerald-400/90",children:[e.saved_eur.toLocaleString("de-DE",{minimumFractionDigits:2})," € gespart"]})]}),x.jsxs("div",{className:"text-muted-foreground/55",children:["Input ",e.prompt_tokens.toLocaleString("de-DE")," · Output ",e.completion_tokens.toLocaleString("de-DE")]})]})]}),x.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1.5 pt-1",children:pP.map(i=>x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),x.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:i.label}),x.jsx("span",{className:"font-mono text-xs font-bold tabular-nums text-foreground",children:Math.round((r==null?void 0:r[i.key])??0)})]},i.key))})]}),e?x.jsx(G_,{data:t,series:pP,unit:" tok/s",yMode:"auto",height:150}):x.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:"Lade Durchsatz…"}),x.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 Sl=[{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"}],ja=e=>e==null?"–":`${(e/1e3).toLocaleString("de-DE",{minimumFractionDigits:1,maximumFractionDigits:1})} s`;function dQ(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 Ny(e){return Sl.reduce((t,r)=>t+(e[r.key]??0),0)}function fQ(e){let t=null;for(const r of Sl){const n=e[r.key];n!=null&&(t==null||n>t.ms)&&(t={label:r.label,color:r.color,ms:n})}return t}function hQ({t:e,scale:t}){const r=Sl.map(n=>`${n.label} ${ja(e[n.key])}`).join(" · ")+(e.mem0_ms!=null?` (davon Mem0 ${ja(e.mem0_ms)})`:"");return x.jsxs("div",{className:"flex items-center gap-2.5",children:[x.jsx("span",{className:"w-14 shrink-0 text-right font-mono text-[10px] text-muted-foreground/60",children:dQ(e.ts)}),x.jsxs("div",{className:"relative h-4 flex-1 overflow-hidden rounded-sm bg-muted/25",title:r,children:[x.jsx("div",{className:"absolute inset-0 flex",children:Sl.map(n=>{const i=e[n.key];return!i||i<=0?null:x.jsx("div",{style:{width:`${i/t*100}%`,background:n.color},className:"h-full first:rounded-l-sm"},n.key)})}),e.error&&x.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-rose-500/15 text-[10px] font-semibold text-rose-300",children:"Fehler"})]}),x.jsx("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] font-semibold tabular-nums text-foreground",children:e.error?"–":ja(Ny(e))})]})}function pQ(){const{data:e}=E3(12),t=e??[],r=Math.max(1,...t.map(o=>Ny(o))),n=t[0],i=n?fQ(n):null;return x.jsxs("div",{className:"mc-card p-5",children:[x.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(oT,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Latenz je Turn"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),n?x.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[x.jsx("span",{className:`font-space text-3xl font-bold tracking-tight tabular-nums ${n.error?"text-rose-400":"text-foreground"}`,children:n.error?"Fehler":ja(Ny(n))}),x.jsxs("span",{className:"text-xs text-muted-foreground",children:["letzter Turn",!n.error&&i&&x.jsxs(x.Fragment,{children:[" · Täter: ",x.jsx("span",{style:{color:i.color},className:"font-semibold",children:i.label})," ",ja(i.ms)]})]})]}):x.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:"Noch kein Voice-Turn aufgezeichnet."}),n&&!n.error&&x.jsxs("div",{className:"mt-0.5 font-mono text-[11px] text-muted-foreground/70",children:[Sl.filter(o=>n[o.key]!=null).map(o=>`${o.label} ${ja(n[o.key])}`).join(" · "),n.mem0_ms!=null&&x.jsxs("span",{className:"text-muted-foreground/50",children:[" · davon Mem0 ",ja(n.mem0_ms)]})]})]}),x.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1 pt-1",children:Sl.map(o=>x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:o.color}}),x.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:o.label})]},o.key))})]}),t.length>0?x.jsx("div",{className:"space-y-1.5",children:t.map(o=>x.jsx(hQ,{t:o,scale:r},o.id))}):x.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."}),x.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 Of=e=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:e}}));function mQ({onNavigate:e}){var de,Y,ae,X;const{data:t}=MA(),{data:r}=Qy(),{data:n}=DA(),{data:i}=C3(),{data:o}=A3(),{data:s}=O3(),{data:u}=x3(),{data:d}=b3(),f=W3(),{showAlert:h,dialogElement:m}=Yy(),y=xu(),[b,E]=g.useState({});async function S(M,T){E(Z=>({...Z,[M]:!0}));try{if(T.kind==="loadModel")await Me(`/api/models/${encodeURIComponent(T.model)}/load`,{method:"POST"});else{const Z=await Me("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:T.service})});Z.ok||h("Reparatur nicht ganz geklappt",(Z.err||"Unbekannter Fehler")+(T.needsSudo?` + +Tipp: Dafür wird evtl. das Box-Passwort gebraucht (oben rechts hinterlegen).`:""))}y.invalidateQueries({queryKey:De.health}),y.invalidateQueries({queryKey:De.services}),y.invalidateQueries({queryKey:De.models})}catch(Z){h("Reparatur fehlgeschlagen",String((Z==null?void 0:Z.message)||Z))}finally{E(Z=>({...Z,[M]:!1}))}}const k=((de=t==null?void 0:t.running)==null?void 0:de.length)??0,P=(r==null?void 0:r.services.filter(M=>M.ok).length)??0,j=(r==null?void 0:r.services.length)??0,_=j-P,O=(i==null?void 0:i.length)??0,N=(n?(n.os>0?1:0)+(n.engine>0?1:0)+(n.swap>0?1:0)+(n.models>0?1:0):0)+(((Y=n==null?void 0:n.components)==null?void 0:Y.filter(M=>M.update===!0).length)??0),C=u!=null&&u.available?u.open_count:0,R=d!=null&&d.available?d.items.filter(M=>M.status==="blocked").length:0,z=s?[s.gateway,s.memory,s.desktop_gateway]:[],F=z.filter(M=>M==null?void 0:M.ok).length,V=s?s.gateway.ok?s.memory.ok?s.desktop_gateway.ok?"":"Desktop-Gateway":"Gedächtnis-Leitung":"Modell-Leitung":"",Q=(ae=t==null?void 0:t.models)==null?void 0:ae.find(M=>M.role==="hermes"),B=Q!=null&&Q.name?(X=Q.name.split("/").pop())==null?void 0:X.replace(/\.gguf$/i,""):"",ue=i?i.filter(M=>["auto","agent","hermes"].includes(M.source)).length:0,G=r==null?void 0:r.services.filter(M=>!M.ok).map(M=>M.name).join(", "),le=n?[n.os>0&&"OS",n.engine>0&&"Engine",n.swap>0&&"Swap",n.models>0&&"Modelle"].filter(Boolean):[],fe=le.length>0?le.join(" + "):"";return x.jsxs("div",{className:"space-y-6",children:[x.jsxs("div",{children:[x.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"}),x.jsx("p",{className:"text-sm text-muted-foreground",children:"Deine Box auf einen Blick — Details hinter jeder Kachel."})]}),x.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 items-start",children:[x.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[x.jsx(vQ,{verdict:f.verdict,memory:f.memory,warns:f.warns,problems:f.problems}),x.jsx(V3,{}),x.jsxs("section",{children:[x.jsx(xd,{children:"Leistung"}),x.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[x.jsx(uQ,{}),x.jsx(cQ,{})]}),x.jsx("div",{className:"mt-4",children:x.jsx(pQ,{})})]}),x.jsxs("section",{children:[x.jsx(xd,{children:"Bereiche"}),x.jsxs("div",{className:"grid gap-4 grid-cols-2 md:grid-cols-3",children:[x.jsx(Io,{icon:Fy,title:"Auftragsbuch",value:u!=null&&u.available?C:"—",unit:C===1?"Vorschlag":"Vorschläge",tone:u?R>0||C>0?"warn":"ok":"loading",hint:R>0?`${R} Karte${R===1?"":"n"} wartet auf deine Antwort`:C>0?`${C} offene Patches`:"Keine ausstehenden Vorschläge",onClick:()=>e("auftraege")}),x.jsx(Io,{icon:FP,title:"Modelle",value:k,unit:"warm",tone:k>0?"ok":"muted",hint:B?`Hirn: ${B}`:"Kein Hermes-Modell geladen",onClick:()=>e("models")}),x.jsx(Io,{icon:zy,title:"Gedächtnis",value:i?O:"…",unit:"Notizen",tone:i?"ok":"loading",hint:i?`${O} Fakten (${ue} auto gelernt)`:"Gedächtnis-Pool laden...",onClick:()=>e("memory")}),x.jsx(Io,{icon:Nf,title:"Dienste",value:r?`${P}/${j}`:"…",unit:"laufen",tone:r?_>0?"warn":"ok":"loading",hint:G?`Ausfall: ${G}`:"Alle Dienste online",onClick:()=>Of("maintenance")}),x.jsx(Io,{icon:Uy,title:"Updates",value:n?N>0?N:"0":"…",unit:N>0?"bereit":"aktuell",tone:n?N>0?"warn":"ok":"loading",hint:N>0?`Verfügbar: ${fe}`:"Alles auf dem neuesten Stand",onClick:()=>Of("maintenance")}),x.jsx(Io,{icon:By,title:"Verbinden",value:s?`${F}/${z.length}`:"…",unit:"Leitungen",tone:s?F===z.length?"ok":"warn":"loading",hint:V?`Gestört: ${V}`:"Hermes Desktop & IDEs bereit",onClick:()=>e("connect")})]})]})]}),x.jsxs("div",{className:"space-y-6",children:[x.jsx(yQ,{problems:f.problems,pendingCount:N,openAuftraege:C,blockedIdeen:R,busy:b,onRepair:S,onNavigate:e}),x.jsxs("section",{children:[x.jsx(xd,{children:"Anstehendes"}),x.jsx(q3,{})]}),x.jsxs("section",{children:[x.jsx(xd,{children:"Werkzeuge & Diagnose"}),x.jsx(gQ,{agent:o,svcErrors:_,onNavigate:e})]})]})]}),m]})}function xd({children:e}){return x.jsx("p",{className:"mb-2 ml-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:e})}function vQ({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:_f,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:uT,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 x.jsxs("div",{className:Re("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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border/40 bg-background/30",children:x.jsx(u,{className:Re("h-6 w-6",s.iconCls)})}),x.jsxs("div",{className:"min-w-0",children:[x.jsx("h2",{className:"text-base font-bold tracking-tight text-foreground",children:s.title}),x.jsx("p",{className:"text-xs text-muted-foreground",children:s.sub})]})]}),x.jsxs("div",{className:"w-full max-w-[16rem] rounded-xl border border-border/30 bg-background/20 p-3",children:[x.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[x.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",children:[x.jsx(sT,{className:"h-3.5 w-3.5"})," Speicher"]}),x.jsx("span",{className:Re("font-mono font-bold",d),children:t.status==="unknown"?"—":`${t.usedGb.toFixed(1)} / ${t.totalGb.toFixed(1)} GB`})]}),x.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:x.jsx("div",{className:Re("h-full rounded-full transition-all duration-500",f),style:{width:`${t.pct}%`}})})]})]})}function yQ({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 x.jsx("div",{className:"h-full flex flex-col justify-between",children:h?x.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-4 h-full",children:[x.jsx(XM,{className:"h-5 w-5 shrink-0 text-emerald-400"}),x.jsxs("div",{children:[x.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu tun"}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Alles läuft. Du musst gerade nichts abnicken."})]})]}):x.jsxs("div",{className:"space-y-2 h-full flex flex-col justify-center",children:[e.map(m=>x.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:[x.jsxs("div",{className:"flex min-w-0 items-center gap-3 w-full",children:[x.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:x.jsx(m.icon,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{className:"min-w-0 flex-1",children:[x.jsx("p",{className:"text-sm font-bold text-foreground",children:m.label}),x.jsx("p",{className:"truncate text-xs text-muted-foreground",children:m.detail})]})]}),m.repair&&x.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]?x.jsx(_f,{className:"h-3.5 w-3.5 animate-spin"}):x.jsx(PT,{className:"h-3.5 w-3.5"}),m.repair.label]})]},m.id)),f&&x.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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.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:x.jsx(BP,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{children:[x.jsxs("p",{className:"text-sm font-bold text-foreground",children:[n," Karte",n===1?"":"n"," braucht deine Antwort"]}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Die Box hängt an einer Frage und wartet auf dich."})]})]}),x.jsx(Ko,{className:"h-4 w-4 shrink-0 text-red-300/70"})]}),d&&x.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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.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:x.jsx(Fy,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{children:[x.jsxs("p",{className:"text-sm font-bold text-foreground",children:[r," Vorschl",r===1?"ag":"äge"," im Auftragsbuch"]}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Annehmen oder ablehnen."})]})]}),x.jsx(Ko,{className:"h-4 w-4 shrink-0 text-primary/70"})]}),u&&x.jsxs("button",{onClick:()=>Of("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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.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:x.jsx(Uy,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{children:[x.jsxs("p",{className:"text-sm font-bold text-foreground",children:[t," Update",t===1?"":"s"," bereit"]}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Ansehen und entscheiden."})]})]}),x.jsx(Ko,{className:"h-4 w-4 shrink-0 text-amber-300/70"})]})]})})}function gQ({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:"Direkte Box-Shell (SSH)",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:()=>Of("logs")},{label:"Interaktives Terminal",status:"Öffnen",tone:"muted",action:()=>r("konsole")},{label:"Wissens-Vault",status:"Öffnen",tone:"muted",action:()=>r("wissen")},{label:"Chronik & Zeitmaschine",status:"Öffnen",tone:"muted",action:()=>r("chronik")}];return x.jsx("div",{className:"rounded-2xl border border-border/60 bg-card/30 p-4 space-y-3 shadow-sm",children:x.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 x.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:[x.jsx("span",{className:"text-muted-foreground group-hover:text-foreground transition-colors font-medium",children:i.label}),x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx("span",{className:Re("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}),x.jsx("span",{className:Re("h-1.5 w-1.5 rounded-full",s)})]})]},o)})})})}const xQ=g.lazy(()=>In(()=>import("./ModelsView-CWjoBiDg.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.ModelsView}))),bQ=g.lazy(()=>In(()=>import("./ConnectView-CGf1mhQH.js"),__vite__mapDeps([3,4,5,6])).then(e=>({default:e.ConnectView}))),wQ=g.lazy(()=>In(()=>import("./MemoryView-C9JTzWkR.js"),__vite__mapDeps([7,6,8,9])).then(e=>({default:e.MemoryView}))),SQ=g.lazy(()=>In(()=>import("./AgentView-CjuMXU9t.js"),[]).then(e=>({default:e.AgentView}))),kQ=g.lazy(()=>In(()=>import("./KonsoleView-DSiLxOtM.js"),[]).then(e=>({default:e.KonsoleView}))),EQ=g.lazy(()=>In(()=>import("./GuideView-CYlY1Sku.js"),__vite__mapDeps([10,9,2,11])).then(e=>({default:e.GuideView}))),PQ=g.lazy(()=>In(()=>import("./AuftragsbuchView-BKC3af8o.js"),__vite__mapDeps([12,11,8])).then(e=>({default:e.AuftragsbuchView}))),AQ=g.lazy(()=>In(()=>import("./ChronikView-B6sTtHYw.js"),__vite__mapDeps([13,1])).then(e=>({default:e.ChronikView}))),OQ=g.lazy(()=>In(()=>import("./EigenlebenView-UQ_NPXNm.js"),__vite__mapDeps([14,9,5])).then(e=>({default:e.EigenlebenView}))),CQ=g.lazy(()=>In(()=>import("./WissenView-Pm0MoK-1.js"),__vite__mapDeps([15,4])).then(e=>({default:e.WissenView})));function jQ(){return x.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:x.jsx(_f,{className:"h-5 w-5 animate-spin","aria-label":"Lädt …"})})}const _Q=/Mac|iPhone|iPad/.test(navigator.platform);function NQ(){U3(),g3();const[e,t]=g.useState(()=>{const S=window.location.hash.slice(1);return qo.some(k=>k.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:y}=IA(),{data:b}=$f();g.useEffect(()=>{document.documentElement.classList.add("dark")},[]),g.useEffect(()=>{const S=k=>{var j;h(((j=k.detail)==null?void 0:j.tab)||"maintenance"),d(!0)};return window.addEventListener("open-system-drawer",S),()=>window.removeEventListener("open-system-drawer",S)},[]),g.useEffect(()=>{const S=k=>{var j;const P=(j=k.detail)==null?void 0:j.view;P&&r(P)};return window.addEventListener("mc-navigate",S),()=>window.removeEventListener("mc-navigate",S)},[r]),g.useEffect(()=>{const S=()=>{const k=window.location.hash.slice(1);qo.some(P=>P.id===k)&&t(k)};return window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)},[]),g.useEffect(()=>{s(!1)},[e]);const E=qo.find(S=>S.id===e);return x.jsxs("div",{className:"flex h-full relative",children:[x.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(", ")}}),x.jsx(MR,{onNavigate:r}),x.jsx($3,{open:u,onClose:()=>d(!1),defaultTab:f}),x.jsx("aside",{className:Re("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:x.jsx(mP,{collapsed:n,onToggleCollapse:()=>{i(S=>{const k=!S;return localStorage.setItem("mc_sidebar_collapsed",k.toString()),k})},view:e,health:m,backendDown:y,sysStatus:b})}),x.jsxs("div",{className:Re("md:hidden fixed inset-0 z-50 transition-opacity duration-200",o?"opacity-100":"pointer-events-none opacity-0"),"aria-hidden":!o,children:[x.jsx("div",{className:"absolute inset-0 bg-black/60",onClick:()=>s(!1)}),x.jsx("aside",{className:Re("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:x.jsx(mP,{collapsed:!1,onClose:()=>s(!1),view:e,health:m,backendDown:y,sysStatus:b})})]}),x.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[x.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:[x.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[x.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:x.jsx(pT,{className:"h-5 w-5","aria-hidden":"true"})}),x.jsx("div",{className:"truncate text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:E.hint})]}),x.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[x.jsx(m3,{}),x.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"}),x.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:[x.jsx(nT,{className:"h-3.5 w-3.5"}),x.jsx("span",{className:"hidden sm:inline",children:"Suchen"}),x.jsx("kbd",{className:"hidden sm:inline rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:_Q?"⌘K":"Strg+K"})]})]})]}),x.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6 scrollbar-thin",children:x.jsxs(g.Suspense,{fallback:x.jsx(jQ,{}),children:[e==="dashboard"&&x.jsx(mQ,{onNavigate:S=>r(S)}),e==="auftraege"&&x.jsx(PQ,{}),e==="models"&&x.jsx(xQ,{}),e==="connect"&&x.jsx(bQ,{}),e==="memory"&&x.jsx(wQ,{}),e==="wissen"&&x.jsx(CQ,{}),e==="chronik"&&x.jsx(AQ,{}),e==="eigenleben"&&x.jsx(OQ,{}),e==="agent"&&x.jsx(SQ,{}),e==="konsole"&&x.jsx(kQ,{}),e==="guide"&&x.jsx(EQ,{})]})})]})]})}function mP({collapsed:e,onToggleCollapse:t,onClose:r,view:n,health:i,backendDown:o,sysStatus:s}){var u,d,f,h,m;return x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:Re("flex items-center py-4 border-b border-border/40 shrink-0",e?"flex-col gap-3 px-2":"justify-between px-5"),children:[x.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[x.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!e&&x.jsxs("div",{className:"leading-tight",children:[x.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),x.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),t&&x.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?x.jsx(Ko,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(JM,{className:"h-4 w-4","aria-hidden":"true"})}),r&&x.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:x.jsx(bu,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:(()=>{let y=null;return qo.map(b=>{const E=b.group!==y;return y=b.group,x.jsxs("div",{className:"space-y-1",children:[E&&(e?y!==qo[0].group&&x.jsx("div",{className:"my-3 border-t border-border/30"}):x.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:b.group})),x.jsxs("a",{href:`#${b.id}`,onClick:r,"aria-current":n===b.id?"page":void 0,className:Re("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===b.id?e?"nav-active-collapsed":"nav-active":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:e?b.label:void 0,"aria-label":e?b.label:void 0,children:[x.jsx(b.icon,{className:"h-4.5 w-4.5 shrink-0","aria-hidden":"true"}),!e&&x.jsx("span",{className:"truncate",children:b.label})]})]},b.id)})})()}),x.jsx("div",{className:Re("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",e?"px-2 text-center":"px-5"),children:e?x.jsx("div",{className:"flex justify-center",children:x.jsx("span",{className:Re("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"})}):x.jsxs("div",{className:"space-y-2 text-left",children:[o?x.jsxs("span",{className:"flex items-center gap-2 text-red-400",children:[x.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500 animate-pulse"}),x.jsx("span",{className:"truncate",children:"Zentrale antwortet nicht"})]}):i?x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:"flex items-center gap-2",children:[x.jsx("span",{className:Re("h-2 w-2 rounded-full animate-pulse",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),x.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"]})]}),i.brain&&!i.brain.ready&&x.jsxs("span",{className:"flex items-center gap-2 text-amber-400",title:`Agent-Hirn '${i.brain.model??"fast"}' lädt nicht/abgestürzt`,children:[x.jsx("span",{className:"h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),x.jsxs("span",{className:"truncate",children:["Hirn offline",i.brain.model?` (${i.brain.model})`:""]})]})]}):x.jsxs("span",{className:"flex items-center gap-2",children:[x.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",x.jsx("span",{className:"truncate",children:"Backend offline"})]}),(s==null?void 0:s.versions)&&x.jsxs("div",{className:"space-y-1 text-[9px] text-muted-foreground/60 mt-2 pt-2 border-t border-border/30",children:[x.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:[x.jsx("strong",{children:"MC2:"})," ",s.versions.mc2?`${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""}`:"—"]}),x.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:[x.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())||"—"]}),x.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:[x.jsx("strong",{children:"Hermes Agent:"})," ",s.versions.hermes_agent?`${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""}`:"—"]})]})]})})]})}class IQ extends Ty.Component{constructor(){super(...arguments);ws(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?x.jsx("div",{className:"min-h-screen flex items-center justify-center bg-neutral-950 text-neutral-200 p-8",children:x.jsxs("div",{className:"max-w-lg space-y-4 text-center",children:[x.jsx("div",{className:"text-2xl",children:"Da ist etwas schiefgelaufen."}),x.jsx("div",{className:"text-sm text-neutral-400 break-all",children:this.state.error.message}),x.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 MQ=new CM({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});rM.createRoot(document.getElementById("root")).render(x.jsx(Ty.StrictMode,{children:x.jsx(IQ,{children:x.jsx(jM,{client:MQ,children:x.jsx(NQ,{})})})}));export{DQ as $,ET as A,zy as B,XM as C,ZM as D,Ov as E,KQ as F,DA as G,sT as H,qQ as I,O3 as J,B1 as K,_f as L,Ko as M,eT as N,C3 as O,H1 as P,BQ as Q,kT as R,xT as S,Gs as T,HP as U,tT as V,Wy as W,bu as X,A3 as Y,iT as Z,In as _,P3 as a,jf as a0,VM as a1,PT as a2,ST as a3,Nf as a4,FP as a5,By as a6,oT as a7,x3 as a8,Vo as a9,b3 as aa,LQ as ab,BP as ac,Fy as ad,w3 as ae,cT as af,qM as ag,vT as ah,Uy as ai,uT as aj,S3 as ak,FQ as al,W1 as am,zQ as an,aT as ao,hT as ap,lf as aq,Ty as ar,su as as,Sk as at,M8 as au,Ng as av,hk as aw,fk as ax,My as ay,Yy as b,ke as c,YQ as d,Re as e,Mm as f,Me as g,WQ as h,$Q as i,x as j,GM as k,MA as l,UQ as m,$f as n,HQ as o,GQ as p,De as q,g as r,RQ as s,VQ as t,xu as u,No as v,RR as w,UP as x,yT as y,QQ as z}; diff --git a/frontend/dist/assets/index-BH760w1h.css b/frontend/dist/assets/index-BH760w1h.css new file mode 100644 index 0000000..438f20b --- /dev/null +++ b/frontend/dist/assets/index-BH760w1h.css @@ -0,0 +1 @@ +/*! 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-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-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-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--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-0{z-index:0}.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}.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-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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\.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-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-\[500px\]{height:500px}.h-\[calc\(100vh-8\.5rem\)\]{height:calc(100vh - 8.5rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-40{max-height:calc(var(--spacing) * 40)}.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-\[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-\[620px\]{min-height:620px}.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%}.w-screen{width:100vw}.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}.resize-none{resize:none}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.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)}: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-center{align-self:center}.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-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.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\/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\/15{border-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/15{border-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.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)}}.border-l-amber-500\/80{border-left-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.border-l-amber-500\/80{border-left-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.border-l-cyan-500\/80{border-left-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.border-l-cyan-500\/80{border-left-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.border-l-indigo-500\/80{border-left-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.border-l-indigo-500\/80{border-left-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.border-l-muted{border-left-color:hsl(var(--muted))}.border-l-violet-500\/80{border-left-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.border-l-violet-500\/80{border-left-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.bg-\[\#030712\]{background-color:#030712}.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\/10{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/10{background-color:color-mix(in oklab,hsl(var(--card)) 10%,transparent)}}.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\/50{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.bg-card\/60{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/60{background-color:color-mix(in oklab,hsl(var(--card)) 60%,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-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\/10{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,hsl(var(--muted)) 10%,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\/\[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\/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-violet-500\/\[0\.05\]{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-violet-500) 5%,transparent)}}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\/10{background-color:color-mix(in oklab,var(--color-zinc-500) 10%,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\.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-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-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-\[10\.5px\]{font-size:10.5px}.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\/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\/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\/75{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/75{color:color-mix(in oklab,hsl(var(--foreground)) 75%,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-300{color:var(--color-sky-300)}.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\/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-400{color:var(--color-violet-400)}.text-violet-400\/70{color:#a685ffb3}@supports (color:color-mix(in lab,red,red)){.text-violet-400\/70{color:color-mix(in oklab,var(--color-violet-400) 70%,transparent)}}.text-white{color:var(--color-white)}.text-zinc-400{color:var(--color-zinc-400)}.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)}}.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))}.\[color-scheme\:dark\]{color-scheme:dark}.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,)!important}.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}@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))}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.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-card\/75:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/75:hover{background-color:color-mix(in oklab,hsl(var(--card)) 75%,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-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-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-foreground:hover{color:hsl(var(--foreground))}.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\: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\: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\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:p-10{padding:calc(var(--spacing) * 10)}}@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-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\:absolute{position:absolute}.lg\:top-4{top:calc(var(--spacing) * 4)}.lg\:top-6{top:calc(var(--spacing) * 6)}.lg\:right-4{right:calc(var(--spacing) * 4)}.lg\:right-6{right:calc(var(--spacing) * 6)}.lg\:bottom-4{bottom:calc(var(--spacing) * 4)}.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:left-4{left:calc(var(--spacing) * 4)}.lg\:left-6{left:calc(var(--spacing) * 6)}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[calc\(100\%-2rem\)\]{height:calc(100% - 2rem)}.lg\:h-\[calc\(100\%-3rem\)\]{height:calc(100% - 3rem)}.lg\:w-40{width:calc(var(--spacing) * 40)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:w-80{width:calc(var(--spacing) * 80)}.lg\:w-96{width:calc(var(--spacing) * 96)}.lg\:flex-none{flex:none}.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}.lg\:rounded-xl{border-radius:var(--radius-xl)}.lg\:border{border-style:var(--tw-border-style);border-width:1px}.lg\:border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.lg\:border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.lg\:bg-background\/65{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.lg\:bg-background\/65{background-color:color-mix(in oklab,hsl(var(--background)) 65%,transparent)}}.lg\:p-4{padding:calc(var(--spacing) * 4)}.lg\: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)}.lg\:shadow-black\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab,red,red)){.lg\:shadow-black\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.lg\: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,)}}}: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-Cq_BqGQa.css b/frontend/dist/assets/index-Cq_BqGQa.css deleted file mode 100644 index 9dfad5b..0000000 --- a/frontend/dist/assets/index-Cq_BqGQa.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-300-normal.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-300-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-300-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-400-normal.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-500-normal.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-600-normal.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-ext-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-cyrillic-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-ext-700-normal.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-greek-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-vietnamese-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-ext-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/inter/files/inter-latin-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-600-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-600-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-vietnamese-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-ext-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-700-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-700-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-ext-400-normal.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-ext-500-normal.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-cyrillic-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-greek-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-vietnamese-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-ext-500-normal.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(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-500-normal.woff2)format("woff2"),url(../../../../../../../../../../../../../F:/Coding\ Stuff/mission-control-2/frontend/node_modules/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-500-normal.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-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-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-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--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-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[99\]{z-index:99}.col-span-full{grid-column:1/-1}.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}.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-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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\.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-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-\[500px\]{height:500px}.h-\[calc\(100vh-8\.5rem\)\]{height:calc(100vh - 8.5rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-40{max-height:calc(var(--spacing) * 40)}.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-\[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-\[90px\]{min-height:90px}.min-h-\[300px\]{min-height:300px}.min-h-\[620px\]{min-height:620px}.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%}.w-screen{width:100vw}.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-\[120px\]{max-width:120px}.max-w-\[250px\]{max-width:250px}.max-w-\[260px\]{max-width:260px}.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}.resize-none{resize:none}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.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-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * 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)}: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-center{align-self:center}.self-end{align-self:flex-end}.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-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.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\/15{border-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/15{border-color:color-mix(in oklab,var(--color-emerald-500) 15%,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-fuchsia-500\/40{border-color:#e12afb66}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/40{border-color:color-mix(in oklab,var(--color-fuchsia-500) 40%,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\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500) 30%,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\/45{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,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\/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\/15{border-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/15{border-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.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)}}.border-l-amber-500\/80{border-left-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.border-l-amber-500\/80{border-left-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.border-l-cyan-500\/80{border-left-color:#00b7d7cc}@supports (color:color-mix(in lab,red,red)){.border-l-cyan-500\/80{border-left-color:color-mix(in oklab,var(--color-cyan-500) 80%,transparent)}}.border-l-indigo-500\/80{border-left-color:#625fffcc}@supports (color:color-mix(in lab,red,red)){.border-l-indigo-500\/80{border-left-color:color-mix(in oklab,var(--color-indigo-500) 80%,transparent)}}.border-l-muted{border-left-color:hsl(var(--muted))}.border-l-violet-500\/80{border-left-color:#8d54ffcc}@supports (color:color-mix(in lab,red,red)){.border-l-violet-500\/80{border-left-color:color-mix(in oklab,var(--color-violet-500) 80%,transparent)}}.bg-\[\#030712\]{background-color:#030712}.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\/10{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/10{background-color:color-mix(in oklab,hsl(var(--card)) 10%,transparent)}}.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\/50{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,hsl(var(--card)) 50%,transparent)}}.bg-card\/60{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/60{background-color:color-mix(in oklab,hsl(var(--card)) 60%,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-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\/5{background-color:#625fff0d}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/5{background-color:color-mix(in oklab,var(--color-indigo-500) 5%,transparent)}}.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\/10{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,hsl(var(--muted)) 10%,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\/\[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\/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-violet-500\/\[0\.05\]{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-violet-500) 5%,transparent)}}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-500\/10{background-color:#71717b1a}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\/10{background-color:color-mix(in oklab,var(--color-zinc-500) 10%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-500);--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))}.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))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--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))}.from-purple-500{--tw-gradient-from:var(--color-purple-500);--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))}.from-teal-500{--tw-gradient-from:var(--color-teal-500);--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-blue-500{--tw-gradient-to:var(--color-blue-500);--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))}.to-emerald-500{--tw-gradient-to:var(--color-emerald-500);--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))}.to-pink-500{--tw-gradient-to:var(--color-pink-500);--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))}.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))}.to-sky-500{--tw-gradient-to:var(--color-sky-500);--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\.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)}.p-12{padding:calc(var(--spacing) * 12)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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)}.py-20{padding-block:calc(var(--spacing) * 20)}.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-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-\[10\.5px\]{font-size:10.5px}.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\/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\/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\/75{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/75{color:color-mix(in oklab,hsl(var(--foreground)) 75%,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\/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-300{color:var(--color-sky-300)}.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\/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-400{color:var(--color-violet-400)}.text-violet-400\/70{color:#a685ffb3}@supports (color:color-mix(in lab,red,red)){.text-violet-400\/70{color:color-mix(in oklab,var(--color-violet-400) 70%,transparent)}}.text-white{color:var(--color-white)}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\/95{color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.text-zinc-400{color:var(--color-zinc-400)}.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)}}.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))}.\[color-scheme\:dark\]{color-scheme:dark}.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\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 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-emerald-500\/5{--tw-shadow-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.shadow-emerald-500\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-500) 5%, 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)}}.shadow-red-500\/10{--tw-shadow-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.shadow-red-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 10%, 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,)!important}.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}@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))}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.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\/15:hover{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/15:hover{background-color:color-mix(in oklab,var(--color-amber-500) 15%,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-card\/75:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/75:hover{background-color:color-mix(in oklab,hsl(var(--card)) 75%,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-fuchsia-500\/20:hover{background-color:#e12afb33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-fuchsia-500\/20:hover{background-color:color-mix(in oklab,var(--color-fuchsia-500) 20%,transparent)}}.hover\:bg-indigo-500\/15:hover{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-indigo-500\/15:hover{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.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\/15:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/15:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,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-400:hover{background-color:var(--color-red-400)}.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-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-foreground:hover{color:hsl(var(--foreground))}.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\: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\: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\:max-w-\[400px\]{max-width:400px}.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\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:self-auto{align-self:auto}.sm\:p-10{padding:calc(var(--spacing) * 10)}}@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-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\:absolute{position:absolute}.lg\:top-4{top:calc(var(--spacing) * 4)}.lg\:top-6{top:calc(var(--spacing) * 6)}.lg\:right-4{right:calc(var(--spacing) * 4)}.lg\:right-6{right:calc(var(--spacing) * 6)}.lg\:bottom-4{bottom:calc(var(--spacing) * 4)}.lg\:bottom-6{bottom:calc(var(--spacing) * 6)}.lg\:left-4{left:calc(var(--spacing) * 4)}.lg\:left-6{left:calc(var(--spacing) * 6)}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-\[calc\(100\%-2rem\)\]{height:calc(100% - 2rem)}.lg\:h-\[calc\(100\%-3rem\)\]{height:calc(100% - 3rem)}.lg\:w-40{width:calc(var(--spacing) * 40)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:w-80{width:calc(var(--spacing) * 80)}.lg\:w-96{width:calc(var(--spacing) * 96)}.lg\:flex-none{flex:none}.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-6{grid-template-columns:repeat(6,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}.lg\:rounded-xl{border-radius:var(--radius-xl)}.lg\:border{border-style:var(--tw-border-style);border-width:1px}.lg\:border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.lg\:border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.lg\:bg-background\/65{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.lg\:bg-background\/65{background-color:color-mix(in oklab,hsl(var(--background)) 65%,transparent)}}.lg\:p-4{padding:calc(var(--spacing) * 4)}.lg\: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)}.lg\:shadow-black\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab,red,red)){.lg\:shadow-black\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.lg\: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,)}}}: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-DgTg5QdX.js b/frontend/dist/assets/index-DgTg5QdX.js deleted file mode 100644 index 5811ace..0000000 --- a/frontend/dist/assets/index-DgTg5QdX.js +++ /dev/null @@ -1,466 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelsView-DaM533fz.js","assets/zap-BX-39Xxr.js","assets/ConnectView-Bu447O4H.js","assets/folder-open-COXogvYR.js","assets/circle-x-ADu9dwvS.js","assets/copy-BdEWnHoH.js","assets/MemoryView-CetGZ7-5.js","assets/send-o-W_9aTj.js","assets/book-open-lYTKOEmg.js","assets/GuideView-CKYHqyIN.js","assets/lightbulb-D9Ggmjq-.js","assets/AuftragsbuchView-LJ3OIPGp.js","assets/EigenlebenView-IypEJ0BF.js","assets/WissenView-BIHIR-Sv.js"])))=>i.map(i=>d[i]); -var HI=Object.defineProperty;var v1=e=>{throw TypeError(e)};var KI=(e,t,r)=>t in e?HI(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Os=(e,t,r)=>KI(e,typeof t!="symbol"?t+"":t,r),xm=(e,t,r)=>t.has(e)||v1("Cannot "+r);var R=(e,t,r)=>(xm(e,t,"read from private field"),r?r.call(e):t.get(e)),_e=(e,t,r)=>t.has(e)?v1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),fe=(e,t,r,n)=>(xm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),$e=(e,t,r)=>(xm(e,t,"access private method"),r);var Qc=(e,t,r,n)=>({set _(i){fe(e,t,i,r)},get _(){return R(e,t,n)}});function VI(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 Dy(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var bm={exports:{}},Cs={},wm={exports:{}},Re={};/** - * @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 y1;function qI(){if(y1)return Re;y1=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($){return $===null||typeof $!="object"?null:($=m&&$[m]||$["@@iterator"],typeof $=="function"?$:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,S={};function E($,M,X){this.props=$,this.context=M,this.refs=S,this.updater=X||b}E.prototype.isReactComponent={},E.prototype.setState=function($,M){if(typeof $!="object"&&typeof $!="function"&&$!=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,$,M,"setState")},E.prototype.forceUpdate=function($){this.updater.enqueueForceUpdate(this,$,"forceUpdate")};function P(){}P.prototype=E.prototype;function C($,M,X){this.props=$,this.context=M,this.refs=S,this.updater=X||b}var _=C.prototype=new P;_.constructor=C,k(_,E.prototype),_.isPureReactComponent=!0;var O=Array.isArray,N=Object.prototype.hasOwnProperty,j={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function B($,M,X){var le,re={},ce=null,he=null;if(M!=null)for(le in M.ref!==void 0&&(he=M.ref),M.key!==void 0&&(ce=""+M.key),M)N.call(M,le)&&!D.hasOwnProperty(le)&&(re[le]=M[le]);var Pe=arguments.length-2;if(Pe===1)re.children=X;else if(1>>1,M=Y[$];if(0>>1;$i(re,Z))cei(he,re)?(Y[$]=he,Y[ce]=Z,$=ce):(Y[$]=re,Y[le]=Z,$=le);else if(cei(he,Z))Y[$]=he,Y[ce]=Z,$=ce;else break e}}return Q}function i(Y,Q){var Z=Y.sortIndex-Q.sortIndex;return Z!==0?Z:Y.id-Q.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,b=!1,k=!1,S=!1,E=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(Y){for(var Q=r(f);Q!==null;){if(Q.callback===null)n(f);else if(Q.startTime<=Y)n(f),Q.sortIndex=Q.expirationTime,t(d,Q);else break;Q=r(f)}}function O(Y){if(S=!1,_(Y),!k)if(r(d)!==null)k=!0,pe(N);else{var Q=r(f);Q!==null&&se(O,Q.startTime-Y)}}function N(Y,Q){k=!1,S&&(S=!1,P(B),B=-1),b=!0;var Z=v;try{for(_(Q),m=r(d);m!==null&&(!(m.expirationTime>Q)||Y&&!G());){var $=m.callback;if(typeof $=="function"){m.callback=null,v=m.priorityLevel;var M=$(m.expirationTime<=Q);Q=e.unstable_now(),typeof M=="function"?m.callback=M:m===r(d)&&n(d),_(Q)}else n(d);m=r(d)}if(m!==null)var X=!0;else{var le=r(f);le!==null&&se(O,le.startTime-Q),X=!1}return X}finally{m=null,v=Z,b=!1}}var j=!1,D=null,B=-1,F=5,z=-1;function G(){return!(e.unstable_now()-zY||125$?(Y.sortIndex=Z,t(f,Y),r(d)===null&&Y===r(f)&&(S?(P(B),B=-1):S=!0,se(O,Z-$))):(Y.sortIndex=M,t(d,Y),k||b||(k=!0,pe(N))),Y},e.unstable_shouldYield=G,e.unstable_wrapCallback=function(Y){var Q=v;return function(){var Z=v;v=Q;try{return Y.apply(this,arguments)}finally{v=Z}}}})(Em)),Em}var S1;function XI(){return S1||(S1=1,km.exports=QI()),km.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 k1;function ZI(){if(k1)return fr;k1=1;var e=Pl(),t=XI();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 b(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"||b(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,w,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=w,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 C(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,C);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,C);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,C);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 _(a,l,c,p){var y=E.hasOwnProperty(l)?E[l]:null;(y!==null?y.type!==0:p||!(2I||y[A]!==w[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{X=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?M(a):""}function re(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=le(a.type,!1),a;case 11:return a=le(a.type.render,!1),a;case 1:return a=le(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 j:return"Portal";case F:return"Profiler";case B:return"StrictMode";case ue:return"Suspense";case ae:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case G:return(a.displayName||"Context")+".Consumer";case z:return(a._context.displayName||"Context")+".Provider";case U:var l=a.render;return a=a.displayName,a||(a=l.displayName||l.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case ye:return l=a.displayName||null,l!==null?l:ce(a.type)||"Memo";case pe:l=a._payload,a=a._init;try{return ce(a(l))}catch{}}return null}function he(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===B?"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 Pe(a){switch(typeof a){case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function J(a){var l=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function we(a){var l=J(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,w=c.set;return Object.defineProperty(a,l,{configurable:!0,get:function(){return y.call(this)},set:function(A){p=""+A,w.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 Oe(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=J(a)?a.checked?"true":"false":a.value),a=p,a!==c?(l.setValue(a),!0):!1}function Ye(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 Be(a,l){var c=l.checked;return Z({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??a._wrapperState.initialChecked})}function Ae(a,l){var c=l.defaultValue==null?"":l.defaultValue,p=l.checked!=null?l.checked:l.defaultChecked;c=Pe(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 Pt(a,l){l=l.checked,l!=null&&_(a,"checked",l,!1)}function gr(a,l){Pt(a,l);var c=Pe(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")?zl(a,l.type,c):l.hasOwnProperty("defaultValue")&&zl(a,l.type,Pe(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(a.defaultChecked=!!l.defaultChecked)}function aa(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 zl(a,l,c){(l!=="number"||Ye(a.ownerDocument)!==a)&&(c==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c))}var hi=Array.isArray;function pi(a,l,c,p){if(a=a.options,l){l={};for(var y=0;y"+l.valueOf().toString()+"",l=Ze.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}});function Wl(a,l){if(l){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=l;return}}a.textContent=l}var Hl={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},G_=["Webkit","ms","Moz","O"];Object.keys(Hl).forEach(function(a){G_.forEach(function(l){l=l+a.charAt(0).toUpperCase()+a.substring(1),Hl[l]=Hl[a]})});function N0(a,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Hl.hasOwnProperty(a)&&Hl[a]?(""+l).trim():l+"px"}function I0(a,l){a=a.style;for(var c in l)if(l.hasOwnProperty(c)){var p=c.indexOf("--")===0,y=N0(c,l[c],p);c==="float"&&(c="cssFloat"),p?a.setProperty(c,y):a[c]=y}}var Y_=Z({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 Nh(a,l){if(l){if(Y_[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 Ih(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 Mh=null;function Th(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var Dh=null,ao=null,oo=null;function M0(a){if(a=fs(a)){if(typeof Dh!="function")throw Error(r(280));var l=a.stateNode;l&&(l=dc(l),Dh(a.stateNode,a.type,l))}}function T0(a){ao?oo?oo.push(a):oo=[a]:ao=a}function D0(){if(ao){var a=ao,l=oo;if(oo=ao=null,M0(a),l)for(a=0;a>>=0,a===0?32:31-(oN(a)/lN|0)|0}var qu=64,Gu=4194304;function Gl(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 Yu(a,l){var c=a.pendingLanes;if(c===0)return 0;var p=0,y=a.suspendedLanes,w=a.pingedLanes,A=c&268435455;if(A!==0){var I=A&~y;I!==0?p=Gl(I):(w&=A,w!==0&&(p=Gl(w)))}else A=c&~y,A!==0?p=Gl(A):w!==0&&(p=Gl(w));if(p===0)return 0;if(l!==0&&l!==p&&(l&y)===0&&(y=p&-p,w=l&-l,y>=w||y===16&&(w&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 Yl(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 dN(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=ns),ux=" ",cx=!1;function dx(a,l){switch(a){case"keyup":return zN.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fx(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var uo=!1;function BN(a,l){switch(a){case"compositionend":return fx(l);case"keypress":return l.which!==32?null:(cx=!0,ux);case"textInput":return a=l.data,a===ux&&cx?null:a;default:return null}}function UN(a,l){if(uo)return a==="compositionend"||!Jh&&dx(a,l)?(a=nx(),ec=qh=xi=null,uo=!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=xx(c)}}function wx(a,l){return a&&l?a===l?!0:a&&a.nodeType===3?!1:l&&l.nodeType===3?wx(a,l.parentNode):"contains"in a?a.contains(l):a.compareDocumentPosition?!!(a.compareDocumentPosition(l)&16):!1:!1}function Sx(){for(var a=window,l=Ye();l instanceof a.HTMLIFrameElement;){try{var c=typeof l.contentWindow.location.href=="string"}catch{c=!1}if(c)a=l.contentWindow;else break;l=Ye(a.document)}return l}function rp(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 XN(a){var l=Sx(),c=a.focusedElem,p=a.selectionRange;if(l!==c&&c&&c.ownerDocument&&wx(c.ownerDocument.documentElement,c)){if(p!==null&&rp(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,w=Math.min(p.start,y);p=p.end===void 0?w:Math.min(p.end,y),!a.extend&&w>p&&(y=p,p=w,w=y),y=bx(c,w);var A=bx(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(),w>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,co=null,np=null,ls=null,ip=!1;function kx(a,l,c){var p=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;ip||co==null||co!==Ye(p)||(p=co,"selectionStart"in p&&rp(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}),ls&&os(ls,p)||(ls=p,p=sc(np,"onSelect"),0vo||(a.current=vp[vo],vp[vo]=null,vo--)}function Qe(a,l){vo++,vp[vo]=a.current,a.current=l}var ki={},Kt=Si(ki),lr=Si(!1),sa=ki;function yo(a,l){var c=a.type.contextTypes;if(!c)return ki;var p=a.stateNode;if(p&&p.__reactInternalMemoizedUnmaskedChildContext===l)return p.__reactInternalMemoizedMaskedChildContext;var y={},w;for(w in c)y[w]=l[w];return p&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=l,a.__reactInternalMemoizedMaskedChildContext=y),y}function sr(a){return a=a.childContextTypes,a!=null}function fc(){et(lr),et(Kt)}function Lx(a,l,c){if(Kt.current!==ki)throw Error(r(168));Qe(Kt,l),Qe(lr,c)}function zx(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,he(a)||"Unknown",y));return Z({},c,p)}function hc(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||ki,sa=Kt.current,Qe(Kt,a),Qe(lr,lr.current),!0}function Fx(a,l,c){var p=a.stateNode;if(!p)throw Error(r(169));c?(a=zx(a,l,sa),p.__reactInternalMemoizedMergedChildContext=a,et(lr),et(Kt),Qe(Kt,a)):et(lr),Qe(lr,c)}var $n=null,pc=!1,yp=!1;function Bx(a){$n===null?$n=[a]:$n.push(a)}function uI(a){pc=!0,Bx(a)}function Ei(){if(!yp&&$n!==null){yp=!0;var a=0,l=Ve;try{var c=$n;for(Ve=1;a>=A,y-=A,Ln=1<<32-qr(l)+y|c<Ie?(Ct=je,je=null):Ct=je.sibling;var We=ee(W,je,K[Ie],oe);if(We===null){je===null&&(je=Ct);break}a&&je&&We.alternate===null&&l(W,je),L=w(We,L,Ie),Ce===null?Se=We:Ce.sibling=We,Ce=We,je=Ct}if(Ie===K.length)return c(W,je),it&&ca(W,Ie),Se;if(je===null){for(;IeIe?(Ct=je,je=null):Ct=je.sibling;var Mi=ee(W,je,We.value,oe);if(Mi===null){je===null&&(je=Ct);break}a&&je&&Mi.alternate===null&&l(W,je),L=w(Mi,L,Ie),Ce===null?Se=Mi:Ce.sibling=Mi,Ce=Mi,je=Ct}if(We.done)return c(W,je),it&&ca(W,Ie),Se;if(je===null){for(;!We.done;Ie++,We=K.next())We=ie(W,We.value,oe),We!==null&&(L=w(We,L,Ie),Ce===null?Se=We:Ce.sibling=We,Ce=We);return it&&ca(W,Ie),Se}for(je=p(W,je);!We.done;Ie++,We=K.next())We=de(je,W,Ie,We.value,oe),We!==null&&(a&&We.alternate!==null&&je.delete(We.key===null?Ie:We.key),L=w(We,L,Ie),Ce===null?Se=We:Ce.sibling=We,Ce=We);return a&&je.forEach(function(WI){return l(W,WI)}),it&&ca(W,Ie),Se}function mt(W,L,K,oe){if(typeof K=="object"&&K!==null&&K.type===D&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case N:e:{for(var Se=K.key,Ce=L;Ce!==null;){if(Ce.key===Se){if(Se=K.type,Se===D){if(Ce.tag===7){c(W,Ce.sibling),L=y(Ce,K.props.children),L.return=W,W=L;break e}}else if(Ce.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===pe&&qx(Se)===Ce.type){c(W,Ce.sibling),L=y(Ce,K.props),L.ref=hs(W,Ce,K),L.return=W,W=L;break e}c(W,Ce);break}else l(W,Ce);Ce=Ce.sibling}K.type===D?(L=ga(K.props.children,W.mode,oe,K.key),L.return=W,W=L):(oe=Uc(K.type,K.key,K.props,null,W.mode,oe),oe.ref=hs(W,L,K),oe.return=W,W=oe)}return A(W);case j:e:{for(Ce=K.key;L!==null;){if(L.key===Ce)if(L.tag===4&&L.stateNode.containerInfo===K.containerInfo&&L.stateNode.implementation===K.implementation){c(W,L.sibling),L=y(L,K.children||[]),L.return=W,W=L;break e}else{c(W,L);break}else l(W,L);L=L.sibling}L=pm(K,W.mode,oe),L.return=W,W=L}return A(W);case pe:return Ce=K._init,mt(W,L,Ce(K._payload),oe)}if(hi(K))return ge(W,L,K,oe);if(Q(K))return xe(W,L,K,oe);gc(W,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,L!==null&&L.tag===6?(c(W,L.sibling),L=y(L,K),L.return=W,W=L):(c(W,L),L=hm(K,W.mode,oe),L.return=W,W=L),A(W)):c(W,L)}return mt}var wo=Gx(!0),Yx=Gx(!1),xc=Si(null),bc=null,So=null,kp=null;function Ep(){kp=So=bc=null}function Pp(a){var l=xc.current;et(xc),a._currentValue=l}function Ap(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 ko(a,l){bc=a,kp=So=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(kp!==a)if(a={context:a,memoizedValue:l,next:null},So===null){if(bc===null)throw Error(r(308));So=a,bc.dependencies={lanes:0,firstContext:a}}else So=So.next=a;return l}var da=null;function Op(a){da===null?da=[a]:da.push(a)}function Qx(a,l,c,p){var y=l.interleaved;return y===null?(c.next=c,Op(l)):(c.next=y.next,y.next=c),l.interleaved=c,Fn(a,p)}function Fn(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 Pi=!1;function Cp(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Xx(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 Bn(a,l){return{eventTime:a,lane:l,tag:0,payload:null,callback:null,next:null}}function Ai(a,l,c){var p=a.updateQueue;if(p===null)return null;if(p=p.shared,(Ue&2)!==0){var y=p.pending;return y===null?l.next=l:(l.next=y.next,y.next=l),p.pending=l,Fn(a,c)}return y=p.interleaved,y===null?(l.next=l,Op(p)):(l.next=y.next,y.next=l),p.interleaved=l,Fn(a,c)}function wc(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,Uh(a,c)}}function Zx(a,l){var c=a.updateQueue,p=a.alternate;if(p!==null&&(p=p.updateQueue,c===p)){var y=null,w=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};w===null?y=w=A:w=w.next=A,c=c.next}while(c!==null);w===null?y=w=l:w=w.next=l}else y=w=l;c={baseState:p.baseState,firstBaseUpdate:y,lastBaseUpdate:w,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 Sc(a,l,c,p){var y=a.updateQueue;Pi=!1;var w=y.firstBaseUpdate,A=y.lastBaseUpdate,I=y.shared.pending;if(I!==null){y.shared.pending=null;var T=I,q=T.next;T.next=null,A===null?w=q:A.next=q,A=T;var te=a.alternate;te!==null&&(te=te.updateQueue,I=te.lastBaseUpdate,I!==A&&(I===null?te.firstBaseUpdate=q:I.next=q,te.lastBaseUpdate=T))}if(w!==null){var ie=y.baseState;A=0,te=q=T=null,I=w;do{var ee=I.lane,de=I.eventTime;if((p&ee)===ee){te!==null&&(te=te.next={eventTime:de,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var ge=a,xe=I;switch(ee=l,de=c,xe.tag){case 1:if(ge=xe.payload,typeof ge=="function"){ie=ge.call(de,ie,ee);break e}ie=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=xe.payload,ee=typeof ge=="function"?ge.call(de,ie,ee):ge,ee==null)break e;ie=Z({},ie,ee);break e;case 2:Pi=!0}}I.callback!==null&&I.lane!==0&&(a.flags|=64,ee=y.effects,ee===null?y.effects=[I]:ee.push(I))}else de={eventTime:de,lane:ee,tag:I.tag,payload:I.payload,callback:I.callback,next:null},te===null?(q=te=de,T=ie):te=te.next=de,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(te===null&&(T=ie),y.baseState=T,y.firstBaseUpdate=q,y.lastBaseUpdate=te,l=y.shared.interleaved,l!==null){y=l;do A|=y.lane,y=y.next;while(y!==l)}else w===null&&(y.shared.lanes=0);pa|=A,a.lanes=A,a.memoizedState=ie}}function Jx(a,l,c){if(a=l.effects,l.effects=null,a!==null)for(l=0;lc?c:4,a(!0);var p=Mp.transition;Mp.transition={};try{a(!1),l()}finally{Ve=c,Mp.transition=p}}function gb(){return Mr().memoizedState}function hI(a,l,c){var p=_i(a);if(c={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null},xb(a))bb(l,c);else if(c=Qx(a,l,c,p),c!==null){var y=er();Jr(c,a,p,y),wb(c,l,p)}}function pI(a,l,c){var p=_i(a),y={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null};if(xb(a))bb(l,y);else{var w=a.alternate;if(a.lanes===0&&(w===null||w.lanes===0)&&(w=l.lastRenderedReducer,w!==null))try{var A=l.lastRenderedState,I=w(A,c);if(y.hasEagerState=!0,y.eagerState=I,Gr(I,A)){var T=l.interleaved;T===null?(y.next=y,Op(l)):(y.next=T.next,T.next=y),l.interleaved=y;return}}catch{}finally{}c=Qx(a,l,y,p),c!==null&&(y=er(),Jr(c,a,p,y),wb(c,l,p))}}function xb(a){var l=a.alternate;return a===ut||l!==null&&l===ut}function bb(a,l){ys=Pc=!0;var c=a.pending;c===null?l.next=l:(l.next=c.next,c.next=l),a.pending=l}function wb(a,l,c){if((c&4194240)!==0){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Uh(a,c)}}var Cc={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},mI={readContext:Ir,useCallback:function(a,l){return hn().memoizedState=[a,l===void 0?null:l],a},useContext:Ir,useEffect:cb,useImperativeHandle:function(a,l,c){return c=c!=null?c.concat([a]):null,Ac(4194308,4,hb.bind(null,l,a),c)},useLayoutEffect:function(a,l){return Ac(4194308,4,a,l)},useInsertionEffect:function(a,l){return Ac(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=hI.bind(null,ut,a),[p.memoizedState,a]},useRef:function(a){var l=hn();return a={current:a},l.memoizedState=a},useState:sb,useDebugValue:Fp,useDeferredValue:function(a){return hn().memoizedState=a},useTransition:function(){var a=sb(!1),l=a[0];return a=fI.bind(null,a[1]),hn().memoizedState=a,[l,a]},useMutableSource:function(){},useSyncExternalStore:function(a,l,c){var p=ut,y=hn();if(it){if(c===void 0)throw Error(r(407));c=c()}else{if(c=l(),Ot===null)throw Error(r(349));(ha&30)!==0||nb(p,l,c)}y.memoizedState=c;var w={value:c,getSnapshot:l};return y.queue=w,cb(ab.bind(null,p,w,a),[a]),p.flags|=2048,bs(9,ib.bind(null,p,w,c,l),void 0,null),c},useId:function(){var a=hn(),l=Ot.identifierPrefix;if(it){var c=zn,p=Ln;c=(p&~(1<<32-qr(p)-1)).toString(32)+c,l=":"+l+"R"+c,c=gs++,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[ds]=p,Bb(a,l,!1,!1),l.stateNode=a;e:{switch(A=Ih(c,p),c){case"dialog":Je("cancel",a),Je("close",a),y=p;break;case"iframe":case"object":case"embed":Je("load",a),y=p;break;case"video":case"audio":for(y=0;yCo&&(l.flags|=128,p=!0,ws(w,!1),l.lanes=4194304)}else{if(!p)if(a=kc(A),a!==null){if(l.flags|=128,p=!0,c=a.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),ws(w,!0),w.tail===null&&w.tailMode==="hidden"&&!A.alternate&&!it)return qt(l),null}else 2*pt()-w.renderingStartTime>Co&&c!==1073741824&&(l.flags|=128,p=!0,ws(w,!1),l.lanes=4194304);w.isBackwards?(A.sibling=l.child,l.child=A):(c=w.last,c!==null?c.sibling=A:l.child=A,w.last=A)}return w.tail!==null?(l=w.tail,w.rendering=l,w.tail=l.sibling,w.renderingStartTime=pt(),l.sibling=null,c=st.current,Qe(st,p?c&1|2:c&1),l):(qt(l),null);case 22:case 23:return cm(),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 kI(a,l){switch(xp(l),l.tag){case 1:return sr(l.type)&&fc(),a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 3:return Eo(),et(lr),et(Kt),Ip(),a=l.flags,(a&65536)!==0&&(a&128)===0?(l.flags=a&-65537|128,l):null;case 5:return _p(l),null;case 13:if(et(st),a=l.memoizedState,a!==null&&a.dehydrated!==null){if(l.alternate===null)throw Error(r(340));bo()}return a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 19:return et(st),null;case 4:return Eo(),null;case 10:return Pp(l.type._context),null;case 22:case 23:return cm(),null;case 24:return null;default:return null}}var Ic=!1,Gt=!1,EI=typeof WeakSet=="function"?WeakSet:Set,me=null;function Ao(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 Zp(a,l,c){try{c()}catch(p){ct(a,l,p)}}var Hb=!1;function PI(a,l){if(cp=Zu,a=Sx(),rp(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,w=p.focusNode;p=p.focusOffset;try{c.nodeType,w.nodeType}catch{c=null;break e}var A=0,I=-1,T=-1,q=0,te=0,ie=a,ee=null;t:for(;;){for(var de;ie!==c||y!==0&&ie.nodeType!==3||(I=A+y),ie!==w||p!==0&&ie.nodeType!==3||(T=A+p),ie.nodeType===3&&(A+=ie.nodeValue.length),(de=ie.firstChild)!==null;)ee=ie,ie=de;for(;;){if(ie===a)break t;if(ee===c&&++q===y&&(I=A),ee===w&&++te===p&&(T=A),(de=ie.nextSibling)!==null)break;ie=ee,ee=ie.parentNode}ie=de}c=I===-1||T===-1?null:{start:I,end:T}}else c=null}c=c||{start:0,end:0}}else c=null;for(dp={focusedElem:a,selectionRange:c},Zu=!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,W=l.stateNode,L=W.getSnapshotBeforeUpdate(l.elementType===l.type?xe:Qr(l.type,xe),mt);W.__reactInternalSnapshotBeforeUpdate=L}break;case 3:var K=l.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.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=Hb,Hb=!1,ge}function Ss(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 w=y.destroy;y.destroy=void 0,w!==void 0&&Zp(l,c,w)}y=y.next}while(y!==p)}}function Mc(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 Jp(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 Kb(a){var l=a.alternate;l!==null&&(a.alternate=null,Kb(l)),a.child=null,a.deletions=null,a.sibling=null,a.tag===5&&(l=a.stateNode,l!==null&&(delete l[dn],delete l[ds],delete l[mp],delete l[lI],delete l[sI])),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 Vb(a){return a.tag===5||a.tag===3||a.tag===4}function qb(a){e:for(;;){for(;a.sibling===null;){if(a.return===null||Vb(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 em(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=cc));else if(p!==4&&(a=a.child,a!==null))for(em(a,l,c),a=a.sibling;a!==null;)em(a,l,c),a=a.sibling}function tm(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(tm(a,l,c),a=a.sibling;a!==null;)tm(a,l,c),a=a.sibling}var Dt=null,Xr=!1;function Oi(a,l,c){for(c=c.child;c!==null;)Gb(a,l,c),c=c.sibling}function Gb(a,l,c){if(cn&&typeof cn.onCommitFiberUnmount=="function")try{cn.onCommitFiberUnmount(Vu,c)}catch{}switch(c.tag){case 5:Gt||Ao(c,l);case 6:var p=Dt,y=Xr;Dt=null,Oi(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?pp(a.parentNode,c):a.nodeType===1&&pp(a,c),es(a)):pp(Dt,c.stateNode));break;case 4:p=Dt,y=Xr,Dt=c.stateNode.containerInfo,Xr=!0,Oi(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 w=y,A=w.destroy;w=w.tag,A!==void 0&&((w&2)!==0||(w&4)!==0)&&Zp(c,l,A),y=y.next}while(y!==p)}Oi(a,l,c);break;case 1:if(!Gt&&(Ao(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)}Oi(a,l,c);break;case 21:Oi(a,l,c);break;case 22:c.mode&1?(Gt=(p=Gt)||c.memoizedState!==null,Oi(a,l,c),Gt=p):Oi(a,l,c);break;default:Oi(a,l,c)}}function Yb(a){var l=a.updateQueue;if(l!==null){a.updateQueue=null;var c=a.stateNode;c===null&&(c=a.stateNode=new EI),l.forEach(function(p){var y=TI.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&=~w}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*OI(p/1960))-p,10a?16:a,ji===null)var p=!1;else{if(a=ji,ji=null,Lc=0,(Ue&6)!==0)throw Error(r(331));var y=Ue;for(Ue|=4,me=a.current;me!==null;){var w=me,A=w.child;if((me.flags&16)!==0){var I=w.deletions;if(I!==null){for(var T=0;Tpt()-im?va(a,0):nm|=c),dr(a,l)}function s1(a,l){l===0&&((a.mode&1)===0?l=1:(l=Gu,Gu<<=1,(Gu&130023424)===0&&(Gu=4194304)));var c=er();a=Fn(a,l),a!==null&&(Yl(a,l,c),dr(a,c))}function MI(a){var l=a.memoizedState,c=0;l!==null&&(c=l.retryLane),s1(a,c)}function TI(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),s1(a,c)}var u1;u1=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,wI(a,l,c);ur=(a.flags&131072)!==0}else ur=!1,it&&(l.flags&1048576)!==0&&Ux(l,vc,l.index);switch(l.lanes=0,l.tag){case 2:var p=l.type;Nc(a,l),a=l.pendingProps;var y=yo(l,Kt.current);ko(l,c),y=Dp(null,l,p,a,y,c);var w=Rp();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)?(w=!0,hc(l)):w=!1,l.memoizedState=y.state!==null&&y.state!==void 0?y.state:null,Cp(l),y.updater=jc,l.stateNode=y,y._reactInternals=l,Up(l,p,a,c),l=Vp(null,l,p,!0,w,c)):(l.tag=0,it&&w&&gp(l),Jt(null,l,y,c),l=l.child),l;case 16:p=l.elementType;e:{switch(Nc(a,l),a=l.pendingProps,y=p._init,p=y(p._payload),l.type=p,y=l.tag=RI(p),a=Qr(p,a),y){case 0:l=Kp(null,l,p,a,c);break e;case 1:l=Db(null,l,p,a,c);break e;case 11:l=_b(null,l,p,a,c);break e;case 14:l=Nb(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),Kp(a,l,p,y,c);case 1:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Db(a,l,p,y,c);case 3:e:{if(Rb(l),a===null)throw Error(r(387));p=l.pendingProps,w=l.memoizedState,y=w.element,Xx(a,l),Sc(l,p,null,c);var A=l.memoizedState;if(p=A.element,w.isDehydrated)if(w={element:p,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},l.updateQueue.baseState=w,l.memoizedState=w,l.flags&256){y=Po(Error(r(423)),l),l=$b(a,l,p,c,y);break e}else if(p!==y){y=Po(Error(r(424)),l),l=$b(a,l,p,c,y);break e}else for(wr=wi(l.stateNode.containerInfo.firstChild),br=l,it=!0,Yr=null,c=Yx(l,null,p,c),l.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(bo(),p===y){l=Un(a,l,c);break e}Jt(a,l,p,c)}l=l.child}return l;case 5:return eb(l),a===null&&wp(l),p=l.type,y=l.pendingProps,w=a!==null?a.memoizedProps:null,A=y.children,fp(p,y)?A=null:w!==null&&fp(p,w)&&(l.flags|=32),Tb(a,l),Jt(a,l,A,c),l.child;case 6:return a===null&&wp(l),null;case 13:return Lb(a,l,c);case 4:return jp(l,l.stateNode.containerInfo),p=l.pendingProps,a===null?l.child=wo(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),_b(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,w=l.memoizedProps,A=y.value,Qe(xc,p._currentValue),p._currentValue=A,w!==null)if(Gr(w.value,A)){if(w.children===y.children&&!lr.current){l=Un(a,l,c);break e}}else for(w=l.child,w!==null&&(w.return=l);w!==null;){var I=w.dependencies;if(I!==null){A=w.child;for(var T=I.firstContext;T!==null;){if(T.context===p){if(w.tag===1){T=Bn(-1,c&-c),T.tag=2;var q=w.updateQueue;if(q!==null){q=q.shared;var te=q.pending;te===null?T.next=T:(T.next=te.next,te.next=T),q.pending=T}}w.lanes|=c,T=w.alternate,T!==null&&(T.lanes|=c),Ap(w.return,c,l),I.lanes|=c;break}T=T.next}}else if(w.tag===10)A=w.type===l.type?null:w.child;else if(w.tag===18){if(A=w.return,A===null)throw Error(r(341));A.lanes|=c,I=A.alternate,I!==null&&(I.lanes|=c),Ap(A,c,l),A=w.sibling}else A=w.child;if(A!==null)A.return=w;else for(A=w;A!==null;){if(A===l){A=null;break}if(w=A.sibling,w!==null){w.return=A.return,A=w;break}A=A.return}w=A}Jt(a,l,y.children,c),l=l.child}return l;case 9:return y=l.type,p=l.pendingProps.children,ko(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),Nb(a,l,p,y,c);case 15:return Ib(a,l,l.type,l.pendingProps,c);case 17:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Nc(a,l),l.tag=1,sr(p)?(a=!0,hc(l)):a=!1,ko(l,c),kb(l,p,y),Up(l,p,y,c),Vp(null,l,p,!0,a,c);case 19:return Fb(a,l,c);case 22:return Mb(a,l,c)}throw Error(r(156,l.tag))};function c1(a,l){return W0(a,l)}function DI(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 DI(a,l,c,p)}function fm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function RI(a){if(typeof a=="function")return fm(a)?1:0;if(a!=null){if(a=a.$$typeof,a===U)return 11;if(a===ye)return 14}return 2}function Ii(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 Uc(a,l,c,p,y,w){var A=2;if(p=a,typeof a=="function")fm(a)&&(A=1);else if(typeof a=="string")A=5;else e:switch(a){case D:return ga(c.children,y,w,l);case B:A=8,y|=8;break;case F:return a=Dr(12,c,l,y|2),a.elementType=F,a.lanes=w,a;case ue:return a=Dr(13,c,l,y),a.elementType=ue,a.lanes=w,a;case ae:return a=Dr(19,c,l,y),a.elementType=ae,a.lanes=w,a;case se:return Wc(c,y,w,l);default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case z:A=10;break e;case G:A=9;break e;case U:A=11;break e;case ye:A=14;break e;case pe: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=w,l}function ga(a,l,c,p){return a=Dr(7,a,p,l),a.lanes=c,a}function Wc(a,l,c,p){return a=Dr(22,a,p,l),a.elementType=se,a.lanes=c,a.stateNode={isHidden:!1},a}function hm(a,l,c){return a=Dr(6,a,null,l),a.lanes=c,a}function pm(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 $I(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=Bh(0),this.expirationTimes=Bh(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bh(0),this.identifierPrefix=p,this.onRecoverableError=y,this.mutableSourceEagerHydrationData=null}function mm(a,l,c,p,y,w,A,I,T){return a=new $I(a,l,c,I,T),l===1?(l=1,w===!0&&(l|=8)):l=0,w=Dr(3,null,null,l),a.current=w,w.stateNode=a,w.memoizedState={element:p,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Cp(w),a}function LI(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(),Sm.exports=ZI(),Sm.exports}var P1;function JI(){if(P1)return Xc;P1=1;var e=kP();return Xc.createRoot=e.createRoot,Xc.hydrateRoot=e.hydrateRoot,Xc}var eM=JI();const tM=Dy(eM);var Eu=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(){}},Ma,Ui,tl,hP,rM=(hP=class extends Eu{constructor(){super();_e(this,Ma);_e(this,Ui);_e(this,tl);fe(this,tl,t=>{if(typeof window<"u"&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){R(this,Ui)||this.setEventListener(R(this,tl))}onUnsubscribe(){var t;this.hasListeners()||((t=R(this,Ui))==null||t.call(this),fe(this,Ui,void 0))}setEventListener(t){var r;fe(this,tl,t),(r=R(this,Ui))==null||r.call(this),fe(this,Ui,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){R(this,Ma)!==t&&(fe(this,Ma,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof R(this,Ma)=="boolean"?R(this,Ma):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Ma=new WeakMap,Ui=new WeakMap,tl=new WeakMap,hP),$y=new rM,nM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Wi,Ty,pP,iM=(pP=class{constructor(){_e(this,Wi,nM);_e(this,Ty,!1)}setTimeoutProvider(e){fe(this,Wi,e)}setTimeout(e,t){return R(this,Wi).setTimeout(e,t)}clearTimeout(e){R(this,Wi).clearTimeout(e)}setInterval(e,t){return R(this,Wi).setInterval(e,t)}clearInterval(e){R(this,Wi).clearInterval(e)}},Wi=new WeakMap,Ty=new WeakMap,pP),Aa=new iM;function aM(e){setTimeout(e,0)}var oM=typeof window>"u"||"Deno"in globalThis;function pr(){}function lM(e,t){return typeof e=="function"?e(t):e}function mv(e){return typeof e=="number"&&e>=0&&e!==1/0}function EP(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Xi(e,t){return typeof e=="function"?e(t):e}function Er(e,t){return typeof e=="function"?e(t):e}function A1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:u}=e;if(s){if(n){if(t.queryHash!==Ly(s,t.options))return!1}else if(!Xs(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 O1(e,t){const{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(Qs(t.options.mutationKey)!==Qs(o))return!1}else if(!Xs(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function Ly(e,t){return((t==null?void 0:t.queryKeyHashFn)||Qs)(e)}function Qs(e){return JSON.stringify(e,(t,r)=>yv(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function Xs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Xs(e[r],t[r])):!1}var sM=Object.prototype.hasOwnProperty;function PP(e,t,r=0){if(e===t)return e;if(r>500)return t;const n=C1(e)&&C1(t);if(!n&&!(yv(e)&&yv(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{Aa.setTimeout(t,e)})}function gv(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?PP(e,t):t}function cM(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function dM(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var zy=Symbol();function AP(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===zy?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function OP(e,t){return typeof e=="function"?e(...t):!!e}function fM(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 Zs=(()=>{let e=()=>oM;return{isServer(){return e()},setIsServer(t){e=t}}})();function xv(){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 hM=aM;function pM(){let e=[],t=0,r=u=>{u()},n=u=>{u()},i=hM;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=pM(),rl,Hi,nl,mP,mM=(mP=class extends Eu{constructor(){super();_e(this,rl,!0);_e(this,Hi);_e(this,nl);fe(this,nl,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(){R(this,Hi)||this.setEventListener(R(this,nl))}onUnsubscribe(){var t;this.hasListeners()||((t=R(this,Hi))==null||t.call(this),fe(this,Hi,void 0))}setEventListener(t){var r;fe(this,nl,t),(r=R(this,Hi))==null||r.call(this),fe(this,Hi,t(this.setOnline.bind(this)))}setOnline(t){R(this,rl)!==t&&(fe(this,rl,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return R(this,rl)}},rl=new WeakMap,Hi=new WeakMap,nl=new WeakMap,mP),Md=new mM;function vM(e){return Math.min(1e3*2**e,3e4)}function CP(e){return(e??"online")==="online"?Md.isOnline():!0}var bv=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=xv(),o=()=>i.status!=="pending",s=S=>{var E;if(!o()){const P=new bv(S);v(P),(E=e.onCancel)==null||E.call(e,P)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>$y.isFocused()&&(e.networkMode==="always"||Md.isOnline())&&e.canRun(),h=()=>CP(e.networkMode)&&e.canRun(),m=S=>{o()||(n==null||n(),i.resolve(S))},v=S=>{o()||(n==null||n(),i.reject(S))},b=()=>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 j;if(o())return;const C=e.retry??(Zs.isServer()?0:3),_=e.retryDelay??vM,O=typeof _=="function"?_(r,P):_,N=C===!0||typeof C=="number"&&rf()?void 0:b()).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():b().then(k),i)}}var Ta,vP,_P=(vP=class{constructor(){_e(this,Ta)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),mv(this.gcTime)&&fe(this,Ta,Aa.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zs.isServer()?1/0:300*1e3))}clearGcTimeout(){R(this,Ta)!==void 0&&(Aa.clearTimeout(R(this,Ta)),fe(this,Ta,void 0))}},Ta=new WeakMap,vP);function yM(e){return{onFetch:(t,r)=>{var h,m,v,b,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=((b=t.state.data)==null?void 0:b.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=_=>{fM(_,()=>t.signal,()=>S=!0)},P=AP(t.options,t.fetchOptions),C=async(_,O,N)=>{if(S)return Promise.reject(t.signal.reason);if(O==null&&_.pages.length)return Promise.resolve(_);const D=(()=>{const G={client:t.client,queryKey:t.queryKey,pageParam:O,direction:N?"backward":"forward",meta:t.options.meta};return E(G),G})(),B=await P(D),{maxPages:F}=t.options,z=N?dM:cM;return{pages:z(_.pages,B,F),pageParams:z(_.pageParams,O,F)}};if(i&&o.length){const _=i==="backward",O=_?gM:_1,N={pages:o,pageParams:s},j=O(n,N);u=await C(N,j,_)}else{const _=e??o.length;do{const O=d===0?s[0]??n.initialPageParam:_1(n,u);if(d>0&&O==null)break;u=await C(u,O),d++}while(d<_)}return u};t.options.persister?t.fetchFn=()=>{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 _1(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 gM(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 il,Da,al,$r,Ra,jt,xu,$a,kr,NP,Kn,yP,xM=(yP=class extends _P{constructor(t){super();_e(this,kr);_e(this,il);_e(this,Da);_e(this,al);_e(this,$r);_e(this,Ra);_e(this,jt);_e(this,xu);_e(this,$a);fe(this,$a,!1),fe(this,xu,t.defaultOptions),this.setOptions(t.options),this.observers=[],fe(this,Ra,t.client),fe(this,$r,R(this,Ra).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,fe(this,Da,I1(this.options)),this.state=t.state??R(this,Da),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return R(this,il)}get promise(){var t;return(t=R(this,jt))==null?void 0:t.promise}setOptions(t){if(this.options={...R(this,xu),...t},t!=null&&t._type&&fe(this,il,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=I1(this.options);r.data!==void 0&&(this.setState(N1(r.data,r.dataUpdatedAt)),fe(this,Da,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&R(this,$r).remove(this)}setData(t,r){const n=gv(this.state.data,t,this.options);return $e(this,kr,Kn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t){$e(this,kr,Kn).call(this,{type:"setState",state:t})}cancel(t){var n,i;const r=(n=R(this,jt))==null?void 0:n.promise;return(i=R(this,jt))==null||i.cancel(t),r?r.then(pr).catch(pr):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return R(this,Da)}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===zy||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Xi(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:!EP(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=R(this,jt))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=R(this,jt))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),R(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||(R(this,jt)&&(R(this,$a)||$e(this,kr,NP).call(this)?R(this,jt).cancel({revert:!0}):R(this,jt).cancelRetry()),this.scheduleGc()),R(this,$r).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||$e(this,kr,Kn).call(this,{type:"invalidate"})}async fetch(t,r){var f,h,m,v,b,k,S,E,P,C,_;if(this.state.fetchStatus!=="idle"&&((f=R(this,jt))==null?void 0:f.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if(R(this,jt))return R(this,jt).continueRetry(),R(this,jt).promise}if(t&&this.setOptions(t),!this.options.queryFn){const O=this.observers.find(N=>N.options.queryFn);O&&this.setOptions(O.options)}const n=new AbortController,i=O=>{Object.defineProperty(O,"signal",{enumerable:!0,get:()=>(fe(this,$a,!0),n.signal)})},o=()=>{const O=AP(this.options,r),j=(()=>{const D={client:R(this,Ra),queryKey:this.queryKey,meta:this.meta};return i(D),D})();return fe(this,$a,!1),this.options.persister?this.options.persister(O,j,this):O(j)},u=(()=>{const O={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:R(this,Ra),state:this.state,fetchFn:o};return i(O),O})(),d=R(this,il)==="infinite"?yM(this.options.pages):this.options.behavior;d==null||d.onFetch(u,this),fe(this,al,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((h=u.fetchOptions)==null?void 0:h.meta))&&$e(this,kr,Kn).call(this,{type:"fetch",meta:(m=u.fetchOptions)==null?void 0:m.meta}),fe(this,jt,jP({initialPromise:r==null?void 0:r.initialPromise,fn:u.fetchFn,onCancel:O=>{O instanceof bv&&O.revert&&this.setState({...R(this,al),fetchStatus:"idle"}),n.abort()},onFail:(O,N)=>{$e(this,kr,Kn).call(this,{type:"failed",failureCount:O,error:N})},onPause:()=>{$e(this,kr,Kn).call(this,{type:"pause"})},onContinue:()=>{$e(this,kr,Kn).call(this,{type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0}));try{const O=await R(this,jt).start();if(O===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(O),(b=(v=R(this,$r).config).onSuccess)==null||b.call(v,O,this),(S=(k=R(this,$r).config).onSettled)==null||S.call(k,O,this.state.error,this),O}catch(O){if(O instanceof bv){if(O.silent)return R(this,jt).promise;if(O.revert){if(this.state.data===void 0)throw O;return this.state.data}}throw $e(this,kr,Kn).call(this,{type:"error",error:O}),(P=(E=R(this,$r).config).onError)==null||P.call(E,O,this),(_=(C=R(this,$r).config).onSettled)==null||_.call(C,this.state.data,O,this),O}finally{this.scheduleGc()}}},il=new WeakMap,Da=new WeakMap,al=new WeakMap,$r=new WeakMap,Ra=new WeakMap,jt=new WeakMap,xu=new WeakMap,$a=new WeakMap,kr=new WeakSet,NP=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Kn=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,...IP(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,...N1(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return fe(this,al,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()}),R(this,$r).notify({query:this,type:"updated",action:t})})},yP);function IP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:CP(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function N1(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function I1(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,ze,bu,tr,La,ol,qn,Ki,wu,ll,sl,za,Fa,Vi,ul,Ke,Ws,wv,Sv,kv,Ev,Pv,Av,Ov,MP,gP,bM=(gP=class extends Eu{constructor(t,r){super();_e(this,Ke);_e(this,hr);_e(this,ze);_e(this,bu);_e(this,tr);_e(this,La);_e(this,ol);_e(this,qn);_e(this,Ki);_e(this,wu);_e(this,ll);_e(this,sl);_e(this,za);_e(this,Fa);_e(this,Vi);_e(this,ul,new Set);this.options=r,fe(this,hr,t),fe(this,Ki,null),fe(this,qn,xv()),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(R(this,ze).addObserver(this),M1(R(this,ze),this.options)?$e(this,Ke,Ws).call(this):this.updateResult(),$e(this,Ke,Ev).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Cv(R(this,ze),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Cv(R(this,ze),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,$e(this,Ke,Pv).call(this),$e(this,Ke,Av).call(this),R(this,ze).removeObserver(this)}setOptions(t){const r=this.options,n=R(this,ze);if(this.options=R(this,hr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Er(this.options.enabled,R(this,ze))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");$e(this,Ke,Ov).call(this),R(this,ze).setOptions(this.options),r._defaulted&&!vv(this.options,r)&&R(this,hr).getQueryCache().notify({type:"observerOptionsUpdated",query:R(this,ze),observer:this});const i=this.hasListeners();i&&T1(R(this,ze),n,this.options,r)&&$e(this,Ke,Ws).call(this),this.updateResult(),i&&(R(this,ze)!==n||Er(this.options.enabled,R(this,ze))!==Er(r.enabled,R(this,ze))||Xi(this.options.staleTime,R(this,ze))!==Xi(r.staleTime,R(this,ze)))&&$e(this,Ke,wv).call(this);const o=$e(this,Ke,Sv).call(this);i&&(R(this,ze)!==n||Er(this.options.enabled,R(this,ze))!==Er(r.enabled,R(this,ze))||o!==R(this,Vi))&&$e(this,Ke,kv).call(this,o)}getOptimisticResult(t){const r=R(this,hr).getQueryCache().build(R(this,hr),t),n=this.createResult(r,t);return SM(this,n)&&(fe(this,tr,n),fe(this,ol,this.options),fe(this,La,R(this,ze).state)),n}getCurrentResult(){return R(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&&R(this,qn).status==="pending"&&R(this,qn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){R(this,ul).add(t)}getCurrentQuery(){return R(this,ze)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=R(this,hr).defaultQueryOptions(t),n=R(this,hr).getQueryCache().build(R(this,hr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return $e(this,Ke,Ws).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),R(this,tr)))}createResult(t,r){var F;const n=R(this,ze),i=this.options,o=R(this,tr),s=R(this,La),u=R(this,ol),f=t!==n?t.state:R(this,bu),{state:h}=t;let m={...h},v=!1,b;if(r._optimisticResults){const z=this.hasListeners(),G=!z&&M1(t,r),U=z&&T1(t,n,r,i);(G||U)&&(m={...m,...IP(h.data,t.options)}),r._optimisticResults==="isRestoring"&&(m.fetchStatus="idle")}let{error:k,errorUpdatedAt:S,status:E}=m;b=m.data;let P=!1;if(r.placeholderData!==void 0&&b===void 0&&E==="pending"){let z;o!=null&&o.isPlaceholderData&&r.placeholderData===(u==null?void 0:u.placeholderData)?(z=o.data,P=!0):z=typeof r.placeholderData=="function"?r.placeholderData((F=R(this,sl))==null?void 0:F.state.data,R(this,sl)):r.placeholderData,z!==void 0&&(E="success",b=gv(o==null?void 0:o.data,z,r),v=!0)}if(r.select&&b!==void 0&&!P)if(o&&b===(s==null?void 0:s.data)&&r.select===R(this,wu))b=R(this,ll);else try{fe(this,wu,r.select),b=r.select(b),b=gv(o==null?void 0:o.data,b,r),fe(this,ll,b),fe(this,Ki,null)}catch(z){fe(this,Ki,z)}R(this,Ki)&&(k=R(this,Ki),b=R(this,ll),S=Date.now(),E="error");const C=m.fetchStatus==="fetching",_=E==="pending",O=E==="error",N=_&&C,j=b!==void 0,B={status:E,fetchStatus:m.fetchStatus,isPending:_,isSuccess:E==="success",isError:O,isInitialLoading:N,isLoading:N,data:b,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:C,isRefetching:C&&!_,isLoadingError:O&&!j,isPaused:m.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:O&&j,isStale:Fy(t,r),refetch:this.refetch,promise:R(this,qn),isEnabled:Er(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const z=B.data!==void 0,G=B.status==="error"&&!z,U=ye=>{G?ye.reject(B.error):z&&ye.resolve(B.data)},ue=()=>{const ye=fe(this,qn,B.promise=xv());U(ye)},ae=R(this,qn);switch(ae.status){case"pending":t.queryHash===n.queryHash&&U(ae);break;case"fulfilled":(G||B.data!==ae.value)&&ue();break;case"rejected":(!G||B.error!==ae.reason)&&ue();break}}return B}updateResult(){const t=R(this,tr),r=this.createResult(R(this,ze),this.options);if(fe(this,La,R(this,ze).state),fe(this,ol,this.options),R(this,La).data!==void 0&&fe(this,sl,R(this,ze)),vv(r,t))return;fe(this,tr,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!R(this,ul).size)return!0;const s=new Set(o??R(this,ul));return this.options.throwOnError&&s.add("error"),Object.keys(R(this,tr)).some(u=>{const d=u;return R(this,tr)[d]!==t[d]&&s.has(d)})};$e(this,Ke,MP).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&$e(this,Ke,Ev).call(this)}},hr=new WeakMap,ze=new WeakMap,bu=new WeakMap,tr=new WeakMap,La=new WeakMap,ol=new WeakMap,qn=new WeakMap,Ki=new WeakMap,wu=new WeakMap,ll=new WeakMap,sl=new WeakMap,za=new WeakMap,Fa=new WeakMap,Vi=new WeakMap,ul=new WeakMap,Ke=new WeakSet,Ws=function(t){$e(this,Ke,Ov).call(this);let r=R(this,ze).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(pr)),r},wv=function(){$e(this,Ke,Pv).call(this);const t=Xi(this.options.staleTime,R(this,ze));if(Zs.isServer()||R(this,tr).isStale||!mv(t))return;const n=EP(R(this,tr).dataUpdatedAt,t)+1;fe(this,za,Aa.setTimeout(()=>{R(this,tr).isStale||this.updateResult()},n))},Sv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(R(this,ze)):this.options.refetchInterval)??!1},kv=function(t){$e(this,Ke,Av).call(this),fe(this,Vi,t),!(Zs.isServer()||Er(this.options.enabled,R(this,ze))===!1||!mv(R(this,Vi))||R(this,Vi)===0)&&fe(this,Fa,Aa.setInterval(()=>{(this.options.refetchIntervalInBackground||$y.isFocused())&&$e(this,Ke,Ws).call(this)},R(this,Vi)))},Ev=function(){$e(this,Ke,wv).call(this),$e(this,Ke,kv).call(this,$e(this,Ke,Sv).call(this))},Pv=function(){R(this,za)!==void 0&&(Aa.clearTimeout(R(this,za)),fe(this,za,void 0))},Av=function(){R(this,Fa)!==void 0&&(Aa.clearInterval(R(this,Fa)),fe(this,Fa,void 0))},Ov=function(){const t=R(this,hr).getQueryCache().build(R(this,hr),this.options);if(t===R(this,ze))return;const r=R(this,ze);fe(this,ze,t),fe(this,bu,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},MP=function(t){Ft.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r(R(this,tr))}),R(this,hr).getQueryCache().notify({query:R(this,ze),type:"observerResultsUpdated"})})},gP);function wM(e,t){return Er(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Er(t.retryOnMount,e)===!1)}function M1(e,t){return wM(e,t)||e.state.data!==void 0&&Cv(e,t,t.refetchOnMount)}function Cv(e,t,r){if(Er(t.enabled,e)!==!1&&Xi(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&Fy(e,t)}return!1}function T1(e,t,r,n){return(e!==t||Er(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&Fy(e,r)}function Fy(e,t){return Er(t.enabled,e)!==!1&&e.isStaleByTime(Xi(t.staleTime,e))}function SM(e,t){return!vv(e.getCurrentResult(),t)}var Su,xn,Yt,Ba,bn,$i,xP,kM=(xP=class extends _P{constructor(t){super();_e(this,bn);_e(this,Su);_e(this,xn);_e(this,Yt);_e(this,Ba);fe(this,Su,t.client),this.mutationId=t.mutationId,fe(this,Yt,t.mutationCache),fe(this,xn,[]),this.state=t.state||EM(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){R(this,xn).includes(t)||(R(this,xn).push(t),this.clearGcTimeout(),R(this,Yt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){fe(this,xn,R(this,xn).filter(r=>r!==t)),this.scheduleGc(),R(this,Yt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){R(this,xn).length||(this.state.status==="pending"?this.scheduleGc():R(this,Yt).remove(this))}continue(){var t;return((t=R(this,Ba))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,u,d,f,h,m,v,b,k,S,E,P,C,_,O,N,j,D;const r=()=>{$e(this,bn,$i).call(this,{type:"continue"})},n={client:R(this,Su),meta:this.options.meta,mutationKey:this.options.mutationKey};fe(this,Ba,jP({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(B,F)=>{$e(this,bn,$i).call(this,{type:"failed",failureCount:B,error:F})},onPause:()=>{$e(this,bn,$i).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>R(this,Yt).canRun(this)}));const i=this.state.status==="pending",o=!R(this,Ba).canStart();try{if(i)r();else{$e(this,bn,$i).call(this,{type:"pending",variables:t,isPaused:o}),R(this,Yt).config.onMutate&&await R(this,Yt).config.onMutate(t,this,n);const F=await((u=(s=this.options).onMutate)==null?void 0:u.call(s,t,n));F!==this.state.context&&$e(this,bn,$i).call(this,{type:"pending",context:F,variables:t,isPaused:o})}const B=await R(this,Ba).start();return await((f=(d=R(this,Yt).config).onSuccess)==null?void 0:f.call(d,B,t,this.state.context,this,n)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,B,t,this.state.context,n)),await((b=(v=R(this,Yt).config).onSettled)==null?void 0:b.call(v,B,null,this.state.variables,this.state.context,this,n)),await((S=(k=this.options).onSettled)==null?void 0:S.call(k,B,null,t,this.state.context,n)),$e(this,bn,$i).call(this,{type:"success",data:B}),B}catch(B){try{await((P=(E=R(this,Yt).config).onError)==null?void 0:P.call(E,B,t,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((_=(C=this.options).onError)==null?void 0:_.call(C,B,t,this.state.context,n))}catch(F){Promise.reject(F)}try{await((N=(O=R(this,Yt).config).onSettled)==null?void 0:N.call(O,void 0,B,this.state.variables,this.state.context,this,n))}catch(F){Promise.reject(F)}try{await((D=(j=this.options).onSettled)==null?void 0:D.call(j,void 0,B,t,this.state.context,n))}catch(F){Promise.reject(F)}throw $e(this,bn,$i).call(this,{type:"error",error:B}),B}finally{R(this,Yt).runNext(this)}}},Su=new WeakMap,xn=new WeakMap,Yt=new WeakMap,Ba=new WeakMap,bn=new WeakSet,$i=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(()=>{R(this,xn).forEach(n=>{n.onMutationUpdate(t)}),R(this,Yt).notify({mutation:this,type:"updated",action:t})})},xP);function EM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Gn,tn,ku,bP,PM=(bP=class extends Eu{constructor(t={}){super();_e(this,Gn);_e(this,tn);_e(this,ku);this.config=t,fe(this,Gn,new Set),fe(this,tn,new Map),fe(this,ku,0)}build(t,r,n){const i=new kM({client:t,mutationCache:this,mutationId:++Qc(this,ku)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){R(this,Gn).add(t);const r=Zc(t);if(typeof r=="string"){const n=R(this,tn).get(r);n?n.push(t):R(this,tn).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if(R(this,Gn).delete(t)){const r=Zc(t);if(typeof r=="string"){const n=R(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&&R(this,tn).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=Zc(t);if(typeof r=="string"){const n=R(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=Zc(t);if(typeof r=="string"){const i=(n=R(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(()=>{R(this,Gn).forEach(t=>{this.notify({type:"removed",mutation:t})}),R(this,Gn).clear(),R(this,tn).clear()})}getAll(){return Array.from(R(this,Gn))}find(t){const r={exact:!0,...t};return this.getAll().find(n=>O1(r,n))}findAll(t={}){return this.getAll().filter(r=>O1(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))))}},Gn=new WeakMap,tn=new WeakMap,ku=new WeakMap,bP);function Zc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var wn,wP,AM=(wP=class extends Eu{constructor(t={}){super();_e(this,wn);this.config=t,fe(this,wn,new Map)}build(t,r,n){const i=r.queryKey,o=r.queryHash??Ly(i,r);let s=this.get(o);return s||(s=new xM({client:t,queryKey:i,queryHash:o,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(s)),s}add(t){R(this,wn).has(t.queryHash)||(R(this,wn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=R(this,wn).get(t.queryHash);r&&(t.destroy(),r===t&&R(this,wn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ft.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return R(this,wn).get(t)}getAll(){return[...R(this,wn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>A1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>A1(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,wP),dt,qi,Gi,cl,dl,Yi,fl,hl,SP,OM=(SP=class{constructor(e={}){_e(this,dt);_e(this,qi);_e(this,Gi);_e(this,cl);_e(this,dl);_e(this,Yi);_e(this,fl);_e(this,hl);fe(this,dt,e.queryCache||new AM),fe(this,qi,e.mutationCache||new PM),fe(this,Gi,e.defaultOptions||{}),fe(this,cl,new Map),fe(this,dl,new Map),fe(this,Yi,0)}mount(){Qc(this,Yi)._++,R(this,Yi)===1&&(fe(this,fl,$y.subscribe(async e=>{e&&(await this.resumePausedMutations(),R(this,dt).onFocus())})),fe(this,hl,Md.subscribe(async e=>{e&&(await this.resumePausedMutations(),R(this,dt).onOnline())})))}unmount(){var e,t;Qc(this,Yi)._--,R(this,Yi)===0&&((e=R(this,fl))==null||e.call(this),fe(this,fl,void 0),(t=R(this,hl))==null||t.call(this),fe(this,hl,void 0))}isFetching(e){return R(this,dt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return R(this,qi).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=R(this,dt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=R(this,dt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(Xi(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return R(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=R(this,dt).get(n.queryHash),o=i==null?void 0:i.state.data,s=lM(t,o);if(s!==void 0)return R(this,dt).build(this,n).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return Ft.batch(()=>R(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=R(this,dt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=R(this,dt);Ft.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=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(()=>R(this,dt).findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(pr).catch(pr)}invalidateQueries(e,t={}){return Ft.batch(()=>(R(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(()=>R(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=R(this,dt).build(this,t);return r.isStaleByTime(Xi(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 Md.isOnline()?R(this,qi).resumePausedMutations():Promise.resolve()}getQueryCache(){return R(this,dt)}getMutationCache(){return R(this,qi)}getDefaultOptions(){return R(this,Gi)}setDefaultOptions(e){fe(this,Gi,e)}setQueryDefaults(e,t){R(this,cl).set(Qs(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...R(this,cl).values()],r={};return t.forEach(n=>{Xs(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){R(this,dl).set(Qs(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...R(this,dl).values()],r={};return t.forEach(n=>{Xs(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...R(this,Gi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Ly(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===zy&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...R(this,Gi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){R(this,dt).clear(),R(this,qi).clear()}},dt=new WeakMap,qi=new WeakMap,Gi=new WeakMap,cl=new WeakMap,dl=new WeakMap,Yi=new WeakMap,fl=new WeakMap,hl=new WeakMap,SP),TP=g.createContext(void 0),If=e=>{const t=g.useContext(TP);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},CM=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),x.jsx(TP.Provider,{value:e,children:t})),DP=g.createContext(!1),jM=()=>g.useContext(DP);DP.Provider;function _M(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var NM=g.createContext(_M()),IM=()=>g.useContext(NM),MM=(e,t,r)=>{const n=r!=null&&r.state.error&&typeof e.throwOnError=="function"?OP(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},TM=e=>{g.useEffect(()=>{e.clearReset()},[e])},DM=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||OP(r,[e.error,n])),RM=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))}},$M=(e,t)=>e.isLoading&&e.isFetching&&!t,LM=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,D1=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function zM(e,t,r){var b,k,S,E;const n=jM(),i=IM(),o=If(),s=o.defaultQueryOptions(e);(k=(b=o.getDefaultOptions().queries)==null?void 0:b._experimental_beforeQuery)==null||k.call(b,s);const u=o.getQueryCache().get(s.queryHash),d=e.subscribed!==!1;s._optimisticResults=n?"isRestoring":d?"optimistic":void 0,RM(s),MM(s,i,u),TM(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 C=v?h.subscribe(Ft.batchCalls(P)):pr;return h.updateResult(),C},[h,v]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),g.useEffect(()=>{h.setOptions(s)},[s,h]),LM(s,m))throw D1(s,h,i);if(DM({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&&!Zs.isServer()&&$M(m,n)){const P=f?D1(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 ot(e,t){return zM(e,bM)}const FM="modulepreload",BM=function(e){return"/"+e},R1={},In=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=BM(f),f in R1)return;R1[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":FM,h||(v.as="script"),v.crossOrigin="",v.href=f,d&&v.setAttribute("nonce",d),document.head.appendChild(v),h)return new Promise((b,k)=>{v.addEventListener("load",b),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 UM=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),RP=(...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 WM={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 HM=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,...WM,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:RP("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 ke=(e,t)=>{const r=g.forwardRef(({className:n,...i},o)=>g.createElement(HM,{ref:o,iconNode:t,className:RP(`lucide-${UM(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 KM=ke("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 VM=ke("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 $1=ke("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=ke("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 Mf=ke("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=ke("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 $P=ke("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 By=ke("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 YM=ke("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 QM=ke("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 XM=ke("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ZM=ke("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 Js=ke("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=ke("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 eT=ke("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 tT=ke("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 rT=ke("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 nT=ke("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 iT=ke("Construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]);/** - * @license lucide-react v0.460.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=ke("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 aT=ke("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 L1=ke("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 jv=ke("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 oT=ke("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 lT=ke("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 sT=ke("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 uT=ke("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 cT=ke("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 dT=ke("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 Uy=ke("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 fT=ke("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 hT=ke("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 pT=ke("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 Tf=ke("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 mT=ke("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 vT=ke("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 yT=ke("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 z1=ke("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 Wy=ke("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 F1=ke("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 gT=ke("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 Go=ke("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 xT=ke("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bT=ke("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 Hy=ke("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 zP=ke("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 wT=ke("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 Ky=ke("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 FP=ke("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 ST=ke("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 BP=ke("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 kT=ke("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 ET=ke("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 PT=ke("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eu=ke("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 AT=ke("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 Pu=ke("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Yo=[{id:"dashboard",label:"Cockpit",hint:"Deine Box auf einen Blick",icon:hT,group:"Operativ"},{id:"auftraege",label:"Auftragsbuch",hint:"Vorschläge der Box — annehmen oder ablehnen",icon:Uy,group:"Operativ"},{id:"eigenleben",label:"Skills",hint:"Fähigkeiten der Box — aktiv/inaktiv, Herkunft & Vorschlags-Bilanz",icon:BP,group:"Operativ"},{id:"chronik",label:"Chronik",hint:"Was die Box von allein getan hat + Zeitmaschine",icon:dT,group:"Operativ"},{id:"memory",label:"Gedächtnis",hint:"Geteiltes Memory verwalten",icon:By,group:"Wissen"},{id:"wissen",label:"Wissen",hint:"Lucys Wissens-Vault (Traum-Notizen)",icon:pT,group:"Wissen"},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:Wy,group:"Werkzeuge"},{id:"konsole",label:"Konsole",hint:"Direkte Box-Shell (SSH-artig)",icon:kT,group:"Werkzeuge"},{id:"guide",label:"Anleitung",hint:"Einrichten & Vibe-Coding",icon:eT,group:"Werkzeuge"},{id:"models",label:"Modelle",hint:"Speicher, laden & Rollen",icon:$P,group:"Wartung"},{id:"agent",label:"Hermes",hint:"Agent-Status & Verdrahtung",icon:Mf,group:"Wartung"}];var B1=1,OT=.9,CT=.8,jT=.17,Pm=.1,Am=.999,_T=.9999,NT=.99,IT=/[\\\/_+.#"@\[\(\{&]/,MT=/[\\\/_+.#"@\[\(\{&]/g,TT=/[\s-]/,UP=/[\s-]/g;function _v(e,t,r,n,i,o,s){if(o===t.length)return i===e.length?B1:NT;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,b,k;f>=0;)m=_v(e,t,r,n,f+1,o+1,s),m>h&&(f===i?m*=B1:IT.test(e.charAt(f-1))?(m*=CT,b=e.slice(i,f-1).match(MT),b&&i>0&&(m*=Math.pow(Am,b.length))):TT.test(e.charAt(f-1))?(m*=OT,k=e.slice(i,f-1).match(UP),k&&i>0&&(m*=Math.pow(Am,k.length))):(m*=jT,i>0&&(m*=Math.pow(Am,f-i))),e.charAt(f)!==t.charAt(o)&&(m*=_T)),(mm&&(m=v*Pm)),m>h&&(h=m),f=r.indexOf(d,f+1);return s[u]=h,h}function U1(e){return e.toLowerCase().replace(UP," ")}function DT(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,_v(e,t,U1(e),U1(t),0,0,{})}function Zi(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 W1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function pl(...e){return t=>{let r=!1;const n=e.map(i=>{const o=W1(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i{var P;const{scope:v,children:b,...k}=m,S=((P=v==null?void 0:v[e])==null?void 0:P[d])||u,E=g.useMemo(()=>k,Object.values(k));return x.jsx(S.Provider,{value:E,children:b})};f.displayName=o+"Provider";function h(m,v){var S;const b=((S=v==null?void 0:v[e])==null?void 0:S[d])||u,k=g.useContext(b);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,$T(i,...t)]}function $T(...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 tu=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},LT=Nf[" useId ".trim().toString()]||(()=>{}),zT=0;function Jn(e){const[t,r]=g.useState(LT());return tu(()=>{r(n=>n??String(zT++))},[e]),t?`radix-${t}`:""}var FT=Nf[" useInsertionEffect ".trim().toString()]||tu;function BT({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=UT({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=WT(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 UT({defaultProp:e,onChange:t}){const[r,n]=g.useState(e),i=g.useRef(r),o=g.useRef(t);return FT(()=>{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 WT(e){return typeof e=="function"}var Df=kP();function WP(e){const t=g.forwardRef((r,n)=>{let{children:i,...o}=r,s=null,u=!1;const d=[];H1(i)&&typeof Jc=="function"&&(i=Jc(i._payload)),g.Children.forEach(i,v=>{var b;if(GT(v)){u=!0;const k=v;let S="child"in k.props?k.props.child:k.props.children;H1(S)&&typeof Jc=="function"&&(S=Jc(S._payload)),s=KT(k,S),d.push((b=s==null?void 0:s.props)==null?void 0:b.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?qT(s):void 0,h=eo(n,f);if(!s){if(i||i===0)throw new Error(u?ZT(e):XT(e));return i}const m=VT(o,s.props??{});return s.type!==g.Fragment&&(m.ref=n?h:f),g.cloneElement(s,m)});return t.displayName=`${e}.Slot`,t}var HT=Symbol.for("radix.slottable"),KT=(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 VT(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 qT(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 GT(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===HT}var YT=Symbol.for("react.lazy");function H1(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===YT&&"_payload"in e&&QT(e._payload)}function QT(e){return typeof e=="object"&&e!==null&&"then"in e}var XT=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ZT=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Jc=Nf[" use ".trim().toString()],JT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Wt=JT.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),x.jsx(d,{...u,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function eD(e,t){e&&Df.flushSync(()=>e.dispatchEvent(t))}function ru(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 tD(e,t=globalThis==null?void 0:globalThis.document){const r=ru(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 rD="DismissableLayer",Nv="dismissableLayer.update",nD="dismissableLayer.pointerDownOutside",iD="dismissableLayer.focusOutside",K1,Vy=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(Vy),[m,v]=g.useState(null),b=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,k]=g.useState({}),S=eo(t,F=>v(F)),E=Array.from(h.layers),[P]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),C=E.indexOf(P),_=m?E.indexOf(m):-1,O=h.layersWithOutsidePointerEventsDisabled.size>0,N=_>=C,j=g.useRef(!1),D=sD(F=>{const z=F.target;if(!(z instanceof Node))return;const G=[...h.branches].some(U=>U.contains(z));!N||G||(o==null||o(F),u==null||u(F),F.defaultPrevented||d==null||d())},{ownerDocument:b,deferPointerDownOutside:n,isDeferredPointerDownOutsideRef:j,dismissableSurfaces:h.dismissableSurfaces}),B=uD(F=>{if(n&&j.current)return;const z=F.target;[...h.branches].some(U=>U.contains(z))||(s==null||s(F),u==null||u(F),F.defaultPrevented||d==null||d())},b);return tD(F=>{_===h.layers.size-1&&(i==null||i(F),!F.defaultPrevented&&d&&(F.preventDefault(),d()))},b),g.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(K1=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),V1(),()=>{r&&(h.layersWithOutsidePointerEventsDisabled.delete(m),h.layersWithOutsidePointerEventsDisabled.size===0&&(b.body.style.pointerEvents=K1))}},[m,b,r,h]),g.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),V1())},[m,h]),g.useEffect(()=>{const F=()=>k({});return document.addEventListener(Nv,F),()=>document.removeEventListener(Nv,F)},[]),x.jsx(Wt.div,{...f,ref:S,style:{pointerEvents:O?N?"auto":"none":void 0,...e.style},onFocusCapture:Zi(e.onFocusCapture,B.onFocusCapture),onBlurCapture:Zi(e.onBlurCapture,B.onBlurCapture),onPointerDownCapture:Zi(e.onPointerDownCapture,D.onPointerDownCapture)})});HP.displayName=rD;var aD="DismissableLayerBranch",oD=g.forwardRef((e,t)=>{const r=g.useContext(Vy),n=g.useRef(null),i=eo(t,n);return g.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),x.jsx(Wt.div,{...e,ref:i})});oD.displayName=aD;function lD(){const e=g.useContext(Vy),[t,r]=g.useState(null);return g.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),r}function sD(e,t){const{ownerDocument:r=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:n=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:o}=t,s=ru(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 b(C){if(!d.current)return;const _=C.target;_ instanceof Node&&[...o].some(N=>N.contains(_))||f.current.set(C.type,!0),C.type==="click"&&window.setTimeout(()=>{d.current&&h.current()},0)}function k(C){d.current&&f.current.set(C.type,!1)}const S=C=>{if(C.target&&!u.current){let _=function(){r.removeEventListener("click",h.current);const N=v();m(),N||KP(nD,s,O,{discrete:!0})};const O={originalEvent:C};d.current=!0,i.current=n&&C.button===0,f.current.clear(),!n||C.button!==0?_():(r.removeEventListener("click",h.current),h.current=_,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 C of E)r.addEventListener(C,b,!0),r.addEventListener(C,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 C of E)r.removeEventListener(C,b,!0),r.removeEventListener(C,k)}},[r,s,n,i,o]),{onPointerDownCapture:()=>u.current=!0}}function uD(e,t=globalThis==null?void 0:globalThis.document){const r=ru(e),n=g.useRef(!1);return g.useEffect(()=>{const i=o=>{o.target&&!n.current&&KP(iD,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 V1(){const e=new CustomEvent(Nv);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?eD(i,o):i.dispatchEvent(o)}var Om="focusScope.autoFocusOnMount",Cm="focusScope.autoFocusOnUnmount",q1={bubbles:!1,cancelable:!0},cD="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=ru(i),h=ru(o),m=g.useRef(null),v=eo(t,S=>d(S)),b=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(n){let S=function(_){if(b.paused||!u)return;const O=_.target;u.contains(O)?m.current=O:Li(m.current,{select:!0})},E=function(_){if(b.paused||!u)return;const O=_.relatedTarget;O!==null&&(u.contains(O)||Li(m.current,{select:!0}))},P=function(_){if(document.activeElement===document.body)for(const N of _)N.removedNodes.length>0&&Li(u)};document.addEventListener("focusin",S),document.addEventListener("focusout",E);const C=new MutationObserver(P);return u&&C.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",E),C.disconnect()}}},[n,u,b.paused]),g.useEffect(()=>{if(u){Y1.add(b);const S=document.activeElement;if(!u.contains(S)){const P=new CustomEvent(Om,q1);u.addEventListener(Om,f),u.dispatchEvent(P),P.defaultPrevented||(dD(vD(qP(u)),{select:!0}),document.activeElement===S&&Li(u))}return()=>{u.removeEventListener(Om,f),setTimeout(()=>{const P=new CustomEvent(Cm,q1);u.addEventListener(Cm,h),u.dispatchEvent(P),P.defaultPrevented||Li(S??document.body,{select:!0}),u.removeEventListener(Cm,h),Y1.remove(b)},0)}}},[u,f,h,b]);const k=g.useCallback(S=>{if(!r&&!n||b.paused)return;const E=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,P=document.activeElement;if(E&&P){const C=S.currentTarget,[_,O]=fD(C);_&&O?!S.shiftKey&&P===O?(S.preventDefault(),r&&Li(_,{select:!0})):S.shiftKey&&P===_&&(S.preventDefault(),r&&Li(O,{select:!0})):P===C&&S.preventDefault()}},[r,n,b.paused]);return x.jsx(Wt.div,{tabIndex:-1,...s,ref:v,onKeyDown:k})});VP.displayName=cD;function dD(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Li(n,{select:t}),document.activeElement!==r)return}function fD(e){const t=qP(e),r=G1(t,e),n=G1(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 G1(e,t){for(const r of e)if(!hD(r,{upTo:t}))return r}function hD(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 pD(e){return e instanceof HTMLInputElement&&"select"in e}function Li(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&pD(e)&&t&&e.select()}}var Y1=mD();function mD(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=Q1(e,t),e.unshift(t)},remove(t){var r;e=Q1(e,t),(r=e[0])==null||r.resume()}}}function Q1(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function vD(e){return e.filter(t=>t.tagName!=="A")}var yD="Portal",GP=g.forwardRef((e,t)=>{var u;const{container:r,...n}=e,[i,o]=g.useState(!1);tu(()=>o(!0),[]);const s=r||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return s?Df.createPortal(x.jsx(Wt.div,{...n,ref:t}),s):null});GP.displayName=yD;function gD(e,t){return g.useReducer((r,n)=>t[r][n]??r,e)}var Rf=e=>{const{present:t,children:r}=e,n=xD(t),i=typeof r=="function"?r({present:n.isPresent}):g.Children.only(r),o=bD(n.ref,wD(i));return typeof r=="function"||n.isPresent?g.cloneElement(i,{ref:o}):null};Rf.displayName="Presence";function xD(e){const[t,r]=g.useState(),n=g.useRef(null),i=g.useRef(e),o=g.useRef("none"),s=e?"mounted":"unmounted",[u,d]=gD(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const f=ed(n.current);o.current=u==="mounted"?f:"none"},[u]),tu(()=>{const f=n.current,h=i.current;if(h!==e){const v=o.current,b=ed(f);e?d("MOUNT"):b==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(h&&v!==b?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),tu(()=>{if(t){let f;const h=t.ownerDocument.defaultView??window,m=b=>{const S=ed(n.current).includes(CSS.escape(b.animationName));if(b.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=b=>{b.target===t&&(o.current=ed(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 X1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function bD(...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=X1(s,r);return!i&&typeof u=="function"&&(i=!0),u});if(i)return()=>{for(let s=0;s{mn||(mn={start:Z1(),end:Z1()});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),td++,()=>{td===1&&(mn==null||mn.start.remove(),mn==null||mn.end.remove(),mn=null),td=Math.max(0,td-1)}},[])}function Z1(){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 zD;var t=FD(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])}},UD=ZP(),Qo="data-scroll-locked",WD=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(ED,` { - overflow: hidden `).concat(n,`; - padding-right: `).concat(u,"px ").concat(n,`; - } - body[`).concat(Qo,`] { - 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(kd,` { - right: `).concat(u,"px ").concat(n,`; - } - - .`).concat(Ed,` { - margin-right: `).concat(u,"px ").concat(n,`; - } - - .`).concat(kd," .").concat(kd,` { - right: 0 `).concat(n,`; - } - - .`).concat(Ed," .").concat(Ed,` { - margin-right: 0 `).concat(n,`; - } - - body[`).concat(Qo,`] { - `).concat(PD,": ").concat(u,`px; - } -`)},ew=function(){var e=parseInt(document.body.getAttribute(Qo)||"0",10);return isFinite(e)?e:0},HD=function(){g.useEffect(function(){return document.body.setAttribute(Qo,(ew()+1).toString()),function(){var e=ew()-1;e<=0?document.body.removeAttribute(Qo):document.body.setAttribute(Qo,e.toString())}},[])},KD=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;HD();var o=g.useMemo(function(){return BD(i)},[i]);return g.createElement(UD,{styles:WD(o,!t,i,r?"":"!important")})},Iv=!1;if(typeof window<"u")try{var rd=Object.defineProperty({},"passive",{get:function(){return Iv=!0,!0}});window.addEventListener("test",rd,rd),window.removeEventListener("test",rd,rd)}catch{Iv=!1}var _o=Iv?{passive:!1}:!1,VD=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&&!VD(e)&&r[t]==="visible")},qD=function(e){return JP(e,"overflowY")},GD=function(e){return JP(e,"overflowX")},tw=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},YD=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"?qD(t):GD(t)},tA=function(e,t){return e==="v"?YD(t):QD(t)},XD=function(e,t){return e==="h"&&t==="rtl"?-1:1},ZD=function(e,t,r,n,i){var o=XD(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 b=tA(e,u),k=b[0],S=b[1],E=b[2],P=S-E-o*k;(k||P)&&eA(e,u)&&(m+=P,v+=k);var C=u.parentNode;u=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}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},nd=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},rw=function(e){return[e.deltaX,e.deltaY]},nw=function(e){return e&&"current"in e?e.current:e},JD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},eR=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},tR=0,No=[];function rR(e){var t=g.useRef([]),r=g.useRef([0,0]),n=g.useRef(),i=g.useState(tR++)[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=kD([e.lockRef.current],(e.shards||[]).map(nw),!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=nd(S),C=r.current,_="deltaX"in S?S.deltaX:C[0]-P[0],O="deltaY"in S?S.deltaY:C[1]-P[1],N,j=S.target,D=Math.abs(_)>Math.abs(O)?"h":"v";if("touches"in S&&D==="h"&&j.type==="range")return!1;var B=window.getSelection(),F=B&&B.anchorNode,z=F?F===j||F.contains(j):!1;if(z)return!1;var G=tw(D,j);if(!G)return!0;if(G?N=D:(N=D==="v"?"h":"v",G=tw(D,j)),!G)return!1;if(!n.current&&"changedTouches"in S&&(_||O)&&(n.current=N),!N)return!0;var U=n.current||N;return ZD(U,E,S,U==="h"?_:O)},[]),d=g.useCallback(function(S){var E=S;if(!(!No.length||No[No.length-1]!==o)){var P="deltaY"in E?rw(E):nd(E),C=t.current.filter(function(N){return N.name===E.type&&(N.target===E.target||E.target===N.shadowParent)&&JD(N.delta,P)})[0];if(C&&C.should){E.cancelable&&E.preventDefault();return}if(!C){var _=(s.current.shards||[]).map(nw).filter(Boolean).filter(function(N){return N.contains(E.target)}),O=_.length>0?u(E,_[0]):!s.current.noIsolation;O&&E.cancelable&&E.preventDefault()}}},[]),f=g.useCallback(function(S,E,P,C){var _={name:S,delta:E,target:P,should:C,shadowParent:nR(P)};t.current.push(_),setTimeout(function(){t.current=t.current.filter(function(O){return O!==_})},1)},[]),h=g.useCallback(function(S){r.current=nd(S),n.current=void 0},[]),m=g.useCallback(function(S){f(S.type,rw(S),S.target,u(S,e.lockRef.current))},[]),v=g.useCallback(function(S){f(S.type,nd(S),S.target,u(S,e.lockRef.current))},[]);g.useEffect(function(){return No.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",d,_o),document.addEventListener("touchmove",d,_o),document.addEventListener("touchstart",h,_o),function(){No=No.filter(function(S){return S!==o}),document.removeEventListener("wheel",d,_o),document.removeEventListener("touchmove",d,_o),document.removeEventListener("touchstart",h,_o)}},[]);var b=e.removeScrollBar,k=e.inert;return g.createElement(g.Fragment,null,k?g.createElement(o,{styles:eR(i)}):null,b?g.createElement(KD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function nR(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const iR=ID(XP,rR);var rA=g.forwardRef(function(e,t){return g.createElement($f,Sn({},e,{ref:t,sideCar:iR}))});rA.classNames=$f.classNames;var aR=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Io=new WeakMap,id=new WeakMap,ad={},Im=0,nA=function(e){return e&&(e.host||nA(e.parentNode))},oR=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})},lR=function(e,t,r,n){var i=oR(t,Array.isArray(e)?e:[e]);ad[r]||(ad[r]=new WeakMap);var o=ad[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 b=v.getAttribute(n),k=b!==null&&b!=="false",S=(Io.get(v)||0)+1,E=(o.get(v)||0)+1;Io.set(v,S),o.set(v,E),s.push(v),S===1&&k&&id.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(),Im++,function(){s.forEach(function(m){var v=Io.get(m)-1,b=o.get(m)-1;Io.set(m,v),o.set(m,b),v||(id.has(m)||m.removeAttribute(n),id.delete(m)),b||m.removeAttribute(r)}),Im--,Im||(Io=new WeakMap,Io=new WeakMap,id=new WeakMap,ad={})}},sR=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=aR(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),lR(n,i,r,"aria-hidden")):function(){return null}},Lf="Dialog",[iA]=RT(Lf),[uR,sn]=iA(Lf),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]=BT({prop:n,defaultProp:i??!1,onChange:o,caller:Lf});return x.jsx(uR,{scope:t,triggerRef:u,contentRef:d,contentId:Jn(),titleId:Jn(),descriptionId:Jn(),open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),modal:s,children:r})};aA.displayName=Lf;var oA="DialogTrigger",cR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(oA,r),o=eo(t,i.triggerRef);return x.jsx(Wt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Gy(i.open),...n,ref:o,onClick:Zi(e.onClick,i.onOpenToggle)})});cR.displayName=oA;var qy="DialogPortal",[dR,lA]=iA(qy,{forceMount:void 0}),sA=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=sn(qy,t);return x.jsx(dR,{scope:t,forceMount:r,children:g.Children.map(n,s=>x.jsx(Rf,{present:r||o.open,children:x.jsx(GP,{asChild:!0,container:i,children:s})}))})};sA.displayName=qy;var Td="DialogOverlay",uA=g.forwardRef((e,t)=>{const r=lA(Td,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(Td,e.__scopeDialog);return o.modal?x.jsx(Rf,{present:n||o.open,children:x.jsx(hR,{...i,ref:t})}):null});uA.displayName=Td;var fR=WP("DialogOverlay.RemoveScroll"),hR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(Td,r),o=lD(),s=eo(t,o);return x.jsx(rA,{as:fR,allowPinchZoom:!0,shards:[i.contentRef],children:x.jsx(Wt.div,{"data-state":Gy(i.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})}),ml="DialogContent",cA=g.forwardRef((e,t)=>{const r=lA(ml,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(ml,e.__scopeDialog);return x.jsx(Rf,{present:n||o.open,children:o.modal?x.jsx(pR,{...i,ref:t}):x.jsx(mR,{...i,ref:t})})});cA.displayName=ml;var pR=g.forwardRef((e,t)=>{const r=sn(ml,e.__scopeDialog),n=g.useRef(null),i=eo(t,r.contentRef,n);return g.useEffect(()=>{const o=n.current;if(o)return sR(o)},[]),x.jsx(dA,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Zi(e.onCloseAutoFocus,o=>{var s;o.preventDefault(),(s=r.triggerRef.current)==null||s.focus()}),onPointerDownOutside:Zi(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0;(s.button===2||u)&&o.preventDefault()}),onFocusOutside:Zi(e.onFocusOutside,o=>o.preventDefault())})}),mR=g.forwardRef((e,t)=>{const r=sn(ml,e.__scopeDialog),n=g.useRef(!1),i=g.useRef(!1);return x.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(ml,r);return SD(),x.jsx(x.Fragment,{children:x.jsx(VP,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o,children:x.jsx(HP,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":Gy(u.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),fA="DialogTitle",vR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(fA,r);return x.jsx(Wt.h2,{id:i.titleId,...n,ref:t})});vR.displayName=fA;var hA="DialogDescription",yR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(hA,r);return x.jsx(Wt.p,{id:i.descriptionId,...n,ref:t})});yR.displayName=hA;var pA="DialogClose",gR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(pA,r);return x.jsx(Wt.button,{type:"button",...n,ref:t,onClick:Zi(e.onClick,()=>i.onOpenChange(!1))})});gR.displayName=pA;function Gy(e){return e?"open":"closed"}var js='[cmdk-group=""]',Mm='[cmdk-group-items=""]',xR='[cmdk-group-heading=""]',mA='[cmdk-item=""]',iw=`${mA}:not([aria-disabled="true"])`,Mv="cmdk-item-select",Wo="data-value",bR=(e,t,r)=>DT(e,t,r),vA=g.createContext(void 0),Au=()=>g.useContext(vA),yA=g.createContext(void 0),Yy=()=>g.useContext(yA),gA=g.createContext(void 0),xA=g.forwardRef((e,t)=>{let r=Ho(()=>{var M,X;return{search:"",value:(X=(M=e.value)!=null?M:e.defaultValue)!=null?X:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=Ho(()=>new Set),i=Ho(()=>new Map),o=Ho(()=>new Map),s=Ho(()=>new Set),u=bA(e),{label:d,children:f,value:h,onValueChange:m,filter:v,shouldFilter:b,loop:k,disablePointerSelection:S=!1,vimBindings:E=!0,...P}=e,C=Jn(),_=Jn(),O=Jn(),N=g.useRef(null),j=NR();Ka(()=>{if(h!==void 0){let M=h.trim();r.current.value=M,D.emit()}},[h]),Ka(()=>{j(6,ue)},[]);let D=g.useMemo(()=>({subscribe:M=>(s.current.add(M),()=>s.current.delete(M)),snapshot:()=>r.current,setState:(M,X,le)=>{var re,ce,he,Pe;if(!Object.is(r.current[M],X)){if(r.current[M]=X,M==="search")U(),z(),j(1,G);else if(M==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let J=document.getElementById(O);J?J.focus():(re=document.getElementById(C))==null||re.focus()}if(j(7,()=>{var J;r.current.selectedItemId=(J=ae())==null?void 0:J.id,D.emit()}),le||j(5,ue),((ce=u.current)==null?void 0:ce.value)!==void 0){let J=X??"";(Pe=(he=u.current).onValueChange)==null||Pe.call(he,J);return}}D.emit()}},emit:()=>{s.current.forEach(M=>M())}}),[]),B=g.useMemo(()=>({value:(M,X,le)=>{var re;X!==((re=o.current.get(M))==null?void 0:re.value)&&(o.current.set(M,{value:X,keywords:le}),r.current.filtered.items.set(M,F(X,le)),j(2,()=>{z(),D.emit()}))},item:(M,X)=>(n.current.add(M),X&&(i.current.has(X)?i.current.get(X).add(M):i.current.set(X,new Set([M]))),j(3,()=>{U(),z(),r.current.value||G(),D.emit()}),()=>{o.current.delete(M),n.current.delete(M),r.current.filtered.items.delete(M);let le=ae();j(4,()=>{U(),(le==null?void 0:le.getAttribute("id"))===M&&G(),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:C,inputId:O,labelId:_,listInnerRef:N}),[]);function F(M,X){var le,re;let ce=(re=(le=u.current)==null?void 0:le.filter)!=null?re:bR;return M?ce(M,r.current.search,X):0}function z(){if(!r.current.search||u.current.shouldFilter===!1)return;let M=r.current.filtered.items,X=[];r.current.filtered.groups.forEach(re=>{let ce=i.current.get(re),he=0;ce.forEach(Pe=>{let J=M.get(Pe);he=Math.max(J,he)}),X.push([re,he])});let le=N.current;ye().sort((re,ce)=>{var he,Pe;let J=re.getAttribute("id"),we=ce.getAttribute("id");return((he=M.get(we))!=null?he:0)-((Pe=M.get(J))!=null?Pe:0)}).forEach(re=>{let ce=re.closest(Mm);ce?ce.appendChild(re.parentElement===ce?re:re.closest(`${Mm} > *`)):le.appendChild(re.parentElement===le?re:re.closest(`${Mm} > *`))}),X.sort((re,ce)=>ce[1]-re[1]).forEach(re=>{var ce;let he=(ce=N.current)==null?void 0:ce.querySelector(`${js}[${Wo}="${encodeURIComponent(re[0])}"]`);he==null||he.parentElement.appendChild(he)})}function G(){let M=ye().find(le=>le.getAttribute("aria-disabled")!=="true"),X=M==null?void 0:M.getAttribute(Wo);D.setState("value",X||void 0)}function U(){var M,X,le,re;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 he of n.current){let Pe=(X=(M=o.current.get(he))==null?void 0:M.value)!=null?X:"",J=(re=(le=o.current.get(he))==null?void 0:le.keywords)!=null?re:[],we=F(Pe,J);r.current.filtered.items.set(he,we),we>0&&ce++}for(let[he,Pe]of i.current)for(let J of Pe)if(r.current.filtered.items.get(J)>0){r.current.filtered.groups.add(he);break}r.current.filtered.count=ce}function ue(){var M,X,le;let re=ae();re&&(((M=re.parentElement)==null?void 0:M.firstChild)===re&&((le=(X=re.closest(js))==null?void 0:X.querySelector(xR))==null||le.scrollIntoView({block:"nearest"})),re.scrollIntoView({block:"nearest"}))}function ae(){var M;return(M=N.current)==null?void 0:M.querySelector(`${mA}[aria-selected="true"]`)}function ye(){var M;return Array.from(((M=N.current)==null?void 0:M.querySelectorAll(iw))||[])}function pe(M){let X=ye()[M];X&&D.setState("value",X.getAttribute(Wo))}function se(M){var X;let le=ae(),re=ye(),ce=re.findIndex(Pe=>Pe===le),he=re[ce+M];(X=u.current)!=null&&X.loop&&(he=ce+M<0?re[re.length-1]:ce+M===re.length?re[0]:re[ce+M]),he&&D.setState("value",he.getAttribute(Wo))}function Y(M){let X=ae(),le=X==null?void 0:X.closest(js),re;for(;le&&!re;)le=M>0?jR(le,js):_R(le,js),re=le==null?void 0:le.querySelector(iw);re?D.setState("value",re.getAttribute(Wo)):se(M)}let Q=()=>pe(ye().length-1),Z=M=>{M.preventDefault(),M.metaKey?Q():M.altKey?Y(1):se(1)},$=M=>{M.preventDefault(),M.metaKey?pe(0):M.altKey?Y(-1):se(-1)};return g.createElement(Wt.div,{ref:t,tabIndex:-1,...P,"cmdk-root":"",onKeyDown:M=>{var X;(X=P.onKeyDown)==null||X.call(P,M);let le=M.nativeEvent.isComposing||M.keyCode===229;if(!(M.defaultPrevented||le))switch(M.key){case"n":case"j":{E&&M.ctrlKey&&Z(M);break}case"ArrowDown":{Z(M);break}case"p":case"k":{E&&M.ctrlKey&&$(M);break}case"ArrowUp":{$(M);break}case"Home":{M.preventDefault(),pe(0);break}case"End":{M.preventDefault(),Q();break}case"Enter":{M.preventDefault();let re=ae();if(re){let ce=new Event(Mv);re.dispatchEvent(ce)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:MR},d),zf(e,M=>g.createElement(yA.Provider,{value:D},g.createElement(vA.Provider,{value:B},M))))}),wR=g.forwardRef((e,t)=>{var r,n;let i=Jn(),o=g.useRef(null),s=g.useContext(gA),u=Au(),d=bA(e),f=(n=(r=d.current)==null?void 0:r.forceMount)!=null?n:s==null?void 0:s.forceMount;Ka(()=>{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=Yy(),v=ta(j=>j.value&&j.value===h.current),b=ta(j=>f||u.filter()===!1?!0:j.search?j.filtered.items.get(i)>0:!0);g.useEffect(()=>{let j=o.current;if(!(!j||e.disabled))return j.addEventListener(Mv,k),()=>j.removeEventListener(Mv,k)},[b,e.onSelect,e.disabled]);function k(){var j,D;S(),(D=(j=d.current).onSelect)==null||D.call(j,h.current)}function S(){m.setState("value",h.current,!0)}if(!b)return null;let{disabled:E,value:P,onSelect:C,forceMount:_,keywords:O,...N}=e;return g.createElement(Wt.div,{ref:pl(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)}),SR=g.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:i,...o}=e,s=Jn(),u=g.useRef(null),d=g.useRef(null),f=Jn(),h=Au(),m=ta(b=>i||h.filter()===!1?!0:b.search?b.filtered.groups.has(s):!0);Ka(()=>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:pl(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),zf(e,b=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},g.createElement(gA.Provider,{value:v},b))))}),kR=g.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,i=g.useRef(null),o=ta(s=>!s.search);return!r&&!o?null:g.createElement(Wt.div,{ref:pl(i,t),...n,"cmdk-separator":"",role:"separator"})}),ER=g.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,i=e.value!=null,o=Yy(),s=ta(f=>f.search),u=ta(f=>f.selectedItemId),d=Au();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)}})}),PR=g.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...i}=e,o=g.useRef(null),s=g.useRef(null),u=ta(f=>f.selectedItemId),d=Au();return g.useEffect(()=>{if(s.current&&o.current){let f=s.current,h=o.current,m,v=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let b=f.offsetHeight;h.style.setProperty("--cmdk-list-height",b.toFixed(1)+"px")})});return v.observe(f),()=>{cancelAnimationFrame(m),v.unobserve(f)}}},[]),g.createElement(Wt.div,{ref:pl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":n,id:d.listId},zf(e,f=>g.createElement("div",{ref:pl(s,d.listInnerRef),"cmdk-list-sizer":""},f)))}),AR=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}))))}),OR=g.forwardRef((e,t)=>ta(r=>r.filtered.count===0)?g.createElement(Wt.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),CR=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},zf(e,s=>g.createElement("div",{"aria-hidden":!0},s)))}),Mo=Object.assign(xA,{List:PR,Item:wR,Input:ER,Group:SR,Separator:kR,Dialog:AR,Empty:OR,Loading:CR});function jR(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function _R(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 Ka(()=>{t.current=e}),t}var Ka=typeof window>"u"?g.useEffect:g.useLayoutEffect;function Ho(e){let t=g.useRef();return t.current===void 0&&(t.current=e()),t}function ta(e){let t=Yy(),r=()=>e(t.snapshot());return g.useSyncExternalStore(t.subscribe,r,r)}function wA(e,t,r,n=[]){let i=g.useRef(),o=Au();return Ka(()=>{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(Wo,u),i.current=u}),i}var NR=()=>{let[e,t]=g.useState(),r=Ho(()=>new Map);return Ka(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,i)=>{r.current.set(n,i),t({})}};function IR(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function zf({asChild:e,children:t},r){return e&&g.isValidElement(t)?g.cloneElement(IR(t),{ref:t.ref},r(t.props.children)):r(t)}var MR={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function TR({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)},[]),x.jsx(Mo.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:x.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:[x.jsx(Mo.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"}),x.jsxs(Mo.List,{className:"max-h-80 overflow-y-auto p-2",children:[x.jsx(Mo.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),x.jsx(Mo.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Yo.map(n=>x.jsxs(Mo.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:[x.jsx(n.icon,{className:"h-4 w-4 text-primary"}),x.jsx("span",{children:n.label}),x.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:n.hint})]},n.id))})]})]})})}const SA="mc_expert_mode",Tv="mc-expert-mode-change",DR=()=>{try{return localStorage.getItem(SA)==="true"}catch{return!1}};function RR(e){return window.addEventListener(Tv,e),window.addEventListener("storage",e),()=>{window.removeEventListener(Tv,e),window.removeEventListener("storage",e)}}function aw(e){localStorage.setItem(SA,String(e)),window.dispatchEvent(new Event(Tv))}function $R(){return g.useSyncExternalStore(RR,DR,()=>!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=FR(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{const u=s.split(Qy);return u[0]===""&&u.length!==1&&u.shift(),EA(u,t)||zR(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(Qy);return(s=t.validators.find(({validator:u})=>u(o)))==null?void 0:s.classGroupId},ow=/^\[(.+)\]$/,zR=e=>{if(ow.test(e)){const t=ow.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},FR=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return UR(Object.entries(e.classGroups),r).forEach(([o,s])=>{Dv(s,n,o,t)}),n},Dv=(e,t,r,n)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:lw(t,i);o.classGroupId=r;return}if(typeof i=="function"){if(BR(i)){Dv(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([o,s])=>{Dv(s,lw(t,o),r,n)})})},lw=(e,t)=>{let r=e;return t.split(Qy).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},BR=e=>e.isThemeGetter,UR=(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,WR=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="!",HR=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:b,baseClassName:k,maybePostfixModifierPosition:S}};return r?u=>r({className:u,parseClassName:s}):s},KR=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},VR=e=>({cache:WR(e.cacheSize),parseClassName:HR(e),...LR(e)}),qR=/\s+/,GR=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,o=[],s=e.trim().split(qR);let u="";for(let d=s.length-1;d>=0;d-=1){const f=s[d],{modifiers:h,hasImportantModifier:m,baseClassName:v,maybePostfixModifierPosition:b}=r(f);let k=!!b,S=n(k?v.substring(0,b):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=KR(h).join(":"),P=m?E+PA:E,C=P+S;if(o.includes(C))continue;o.push(C);const _=i(S,k);for(let O=0;O<_.length;++O){const N=_[O];o.push(P+N)}u=f+(u.length>0?" "+u:u)}return u};function YR(){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=VR(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=GR(d,r);return i(d,h),h}return function(){return o(YR.apply(null,arguments))}}const tt=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},OA=/^\[(?:([a-z-]+):)?(.+)\]$/i,XR=/^\d+\/\d+$/,ZR=new Set(["px","full","screen"]),JR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,e3=/\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$/,t3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,r3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,n3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Hn=e=>Xo(e)||ZR.has(e)||XR.test(e),Ti=e=>Al(e,"length",d3),Xo=e=>!!e&&!Number.isNaN(Number(e)),Tm=e=>Al(e,"number",Xo),_s=e=>!!e&&Number.isInteger(Number(e)),i3=e=>e.endsWith("%")&&Xo(e.slice(0,-1)),Te=e=>OA.test(e),Di=e=>JR.test(e),a3=new Set(["length","size","percentage"]),o3=e=>Al(e,a3,CA),l3=e=>Al(e,"position",CA),s3=new Set(["image","url"]),u3=e=>Al(e,s3,h3),c3=e=>Al(e,"",f3),Ns=()=>!0,Al=(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},d3=e=>e3.test(e)&&!t3.test(e),CA=()=>!1,f3=e=>r3.test(e),h3=e=>n3.test(e),p3=()=>{const e=tt("colors"),t=tt("spacing"),r=tt("blur"),n=tt("brightness"),i=tt("borderColor"),o=tt("borderRadius"),s=tt("borderSpacing"),u=tt("borderWidth"),d=tt("contrast"),f=tt("grayscale"),h=tt("hueRotate"),m=tt("invert"),v=tt("gap"),b=tt("gradientColorStops"),k=tt("gradientColorStopPositions"),S=tt("inset"),E=tt("margin"),P=tt("opacity"),C=tt("padding"),_=tt("saturate"),O=tt("scale"),N=tt("sepia"),j=tt("skew"),D=tt("space"),B=tt("translate"),F=()=>["auto","contain","none"],z=()=>["auto","hidden","clip","visible","scroll"],G=()=>["auto",Te,t],U=()=>[Te,t],ue=()=>["",Hn,Ti],ae=()=>["auto",Xo,Te],ye=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],pe=()=>["solid","dashed","dotted","double","none"],se=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Y=()=>["start","end","center","between","around","evenly","stretch"],Q=()=>["","0",Te],Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>[Xo,Te];return{cacheSize:500,separator:":",theme:{colors:[Ns],spacing:[Hn,Ti],blur:["none","",Di,Te],brightness:$(),borderColor:[e],borderRadius:["none","","full",Di,Te],borderSpacing:U(),borderWidth:ue(),contrast:$(),grayscale:Q(),hueRotate:$(),invert:Q(),gap:U(),gradientColorStops:[e],gradientColorStopPositions:[i3,Ti],inset:G(),margin:G(),opacity:$(),padding:U(),saturate:$(),scale:$(),sepia:Q(),skew:$(),space:U(),translate:U()},classGroups:{aspect:[{aspect:["auto","square","video",Te]}],container:["container"],columns:[{columns:[Di]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"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:[...ye(),Te]}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],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",_s,Te]}],basis:[{basis:G()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Te]}],grow:[{grow:Q()}],shrink:[{shrink:Q()}],order:[{order:["first","last","none",_s,Te]}],"grid-cols":[{"grid-cols":[Ns]}],"col-start-end":[{col:["auto",{span:["full",_s,Te]},Te]}],"col-start":[{"col-start":ae()}],"col-end":[{"col-end":ae()}],"grid-rows":[{"grid-rows":[Ns]}],"row-start-end":[{row:["auto",{span:[_s,Te]},Te]}],"row-start":[{"row-start":ae()}],"row-end":[{"row-end":ae()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Te]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Te]}],gap:[{gap:[v]}],"gap-x":[{"gap-x":[v]}],"gap-y":[{"gap-y":[v]}],"justify-content":[{justify:["normal",...Y()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...Y(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...Y(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[C]}],px:[{px:[C]}],py:[{py:[C]}],ps:[{ps:[C]}],pe:[{pe:[C]}],pt:[{pt:[C]}],pr:[{pr:[C]}],pb:[{pb:[C]}],pl:[{pl:[C]}],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",Te,t]}],"min-w":[{"min-w":[Te,t,"min","max","fit"]}],"max-w":[{"max-w":[Te,t,"none","full","min","max","fit","prose",{screen:[Di]},Di]}],h:[{h:[Te,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Te,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Di,Ti]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Tm]}],"font-family":[{font:[Ns]}],"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",Te]}],"line-clamp":[{"line-clamp":["none",Xo,Tm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Hn,Te]}],"list-image":[{"list-image":["none",Te]}],"list-style-type":[{list:["none","disc","decimal",Te]}],"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:[...pe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Hn,Ti]}],"underline-offset":[{"underline-offset":["auto",Hn,Te]}],"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:U()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Te]}],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",Te]}],"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:[...ye(),l3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",o3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},u3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],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:[...pe(),"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:pe()}],"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:["",...pe()]}],"outline-offset":[{"outline-offset":[Hn,Te]}],"outline-w":[{outline:[Hn,Ti]}],"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":[Hn,Ti]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Di,c3]}],"shadow-color":[{shadow:[Ns]}],opacity:[{opacity:[P]}],"mix-blend":[{"mix-blend":[...se(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":se()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Di,Te]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[_]}],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":[_]}],"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",Te]}],duration:[{duration:$()}],ease:[{ease:["linear","in","out","in-out",Te]}],delay:[{delay:$()}],animate:[{animate:["none","spin","ping","pulse","bounce",Te]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[O]}],"scale-x":[{"scale-x":[O]}],"scale-y":[{"scale-y":[O]}],rotate:[{rotate:[_s,Te]}],"translate-x":[{"translate-x":[B]}],"translate-y":[{"translate-y":[B]}],"skew-x":[{"skew-x":[j]}],"skew-y":[{"skew-y":[j]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Te]}],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",Te]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":U()}],"scroll-mx":[{"scroll-mx":U()}],"scroll-my":[{"scroll-my":U()}],"scroll-ms":[{"scroll-ms":U()}],"scroll-me":[{"scroll-me":U()}],"scroll-mt":[{"scroll-mt":U()}],"scroll-mr":[{"scroll-mr":U()}],"scroll-mb":[{"scroll-mb":U()}],"scroll-ml":[{"scroll-ml":U()}],"scroll-p":[{"scroll-p":U()}],"scroll-px":[{"scroll-px":U()}],"scroll-py":[{"scroll-py":U()}],"scroll-ps":[{"scroll-ps":U()}],"scroll-pe":[{"scroll-pe":U()}],"scroll-pt":[{"scroll-pt":U()}],"scroll-pr":[{"scroll-pr":U()}],"scroll-pb":[{"scroll-pb":U()}],"scroll-pl":[{"scroll-pl":U()}],"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",Te]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Hn,Ti,Tm]}],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"]}}},m3=QR(p3);function De(...e){return m3(Xe(e))}function TQ(e){return e?e.replace(/127\.0\.0\.1|localhost/g,"192.168.178.151"):""}function v3(){const e=$R();return x.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:[x.jsxs("button",{onClick:()=>aw(!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:[x.jsx(BP,{className:"h-3.5 w-3.5"})," Einfach"]}),x.jsxs("button",{onClick:()=>aw(!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:[x.jsx(ST,{className:"h-3.5 w-3.5"})," Experte"]})]})}function y3({title:e,hint:t}){return x.jsxs("div",{className:"space-y-4",children:[x.jsxs("div",{children:[x.jsx("h1",{className:"text-xl font-semibold",children:e}),x.jsx("p",{className:"text-sm text-muted-foreground",children:t})]}),x.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-border bg-card/50 py-20 text-center",children:[x.jsx(iT,{className:"h-8 w-8 text-muted-foreground"}),x.jsx("div",{className:"text-sm text-muted-foreground",children:"Kommt in einer späteren Phase."})]})]})}async function Me(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()}function jA({type:e,title:t,message:r,defaultValue:n,autoValue:i,autoLabel:o,onConfirm:s,onCancel:u}){const d=g.useRef(null);return x.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:x.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:[x.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:t}),x.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:x.jsx(Pu,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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"&&x.jsxs("div",{className:"flex gap-2",children:[x.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&&x.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"})]}),x.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[(e==="confirm"||e==="prompt")&&x.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"}),x.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"})]})]})})}const sw=[{id:"mission-control-2",label:"Mission Control",type:"user",reach:"gateway (integr"},{id:"hermes-gateway",label:"Hermes Gateway",type:"user",reach:"hermes-gateway"},{id:"mem0-service",label:"Mem0 (Gedächtnis)",type:"user",reach:"mem0"},{id:"voice-service",label:"Voice (Sprache)",type:"user",reach:"voice"},{id:"hermes-builtin-ui",label:"Hermes GUI (Desktop-Gateway)",type:"user",reach:"hermes-gui"},{id:"llama-swap",label:"Llama Swap",type:"system",reach:"llama-swap"}];function Is({icon:e,iconClass:t,name:r,status:n,available:i,busy:o,actionLabel:s,onAction:u}){return x.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:[x.jsx(e,{className:De("h-4 w-4 shrink-0",t)}),x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-xs text-foreground truncate",children:r}),x.jsx("div",{className:De("text-[10px] truncate",i?"text-amber-400/90":"text-muted-foreground"),children:n})]}),x.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 g3({label:e,ok:t,system:r,busy:n,onRestart:i,onLogs:o}){return x.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[x.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")}),x.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[e,r&&x.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),x.jsx("button",{onClick:i,disabled:n,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:x.jsx(Go,{className:De("h-3.5 w-3.5",n&&"animate-spin")})}),x.jsx("button",{onClick:o,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:x.jsx(oT,{className:"h-3.5 w-3.5"})})]})}function Dm(e){return e==null?"":e>1024**3?`${(e/1024**3).toFixed(2)} GB`:`${(e/1024**2).toFixed(1)} MB`}const x3=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,b3=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function w3(e){return x3.test(e)?"error":b3.test(e)?"warn":"info"}const S3={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function k3({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:w3(E)})):[],[t]),v=g.useMemo(()=>m.filter(E=>E.level!=="info").length,[m]),b=d.trim().toLowerCase(),k=m.filter(E=>(!s||E.level!=="info")&&(!b||E.t.toLowerCase().includes(b))),S=n==="password_required"||n==="incorrect_password";return x.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:[x.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:[x.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[x.jsx(ET,{className:"h-3 w-3 text-primary"}),x.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",e]}),x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsxs("div",{className:"relative",children:[x.jsx(bT,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),x.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"})]}),x.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:[x.jsx(eu,{className:"h-3 w-3"}),"Nur Probleme",v>0?` (${v})`:""]}),x.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:x.jsx(Go,{className:De("h-3 w-3",r&&"animate-spin")})})]})]}),x.jsx("div",{ref:h,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:S?x.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[x.jsx(eu,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),x.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."}),x.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."]}),x.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?x.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):m.length===0?x.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):k.length===0?x.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)=>x.jsx("div",{className:De("whitespace-pre-wrap",S3[E.level]),children:E.t||" "},P))})]})}function E3({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]),x.jsxs("div",{className:"space-y-6",children:[x.jsxs("div",{className:"space-y-2",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),x.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."})]}),x.jsxs("div",{className:"space-y-2",children:[x.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[x.jsx(Ky,{className:"h-4 w-4 text-amber-400"}),"Host Sudo-Passwort"]}),x.jsxs("div",{className:"relative",children:[x.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"}),x.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?x.jsx(L1,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(jv,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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."})]}),x.jsxs("div",{className:"space-y-2",children:[x.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[x.jsx(fT,{className:"h-4 w-4 text-violet-400"}),"HuggingFace API Token"]}),x.jsxs("div",{className:"relative",children:[x.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"}),x.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?x.jsx(L1,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(jv,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.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."})]}),x.jsxs("div",{className:"flex gap-3 pt-2",children:[x.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"}),x.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 P3({detail:e,maintenanceJob:t,onClose:r,onApply:n}){var d,f;const i=e.data,o={os:{icon:Ky,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:Hy,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:FP,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:Mf,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 x.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[x.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:r}),x.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:[x.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(s,{className:De("h-4.5 w-4.5",o.cls)}),x.jsx("h3",{className:"text-sm font-semibold",children:o.title})]}),x.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:x.jsx(Pu,{className:"h-4 w-4"})})]}),x.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:e.loading?x.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[x.jsx(Go,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):i!=null&&i.error?x.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:i.error}):x.jsxs(x.Fragment,{children:[(i==null?void 0:i.action_needed)!=null&&x.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?x.jsx(eu,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):x.jsx(JM,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),x.jsxs("div",{className:"min-w-0",children:[x.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&&x.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:i.action_text})]})]}),(i==null?void 0:i.summary)&&x.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[x.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),x.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:i.summary})]}),e.kind==="os"?x.jsxs(x.Fragment,{children:[((i==null?void 0:i.count)??0)===0?x.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-muted-foreground",children:[i.count," Paket(e) werden aktualisiert:"]}),x.jsx("div",{className:"space-y-1",children:i.packages.map(h=>x.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:[x.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[x.jsx(z1,{className:"h-3 w-3 text-cyan-400 shrink-0"}),h.name]}),x.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[x.jsx("span",{children:h.current}),x.jsx($1,{className:"h-3 w-3"}),x.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&&x.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[x.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[x.jsx(tT,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),x.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."}),x.jsx("div",{className:"space-y-1",children:i.held_back.map(h=>x.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:[x.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[x.jsx(z1,{className:"h-3 w-3 text-muted-foreground shrink-0"}),h.name]}),x.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"?x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[x.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)??"?"]}),x.jsx($1,{className:"h-3.5 w-3.5 text-muted-foreground"}),x.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))&&x.jsxs("div",{className:"text-muted-foreground",children:["Release: ",x.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)&&x.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 ",x.jsx(aT,{className:"h-3 w-3"})]}),(i==null?void 0:i.body)&&x.jsxs("details",{className:"group",children:[x.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),x.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?x.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"text-muted-foreground",children:[i.behind," neue Commit(s) auf ",x.jsxs("span",{className:"font-mono text-foreground",children:["origin/",i.branch]}),":"]}),x.jsx("div",{className:"space-y-1",children:i.commits.map(h=>x.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[x.jsx(sT,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),x.jsxs("div",{className:"min-w-0",children:[x.jsx("div",{className:"text-[11px] truncate",children:h.subject}),x.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[h.hash," · ",h.when]})]})]},h.hash))})]}),e.kind!=="os"&&!u&&x.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[x.jsx(wT,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),x.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":"","."]})]})]})}),x.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[x.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"}),x.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 A3({open:e,onClose:t,defaultTab:r="maintenance"}){var Bl,Ul;const[n,i]=g.useState(null),[o,s]=g.useState([]),[u,d]=g.useState("llama-swap"),[f,h]=g.useState(""),[m,v]=g.useState(!1),[b,k]=g.useState(null),[S,E]=g.useState({}),[P,C]=g.useState("maintenance"),[_,O]=g.useState(!1),[N,j]=g.useState(""),[D,B]=g.useState(!1),[F,z]=g.useState(null),[G,U]=g.useState([]),[ue,ae]=g.useState(!1),[ye,pe]=g.useState(null),[se,Y]=g.useState(null);function Q(H,Ne,Ze){Y({type:"alert",title:H,message:Ne,onConfirm:()=>{Y(null),Ze&&Ze()}})}function Z(H,Ne,Ze){Y({type:"confirm",title:H,message:Ne,onConfirm:()=>{Y(null),Ze()},onCancel:()=>Y(null)})}function $(H){return H?new Date(H*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]);function M(){Me("/api/maintenance/updates").then(i).catch(H=>console.error("Error loading updates",H))}function X(){Me("/api/jobs").then(H=>s(H.jobs||[])).catch(H=>console.error("Error loading jobs",H))}function le(){Me("/api/system/services").then(z).catch(()=>{})}function re(){Me("/api/system/backups").then(H=>U(H.backups||[])).catch(()=>{})}function ce(H){v(!0),k(null),Me(`/api/maintenance/logs?service=${H}&lines=150`).then(Ne=>{Ne.ok?h(Ne.text):(h(`Fehler beim Laden der Logs: ${Ne.err||"Unbekannter Fehler"}`),(Ne.status==="incorrect_password"||Ne.status==="password_required")&&k(Ne.status))}).catch(Ne=>h(`Fehler: ${Ne.message}`)).finally(()=>v(!1))}g.useEffect(()=>{if(!e)return;M(),X(),le(),re();const H=setInterval(()=>{X(),M(),le()},3e3);return()=>clearInterval(H)},[e]),g.useEffect(()=>{!e||P!=="logs"||ce(u)},[e,P,u]);function he(H){return(H==null?void 0:H.status)==="busy"?(Q("Update läuft bereits",`Es läuft gerade „${H.running}". Bitte warte, bis es fertig ist.`),X(),!0):!1}function Pe(H){return(H==null?void 0:H.status)==="password_required"||(H==null?void 0:H.status)==="incorrect_password"?(Q("Box-Passwort nötig",(H.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):H&&H.ok===!1?(Q("Update fehlgeschlagen",H.err||"Unbekannter Fehler."),!0):!1}async function J(){try{const H=await Me("/api/maintenance/os-update",{method:"POST"});if(he(H)||Pe(H))return;X(),C("maintenance")}catch(H){Q("Fehler",`Fehler beim Starten des OS-Updates: ${H.message}`)}}async function we(){try{const H=await Me("/api/maintenance/engine-update",{method:"POST"});if(he(H)||Pe(H))return;X(),C("maintenance")}catch(H){Q("Fehler",`Fehler beim Engine-Update: ${H.message}`)}}async function Oe(){try{const H=await Me("/api/maintenance/swap-update",{method:"POST"});if(he(H)||Pe(H))return;X(),C("maintenance")}catch(H){Q("Fehler",`Fehler beim Router-Update: ${H.message}`)}}async function ne(){ae(!0);try{const H=await Me("/api/maintenance/hermes-update",{method:"POST"});if(he(H))return;X()}catch(H){Q("Fehler",`Hermes-Update fehlgeschlagen: ${H.message}`)}finally{ae(!1)}}async function Ye(H){pe({kind:H,loading:!0,data:null});try{const Ne=await Me(`/api/maintenance/update-details?kind=${H}`);pe({kind:H,loading:!1,data:Ne})}catch(Ne){pe({kind:H,loading:!1,data:{kind:H,error:Ne.message}})}}function Be(){const H=ye==null?void 0:ye.kind;pe(null),H==="os"?J():H==="engine"?we():H==="swap"?Oe():H==="hermes"&&ne()}function Ae(){var Ne;const H=[n!=null&&n.engine?"Engine":null,n!=null&&n.swap?"Router":null,(Ne=n==null?void 0:n.components)!=null&&Ne.some(Ze=>Ze.update===!0)?"Hermes-Agent":null,n!=null&&n.os?`OS (${n.os} Pakete)`:null].filter(Boolean);Z("Alle Updates einspielen?",`Nacheinander in einem Job: ${H.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 Ze=await Me("/api/maintenance/update-all",{method:"POST"});if(he(Ze)||Pe(Ze))return;if((Ze==null?void 0:Ze.status)==="nothing"){Q("Nichts zu tun","Es stehen keine Updates aus.");return}X(),C("maintenance")}catch(Ze){Q("Fehler",`„Alle aktualisieren" konnte nicht starten: ${Ze.message}`)}})}async function Pt(){O(!0);try{await Me("/api/maintenance/check-updates",{method:"POST"}),X(),C("maintenance")}catch(H){Q("Fehler",`Fehler bei der Update-Suche: ${H.message}`)}finally{O(!1)}}async function gr(H,Ne){try{await Me("/api/models/install",{method:"POST",body:JSON.stringify({repo:H,role:Ne})}),Q("Gestartet",`Modell-Upgrade für '${Ne}' (${H}) gestartet.`),X(),C("maintenance")}catch(Ze){Q("Fehler",`Fehler beim Starten des Modell-Upgrades: ${Ze.message}`)}}async function aa(){Z("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await Me("/api/maintenance/reboot",{method:"POST"}),Q("Reboot","Reboot ausgelöst. System startet neu...",()=>{t()})}catch(H){Q("Fehler",`Fehler beim Reboot: ${H.message}`)}})}async function zl(){B(!0),j("Snapshot wird erzeugt...");try{const H=await Me("/api/system/backup",{method:"POST"});j(H.ok?`Snapshot erzeugt: ${H.snapshot} (${H.files.length} Komponenten)`:"Backup fehlgeschlagen."),re()}catch(H){j(`Fehler: ${H.message}`)}finally{B(!1)}}async function hi(H){E(Ne=>({...Ne,[H]:!0}));try{const Ne=await Me("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:H})});Ne.ok?Q("Dienst neu gestartet",`Dienst ${H} wurde erfolgreich neu gestartet.`,()=>{P==="logs"&&u===H&&ce(H)}):Q("Fehler",`Fehler beim Neustart: ${Ne.err||"Unbekannter Fehler"}`)}catch(Ne){Q("Fehler",`Fehler beim Neustart: ${Ne.message}`)}finally{E(Ne=>({...Ne,[H]:!1}))}}async function pi(H){try{await Me(`/api/jobs/${H}/cancel`,{method:"POST"}),X()}catch(Ne){Q("Fehler",`Fehler beim Abbrechen: ${Ne.message}`)}}const Dn=o.find(H=>(H.state==="running"||H.state==="queued")&&H.group==="maintenance"),Fl=(n?(n.os>0?1:0)+(n.engine?1:0)+(n.swap?1:0):0)+(((Bl=n==null?void 0:n.components)==null?void 0:Bl.filter(H=>H.update===!0).length)??0);return x.jsxs(x.Fragment,{children:[x.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}),x.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:[x.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(LP,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),x.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:x.jsx(Pu,{className:"h-4 w-4"})})]}),x.jsxs("div",{className:"flex border-b border-border/40 px-6",children:[x.jsx("button",{onClick:()=>C("maintenance"),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",P==="maintenance"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Wartung"}),x.jsx("button",{onClick:()=>C("logs"),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",P==="logs"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"System-Logs"}),x.jsx("button",{onClick:()=>C("settings"),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",P==="settings"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:"Einstellungen"})]}),x.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[P==="maintenance"&&x.jsxs(x.Fragment,{children:[x.jsxs("div",{className:"space-y-2.5",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),x.jsxs("div",{className:"flex items-center gap-3",children:[Fl>0&&x.jsxs("button",{onClick:Ae,disabled:!!Dn,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:[x.jsx(rT,{className:"h-3 w-3"})," Alle aktualisieren (",Fl,")"]}),x.jsxs("button",{onClick:Pt,disabled:_||!!Dn,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[x.jsx(Go,{className:De("h-3 w-3",_&&"animate-spin")})," Nach Updates suchen"]})]})]}),(n==null?void 0:n.last_check)&&x.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",$(n.last_check)]}),Dn&&x.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:[x.jsx(Go,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),x.jsxs("span",{children:["Update läuft: ",x.jsx("span",{className:"font-semibold",children:Dn.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),x.jsxs("div",{className:"space-y-1.5",children:[x.jsx(Is,{icon:Ky,iconClass:"text-cyan-400",name:"OS-Pakete (apt)",available:!!(n!=null&&n.os),status:n!=null&&n.os?`${n.os} verfügbar`:"aktuell",actionLabel:"Anzeigen",onAction:()=>Ye("os")}),x.jsx(Is,{icon:Hy,iconClass:"text-violet-400",name:"Inferenz-Engine (llama.cpp)",available:!!(n!=null&&n.engine),status:n!=null&&n.engine?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>Ye("engine")}),x.jsx(Is,{icon:FP,iconClass:"text-fuchsia-400",name:"Router (llama-swap)",available:!!(n!=null&&n.swap),status:n!=null&&n.swap?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>Ye("swap")}),(()=>{var Ne;const H=(Ne=n==null?void 0:n.components)==null?void 0:Ne.find(Ze=>Ze.key==="hermes_agent");return x.jsx(Is,{icon:Mf,iconClass:"text-amber-400",name:"Hermes-Agent",available:(H==null?void 0:H.update)===!0,busy:ue,status:(H==null?void 0:H.update)===!0?`Update: ${H.latest}`:(H==null?void 0:H.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>Ye("hermes")})})(),(Ul=n==null?void 0:n.model_list)==null?void 0:Ul.map(H=>x.jsx(Is,{icon:GM,iconClass:"text-emerald-400",name:`Modell · ${H.role}`,available:!0,status:H.title,actionLabel:"Upgrade",onAction:()=>gr(H.repo,H.role)},H.role))]})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),x.jsx("div",{className:"space-y-1.5",children:sw.map(H=>{var Ne;return x.jsx(g3,{label:H.label,system:H.type==="system",ok:(Ne=F==null?void 0:F.services.find(Ze=>Ze.name.toLowerCase().includes(H.reach)))==null?void 0:Ne.ok,busy:S[H.id],onRestart:()=>hi(H.id),onLogs:()=>{d(H.id),C("logs")}},H.id)})})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),x.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[x.jsxs("div",{className:"flex-1 min-w-0",children:[x.jsx("div",{className:"text-xs text-foreground truncate",children:G[0]?`Letztes: ${G[0].snapshot}`:"Noch kein Backup"}),x.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[G.length," Snapshots · Restore per CLI (restore.sh)"]})]}),x.jsxs("button",{onClick:zl,disabled:D,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:[x.jsx(YM,{className:De("h-3.5 w-3.5",D&&"animate-pulse")})," Snapshot"]})]}),N&&x.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:N})]}),x.jsxs("div",{className:"space-y-2.5",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),x.jsxs("button",{onClick:aa,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:[x.jsx(gT,{className:"h-4.5 w-4.5"}),x.jsxs("div",{children:[x.jsx("div",{children:"Host-System neu starten"}),x.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),x.jsxs("div",{className:"space-y-3",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),x.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[o.filter(H=>H.state==="running"||H.state==="queued").length," Aktiv"]})]}),x.jsx("div",{className:"space-y-3",children:o.length===0?x.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."}):o.map(H=>{const Ne=H.state==="running"||H.state==="queued";return x.jsxs("div",{className:De("p-3 rounded-xl border transition-all duration-300",Ne?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[x.jsxs("div",{className:"flex items-start justify-between gap-3",children:[x.jsxs("div",{className:"space-y-1",children:[x.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[Ne&&x.jsxs("span",{className:"flex h-2 w-2 relative",children:[x.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),x.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),H.label]}),x.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[x.jsxs("span",{children:["ID: ",H.id]}),x.jsx("span",{children:"•"}),x.jsx("span",{className:De(H.state==="done"&&"text-emerald-400",H.state==="failed"&&"text-red-400",H.state==="running"&&"text-primary",H.state==="queued"&&"text-amber-400",H.state==="canceled"&&"text-muted-foreground"),children:H.state})]})]}),Ne&&x.jsx("button",{onClick:()=>pi(H.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"})]}),H.state==="running"&&x.jsxs("div",{className:"mt-3 space-y-1",children:[x.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:x.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${H.progress??0}%`}})}),x.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[x.jsxs("span",{children:[H.progress??0,"%"]}),H.done_bytes!=null&&H.total_bytes!=null&&x.jsxs("span",{children:[Dm(H.done_bytes)," / ",Dm(H.total_bytes),H.rate_bps!=null&&` (${Dm(H.rate_bps)}/s)`]}),H.eta_s!=null&&x.jsxs("span",{children:["ETA: ",H.eta_s,"s"]})]})]})]},H.id)})})]})]}),P==="logs"&&x.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx("select",{value:u,onChange:H=>d(H.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:sw.map(H=>x.jsxs("option",{value:H.id,children:[H.label," (",H.type==="system"?"systemd-root":"user",")"]},H.id))}),x.jsxs("button",{onClick:()=>hi(u),disabled:S[u],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:[x.jsx(Go,{className:De("h-3.5 w-3.5",S[u]&&"animate-spin")}),"Restart"]})]}),x.jsx(k3,{service:u,text:f,loading:m,logStatus:b,onRefresh:()=>ce(u),onOpenSettings:()=>C("settings")})]}),P==="settings"&&x.jsx(E3,{open:e,showAlert:Q})]})]}),ye&&x.jsx(P3,{detail:ye,maintenanceJob:Dn,onClose:()=>pe(null),onApply:Be}),se&&x.jsx(jA,{type:se.type,title:se.title,message:se.message,onConfirm:se.onConfirm,onCancel:se.onCancel})]})}let Pd=!1;const O3=()=>Pd;function C3(){const e=If();g.useEffect(()=>{const t=new EventSource("/api/events");return t.onopen=()=>{Pd=!0},t.onerror=()=>{Pd=!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{}}),()=>{Pd=!1,t.close()}},[e])}const Ge={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"],eigenleben:["eigenleben"],wissen:["wissen"],zeitmaschine:["zeitmaschine"],reminders:["reminders"]},ar={graph:3e3,schnell:8e3,normal:1e4,gemuetlich:3e4,traege:6e4},Ff=e=>()=>O3()?e*5:e,j3=(e=ar.schnell)=>ot({queryKey:Ge.auftragsbuch,queryFn:()=>Me("/api/auftragsbuch"),refetchInterval:Ff(e)}),DQ=(e=ar.gemuetlich)=>ot({queryKey:Ge.ideen,queryFn:()=>Me("/api/ideen"),refetchInterval:Ff(e)}),RQ=(e,t=!1)=>ot({queryKey:["ideen-log",e],queryFn:()=>Me(`/api/ideen/${e}/log`),enabled:t,refetchInterval:4e3,staleTime:0}),_3=(e=150,t=ar.gemuetlich)=>ot({queryKey:Ge.chronik,queryFn:()=>Me(`/api/chronik?limit=${e}`),refetchInterval:Ff(t),select:r=>r.items??[]}),$Q=()=>ot({queryKey:Ge.wissen,queryFn:()=>Me("/api/wissen")}),LQ=(e=ar.traege)=>ot({queryKey:Ge.eigenleben,queryFn:()=>Me("/api/eigenleben"),refetchInterval:e}),zQ=(e=ar.traege)=>ot({queryKey:Ge.zeitmaschine,queryFn:()=>Me("/api/zeitmaschine"),refetchInterval:e}),N3=(e=ar.traege)=>ot({queryKey:Ge.reminders,queryFn:()=>Me("/api/reminders"),refetchInterval:Ff(e),select:t=>t.items??[]}),I3=(e=12,t=ar.schnell)=>ot({queryKey:Ge.voiceTrace,queryFn:()=>Me(`/api/voice/trace?limit=${e}`),refetchInterval:t,select:r=>r.turns??[]}),FQ=(e=!0)=>ot({queryKey:Ge.memoryGraph,queryFn:()=>Me("/api/memory/graph"),enabled:e}),_A=()=>ot({queryKey:Ge.health,queryFn:()=>Me("/api/health"),refetchInterval:ar.normal}),Bf=(e=ar.graph)=>ot({queryKey:Ge.systemStatus,queryFn:()=>Me("/api/system/status"),refetchInterval:e}),NA=(e=ar.normal)=>ot({queryKey:Ge.services,queryFn:()=>Me("/api/system/services"),refetchInterval:e}),IA=(e=ar.schnell)=>ot({queryKey:Ge.models,queryFn:()=>Me("/api/models"),refetchInterval:e}),BQ=(e=ar.normal)=>ot({queryKey:Ge.groups,queryFn:()=>Me("/api/groups"),refetchInterval:e}),UQ=(e=3e3)=>ot({queryKey:Ge.jobs,queryFn:()=>Me("/api/jobs"),refetchInterval:e,select:t=>t.jobs??[]}),MA=(e=ar.graph)=>ot({queryKey:Ge.tokenStats,queryFn:()=>Me("/api/system/token-stats"),refetchInterval:e}),M3=(e=ar.normal)=>ot({queryKey:Ge.agentStatus,queryFn:()=>Me("/api/agent/status"),refetchInterval:e}),T3=(e=ar.traege)=>ot({queryKey:Ge.updates,queryFn:()=>Me("/api/maintenance/updates"),refetchInterval:e}),WQ=()=>ot({queryKey:Ge.discover,queryFn:()=>Me("/api/discover")}),HQ=e=>ot({queryKey:Ge.drafts(e),queryFn:()=>Me(`/api/models/drafts?target=${encodeURIComponent(e??"")}`),enabled:!!e}),KQ=e=>ot({queryKey:Ge.connect(e),queryFn:()=>Me(e?`/api/connect?${e}`:"/api/connect")}),D3=()=>ot({queryKey:Ge.connectHealth,queryFn:()=>Me("/api/connect/health"),refetchInterval:15e3}),R3=e=>ot({queryKey:Ge.memory(e==null?void 0:e.q,e==null?void 0:e.category),queryFn:()=>{const t=new URLSearchParams;return e!=null&&e.q&&t.set("q",e.q),e!=null&&e.category&&t.set("category",e.category),Me(`/api/memory?${t}`)},select:t=>e!=null&&e.limit?t.slice(0,e.limit):t});let Rv=[],$v=[];const Lv=new Set,TA=()=>Lv.forEach(e=>e());function DA(e){return Lv.add(e),()=>{Lv.delete(e)}}function $3(e){Rv=[...Rv,e].slice(-40),TA()}function L3(e){$v=[...$v,e].slice(-40),TA()}const z3=()=>g.useSyncExternalStore(DA,()=>Rv),F3=()=>g.useSyncExternalStore(DA,()=>$v);function B3(){const{data:e,dataUpdatedAt:t}=Bf(),{data:r,dataUpdatedAt:n}=MA(),i=g.useRef(null);g.useEffect(()=>{var o,s,u,d;e&&$3({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);L3({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 U3(){var O,N,j,D,B,F;const{data:e}=_A(),{data:t}=NA(),{data:r}=IA(),{data:n}=Bf(),i=!!e&&!!t,o=z=>{var G;return(G=t==null?void 0:t.services.find(U=>U.name.toLowerCase().includes(z)))==null?void 0:G.ok},s=e==null?void 0:e.engine_reachable,u=(O=e==null?void 0:e.brain)==null?void 0:O.ready,d=((N=e==null?void 0:e.brain)==null?void 0:N.model)||((j=r==null?void 0:r.models.find(z=>z.role==="hermes"))==null?void 0:j.name)||"",f=[];f.push((()=>{const z={id:"brain",label:"Lucys Hirn",icon:By,critical:!0};return i?s===!1?{...z,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}}:u===!1?{...z,status:"down",detail:"Lucys Hirn ist gerade eingeschlafen — einmal aufwecken.",repair:d?{kind:"loadModel",model:d,label:"Hirn aufwecken"}:void 0}:{...z,status:"ok",detail:"Wach und ansprechbar."}:{...z,status:"loading",detail:"Wird geprüft …"}})()),f.push((()=>{const z={id:"vision",label:"Lucys Augen",icon:jv,critical:!1};if(!i||!r)return{...z,status:"loading",detail:"Wird geprüft …"};const G=r.models.find(ue=>ue.role==="vision");return G?(r.running??[]).includes(G.name)?{...z,status:"ok",detail:"Sieht gerade zu (geladen, solange Lucy sie nutzt)."}:{...z,status:"ok",detail:"Augen ruhen — sie laden von selbst, sobald Lucy startet oder ein Bild kommt.",repair:{kind:"loadModel",model:G.name,label:"Augen wecken"}}:{...z,status:"warn",detail:"Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen."}})()),f.push((()=>{const z={id:"memory",label:"Lucys Gedächtnis",icon:qM,critical:!0},G=o("mem0");return!i||G===void 0?{...z,status:"loading",detail:"Wird geprüft …"}:G?{...z,status:"ok",detail:"Merkt sich Neues und findet Altes wieder."}:{...z,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"}}})()),f.push((()=>{const z={id:"gateway",label:"Verbindung (Gateway)",icon:Wy,critical:!0},G=e?e.gateway_reachable:o("integriert");return!i||G===void 0?{...z,status:"loading",detail:"Wird geprüft …"}:G?{...z,status:"ok",detail:"Apps und IDEs können Lucy erreichen."}:{...z,status:"down",detail:"Die Verbindungs-Zentrale antwortet nicht — Apps erreichen Lucy nicht.",repair:{kind:"restart",service:"mission-control-2",label:"Zentrale neu starten"}}})()),f.push((()=>{const z={id:"agent",label:"Lucys Agent (Hermes)",icon:Mf,critical:!0},G=o("hermes-gateway");return!i||G===void 0?{...z,status:"loading",detail:"Wird geprüft …"}:G?{...z,status:"ok",detail:"Lucy ist bereit zu reden und zu handeln."}:{...z,status:"down",detail:"Lucys Agent ist offline — sie reagiert gerade nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Agent neu starten"}}})()),f.push((()=>{const z={id:"voice",label:"Lucys Stimme",icon:vT,critical:!1},G=o("voice");return!i||G===void 0?{...z,status:"loading",detail:"Wird geprüft …"}:G?{...z,status:"ok",detail:"Lucy kann hören und sprechen."}:{...z,status:"warn",detail:"Sprechen ist gerade aus — Tippen geht weiter normal.",repair:{kind:"restart",service:"voice-service",label:"Stimme neu starten"}}})());const h=((D=n==null?void 0:n.ram)==null?void 0:D.total)??0,m=((B=n==null?void 0:n.ram)==null?void 0:B.used)??0,v=((F=n==null?void 0:n.ram)==null?void 0:F.percent)??(h>0?Math.min(100,m/h*100):0),b=1024**3,k=h?v>=93?{status:"full",usedGb:m/b,totalGb:h/b,pct:v,text:"Speicher fast voll — Lucy könnte langsamer werden."}:v>=85?{status:"warn",usedGb:m/b,totalGb:h/b,pct:v,text:"Speicher gut gefüllt — noch okay."}:{status:"ok",usedGb:m/b,totalGb:h/b,pct:v,text:"Genug Speicher frei."}:{status:"unknown",usedGb:0,totalGb:0,pct:0,text:"Speicher-Auslastung unbekannt."},S=f.some(z=>z.status==="loading"),E=f.filter(z=>z.critical&&z.status==="down"),P=f.filter(z=>z.status==="warn"||!z.critical&&z.status==="down"),C=k.status==="full";return{verdict:S&&!E.length?"loading":E.length?"problem":P.length||C?"warn":"gut",checks:f,memory:k,problems:E,warns:P}}function RA(){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:b=>{t(null),h(b)},onCancel:()=>{t(null),m==null||m()}})},[]),s=e?x.jsx(jA,{...e}):null;return{showAlert:n,showConfirm:i,showPrompt:o,close:r,dialogElement:s}}const W3={ok:"bg-emerald-500",warn:"bg-amber-500",alert:"bg-red-500",muted:"bg-muted-foreground/40",loading:"bg-muted-foreground/40 animate-pulse"},H3={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 To({icon:e,title:t,value:r,unit:n,tone:i="muted",hint:o,onClick:s}){return x.jsxs("button",{onClick:s,className:De("group relative flex flex-col items-start mc-card p-5 text-left cursor-pointer",H3[i]),children:[x.jsxs("div",{className:"mb-4 flex w-full items-center justify-between",children:[x.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:x.jsx(e,{className:"h-5 w-5"})}),x.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",W3[i]),title:o})]}),x.jsxs("div",{className:"flex items-baseline gap-1.5",children:[x.jsx("span",{className:"text-2xl font-bold tracking-tight text-foreground font-space tabular-nums",children:r}),n&&x.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n})]}),x.jsxs("div",{className:"mt-1 flex w-full items-center justify-between",children:[x.jsx("span",{className:"text-sm font-semibold text-foreground/90",children:t}),x.jsx(Js,{className:"h-4 w-4 text-muted-foreground/40 transition-all group-hover:translate-x-0.5 group-hover:text-primary"})]}),o&&x.jsx("span",{className:"mt-0.5 text-[11px] text-muted-foreground",children:o})]})}function K3(){var s;const{data:e=[]}=_3(150,6e4),[t,r]=g.useState(!1),n=e.find(u=>u.source==="chef-gutachter");if(!n)return null;const i=new Date(n.ts*1e3).toLocaleString("de-DE",{weekday:"long",day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}),o=(s=n.text.split(` -`).find(u=>u.trim().startsWith("VERDIKT:")))==null?void 0:s.replace(/^\s*VERDIKT:\s*/,"");return x.jsxs("div",{className:"rounded-2xl border border-violet-500/25 bg-violet-500/[0.05] p-4 shadow-lg shadow-black/15 backdrop-blur-md",children:[x.jsxs("button",{onClick:()=>r(u=>!u),className:"flex w-full items-center gap-3 text-left cursor-pointer",children:[x.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border border-violet-500/30 bg-background/30 text-violet-300",children:x.jsx(yT,{className:"h-4.5 w-4.5"})}),x.jsxs("span",{className:"min-w-0 flex-1",children:[x.jsx("span",{className:"block text-sm font-bold text-foreground",children:"Morgenlage"}),x.jsx("span",{className:"block truncate text-xs text-muted-foreground",children:o||n.subject||"Nächtliches Gutachten über die autonome Arbeit"})]}),x.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",children:i}),t?x.jsx(XM,{className:"h-4 w-4 shrink-0 text-muted-foreground"}):x.jsx(Js,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]}),t&&x.jsxs("div",{className:"mt-3 border-t border-violet-500/15 pt-3",children:[n.subject&&x.jsx("p",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-violet-300/80",children:n.subject}),x.jsx("p",{className:"whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:n.text})]})]})}const uw={"":"einmalig",daily:"täglich",weekdays:"werktags",weekly:"wöchentlich"};function V3(){const{data:e=[],isLoading:t}=N3(),r=If(),{showAlert:n,showConfirm:i,dialogElement:o}=RA(),[s,u]=g.useState(!1),[d,f]=g.useState(""),[h,m]=g.useState(""),[v,b]=g.useState(""),[k,S]=g.useState(!1),E=()=>r.invalidateQueries({queryKey:Ge.reminders});async function P(){if(!(!d.trim()||!h)){S(!0);try{await Me("/api/reminders",{method:"POST",body:JSON.stringify({text:d,when:h,repeat:v})}),f(""),m(""),b(""),u(!1),E()}catch(O){n("Anlegen fehlgeschlagen",String((O==null?void 0:O.message)||O))}finally{S(!1)}}}function C(O,N){i("Erinnerung löschen?",`„${N}" wird entfernt.`,async()=>{try{await Me(`/api/reminders/${O}`,{method:"DELETE"}),E()}catch(j){n("Fehler",String((j==null?void 0:j.message)||j))}})}const _=[...e].sort((O,N)=>O.next_ts-N.next_ts);return x.jsxs("div",{className:"mc-card p-4",children:[x.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[x.jsxs("span",{className:"flex items-center gap-2 text-sm font-bold text-foreground",children:[x.jsx("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 bg-background/30 text-amber-300",children:x.jsx(VM,{className:"h-4 w-4"})}),"Anstehendes"]}),x.jsxs("button",{onClick:()=>u(O=>!O),className:"flex h-8 items-center gap-1 rounded-lg border border-border/60 bg-background/30 px-2.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground hover:border-primary/40 transition-all cursor-pointer",children:[s?x.jsx(Pu,{className:"h-3.5 w-3.5"}):x.jsx(F1,{className:"h-3.5 w-3.5"})," ",s?"Abbrechen":"Neu"]})]}),s&&x.jsxs("div",{className:"mb-3 space-y-2 rounded-xl border border-border/50 bg-background/30 p-3",children:[x.jsx("input",{value:d,onChange:O=>f(O.target.value),placeholder:"Woran soll Lucy erinnern?","aria-label":"Erinnerungstext",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 px-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),x.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[x.jsx("input",{type:"datetime-local",value:h,onChange:O=>m(O.target.value),"aria-label":"Zeitpunkt",className:"h-9 rounded-lg border border-border/60 bg-card/45 px-2 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50 [color-scheme:dark]"}),x.jsx("select",{value:v,onChange:O=>b(O.target.value),"aria-label":"Wiederholung",className:"h-9 cursor-pointer rounded-lg border border-border/60 bg-card/45 px-2 text-xs font-semibold text-foreground outline-none",children:Object.entries(uw).map(([O,N])=>x.jsx("option",{value:O,className:"bg-popover",children:N},O))}),x.jsxs("button",{onClick:P,disabled:k||!d.trim()||!h,className:"ml-auto flex h-9 items-center gap-1.5 rounded-lg bg-primary px-3 text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50",children:[k?x.jsx(Tf,{className:"h-3.5 w-3.5 animate-spin"}):x.jsx(F1,{className:"h-3.5 w-3.5"})," Anlegen"]})]})]}),t?x.jsx("p",{className:"text-xs text-muted-foreground",children:"Wird geladen …"}):_.length===0?x.jsx("p",{className:"text-xs text-muted-foreground",children:"Keine Erinnerungen. Lucy sagt dir hier (und per Stimme) Bescheid, wenn etwas ansteht."}):x.jsxs("div",{className:"space-y-1.5",children:[_.slice(0,6).map(O=>{const N=O.next_ts*1e3C(O.id,O.text),"aria-label":"Erinnerung löschen",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground opacity-0 transition-all hover:bg-red-500/5 hover:text-red-400 group-hover:opacity-100 cursor-pointer",children:x.jsx(PT,{className:"h-3.5 w-3.5"})})]},O.id)}),_.length>6&&x.jsxs("p",{className:"text-[10px] text-muted-foreground/60",children:["+",_.length-6," weitere"]})]}),o]})}function q3(){const{data:e,error:t}=Bf(),r=z3();return{sys:e,hist:r,error:t}}function Do(e){return(e/1024**3).toFixed(1)}function VQ(e){return e?e>1024**3?`${(e/1024**3).toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`:""}function qQ(e){if(!e)return"—";const t=e/1024**3;return t>=1?`${t.toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`}function GQ(e){if(!e)return"";const t=Math.floor(e/60);return t>0?`${t} min`:`${e} s`}function YQ(e){return e?`${Math.round(e/1024)}k`:"—"}var G3=["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=G3;return t.includes(e)}var Y3=["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"],Q3=new Set(Y3);function $A(e){return typeof e!="string"?!1:Q3.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 Uf(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 X3(e){return e==null?null:g.isValidElement(e)?Br(e.props):typeof e=="object"&&!Array.isArray(e)?Br(e):null}var Z3=["children","width","height","viewBox","className","style","title","desc"];function zv(){return zv=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=J3(e,Z3),m=o||{width:n,height:i,x:0,y:0},v=Xe("recharts-surface",s);return g.createElement("svg",zv({},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)}),t5=["children","className"];function Fv(){return Fv=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,i=r5(e,t5),o=Xe("recharts-layer",n);return g.createElement("g",Fv({className:o},Br(i),{ref:t}),r)}),i5=g.createContext(null);function ft(e){return function(){return e}}const Bv=Math.PI,Uv=2*Bv,ka=1e-6,a5=Uv-ka;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;ika)if(!(Math.abs(m*d-f*h)>ka)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let b=n-s,k=i-u,S=d*d+f*f,E=b*b+k*k,P=Math.sqrt(S),C=Math.sqrt(v),_=o*Math.tan((Bv-Math.acos((S+v-E)/(2*P*C)))/2),O=_/C,N=_/P;Math.abs(O-1)>ka&&this._append`L${t+O*h},${r+O*m}`,this._append`A${o},${o},0,0,${+(m*b>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)>ka||Math.abs(this._y1-h)>ka)&&this._append`L${f},${h}`,n&&(v<0&&(v=v%Uv+Uv),v>a5?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>ka&&this._append`A${n},${n},0,${+(v>=Bv)},${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 l5(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 Wf(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=Wf,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,b;for(n==null&&(o=i(b=s())),f=0;f<=h;++f)!(f=b;--k)u.point(_[k],O[k]);u.lineEnd(),u.areaEnd()}P&&(_[v]=+e(E,v,m),O[v]=+t(E,v,m),u.point(n?+n(E,v,m):_[v],r?+r(E,v,m):O[v]))}if(C)return u=null,C+""||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 s5(e){return new VA(e,!0)}function u5(e){return new VA(e,!1)}function Dd(){}function Rd(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:Rd(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:Rd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function c5(e){return new qA(e)}function GA(e){this._context=e}GA.prototype={areaStart:Dd,areaEnd:Dd,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:Rd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function d5(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:Rd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function f5(e){return new YA(e)}function QA(e){this._context=e}QA.prototype={areaStart:Dd,areaEnd:Dd,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 h5(e){return new QA(e)}function cw(e){return e<0?-1:1}function dw(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(cw(o)+cw(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function fw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Rm(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 $d(e){this._context=e}$d.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:Rm(this,this._t0,fw(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,Rm(this,fw(this,r=dw(this,e,t)),r);break;default:Rm(this,this._t0,r=dw(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($d.prototype)).point=function(e,t){$d.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 p5(e){return new $d(e)}function m5(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=hw(e),i=hw(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 y5(e){return new Hf(e,.5)}function g5(e){return new Hf(e,0)}function x5(e){return new Hf(e,1)}function Va(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 b5(e,t){return e[t]}function w5(e){const t=[];return t.key=e,t}function S5(){var e=ft([]),t=Wv,r=Va,n=b5;function i(o){var s=Array.from(e.apply(this,arguments),w5),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]:O5,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+Qi(u)+o:i+o},"")}var Lr=e=>e===0?0:e>0?1:-1,On=e=>typeof e=="number"&&e!=+e,qa=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",C5=0,nu=e=>{var t=++C5;return"".concat(e||"").concat(t)},ra=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(qa(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},r2=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):to(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 Ol(){}var i2=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},j5=(e,t,r)=>n=>(e(t,r,n),null),_5=(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]=j5(o,t,r))}),n};function pw(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 N5(e){for(var t=1;t(s[u]===void 0&&n[u]!==void 0&&(s[u]=n[u]),s),r);return o}function D5(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 F5="[object RegExp]",o2="[object String]",l2="[object Number]",s2="[object Boolean]",u2="[object Arguments]",B5="[object Symbol]",U5="[object Date]",W5="[object Map]",H5="[object Set]",K5="[object Array]",V5="[object ArrayBuffer]",q5="[object Object]",G5="[object DataView]",Y5="[object Uint8Array]",Q5="[object Uint8ClampedArray]",X5="[object Uint16Array]",Z5="[object Uint32Array]",J5="[object Int8Array]",e$="[object Int16Array]",t$="[object Int32Array]",r$="[object Float32Array]",n$="[object Float64Array]",mw=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function i$(e){return typeof mw.Buffer<"u"&&mw.Buffer.isBuffer(e)}function a$(e,t){return Oa(e,void 0,e,new Map,t)}function Oa(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(Kv(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{}):Vv(e,t,function n(i,o,s,u,d,f){const h=r(i,o,s,u,d,f);return h!==void 0?!!h:Vv(i,o,n,f,!1)},new Map,!0)}function Vv(e,t,r,n,i=!1){if(t===e)return!0;switch(typeof t){case"object":return s$(e,t,r,n);case"function":return Object.keys(t).length>0?Vv(e,{...t},r,n,i):Ad(e,t);default:return c2(e)&&i?typeof t=="string"?t==="":!0:Ad(e,t)}}function s$(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return f2(e,t,r,n);if(t instanceof Map)return u$(e,t,r,n);if(t instanceof Set)return c$(e,t,r,n);const i=Object.keys(t);if(e==null||Kv(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 d$(e){return e=l$(e),t=>h2(t,e)}function f$(e,t){return a$(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 l2:case o2:case s2:{const s=new e.constructor(e==null?void 0:e.valueOf());return en(s,e),s}case u2:{const s={};return en(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function h$(e){return f$(e)}const p$=/^(?:0|[1-9]\d*)$/;function p2(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function m2(e){return e!=null&&typeof e!="function"&&x$(e.length)}function b$(e){return typeof e=="object"&&e!==null}function w$(e){return b$(e)&&m2(e)}function vw(e,t=a2){return w$(e)?D5(Array.from(e),R5(g$(t),1)):[]}function S$(e,t,r){return t===!0?vw(e,r):typeof t=="function"?vw(e,t):e}var $m={exports:{}},Lm={},zm={exports:{}},Fm={};/** - * @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 yw;function k$(){if(yw)return Fm;yw=1;var e=Pl();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 b=v(),k=n({inst:{value:b,getSnapshot:v}}),S=k[0].inst,E=k[1];return o(function(){S.value=b,S.getSnapshot=v,d(S)&&E({inst:S})},[m,b,v]),i(function(){return d(S)&&E({inst:S}),m(function(){d(S)&&E({inst:S})})},[m]),s(b),b}function d(m){var v=m.getSnapshot;m=m.value;try{var b=v();return!r(m,b)}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 Fm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Fm}var gw;function E$(){return gw||(gw=1,zm.exports=k$()),zm.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 xw;function P$(){if(xw)return Lm;xw=1;var e=Pl(),t=E$();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 Lm.useSyncExternalStoreWithSelector=function(f,h,m,v,b){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(j){if(!C){if(C=!0,_=j,j=v(j),b!==void 0&&S.hasValue){var D=S.value;if(b(D,j))return O=D}return O=j}if(D=O,n(_,j))return D;var B=v(j);return b!==void 0&&b(D,B)?(_=j,D):(_=j,O=B)}var C=!1,_,O,N=m===void 0?null:m;return[function(){return P(h())},N===null?void 0:function(){return P(N())}]},[h,m,v,b]);var E=i(f,k[0],k[1]);return s(function(){S.hasValue=!0,S.value=E},[E]),d(E),E},Lm}var bw;function A$(){return bw||(bw=1,$m.exports=P$()),$m.exports}var O$=A$(),ig=g.createContext(null),C$=e=>e,gt=()=>{var e=g.useContext(ig);return e?e.store.dispatch:C$},Od=()=>{},j$=()=>Od,_$=(e,t)=>e===t;function Ee(e){var t=g.useContext(ig),r=g.useMemo(()=>t?n=>{if(n!=null)return e(n)}:Od,[t,e]);return O$.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:j$,t?t.store.getState:Od,t?t.store.getState:Od,r,_$)}function N$(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function I$(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 ww=e=>Array.isArray(e)?e:[e];function M$(e){const t=Array.isArray(e[0])?e[0]:e;return I$(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function T$(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?D$:WeakRef,v2=R$(),$$=0,Sw=1;function ld(){return{s:$$,v:void 0,o:null,p:null}}function L$(e){return e instanceof v2?e.deref():e}function y2(e,t={}){let r=ld();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=ld(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function z$(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()),N$(f,`createSelector expects an output function after the inputs, but received: [${typeof f}]`);const h={...r,...d},{memoize:m,memoizeOptions:v=[],argsMemoize:b=y2,argsMemoizeOptions:k=[]}=h,S=ww(v),E=ww(k),P=M$(i),C=m(function(){return o++,f.apply(null,arguments)},...S),_=b(function(){s++;const N=T$(P,arguments);return u=C.apply(null,N),u},...E);return Object.assign(_,{resultFunc:f,memoizedResultFunc:C,dependencies:P,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>u,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:b})};return Object.assign(n,{withTypes:()=>n}),n}var V=z$(y2);function F$(e,t=1){const r=[],n=Math.floor(t),i=(o,s)=>{for(let u=0;u{if(e!==t){const n=kw(e),i=kw(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function g2(e){return typeof e=="symbol"||e instanceof Symbol}const U$=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,W$=/^\w*$/;function H$(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||g2(e)?!0:typeof e=="string"&&(W$.test(e)||!U$.test(e))||t!=null}function K$(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)||H$(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 Kf(e,...t){const r=t.length;return r>1&&qv(e,t[0],t[1])?t=[]:r>2&&qv(t[0],t[1],t[2])&&(t=[t[0]]),K$(e,F$(t),["asc"])}var x2=e=>e.legend.settings,V$=e=>e.legend.size,q$=e=>e.legend.payload;V([q$,x2],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?Kf(n,r):n});function G$(e,t){return Z$(e)||X$(e,t)||Q$(e,t)||Y$()}function Y$(){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 Q$(e,t){if(e){if(typeof e=="string")return Ew(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)?Ew(e,t):void 0}}function Ew(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rsd||Math.abs(e.left-t.left)>sd||Math.abs(e.top-t.top)>sd||Math.abs(e.width-t.width)>sd}function Aw(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function J$(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=g.useState({height:0,left:0,top:0,width:0}),r=G$(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=Aw(d);if(Pw(f,s.current)&&i(f),typeof ResizeObserver<"u"){var h=new ResizeObserver(()=>{var m=Aw(d);Pw(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 e4=typeof Symbol=="function"&&Symbol.observable||"@@observable",Ow=e4,Bm=()=>Math.random().toString(36).substring(7).split("").join("."),t4={INIT:`@@redux/INIT${Bm()}`,REPLACE:`@@redux/REPLACE${Bm()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Bm()}`},Ld=t4;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 b2(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(b2)(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 C=u++;return s.set(C,E),function(){if(P){if(d)throw new Error($t(6));P=!1,f(),s.delete(C),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(C=>{C()}),E}function b(E){if(typeof E!="function")throw new Error($t(10));n=E,v({type:Ld.REPLACE})}function k(){const E=m;return{subscribe(P){if(typeof P!="object"||P===null)throw new Error($t(11));function C(){const O=P;O.next&&O.next(h())}return C(),{unsubscribe:E(C)}},[Ow](){return this}}}return v({type:Ld.INIT}),{dispatch:v,subscribe:m,getState:h,replaceReducer:b,[Ow]:k}}function r4(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Ld.INIT})>"u")throw new Error($t(12));if(typeof r(void 0,{type:Ld.PROBE_UNKNOWN_ACTION()})>"u")throw new Error($t(13))})}function w2(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!==b}return d=d||n.length!==Object.keys(s).length,d?f:s}}function zd(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function n4(...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=zd(...u)(i.dispatch),{...i,dispatch:o}}}function S2(e){return ag(e)&&"type"in e&&typeof e.type=="string"}var k2=Symbol.for("immer-nothing"),Cw=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,vl=Ar.getPrototypeOf,Fd="constructor",Vf="prototype",Gv="configurable",Bd="enumerable",Cd="writable",iu="value",ri=e=>!!e&&!!e[ir];function ln(e){var t;return e?E2(e)||Gf(e)||!!e[Cw]||!!((t=e[Fd])!=null&&t[Cw])||Yf(e)||Qf(e):!1}var i4=Ar[Vf][Fd].toString(),jw=new WeakMap;function E2(e){if(!e||!og(e))return!1;const t=vl(e);if(t===null||t===Ar[Vf])return!0;const r=Ar.hasOwnProperty.call(t,Fd)&&t[Fd];if(r===Object)return!0;if(!Ko(r))return!1;let n=jw.get(r);return n===void 0&&(n=Function.toString.call(r),jw.set(r,n)),n===i4}function qf(e,t,r=!0){Ou(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 Ou(e){const t=e[ir];return t?t.type_:Gf(e)?1:Yf(e)?2:Qf(e)?3:0}var _w=(e,t,r=Ou(e))=>r===2?e.has(t):Ar[Vf].hasOwnProperty.call(e,t),Yv=(e,t,r=Ou(e))=>r===2?e.get(t):e[t],Ud=(e,t,r,n=Ou(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function a4(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Gf=Array.isArray,Yf=e=>e instanceof Map,Qf=e=>e instanceof Set,og=e=>typeof e=="object",Ko=e=>typeof e=="function",Um=e=>typeof e=="boolean";function o4(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Vn=e=>e.copy_||e.base_,lg=e=>e.modified_?e.copy_:e.base_;function Qv(e,t){if(Yf(e))return new Map(e);if(Qf(e))return new Set(e);if(Gf(e))return Array[Vf].slice.call(e);const r=E2(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:ud,add:ud,clear:ud,delete:ud}),Ar.freeze(e),t&&qf(e,(r,n)=>{sg(n,!0)},!1)),e}function l4(){rn(2)}var ud={[iu]:l4};function Xf(e){return e===null||!og(e)?!0:Ar.isFrozen(e)}var Wd="MapSet",Xv="Patches",Nw="ArrayMethods",P2={};function Ga(e){const t=P2[e];return t||rn(0,e),t}var Iw=e=>!!P2[e],au,A2=()=>au,s4=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Iw(Wd)?Ga(Wd):void 0,arrayMethodsPlugin_:Iw(Nw)?Ga(Nw):void 0});function Mw(e,t){t&&(e.patchPlugin_=Ga(Xv),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Zv(e){Jv(e),e.drafts_.forEach(u4),e.drafts_=null}function Jv(e){e===au&&(au=e.parent_)}var Tw=e=>au=s4(au,e);function u4(e){const t=e[ir];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Dw(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[ir].modified_&&(Zv(t),rn(4)),ln(e)&&(e=Rw(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[ir].base_,e,t)}else e=Rw(t,r);return c4(t,e,!0),Zv(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==k2?e:void 0}function Rw(e,t){if(Xf(t))return t;const r=t[ir];if(!r)return Hd(t,e.handledSet_,e);if(!Zf(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);j2(r,e)}return r.copy_}function c4(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sg(t,r)}function O2(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Zf=(e,t)=>e.scope_===t,d4=[];function C2(e,t,r,n){const i=Vn(e),o=e.type_;if(n!==void 0&&Yv(i,n,o)===t){Ud(i,n,r,o);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;qf(i,(d,f)=>{if(ri(f)){const h=u.get(f)||[];h.push(d),u.set(f,h)}})}const s=e.draftLocations_.get(t)??d4;for(const u of s)Ud(i,u,r,o)}function f4(e,t,r){e.callbacks_.push(function(i){var u;const o=t;if(!o||!Zf(o,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(o);const s=lg(o);C2(e,o.draft_??o,s,r),j2(o,i)})}function j2(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)}O2(e)}}function h4(e,t,r){const{scope_:n}=e;if(ri(r)){const i=r[ir];Zf(i,n)&&i.callbacks_.push(function(){jd(e);const s=lg(i);C2(e,r,s,t)})}else ln(r)&&e.callbacks_.push(function(){const o=Vn(e);e.type_===3?o.has(r)&&Hd(r,n.handledSet_,n):Yv(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Hd(Yv(e.copy_,t,e.type_),n.handledSet_,n)})}function Hd(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ri(e)||t.has(e)||!ln(e)||Xf(e)||(t.add(e),qf(e,(n,i)=>{if(ri(i)){const o=i[ir];if(Zf(o,r)){const s=lg(o);Ud(e,n,s,e.type_),O2(o)}}else ln(i)&&Hd(i,t,r)})),e}function p4(e,t){const r=Gf(e),n={type_:r?1:0,scope_:t?t.scope_:A2(),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=Kd;r&&(i=[n],o=ou);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,[u,n]}var Kd={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=Vn(e);if(!_w(i,t,e.type_))return m4(e,i,t);const o=i[t];if(e.finalized_||!ln(o)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&o4(t))return o;if(o===Wm(e.base_,t)){jd(e);const s=e.type_===1?+t:t,u=ty(e.scope_,o,e,s);return e.copy_[s]=u}return o},has(e,t){return t in Vn(e)},ownKeys(e){return Reflect.ownKeys(Vn(e))},set(e,t,r){const n=_2(Vn(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Wm(Vn(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(a4(r,i)&&(r!==void 0||_w(e.base_,t,e.type_)))return!0;jd(e),ey(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),h4(e,t,r)),!0},deleteProperty(e,t){return jd(e),Wm(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),ey(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Vn(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Cd]:!0,[Gv]:e.type_!==1||t!=="length",[Bd]:n[Bd],[iu]:r[t]}},defineProperty(){rn(11)},getPrototypeOf(e){return vl(e.base_)},setPrototypeOf(){rn(12)}},ou={};for(let e in Kd){let t=Kd[e];ou[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}ou.deleteProperty=function(e,t){return ou.set.call(this,e,t,void 0)};ou.set=function(e,t,r){return Kd.set.call(this,e[0],t,r,e[0])};function Wm(e,t){const r=e[ir];return(r?Vn(r):e)[t]}function m4(e,t,r){var i;const n=_2(t,r);return n?iu in n?n[iu]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function _2(e,t){if(!(t in e))return;let r=vl(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=vl(r)}}function ey(e){e.modified_||(e.modified_=!0,e.parent_&&ey(e.parent_))}function jd(e){e.copy_||(e.assigned_=new Map,e.copy_=Qv(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var v4=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Ko(r)&&!Ko(n)){const s=n;n=r;const u=this;return function(f=s,...h){return u.produce(f,m=>n.call(this,m,...h))}}Ko(n)||rn(6),i!==void 0&&!Ko(i)&&rn(7);let o;if(ln(r)){const s=Tw(this),u=ty(s,r,void 0);let d=!0;try{o=n(u),d=!1}finally{d?Zv(s):Jv(s)}return Mw(s,i),Dw(o,s)}else if(!r||!og(r)){if(o=n(r),o===void 0&&(o=r),o===k2&&(o=void 0),this.autoFreeze_&&sg(o,!0),i){const s=[],u=[];Ga(Xv).generateReplacementPatches_(r,o,{patches_:s,inversePatches_:u}),i(s,u)}return o}else rn(1,r)},this.produceWithPatches=(r,n)=>{if(Ko(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]},Um(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Um(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Um(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){ln(t)||rn(8),ri(t)&&(t=zr(t));const r=Tw(this),n=ty(r,t,void 0);return n[ir].isManual_=!0,Jv(r),n}finishDraft(t,r){const n=t&&t[ir];(!n||!n.isManual_)&&rn(9);const{scope_:i}=n;return Mw(i,r),Dw(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=Ga(Xv).applyPatches_;return ri(t)?i(t,r):this.produce(t,o=>i(o,r))}};function ty(e,t,r,n){const[i,o]=Yf(t)?Ga(Wd).proxyMap_(t,r):Qf(t)?Ga(Wd).proxySet_(t,r):p4(t,r);return((r==null?void 0:r.scope_)??A2()).drafts_.push(i),o.callbacks_=(r==null?void 0:r.callbacks_)??[],o.key_=n,r&&n!==void 0?f4(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 ri(e)||rn(10,e),N2(e)}function N2(e){if(!ln(e)||Xf(e))return e;const t=e[ir];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Qv(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Qv(e,!0);return qf(r,(i,o)=>{Ud(r,i,N2(o))},n),t&&(t.finalized_=!1),r}var y4=new v4,I2=y4.produce;function M2(e){return({dispatch:r,getState:n})=>i=>o=>typeof o=="function"?o(r,n,e):i(o)}var g4=M2(),x4=M2,b4=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?zd:zd.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=>S2(n)&&n.type===e,r}var T2=class Hs extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Hs.prototype)}static get[Symbol.species](){return Hs}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Hs(...t[0].concat(this)):new Hs(...t.concat(this))}};function $w(e){return ln(e)?I2(e,()=>{}):e}function cd(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function w4(e){return typeof e=="boolean"}var S4=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let s=new T2;return r&&(w4(r)?s.push(g4):s.push(x4(r.extraArgument))),s},D2="RTK_autoBatch",rt=()=>e=>({payload:e,meta:{[D2]:!0}}),Lw=e=>t=>{setTimeout(t,e)},k4=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(s),r())},o=e(i),s=setTimeout(i,t)},R2=(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?k4(window.requestAnimationFrame,100):Lw(10):e.type==="callback"?e.queueNotification:Lw(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[D2]),o=!i,o&&(s||(s=!0,d(f))),n.dispatch(h)}finally{i=!0}}})},E4=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new T2(e);return n&&i.push(R2(typeof n=="object"?n:void 0)),i};function P4(e){const t=S4(),{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=w2(r);else throw new Error(Or(1));let d;typeof n=="function"?d=n(t):d=t();let f=zd;i&&(f=b4({trace:!1,...typeof i=="object"&&i}));const h=n4(...d),m=E4(h);let v=typeof s=="function"?s(m):m();const b=f(...v);return b2(u,o,b)}function $2(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 A4(e){return typeof e=="function"}function O4(e,t){let[r,n,i]=$2(t),o;if(A4(e))o=()=>$w(e());else{const u=$w(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(ri(h)){const b=m(h,d);return b===void 0?h:b}else{if(ln(h))return I2(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 C4="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",j4=(e=21)=>{let t="",r=e;for(;r--;)t+=C4[Math.random()*64|0];return t},_4=Symbol.for("rtk-slice-createasyncthunk");function N4(e,t){return`${e}/${t}`}function I4({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[_4];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(T4()):i.reducers)||{},d=Object.keys(u),f={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(O,N){const j=typeof O=="string"?O:O.type;if(!j)throw new Error(Or(12));if(j in f.sliceCaseReducersByType)throw new Error(Or(13));return f.sliceCaseReducersByType[j]=N,h},addMatcher(O,N){return f.sliceMatchers.push({matcher:O,reducer:N}),h},exposeAction(O,N){return f.actionCreators[O]=N,h},exposeCaseReducer(O,N){return f.sliceCaseReducersByName[O]=N,h}};d.forEach(O=>{const N=u[O],j={reducerName:O,type:N4(o,O),createNotation:typeof i.reducers=="function"};R4(N)?L4(j,N,h,t):D4(j,N,h)});function m(){const[O={},N=[],j=void 0]=typeof i.extraReducers=="function"?$2(i.extraReducers):[i.extraReducers],D={...O,...f.sliceCaseReducersByType};return O4(i.initialState,B=>{for(let F in D)B.addCase(F,D[F]);for(let F of f.sliceMatchers)B.addMatcher(F.matcher,F.reducer);for(let F of N)B.addMatcher(F.matcher,F.reducer);j&&B.addDefaultCase(j)})}const v=O=>O,b=new Map,k=new WeakMap;let S;function E(O,N){return S||(S=m()),S(O,N)}function P(){return S||(S=m()),S.getInitialState()}function C(O,N=!1){function j(B){let F=B[O];return typeof F>"u"&&N&&(F=cd(k,j,P)),F}function D(B=v){const F=cd(b,N,()=>new WeakMap);return cd(F,B,()=>{const z={};for(const[G,U]of Object.entries(i.selectors??{}))z[G]=M4(U,B,()=>cd(k,B,P),N);return z})}return{reducerPath:O,getSelectors:D,get selectors(){return D(j)},selectSlice:j}}const _={name:o,reducer:E,actions:f.actionCreators,caseReducers:f.sliceCaseReducersByName,getInitialState:P,...C(s),injectInto(O,{reducerPath:N,...j}={}){const D=N??s;return O.inject({reducerPath:D,reducer:E},j),{..._,...C(D,!0)}}};return _}}function M4(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=I4();function T4(){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 D4({type:e,reducerName:t,createNotation:r},n,i){let o,s;if("reducer"in n){if(r&&!$4(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 R4(e){return e._reducerDefinitionType==="asyncThunk"}function $4(e){return e._reducerDefinitionType==="reducerWithPrepare"}function L4({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||dd,pending:u||dd,rejected:d||dd,settled:f||dd})}function dd(){}var z4="task",L2="listener",z2="completed",ug="cancelled",F4=`task-${ug}`,B4=`task-${z2}`,ry=`${L2}-${ug}`,U4=`${L2}-${z2}`,Jf=class{constructor(e){Os(this,"code");Os(this,"name","TaskAbortError");Os(this,"message");this.code=e,this.message=`${z4} ${ug} (reason: ${e})`}},cg=(e,t)=>{if(typeof e!="function")throw new TypeError(Or(32))},Vd=()=>{},F2=(e,t=Vd)=>(e.catch(t),e),B2=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Ua=e=>{if(e.aborted)throw new Jf(e.reason)};function U2(e,t){let r=Vd;return new Promise((n,i)=>{const o=()=>i(new Jf(e.reason));if(e.aborted){o();return}r=B2(e,o),t.finally(()=>r()).then(n,i)}).finally(()=>{r=Vd})}var W4=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof Jf?"cancelled":"rejected",error:r}}finally{t==null||t()}},qd=e=>t=>F2(U2(e,t).then(r=>(Ua(e),r))),W2=e=>{const t=qd(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Zo}=Object,zw={},eh="listenerMiddleware",H4=(e,t)=>{const r=n=>B2(e,()=>n.abort(e.reason));return(n,i)=>{cg(n);const o=new AbortController;r(o);const s=W4(async()=>{Ua(e),Ua(o.signal);const u=await n({pause:qd(o.signal),delay:W2(o.signal),signal:o.signal});return Ua(o.signal),u},()=>o.abort(B4));return i!=null&&i.autoJoin&&t.push(s.catch(Vd)),{result:qd(e)(s),cancel(){o.abort(F4)}}}},K4=(e,t)=>{const r=async(n,i)=>{Ua(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 U2(t,Promise.race(u));return Ua(t),d}finally{o()}};return((n,i)=>F2(r(n,i)))},H2=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}},K2=Zo(e=>{const{type:t,predicate:r,effect:n}=H2(e);return{id:j4(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Or(22))}}},{withTypes:()=>K2}),Fw=(e,t)=>{const{type:r,effect:n,predicate:i}=H2(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===i)&&o.effect===n)},ny=e=>{e.pending.forEach(t=>{t.abort(ry)})},V4=(e,t)=>()=>{for(const r of t.keys())ny(r);e.clear()},Bw=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},V2=Zo(Cr(`${eh}/add`),{withTypes:()=>V2}),q4=Cr(`${eh}/removeAll`),q2=Zo(Cr(`${eh}/remove`),{withTypes:()=>q2}),G4=(...e)=>{console.error(`${eh}/error`,...e)},Cu=(e={})=>{const t=new Map,r=new Map,n=b=>{const k=r.get(b)??0;r.set(b,k+1)},i=b=>{const k=r.get(b)??1;k===1?r.delete(b):r.set(b,k-1)},{extra:o,onError:s=G4}=e;cg(s);const u=b=>(b.unsubscribe=()=>t.delete(b.id),t.set(b.id,b),k=>{b.unsubscribe(),k!=null&&k.cancelActive&&ny(b)}),d=(b=>{const k=Fw(t,b)??K2(b);return u(k)});Zo(d,{withTypes:()=>d});const f=b=>{const k=Fw(t,b);return k&&(k.unsubscribe(),b.cancelActive&&ny(k)),!!k};Zo(f,{withTypes:()=>f});const h=async(b,k,S,E)=>{const P=new AbortController,C=K4(d,P.signal),_=[];try{b.pending.add(P),n(b),await Promise.resolve(b.effect(k,Zo({},S,{getOriginalState:E,condition:(O,N)=>C(O,N).then(Boolean),take:C,delay:W2(P.signal),pause:qd(P.signal),extra:o,signal:P.signal,fork:H4(P.signal,_),unsubscribe:b.unsubscribe,subscribe:()=>{t.set(b.id,b)},cancelActiveListeners:()=>{b.pending.forEach((O,N,j)=>{O!==P&&(O.abort(ry),j.delete(O))})},cancel:()=>{P.abort(ry),b.pending.delete(P)},throwIfCancelled:()=>{Ua(P.signal)}})))}catch(O){O instanceof Jf||Bw(s,O,{raisedBy:"effect"})}finally{await Promise.all(_),P.abort(U4),i(b),b.pending.delete(P)}},m=V4(t,r);return{middleware:b=>k=>S=>{if(!S2(S))return k(S);if(V2.match(S))return d(S.payload);if(q4.match(S)){m();return}if(q2.match(S))return f(S.payload);let E=b.getState();const P=()=>{if(E===zw)throw new Error(Or(23));return E};let C;try{if(C=k(S),t.size>0){const _=b.getState(),O=Array.from(t.values());for(const N of O){let j=!1;try{j=N.predicate(S,_,E)}catch(D){j=!1,Bw(s,D,{raisedBy:"predicate"})}j&&h(N,S,b,P)}}}finally{E=zw}return C},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 Y4={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},G2=Zt({name:"chartLayout",initialState:Y4,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}}}),th=G2.actions,Q4=th.setMargin,X4=th.setLayout,Z4=th.setChartSize,J4=th.setScale,eL=G2.reducer;function Y2(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Le(e){return Number.isFinite(e)}function jn(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Uw(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 Vo(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 Vo(Vo({},e),{},{[o]:e[o]+(n||0)});if((u==="horizontal"||u==="vertical"&&o==="center")&&s!=="middle"&&be(e[s]))return Vo(Vo({},e),{},{[s]:e[s]+(i||0)})}return e},Mn=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",Q2=(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},X2=(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,b=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=b==="angleAxis"&&o&&o.length>=2?Lr(o[0]-o[1])*2*S:S,m||v){var E=(m||v||[]).map((P,C)=>{var _=n?n.indexOf(P):P,O=s.map(_);return Le(O)?{coordinate:O+S,value:P,offset:S,index:C}:null}).filter(mr);return E}return d&&f?f.map((P,C)=>{var _=s.map(P);return Le(_)?{coordinate:_+S,value:P,index:C,offset:S}:null}).filter(mr):s.ticks&&h!=null?s.ticks(h).map((P,C)=>{var _=s.map(P);return Le(_)?{coordinate:_+S,value:P,index:C,offset:S}:null}).filter(mr):s.domain().map((P,C)=>{var _=s.map(P);return Le(_)?{coordinate:_+S,value:n?n[P]:P,index:C,offset:S}:null}).filter(mr)},aL=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)}}}},oL=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)}}}},lL={sign:aL,expand:k5,none:Va,silhouette:E5,wiggle:P5,positive:oL},sL=(e,t,r)=>{var n,i=(n=lL[r])!==null&&n!==void 0?n:Va,o=S5().keys(t).value((u,d)=>Number(Nt(u,d,0))).order(Wv).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 uL(e){return e==null?void 0:String(e)}function Ww(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=n2(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 cL=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},dL=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],fL=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return dL(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=Y2(f,t,r),m=cL(h);return!Le(m[0])||!Le(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]))},Hw=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Kw=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Gd=(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=Kf(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},pL=(e,t)=>t==="centric"?e.angle:e.radius,oi=e=>e.layout.width,li=e=>e.layout.height,mL=e=>e.layout.scale,J2=e=>e.layout.margin,rh=V(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),nh=V(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),vL="data-recharts-item-index",yL="data-recharts-item-id",ju=60;function qw(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;te.brush.height;function SL(e){var t=nh(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ju;return r+i}return r},0)}function kL(e){var t=nh(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ju;return r+i}return r},0)}function EL(e){var t=rh(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function PL(e){var t=rh(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Ht=V([oi,li,J2,wL,SL,kL,EL,PL,x2,V$],(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=fd(fd({},m),h),b=v.bottom;v.bottom+=n,v=iL(v,d,f);var k=e-v.left-v.right,S=t-v.top-v.bottom;return fd(fd({brushBottom:b},v),{},{width:Math.max(k,0),height:Math.max(S,0)})}),AL=V(Ht,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),eO=V(oi,li,(e,t)=>({x:0,y:0,width:e,height:t})),OL=g.createContext(null),yr=()=>g.useContext(OL)!=null,ih=e=>e.brush,ah=V([ih,Ht,J2],(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 CL(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(),b()};let h=null;const m=()=>{h!=null&&clearTimeout(h),h=setTimeout(()=>{h=null,f()},t)},v=()=>{h!==null&&(clearTimeout(h),h=null)},b=()=>{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=b,S.flush=k,r==null||r.addEventListener("abort",b,{once:!0}),S}function jL(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=CL(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 _L(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return jL(e,t,{leading:n,maxWait:t,trailing:i})}var Yd=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}},tO=(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=qa(i)?e:Number(i),h=qa(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}},NL={width:0,height:0,overflow:"visible"},IL={width:0,overflowX:"visible"},ML={height:0,overflowY:"visible"},TL={},DL=e=>{var t=e.width,r=e.height,n=qa(t),i=qa(r);return n&&i?NL:n?IL:i?ML:TL};function RL(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 $L=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Qd(){return Qd=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 GL(i)?g.createElement(rO.Provider,{value:i},t):null}var dg=()=>g.useContext(rO),YL=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,b=v===void 0?kn.debounce:v,k=e.id,S=e.className,E=e.onResize,P=e.style,C=P===void 0?{}:P,_=VL(e,$L),O=g.useRef(null),N=g.useRef();N.current=E,g.useImperativeHandle(t,()=>O.current);var j=g.useState({containerWidth:i.width,containerHeight:i.height}),D=BL(j,2),B=D[0],F=D[1],z=g.useCallback((pe,se)=>{F(Y=>{var Q=Math.round(pe),Z=Math.round(se);return Y.containerWidth===Q&&Y.containerHeight===Z?Y:{containerWidth:Q,containerHeight:Z}})},[]);g.useEffect(()=>{if(O.current==null||typeof ResizeObserver>"u")return Ol;var pe=$=>{var M,X=$[0];if(X!=null){var le=X.contentRect,re=le.width,ce=le.height;z(re,ce),(M=N.current)===null||M===void 0||M.call(N,re,ce)}};b>0&&(pe=_L(pe,b,{trailing:!0,leading:!1}));var se=new ResizeObserver(pe),Y=O.current.getBoundingClientRect(),Q=Y.width,Z=Y.height;return z(Q,Z),se.observe(O.current),()=>{se.disconnect()}},[z,b]);var G=B.containerWidth,U=B.containerHeight;Yd(!r||r>0,"The aspect(%s) must be greater than zero.",r);var ue=tO(G,U,{width:o,height:s,aspect:r,maxHeight:h}),ae=ue.calculatedWidth,ye=ue.calculatedHeight;return Yd(G<0||U<0||ae!=null&&ae>0||ye!=null&&ye>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.`,ae,ye,o,s,d,f,r),g.createElement("div",Qd({id:k?"".concat(k):void 0,className:Xe("recharts-responsive-container",S),style:Yw(Yw({},C),{},{width:o,height:s,minWidth:d,minHeight:f,maxHeight:h}),ref:O},_),g.createElement("div",{style:DL({width:o,height:s})},g.createElement(nO,{width:ae,height:ye},m)))}),QL=g.forwardRef((e,t)=>{var r=dg();if(jn(r.width)&&jn(r.height))return e.children;var n=RL({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,o=n.height,s=tO(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(nO,{width:u,height:d},e.children):g.createElement(YL,Qd({},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 oh=()=>{var e,t=yr(),r=Ee(AL),n=Ee(ah),i=(e=Ee(ih))===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}},XL={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},iO=()=>{var e;return(e=Ee(Ht))!==null&&e!==void 0?e:XL},aO=()=>Ee(oi),oO=()=>Ee(li),lt=e=>e.layout.layoutType,Cl=()=>Ee(lt),hg=()=>{var e=Cl();if(e==="horizontal"||e==="vertical")return e},lO=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},ZL=()=>{var e=Cl();return e!==void 0},_u=e=>{var t=gt(),r=yr(),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&&jn(s)&&jn(u)&&t(Z4({width:s,height:u}))},[t,r,s,u]),null},sO=Symbol.for("immer-nothing"),Xw=Symbol.for("immer-draftable"),jr=Symbol.for("immer-state");function nn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var lu=Object.getPrototypeOf;function yl(e){return!!e&&!!e[jr]}function Ya(e){var t;return e?uO(e)||Array.isArray(e)||!!e[Xw]||!!((t=e.constructor)!=null&&t[Xw])||Nu(e)||sh(e):!1}var JL=Object.prototype.constructor.toString(),Zw=new WeakMap;function uO(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=Zw.get(r);return n===void 0&&(n=Function.toString.call(r),Zw.set(r,n)),n===JL}function Xd(e,t,r=!0){lh(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 lh(e){const t=e[jr];return t?t.type_:Array.isArray(e)?1:Nu(e)?2:sh(e)?3:0}function iy(e,t){return lh(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function cO(e,t,r){const n=lh(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function ez(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Nu(e){return e instanceof Map}function sh(e){return e instanceof Set}function Ea(e){return e.copy_||e.base_}function ay(e,t){if(Nu(e))return new Map(e);if(sh(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=uO(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[jr];let i=Reflect.ownKeys(n);for(let o=0;o1&&Object.defineProperties(e,{set:hd,add:hd,clear:hd,delete:hd}),Object.freeze(e),t&&Object.values(e).forEach(r=>pg(r,!0))),e}function tz(){nn(2)}var hd={value:tz};function uh(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var rz={};function Qa(e){const t=rz[e];return t||nn(0,e),t}var su;function dO(){return su}function nz(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Jw(e,t){t&&(Qa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function oy(e){ly(e),e.drafts_.forEach(iz),e.drafts_=null}function ly(e){e===su&&(su=e.parent_)}function eS(e){return su=nz(su,e)}function iz(e){const t=e[jr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function tS(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[jr].modified_&&(oy(t),nn(4)),Ya(e)&&(e=Zd(t,e),t.parent_||Jd(t,e)),t.patches_&&Qa("Patches").generateReplacementPatches_(r[jr].base_,e,t.patches_,t.inversePatches_)):e=Zd(t,r,[]),oy(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==sO?e:void 0}function Zd(e,t,r){if(uh(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[jr];if(!i)return Xd(t,(o,s)=>rS(e,i,t,o,s,r),n),t;if(i.scope_!==e)return t;if(!i.modified_)return Jd(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),Xd(s,(d,f)=>rS(e,i,o,d,f,r,u),n),Jd(e,o,!1),r&&e.patches_&&Qa("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function rS(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;const u=uh(i);if(!(u&&!s)){if(yl(i)){const d=o&&t&&t.type_!==3&&!iy(t.assigned_,n)?o.concat(n):void 0,f=Zd(e,i,d);if(cO(r,n,f),yl(f))e.canAutoFreeze_=!1;else return}else s&&r.add(i);if(Ya(i)&&!u){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&u)return;Zd(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Nu(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&Jd(e,i)}}}function Jd(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&pg(t,r)}function az(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:dO(),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=uu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,u}var mg={get(e,t){if(t===jr)return e;const r=Ea(e);if(!iy(r,t))return oz(e,r,t);const n=r[t];return e.finalized_||!Ya(n)?n:n===Hm(e.base_,t)?(Km(e),e.copy_[t]=uy(n,e)):n},has(e,t){return t in Ea(e)},ownKeys(e){return Reflect.ownKeys(Ea(e))},set(e,t,r){const n=fO(Ea(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Hm(Ea(e),t),o=i==null?void 0:i[jr];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(ez(r,i)&&(r!==void 0||iy(e.base_,t)))return!0;Km(e),sy(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 Hm(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Km(e),sy(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Ea(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 lu(e.base_)},setPrototypeOf(){nn(12)}},uu={};Xd(mg,(e,t)=>{uu[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});uu.deleteProperty=function(e,t){return uu.set.call(this,e,t,void 0)};uu.set=function(e,t,r){return mg.set.call(this,e[0],t,r,e[0])};function Hm(e,t){const r=e[jr];return(r?Ea(r):e)[t]}function oz(e,t,r){var i;const n=fO(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function fO(e,t){if(!(t in e))return;let r=lu(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=lu(r)}}function sy(e){e.modified_||(e.modified_=!0,e.parent_&&sy(e.parent_))}function Km(e){e.copy_||(e.copy_=ay(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var lz=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(Ya(t)){const o=eS(this),s=uy(t,void 0);let u=!0;try{i=r(s),u=!1}finally{u?oy(o):ly(o)}return Jw(o,n),tS(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===sO&&(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){Ya(e)||nn(8),yl(e)&&(e=sz(e));const t=eS(this),r=uy(e,void 0);return r[jr].isManual_=!0,ly(t),r}finishDraft(e,t){const r=e&&e[jr];(!r||!r.isManual_)&&nn(9);const{scope_:n}=r;return Jw(n,t),tS(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 yl(e)?n(e,t):this.produce(e,i=>n(i,t))}};function uy(e,t){const r=Nu(e)?Qa("MapSet").proxyMap_(e,t):sh(e)?Qa("MapSet").proxySet_(e,t):az(e,t);return(t?t.scope_:dO()).drafts_.push(r),r}function sz(e){return yl(e)||nn(10,e),hO(e)}function hO(e){if(!Ya(e)||uh(e))return e;const t=e[jr];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=ay(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=ay(e,!0);return Xd(r,(i,o)=>{cO(r,i,hO(o))},n),t&&(t.finalized_=!1),r}var uz=new lz;uz.produce;var cz={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},pO=Zt({name:"legend",initialState:cz,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:rt()},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:rt()},removeLegendPayload:{reducer(e,t){var r=zr(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:rt()}}}),Iu=pO.actions;Iu.setLegendSize;Iu.setLegendSettings;var dz=Iu.addLegendPayload,fz=Iu.replaceLegendPayload,hz=Iu.removeLegendPayload,pz=pO.reducer,Vm={exports:{}},qm={};/** - * @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 nS;function mz(){if(nS)return qm;nS=1;var e=Pl();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 qm.useSyncExternalStoreWithSelector=function(d,f,h,m,v){var b=i(null);if(b.current===null){var k={hasValue:!1,value:null};b.current=k}else k=b.current;b=s(function(){function E(N){if(!P){if(P=!0,C=N,N=m(N),v!==void 0&&k.hasValue){var j=k.value;if(v(j,N))return _=j}return _=N}if(j=_,r(C,N))return j;var D=m(N);return v!==void 0&&v(j,D)?(C=N,j):(C=N,_=D)}var P=!1,C,_,O=h===void 0?null:h;return[function(){return E(f())},O===null?void 0:function(){return E(O())}]},[f,h,m,v]);var S=n(d,b[0],b[1]);return o(function(){k.hasValue=!0,k.value=S},[S]),u(S),S},qm}var iS;function vz(){return iS||(iS=1,Vm.exports=mz()),Vm.exports}vz();function yz(e){e()}function gz(){let e=null,t=null;return{clear(){e=null,t=null},notify(){yz(()=>{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 aS={notify(){},get:()=>[]};function xz(e,t){let r,n=aS,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=gz())}function m(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=aS)}function v(){o||(o=!0,h())}function b(){o&&(o=!1,m())}const k={addNestedSub:s,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:f,trySubscribe:v,tryUnsubscribe:b,getListeners:()=>n};return k}var bz=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",wz=bz(),Sz=()=>typeof navigator<"u"&&navigator.product==="ReactNative",kz=Sz(),Ez=()=>wz||kz?g.useLayoutEffect:g.useEffect,Pz=Ez();function oS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Az(e,t){if(oS(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=xz(i);return{store:i,subscription:d,getServerState:n?()=>n:void 0}},[i,n]),s=g.useMemo(()=>i.getState(),[i]);Pz(()=>{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||Cz;return g.createElement(u.Provider,{value:o},t)}var _z=jz,Nz=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Iz(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ch(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Nz.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Az(e[n],t[n]))return!1}else if(!Iz(e[n],t[n]))return!1;return!0}function cy(){return cy=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?Ro.separator:t,n=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?Ro.labelStyle:o,u=e.payload,d=e.formatter,f=e.itemSorter,h=e.wrapperClassName,m=e.labelClassName,v=e.label,b=e.labelFormatter,k=e.accessibilityLayer,S=k===void 0?Ro.accessibilityLayer:k,E=()=>{if(u&&u.length){var B={padding:0,margin:0},F=Uz(u,f),z=F.map((G,U)=>{if(!G||G.type==="none")return null;var ue=G.formatter||d||Bz,ae=G.value,ye=G.name,pe=ae,se=ye;if(ue){var Y=ue(ae,ye,G,U,u);if(Array.isArray(Y)){var Q=Rz(Y,2);pe=Q[0],se=Q[1]}else if(Y!=null)pe=Y;else return null}var Z=Ms(Ms({},Ro.itemStyle),{},{color:G.color||Ro.itemStyle.color},i);return g.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(U),style:Z},Cn(se)?g.createElement("span",{className:"recharts-tooltip-item-name"},se):null,Cn(se)?g.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,g.createElement("span",{className:"recharts-tooltip-item-value"},pe),g.createElement("span",{className:"recharts-tooltip-item-unit"},G.unit||""))});return g.createElement("ul",{className:"recharts-tooltip-item-list",style:B},z)}return null},P=Ms(Ms({},Ro.contentStyle),n),C=Ms({margin:0},s),_=!Ut(v),O=_?v:"",N=Xe("recharts-default-tooltip",h),j=Xe("recharts-tooltip-label",m);_&&b&&u!==void 0&&u!==null&&(O=b(v,u));var D=S?{role:"status","aria-live":"assertive"}:{};return g.createElement("div",cy({className:N,style:P},D),g.createElement("p",{className:j,style:C},g.isValidElement(O)?O:"".concat(O)),E())},Ts="recharts-tooltip-wrapper",Hz={visibility:"hidden"};function Kz(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Xe(Ts,{["".concat(Ts,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(Ts,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(Ts,"-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 b=h,k=v;return bE?Math.max(h,v):Math.max(m,v)}function Vz(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 qz(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=uS({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:o,reverseDirection:s,tooltipDimension:u.width,viewBox:f,viewBoxDimension:f.width}),v=uS({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:s,tooltipDimension:u.height,viewBox:f,viewBoxDimension:f.height}),h=Vz({translateX:m,translateY:v,useTranslate3d:d})):h=Hz,{cssProperties:h,cssClasses:Kz({translateX:m,translateY:v,coordinate:r})}}var Gz=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Mu={isSsr:Gz()};function Yz(e,t){return Jz(e)||Zz(e,t)||Xz(e,t)||Qz()}function Qz(){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 Xz(e,t){if(e){if(typeof e=="string")return cS(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)?cS(e,t):void 0}}function cS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rMu.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Yz(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 dS(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 $o(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=nF(d,2),h=f[0],m=f[1];g.useEffect(()=>{var P=C=>{if(C.key==="Escape"){var _,O,N,j;m({dismissed:!0,dismissedAtCoordinate:{x:(_=(O=e.coordinate)===null||O===void 0?void 0:O.x)!==null&&_!==void 0?_:0,y:(N=(j=e.coordinate)===null||j===void 0?void 0:j.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($o($o({},h),{},{dismissed:!1}));var v=qz({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}),b=v.cssClasses,k=v.cssProperties,S=e.hasPortalFromProps?{}:$o($o({transition:sF({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},k),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),E=$o($o({},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:b,style:E,ref:e.innerRef},e.children)}var cF=g.memo(uF),vO=()=>{var e;return(e=Ee(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function dy(){return dy=Object.assign?Object.assign.bind():function(e){for(var t=1;tLe(e.x)&&Le(e.y),vS=e=>e.base!=null&&ef(e.base)&&ef(e),Ds=e=>e.x,Rs=e=>e.y,pF=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(tg(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=mS["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return mS[r]||Wf},yS={connectNulls:!1,type:"linear"},mF=e=>{var t=e.type,r=t===void 0?yS.type:t,n=e.points,i=n===void 0?[]:n,o=e.baseLine,s=e.layout,u=e.connectNulls,d=u===void 0?yS.connectNulls:u,f=pF(r,s),h=d?i.filter(ef):i;if(Array.isArray(o)){var m,v=i.map((P,C)=>pS(pS({},P),{},{base:o[C]}));s==="vertical"?m=od().y(Rs).x1(Ds).x0(P=>P.base.x):m=od().x(Ds).y1(Rs).y0(P=>P.base.y);var b=m.defined(vS).curve(f),k=d?v.filter(vS):v;return b(k)}var S;s==="vertical"&&be(o)?S=od().y(Rs).x1(Ds).x0(o):be(o)?S=od().x(Ds).y1(Rs).y0(o):S=KA().x(Ds).y(Rs);var E=S.defined(ef).curve(f);return E(h)},_d=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,o=Cl();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?mF(s):n;return g.createElement("path",dy({},on(e),rg(e),{className:Xe("recharts-curve",t),d:u===null?void 0:u,ref:i}))},vF=["x","y","top","left","width","height","className"];function fy(){return fy=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),EF=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,b=e.className,k=wF(e,vF),S=yF({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",fy({},Br(S),{className:Xe("recharts-cross",b),d:kF(r,i,h,v,s,d)}))};function PF(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 tf=1e-4,yO=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],gO=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),xS=(e,t)=>r=>{var n=yO(e,t);return gO(n,r)},AF=(e,t)=>r=>{var n=yO(e,t),i=[...n.map((o,s)=>o*s).slice(1),0];return gO(i,r)},OF=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]]},CF=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=xS(e,r),o=xS(t,n),s=AF(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 b=i(m)-h,k=s(m);if(Math.abs(b-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,b=0;b{var C,_,O;if(P<=0)return 0;if(P>=1)return d;var N=P*E,j=Math.floor(N),D=N-j;return((C=f[j])!==null&&C!==void 0?C:0)+(((_=f[j+1])!==null&&_!==void 0?_:0)-((O=f[j])!==null&&O!==void 0?O:0))*D}},NF=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return bS(e);case"spring":return _F();default:if(e.split("(")[0]==="cubic-bezier")return bS(e)}return typeof e=="function"?e:null},IF=(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()}},xO=g.createContext(IF);xO.Provider;function MF(e){var t=g.useContext(xO);return g.useMemo(()=>e??t,[e,t])}function TF(e,t,r){return(t=DF(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function DF(e){var t=RF(e,"string");return typeof t=="symbol"?t:t+""}function RF(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 wS="init",SS="pending",kS="active",$F="completed";function Qm(e){return Math.max(0,e)}class LF{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;TF(this,"state",wS),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Qm(t.animationDuration),this.animationBegin=Qm(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()===wS)return this.state=SS,this.beginStartedTime=t,this.animationBegin;if(this.getState()===SS){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=kS,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Qm(this.animationBegin-r)}if(this.getState()===kS){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=$F}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class zF extends LF{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Qn(this.getFrom(),this.getTo(),this.getProgress()))}}class FF{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 BF(e,t){return KF(e)||HF(e,t)||WF(e,t)||UF()}function UF(){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 WF(e,t){if(e){if(typeof e=="string")return ES(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)?ES(e,t):void 0}}function ES(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},PS=0,Xm=1;function bO(e){var t=Hr(e,VF),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=mO(),v=n==="auto"?!Mu.isSsr&&!m:n,b=MF(t.animationController),k=g.useState(v?PS:Xm),S=BF(k,2),E=S[0],P=S[1];return g.useEffect(()=>{v||P(Xm)},[v]),g.useEffect(()=>{var C=NF(s);if(!v||!i||C==null)return Ol;var _=new FF,O=new zF({animationId:r,easing:C,animationDuration:o,animationBegin:u,onAnimationStart:f,onAnimationEnd:d,from:PS,to:Xm});return b(_,O,P)},[b,r,v,i,o,s,u,f,d]),h(Number(E))}function wO(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=g.useRef(nu(t)),n=g.useRef(e);return n.current!==e&&(r.current=nu(t),n.current=e),r.current}var qF=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),GF=(e,t,r)=>e.map(n=>"".concat(qF(n)," ").concat(t,"ms ").concat(r)).join(","),YF=["radius"],QF=["radius"],AS,OS,CS,jS,_S,NS,IS,MS,TS,DS;function RS(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 $S(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var o=Qi(r),s=Qi(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],b=0,k=4;bu?u:E}m=Lt(AS||(AS=vn(["M",",",""])),e,t+d*v[0]),v[0]>0&&(m+=Lt(OS||(OS=vn(["A ",",",",0,0,",",",",",""])),v[0],v[0],h,e+f*v[0],t)),m+=Lt(CS||(CS=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(_S||(_S=vn(["L ",",",""])),e+r,t+n-d*v[2]),v[2]>0&&(m+=Lt(NS||(NS=vn(["A ",",",",0,0,",`, - `,",",""])),v[2],v[2],h,e+r-f*v[2],t+n)),m+=Lt(IS||(IS=vn(["L ",",",""])),e+f*v[3],t+n),v[3]>0&&(m+=Lt(MS||(MS=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(TS||(TS=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(DS||(DS=vn(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return m},BS={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},o6=e=>{var t=Hr(e,BS),r=g.useRef(null),n=g.useState(-1),i=t6(n,2),o=i[0],s=i[1];g.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var Y=r.current.getTotalLength();Y&&s(Y)}catch{}},[]);var u=t.x,d=t.y,f=t.width,h=t.height,m=t.radius,v=t.className,b=t.animationEasing,k=t.animationDuration,S=t.animationBegin,E=t.isAnimationActive,P=t.isUpdateAnimationActive,C=g.useRef(f),_=g.useRef(h),O=g.useRef(u),N=g.useRef(d),j=g.useMemo(()=>({x:u,y:d,width:f,height:h,radius:m}),[u,d,f,h,m]),D=wO(j,"rectangle-");if(u!==+u||d!==+d||f!==+f||h!==+h||f===0||h===0)return null;var B=Xe("recharts-rectangle",v);if(!P){var F=Br(t);F.radius;var z=LS(F,YF);return g.createElement("path",rf({},z,{x:Qi(u),y:Qi(d),width:Qi(f),height:Qi(h),radius:typeof m=="number"?m:void 0,className:B,d:FS(u,d,f,h,m)}))}var G=C.current,U=_.current,ue=O.current,ae=N.current,ye="0px ".concat(o===-1?1:o,"px"),pe="".concat(o,"px ").concat(o,"px"),se=GF(["strokeDasharray"],k,typeof b=="string"?b:BS.animationEasing);return g.createElement(bO,{animationId:D,key:D,canBegin:o>0,duration:k,easing:b,isActive:P,begin:S},Y=>{var Q=Qn(G,f,Y),Z=Qn(U,h,Y),$=Qn(ue,u,Y),M=Qn(ae,d,Y);r.current&&(C.current=Q,_.current=Z,O.current=$,N.current=M);var X;E?Y>0?X={transition:se,strokeDasharray:pe}:X={strokeDasharray:ye}:X={strokeDasharray:pe};var le=Br(t);le.radius;var re=LS(le,QF);return g.createElement("path",rf({},re,{radius:typeof m=="number"?m:void 0,className:B,d:FS($,M,Q,Z,m),ref:r,style:$S($S({},X),t.style)}))})};function US(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 WS(e){for(var t=1;te*180/Math.PI,Bt=(e,t,r,n)=>({x:e+Math.cos(-nf*n)*r,y:t+Math.sin(-nf*n)*r}),d6=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},f6=(e,t)=>{var r=e.x,n=e.y,i=t.x,o=t.y;return Math.sqrt((r-i)**2+(n-o)**2)},h6=(e,t)=>{var r=e.x,n=e.y,i=t.cx,o=t.cy,s=f6({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:c6(d),angleInRadian:d}},p6=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}},m6=(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},v6=(e,t)=>{var r=e.relativeX,n=e.relativeY,i=h6({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=p6(t),h=f.startAngle,m=f.endAngle,v=s,b;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 b?WS(WS({},t),{},{radius:o,angle:m6(v,t)}):null};function SO(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 HS,KS,VS,qS,GS,YS,QS;function hy(){return hy=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},pd=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)/nf,m=d?i:i+o*h,v=Bt(t,r,f,m),b=Bt(t,r,n,m),k=d?i-o*h:i,S=Bt(t,r,f*Math.cos(h*nf),k);return{center:v,circleTangency:b,lineTangency:S,theta:h}},kO=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,o=e.startAngle,s=e.endAngle,u=y6(o,s),d=o+u,f=Bt(t,r,i,o),h=Bt(t,r,i,d),m=Lt(HS||(HS=Ca(["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),b=Bt(t,r,n,d);m+=Lt(KS||(KS=Ca(["L ",",",` - A `,",",`,0, - `,",",`, - `,","," Z"])),b.x,b.y,n,n,+(Math.abs(u)>180),+(o<=d),v.x,v.y)}else m+=Lt(VS||(VS=Ca(["L ",","," Z"])),t,r);return m},g6=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=pd({cx:t,cy:r,radius:i,angle:d,sign:h,cornerRadius:o,cornerIsExternal:u}),v=m.circleTangency,b=m.lineTangency,k=m.theta,S=pd({cx:t,cy:r,radius:i,angle:f,sign:-h,cornerRadius:o,cornerIsExternal:u}),E=S.circleTangency,P=S.lineTangency,C=S.theta,_=u?Math.abs(d-f):Math.abs(d-f)-k-C;if(_<0)return s?Lt(qS||(qS=Ca(["M ",",",` - a`,",",",0,0,1,",`,0 - a`,",",",0,0,1,",`,0 - `])),b.x,b.y,o,o,o*2,o,o,-o*2):kO({cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:d,endAngle:f});var O=Lt(GS||(GS=Ca(["M ",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",",` - `])),b.x,b.y,o,o,+(h<0),v.x,v.y,i,i,+(_>180),+(h<0),E.x,E.y,o,o,+(h<0),P.x,P.y);if(n>0){var N=pd({cx:t,cy:r,radius:n,angle:d,sign:h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),j=N.circleTangency,D=N.lineTangency,B=N.theta,F=pd({cx:t,cy:r,radius:n,angle:f,sign:-h,isExternal:!0,cornerRadius:o,cornerIsExternal:u}),z=F.circleTangency,G=F.lineTangency,U=F.theta,ue=u?Math.abs(d-f):Math.abs(d-f)-B-U;if(ue<0&&o===0)return"".concat(O,"L").concat(t,",").concat(r,"Z");O+=Lt(YS||(YS=Ca(["L",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),G.x,G.y,o,o,+(h<0),z.x,z.y,n,n,+(ue>180),+(h>0),j.x,j.y,o,o,+(h<0),D.x,D.y)}else O+=Lt(QS||(QS=Ca(["L",",","Z"])),t,r);return O},x6={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},b6=e=>{var t=Hr(e,x6),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=g6({cx:r,cy:n,innerRadius:i,outerRadius:o,cornerRadius:Math.min(k,b/2),forceCornerRadius:u,cornerIsExternal:d,startAngle:f,endAngle:h}):S=kO({cx:r,cy:n,innerRadius:i,outerRadius:o,startAngle:f,endAngle:h}),g.createElement("path",hy({},Br(t),{className:v,d:S}))};function w6(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(i2(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 SO(t)}}function S6(e){return g2(e)?NaN:Number(e)}function Zm(e){return e?(e=S6(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function EO(e,t,r){r&&typeof r!="number"&&qv(e,t,r)&&(t=r=void 0),e=Zm(e),t===void 0?(t=e,e=0):t=Zm(t),r=r===void 0?ee.chartData,vg=V([un],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),dh=(e,t,r,n)=>n?vg(e):un(e),k6=(e,t,r)=>r?vg(e):un(e),E6=V([dh],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});V([vg],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});var P6=V([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 j6(e)||C6(e,t)||O6(e,t)||A6()}function A6(){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 O6(e,t){if(e){if(typeof e=="string")return XS(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)?XS(e,t):void 0}}function XS(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)*nt;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 ei(this,new this.constructor(e))};ve.dividedToIntegerBy=ve.idiv=function(e){var t=this,r=t.constructor;return qe(ei(t,new r(e),0,1),r.precision)};ve.equals=ve.eq=function(e){return!this.cmp(e)};ve.exponent=function(){return yt(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):(at=!1,t=ei(cu(r,o),cu(e,o),o),at=!0,qe(t,i))};ve.minus=ve.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?jO(t,e):OO(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?(at=!1,t=ei(r,e,0,1).times(e),at=!0,r.minus(t)):qe(new n(r),i)};ve.naturalExponential=ve.exp=function(){return CO(this)};ve.naturalLogarithm=ve.ln=function(){return cu(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?OO(t,e):jO(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(Wa+e);if(t=yt(i)+1,n=i.d.length-1,r=n*nt+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=yt(u),at=!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=_l((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(ei(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(qe(o,r+1,0),o.times(o).eq(u)){n=o;break}}else if(t!="9999")break;s+=4}return at=!0,qe(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,b=(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=b.length,d=0;){for(t=0,i=d+n;i>n;)u=o[i]+b[n]*v[i-n-1]+t,o[i--]=u%_t|0,t=u/_t|0;o[i]=(o[i]+t)%_t|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,at?qe(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:(_n(e,0,jl),t===void 0?t=n.rounding:_n(t,0,8),qe(r,e+yt(r)+1,t))};ve.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=Xa(n,!0):(_n(e,0,jl),t===void 0?t=i.rounding:_n(t,0,8),n=qe(new i(n),e+1,t),r=Xa(n,!0,e+1)),r};ve.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?Xa(i):(_n(e,0,jl),t===void 0?t=o.rounding:_n(t,0,8),n=qe(new o(i),e+yt(i)+1,t),r=Xa(n.abs(),!1,e+yt(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};ve.toInteger=ve.toint=function(){var e=this,t=e.constructor;return qe(new t(e),yt(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 qe(u,n);if(t=e.e,r=e.d.length-1,s=t>=r,o=u.s,s){if((r=h<0?-h:h)<=AO){for(i=new d(Pr),t=Math.ceil(n/nt+4),at=!1;r%2&&(i=i.times(u),ek(i.d,t)),r=_l(r/2),r!==0;)u=u.times(u),ek(u.d,t);return at=!0,e.s<0?new d(Pr).div(i):qe(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,at=!1,i=e.times(cu(u,n+f)),at=!0,i=CO(i),i.s=o,i};ve.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?(r=yt(i),n=Xa(i,r<=o.toExpNeg||r>=o.toExpPos)):(_n(e,1,jl),t===void 0?t=o.rounding:_n(t,0,8),i=qe(new o(i),e,t),r=yt(i),n=Xa(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):(_n(e,1,jl),t===void 0?t=n.rounding:_n(t,0,8)),qe(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=yt(e),r=e.constructor;return Xa(e,t<=r.toExpNeg||t>=r.toExpPos)};function OO(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)),at?qe(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/nt),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)/_t|0,d[o]%=_t;for(r&&(d.unshift(r),++i),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=i,at?qe(t,m):t}function _n(e,t,r){if(e!==~~e||er)throw Error(Wa+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,b,k,S,E,P,C,_,O,N,j,D,B,F=n.constructor,z=n.s==i.s?1:-1,G=n.d,U=i.d;if(!n.s)return new F(n);if(!i.s)throw Error(Wr+"Division by zero");for(d=n.e-i.e,D=U.length,N=G.length,b=new F(z),k=b.d=[],f=0;U[f]==(G[f]||0);)++f;if(U[f]>(G[f]||0)&&--d,o==null?C=o=F.precision:s?C=o+(yt(n)-yt(i))+1:C=o,C<0)return new F(0);if(C=C/nt+2|0,f=0,D==1)for(h=0,U=U[0],C++;(f1&&(U=e(U,h),G=e(G,h),D=U.length,N=G.length),O=D,S=G.slice(0,D),E=S.length;E=_t/2&&++j;do h=0,u=t(U,S,D,E),u<0?(P=S[0],D!=E&&(P=P*_t+(S[1]||0)),h=P/j|0,h>1?(h>=_t&&(h=_t-1),m=e(U,h),v=m.length,E=S.length,u=t(m,S,v,E),u==1&&(h--,r(m,D16)throw Error(gg+yt(e));if(!e.s)return new h(Pr);for(at=!1,u=m,s=new h(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(n=Math.log(Pa(2,f))/Math.LN10*2+5|0,u+=n,r=i=o=new h(Pr),h.precision=u;;){if(i=qe(i.times(e),u),r=r.times(++d),s=o.plus(ei(i,r,u)),En(s.d).slice(0,u)===En(o.d).slice(0,u)){for(;f--;)o=qe(o.times(o),u);return h.precision=m,t==null?(at=!0,qe(o,m)):o}o=s}}function yt(e){for(var t=e.e*nt,r=e.d[0];r>=10;r/=10)t++;return t}function Jm(e,t,r){if(t>e.LN10.sd())throw at=!0,r&&(e.precision=r),Error(Wr+"LN10 precision limit exceeded");return qe(new e(e.LN10),t)}function zi(e){for(var t="";e--;)t+="0";return t}function cu(e,t){var r,n,i,o,s,u,d,f,h,m=1,v=10,b=e,k=b.d,S=b.constructor,E=S.precision;if(b.s<1)throw Error(Wr+(b.s?"NaN":"-Infinity"));if(b.eq(Pr))return new S(0);if(t==null?(at=!1,f=E):f=t,b.eq(10))return t==null&&(at=!0),Jm(S,f);if(f+=v,S.precision=f,r=En(k),n=r.charAt(0),o=yt(b),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)b=b.times(e),r=En(b.d),n=r.charAt(0),m++;o=yt(b),n>1?(b=new S("0."+r),o++):b=new S(n+"."+r.slice(1))}else return d=Jm(S,f+2,E).times(o+""),b=cu(new S(n+"."+r.slice(1)),f-v).plus(d),S.precision=E,t==null?(at=!0,qe(b,E)):b;for(u=s=b=ei(b.minus(Pr),b.plus(Pr),f),h=qe(b.times(b),f),i=3;;){if(s=qe(s.times(h),f),d=u.plus(ei(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(Jm(S,f+2,E).times(o+""))),u=ei(u,new S(m),f),S.precision=E,t==null?(at=!0,qe(u,E)):u;u=d,i+=2}}function JS(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=_l(r/nt),e.d=[],n=(r+1)%nt,r<0&&(n+=nt),naf||e.e<-af))throw Error(gg+r)}else e.s=0,e.e=0,e.d=[0];return e}function qe(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+=nt,i=t,f=m[h=0];else{if(h=Math.ceil((n+1)/nt),o=m.length,h>=o)return e;for(f=o=m[h],s=1;o>=10;o/=10)s++;n%=nt,i=n-nt+s}if(r!==void 0&&(o=Pa(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/Pa(10,s-i):0:m[h-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return d?(o=yt(e),m.length=1,t=t-o-1,m[0]=Pa(10,(nt-t%nt)%nt),e.e=_l(-t/nt)||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=Pa(10,nt-n),m[h]=i>0?(f/Pa(10,s-i)%Pa(10,i)|0)*o:0),d)for(;;)if(h==0){(m[0]+=o)==_t&&(m[0]=1,++e.e);break}else{if(m[h]+=o,m[h]!=_t)break;m[h--]=0,o=1}for(n=m.length;m[--n]===0;)m.pop();if(at&&(e.e>af||e.e<-af))throw Error(gg+yt(e));return e}function jO(e,t){var r,n,i,o,s,u,d,f,h,m,v=e.constructor,b=v.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new v(e),at?qe(t,b):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(b/nt),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)+zi(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+zi(-i-1)+o,r&&(n=r-s)>0&&(o+=zi(n))):i>=s?(o+=zi(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+zi(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=zi(n))),e.s<0?"-"+o:o}function ek(e,t){if(e.length>t)return e.length=t,!0}function _O(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(Wa+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 JS(s,o.toString())}else if(typeof o!="string")throw Error(Wa+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,I6.test(o))JS(s,o);else throw Error(Wa+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=_O,i.config=i.set=M6,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(Wa+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Wa+r+": "+n);return this}var xg=_O(N6);Pr=new xg(1);const Fe=xg;function NO(e){var t;return e===0?t=1:t=Math.floor(new Fe(e).abs().log(10).toNumber())+1,t}function IO(e,t,r){for(var n=new Fe(e),i=0,o=[];n.lt(t)&&i<1e5;)o.push(n.toNumber()),n=n.add(r),i++;return o}function du(e,t){return $6(e)||R6(e,t)||D6(e,t)||T6()}function T6(){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 D6(e,t){if(e){if(typeof e=="string")return tk(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)?tk(e,t):void 0}}function tk(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=du(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 Fe(0);var n=NO(e.toNumber()),i=new Fe(10).pow(n),o=e.div(i),s=n!==1?.05:.1,u=new Fe(Math.ceil(o.div(s).toNumber())).add(r).mul(s),d=u.mul(i);return t?new Fe(d.toNumber()):new Fe(Math.ceil(d.toNumber()))},TO=(e,t,r)=>{var n;if(e.lte(0))return new Fe(0);var i=[1,2,2.5,5],o=e.toNumber(),s=Math.floor(new Fe(o).abs().log(10).toNumber()),u=new Fe(10).pow(s),d=e.div(u).toNumber(),f=i.findIndex(b=>b>=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 Fe(10).pow(h))}var m=(n=i[f])!==null&&n!==void 0?n:1,v=new Fe(m).mul(u);return t?v:new Fe(Math.ceil(v.toNumber()))},L6=(e,t,r)=>{var n=new Fe(1),i=new Fe(e);if(!i.isint()&&r){var o=Math.abs(e);o<1?(n=new Fe(10).pow(NO(e)-1),i=new Fe(Math.floor(i.div(n).toNumber())).mul(n)):o>1&&(i=new Fe(Math.floor(e)))}else e===0?i=new Fe(Math.floor((t-1)/2)):r||(i=new Fe(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 Fe(0),tickMin:new Fe(0),tickMax:new Fe(0)};var u=s(new Fe(r).sub(t).div(n-1),i,o),d;t<=0&&r>=0?d=new Fe(0):(d=new Fe(t).add(r).div(2),d=d.sub(new Fe(d).mod(u)));var f=Math.ceil(d.sub(t).div(u).toNumber()),h=Math.ceil(new Fe(r).sub(d).div(u).toNumber()),m=f+h+1;return m>n?DO(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 Fe(f).mul(u)),tickMax:d.add(new Fe(h).mul(u))})},rk=function(t){var r=du(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=MO([n,i]),h=du(f,2),m=h[0],v=h[1];if(m===-1/0||v===1/0){var b=v===1/0?[m,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),v];return n>i?b.reverse():b}if(m===v)return L6(m,o,s);var k=u==="snap125"?TO:bg,S=DO(m,v,d,s,0,k),E=S.step,P=S.tickMin,C=S.tickMax,_=IO(P,C.add(new Fe(.1).mul(E)),E);return n>i?_.reverse():_},nk=function(t,r){var n=du(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=MO([i,o]),f=du(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"?TO:bg,b=Math.max(r,2),k=v(new Fe(m).sub(h).div(b-1),s,0),S=[...IO(new Fe(h),new Fe(m),k),m];return s===!1&&(S=S.map(E=>Math.round(E))),i>o?S.reverse():S},z6=e=>e.rootProps.barCategoryGap,fh=e=>e.rootProps.stackOffset,RO=e=>e.rootProps.reverseStackOrder,wg=e=>e.options.chartName,Sg=e=>e.rootProps.syncId,$O=e=>e.rootProps.syncMethod,kg=e=>e.options.eventEmitter,F6=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},xa={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"},hh=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function ph(e,t,r){if(r!=="auto")return r;if(e!=null)return Mn(e,t)?"category":"number"}function ik(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 of(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Eg=V([H6,lO],(e,t)=>{var r;if(e!=null)return e;var n=(r=ph(t,"angleAxis",ak.type))!==null&&r!==void 0?r:"category";return of(of({},ak),{},{type:n})}),K6=(e,t)=>e.polarAxis.radiusAxis[t],Pg=V([K6,lO],(e,t)=>{var r;if(e!=null)return e;var n=(r=ph(t,"radiusAxis",ok.type))!==null&&r!==void 0?r:"category";return of(of({},ok),{},{type:n})}),mh=e=>e.polarOptions,Ag=V([oi,li,Ht],d6),LO=V([mh,Ag],(e,t)=>{if(e!=null)return ra(e.innerRadius,t,0)}),zO=V([mh,Ag],(e,t)=>{if(e!=null)return ra(e.outerRadius,t,t*.8)}),V6=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},FO=V([mh],V6);V([Eg,FO],hh);var BO=V([Ag,LO,zO],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});V([Pg,BO],hh);var UO=V([lt,mh,LO,zO,oi,li],(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:ra(s,i,i/2),cy:ra(u,o,o/2),innerRadius:r,outerRadius:n,startAngle:d,endAngle:f,clockWise:!1}}}),It=(e,t)=>t,vh=(e,t,r)=>r;function Og(e){return e==null?void 0:e.id}function WO(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,b)=>{var k=s==null||o?b: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 yh=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function gh(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function q6(e,t){if(e.length===t.length){for(var r=0;r{var t=lt(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Nl=e=>e.tooltip.settings.axisId;function jg(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 G6=(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 Ji(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Y6(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function _g(e){let t,r,n;e.length!==2?(t=Ji,r=(u,d)=>Ji(e(u),d),n=(u,d)=>e(u)-d):(t=e===Ji||e===Y6?e:Q6,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 Q6(){return 0}function HO(e){return e===null?NaN:+e}function*X6(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const Z6=_g(Ji),Tu=Z6.right;_g(HO).center;class lk extends Map{constructor(t,r=t8){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(sk(this,t))}has(t){return super.has(sk(this,t))}set(t,r){return super.set(J6(this,t),r)}delete(t){return super.delete(e8(this,t))}}function sk({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function J6({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function e8({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function t8(e){return e!==null&&typeof e=="object"?e.valueOf():e}function r8(e=Ji){if(e===Ji)return KO;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 KO(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const n8=Math.sqrt(50),i8=Math.sqrt(10),a8=Math.sqrt(2);function lf(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>=n8?10:o>=i8?5:o>=a8?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 ck(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 VO(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?KO:r8(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),b=Math.max(r,Math.floor(t-f*m/d+v)),k=Math.min(n,Math.floor(t+(d-f)*m/d+v));VO(e,t,b,k,i)}const o=e[t];let s=r,u=n;for($s(e,r,t),i(e[n],o)>0&&$s(e,r,n);s0;)--u}i(e[r],o)===0?$s(e,r,u):(++u,$s(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function $s(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function o8(e,t,r){if(e=Float64Array.from(X6(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return ck(e);if(t>=1)return uk(e);var n,i=(n-1)*t,o=Math.floor(i),s=uk(VO(e,o).subarray(0,o+1)),u=ck(e.subarray(o+1));return s+(u-s)*(i-o)}}function l8(e,t,r=HO){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 s8(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?md(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?md(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=d8.exec(e))?new vr(t[1],t[2],t[3],1):(t=f8.exec(e))?new vr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=h8.exec(e))?md(t[1],t[2],t[3],t[4]):(t=p8.exec(e))?md(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=m8.exec(e))?yk(t[1],t[2]/100,t[3]/100,1):(t=v8.exec(e))?yk(t[1],t[2]/100,t[3]/100,t[4]):dk.hasOwnProperty(e)?pk(dk[e]):e==="transparent"?new vr(NaN,NaN,NaN,0):null}function pk(e){return new vr(e>>16&255,e>>8&255,e&255,1)}function md(e,t,r,n){return n<=0&&(e=t=r=NaN),new vr(e,t,r,n)}function x8(e){return e instanceof Du||(e=pu(e)),e?(e=e.rgb(),new vr(e.r,e.g,e.b,e.opacity)):new vr}function gy(e,t,r,n){return arguments.length===1?x8(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,gy,GO(Du,{brighter(e){return e=e==null?sf:Math.pow(sf,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?fu:Math.pow(fu,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new vr(Ha(this.r),Ha(this.g),Ha(this.b),uf(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:mk,formatHex:mk,formatHex8:b8,formatRgb:vk,toString:vk}));function mk(){return`#${ja(this.r)}${ja(this.g)}${ja(this.b)}`}function b8(){return`#${ja(this.r)}${ja(this.g)}${ja(this.b)}${ja((isNaN(this.opacity)?1:this.opacity)*255)}`}function vk(){const e=uf(this.opacity);return`${e===1?"rgb(":"rgba("}${Ha(this.r)}, ${Ha(this.g)}, ${Ha(this.b)}${e===1?")":`, ${e})`}`}function uf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ha(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ja(e){return e=Ha(e),(e<16?"0":"")+e.toString(16)}function yk(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 YO(e){if(e instanceof an)return new an(e.h,e.s,e.l,e.opacity);if(e instanceof Du||(e=pu(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 w8(e,t,r,n){return arguments.length===1?YO(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,w8,GO(Du,{brighter(e){return e=e==null?sf:Math.pow(sf,e),new an(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?fu:Math.pow(fu,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(ev(e>=240?e-240:e+120,i,n),ev(e,i,n),ev(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new an(gk(this.h),vd(this.s),vd(this.l),uf(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=uf(this.opacity);return`${e===1?"hsl(":"hsla("}${gk(this.h)}, ${vd(this.s)*100}%, ${vd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function gk(e){return e=(e||0)%360,e<0?e+360:e}function vd(e){return Math.max(0,Math.min(1,e||0))}function ev(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 S8(e,t){return function(r){return e+r*t}}function k8(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 E8(e){return(e=+e)==1?QO:function(t,r){return r-t?k8(t,r,e):Tg(isNaN(t)?r:t)}}function QO(e,t){var r=t-e;return r?S8(e,r):Tg(isNaN(e)?t:e)}const xk=(function e(t){var r=E8(t);function n(i,o){var s=r((i=gy(i)).r,(o=gy(o)).r),u=r(i.g,o.g),d=r(i.b,o.b),f=QO(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 P8(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:cf(n,i)})),r=tv.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function R8(e,t,r){var n=e[0],i=e[1],o=t[0],s=t[1];return i2?$8:R8,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),cf)))(v)))},m.domain=function(v){return arguments.length?(e=Array.from(v,df),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,b){return n=v,i=b,h()}}function Rg(){return xh()(nr,nr)}function L8(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ff(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 gl(e){return e=ff(Math.abs(e)),e?e[1]:NaN}function z8(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 F8(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var B8=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function mu(e){if(!(t=B8.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]})}mu.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 U8(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 hf;function W8(e,t){var r=ff(e,t);if(!r)return hf=void 0,e.toPrecision(t);var n=r[0],i=r[1],o=i-(hf=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")+ff(e,Math.max(0,t+o-1))[0]}function wk(e,t){var r=ff(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 Sk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:L8,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)=>wk(e*100,t),r:wk,s:W8,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function kk(e){return e}var Ek=Array.prototype.map,Pk=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function H8(e){var t=e.grouping===void 0||e.thousands===void 0?kk:z8(Ek.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?kk:F8(Ek.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=mu(m);var b=m.fill,k=m.align,S=m.sign,E=m.symbol,P=m.zero,C=m.width,_=m.comma,O=m.precision,N=m.trim,j=m.type;j==="n"?(_=!0,j="g"):Sk[j]||(O===void 0&&(O=12),N=!0,j="g"),(P||b==="0"&&k==="=")&&(P=!0,b="0",k="=");var D=(v&&v.prefix!==void 0?v.prefix:"")+(E==="$"?r:E==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():""),B=(E==="$"?n:/[%p]/.test(j)?s:"")+(v&&v.suffix!==void 0?v.suffix:""),F=Sk[j],z=/[defgprs%]/.test(j);O=O===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function G(U){var ue=D,ae=B,ye,pe,se;if(j==="c")ae=F(U)+ae,U="";else{U=+U;var Y=U<0||1/U<0;if(U=isNaN(U)?d:F(Math.abs(U),O),N&&(U=U8(U)),Y&&+U==0&&S!=="+"&&(Y=!1),ue=(Y?S==="("?S:u:S==="-"||S==="("?"":S)+ue,ae=(j==="s"&&!isNaN(U)&&hf!==void 0?Pk[8+hf/3]:"")+ae+(Y&&S==="("?")":""),z){for(ye=-1,pe=U.length;++yese||se>57){ae=(se===46?i+U.slice(ye+1):U.slice(ye))+ae,U=U.slice(0,ye);break}}}_&&!P&&(U=t(U,1/0));var Q=ue.length+U.length+ae.length,Z=Q>1)+ue+U+ae+Z.slice(Q);break;default:U=Z+ue+U+ae;break}return o(U)}return G.toString=function(){return m+""},G}function h(m,v){var b=Math.max(-8,Math.min(8,Math.floor(gl(v)/3)))*3,k=Math.pow(10,-b),S=f((m=mu(m),m.type="f",m),{suffix:Pk[8+b/3]});return function(E){return S(k*E)}}return{format:f,formatPrefix:h}}var yd,Lg,XO;K8({thousands:",",grouping:[3],currency:["$",""]});function K8(e){return yd=H8(e),Lg=yd.format,XO=yd.formatPrefix,yd}function V8(e){return Math.max(0,-gl(Math.abs(e)))}function q8(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(gl(t)/3)))*3-gl(Math.abs(e)))}function G8(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,gl(t)-gl(e))+1}function ZO(e,t,r,n){var i=vy(e,t,r),o;switch(n=mu(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=q8(i,s))&&(n.precision=o),XO(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=G8(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=V8(i))&&(n.precision=o-(n.type==="%")*2);break}}return Lg(n)}function na(e){var t=e.domain;return e.ticks=function(r){var n=t();return py(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return ZO(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=my(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 JO(){var e=Rg();return e.copy=function(){return Ru(e,JO())},Kr.apply(e,arguments),na(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,df),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,df):[0,1],na(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 J8(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 Ck(e){return(t,r)=>-e(-t,r)}function zg(e){const t=e(Ak,Ok),r=t.domain;let n=10,i,o;function s(){return i=J8(n),o=Z8(n),r()[0]<0?(i=Ck(i),o=Ck(o),e(Y8,Q8)):e(Ak,Ok),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<=b;++v)for(k=1;kh)break;P.push(S)}}else for(;v<=b;++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=mu(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(xh()).domain([1,10]);return e.copy=()=>Ru(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 _k(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Fg(e){var t=1,r=e(jk(t),_k(t));return r.constant=function(n){return arguments.length?e(jk(t=+n),_k(t)):t},na(r)}function nC(){var e=Fg(xh());return e.copy=function(){return Ru(e,nC()).constant(e.constant())},Kr.apply(e,arguments)}function Nk(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function eB(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function tB(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(eB,tB):e(Nk(r),Nk(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},na(t)}function Ug(){var e=Bg(xh());return e.copy=function(){return Ru(e,Ug()).exponent(e.exponent())},Kr.apply(e,arguments),e}function rB(){return Ug.apply(null,arguments).exponent(.5)}function Ik(e){return Math.sign(e)*e*e}function nB(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=nB(e(o));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(o){return e.invert(Ik(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,df)).map(Ik)),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),na(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(na(s),arguments)}function lC(){var e=[.5],t=[0,1],r,n=1;function i(o){return o!=null&&o<=o?t[Tu(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 rv=new Date,nv=new Date;function kt(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(fkt(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)=>(rv.setTime(+o),nv.setTime(+s),e(rv),e(nv),Math.floor(r(rv,nv))),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 pf=kt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);pf.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?kt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):pf);pf.range;const Xn=1e3,Fr=Xn*60,Zn=Fr*60,ni=Zn*24,Wg=ni*7,Mk=ni*30,iv=ni*365,_a=kt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xn)},(e,t)=>(t-e)/Xn,e=>e.getUTCSeconds());_a.range;const Hg=kt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xn)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getMinutes());Hg.range;const Kg=kt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Fr)},(e,t)=>(t-e)/Fr,e=>e.getUTCMinutes());Kg.range;const Vg=kt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xn-e.getMinutes()*Fr)},(e,t)=>{e.setTime(+e+t*Zn)},(e,t)=>(t-e)/Zn,e=>e.getHours());Vg.range;const qg=kt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zn)},(e,t)=>(t-e)/Zn,e=>e.getUTCHours());qg.range;const $u=kt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Fr)/ni,e=>e.getDate()-1);$u.range;const bh=kt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ni,e=>e.getUTCDate()-1);bh.range;const sC=kt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ni,e=>Math.floor(e/ni));sC.range;function ro(e){return kt(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 wh=ro(0),mf=ro(1),iB=ro(2),aB=ro(3),xl=ro(4),oB=ro(5),lB=ro(6);wh.range;mf.range;iB.range;aB.range;xl.range;oB.range;lB.range;function no(e){return kt(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 Sh=no(0),vf=no(1),sB=no(2),uB=no(3),bl=no(4),cB=no(5),dB=no(6);Sh.range;vf.range;sB.range;uB.range;bl.range;cB.range;dB.range;const Gg=kt(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=kt(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 ii=kt(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());ii.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:kt(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)});ii.range;const ai=kt(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());ai.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:kt(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)});ai.range;function uC(e,t,r,n,i,o){const s=[[_a,1,Xn],[_a,5,5*Xn],[_a,15,15*Xn],[_a,30,30*Xn],[o,1,Fr],[o,5,5*Fr],[o,15,15*Fr],[o,30,30*Fr],[i,1,Zn],[i,3,3*Zn],[i,6,6*Zn],[i,12,12*Zn],[n,1,ni],[n,2,2*ni],[r,1,Wg],[t,1,Mk],[t,3,3*Mk],[e,1,iv]];function u(f,h,m){const v=hE).right(s,v);if(b===s.length)return e.every(vy(f/iv,h/iv,m));if(b===0)return pf.every(Math.max(vy(f,h,m),1));const[k,S]=s[v/s[b-1][2]53)return null;"w"in ne||(ne.w=1),"Z"in ne?(Be=ov(Ls(ne.y,0,1)),Ae=Be.getUTCDay(),Be=Ae>4||Ae===0?vf.ceil(Be):vf(Be),Be=bh.offset(Be,(ne.V-1)*7),ne.y=Be.getUTCFullYear(),ne.m=Be.getUTCMonth(),ne.d=Be.getUTCDate()+(ne.w+6)%7):(Be=av(Ls(ne.y,0,1)),Ae=Be.getDay(),Be=Ae>4||Ae===0?mf.ceil(Be):mf(Be),Be=$u.offset(Be,(ne.V-1)*7),ne.y=Be.getFullYear(),ne.m=Be.getMonth(),ne.d=Be.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),Ae="Z"in ne?ov(Ls(ne.y,0,1)).getUTCDay():av(Ls(ne.y,0,1)).getDay(),ne.m=0,ne.d="W"in ne?(ne.w+6)%7+ne.W*7-(Ae+5)%7:ne.w+ne.U*7-(Ae+6)%7);return"Z"in ne?(ne.H+=ne.Z/100|0,ne.M+=ne.Z%100,ov(ne)):av(ne)}}function B(J,we,Oe,ne){for(var Ye=0,Be=we.length,Ae=Oe.length,Pt,gr;Ye=Ae)return-1;if(Pt=we.charCodeAt(Ye++),Pt===37){if(Pt=we.charAt(Ye++),gr=N[Pt in Tk?we.charAt(Ye++):Pt],!gr||(ne=gr(J,Oe,ne))<0)return-1}else if(Pt!=Oe.charCodeAt(ne++))return-1}return ne}function F(J,we,Oe){var ne=f.exec(we.slice(Oe));return ne?(J.p=h.get(ne[0].toLowerCase()),Oe+ne[0].length):-1}function z(J,we,Oe){var ne=b.exec(we.slice(Oe));return ne?(J.w=k.get(ne[0].toLowerCase()),Oe+ne[0].length):-1}function G(J,we,Oe){var ne=m.exec(we.slice(Oe));return ne?(J.w=v.get(ne[0].toLowerCase()),Oe+ne[0].length):-1}function U(J,we,Oe){var ne=P.exec(we.slice(Oe));return ne?(J.m=C.get(ne[0].toLowerCase()),Oe+ne[0].length):-1}function ue(J,we,Oe){var ne=S.exec(we.slice(Oe));return ne?(J.m=E.get(ne[0].toLowerCase()),Oe+ne[0].length):-1}function ae(J,we,Oe){return B(J,t,we,Oe)}function ye(J,we,Oe){return B(J,r,we,Oe)}function pe(J,we,Oe){return B(J,n,we,Oe)}function se(J){return s[J.getDay()]}function Y(J){return o[J.getDay()]}function Q(J){return d[J.getMonth()]}function Z(J){return u[J.getMonth()]}function $(J){return i[+(J.getHours()>=12)]}function M(J){return 1+~~(J.getMonth()/3)}function X(J){return s[J.getUTCDay()]}function le(J){return o[J.getUTCDay()]}function re(J){return d[J.getUTCMonth()]}function ce(J){return u[J.getUTCMonth()]}function he(J){return i[+(J.getUTCHours()>=12)]}function Pe(J){return 1+~~(J.getUTCMonth()/3)}return{format:function(J){var we=j(J+="",_);return we.toString=function(){return J},we},parse:function(J){var we=D(J+="",!1);return we.toString=function(){return J},we},utcFormat:function(J){var we=j(J+="",O);return we.toString=function(){return J},we},utcParse:function(J){var we=D(J+="",!0);return we.toString=function(){return J},we}}}var Tk={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,yB=/^%/,gB=/[\\^$*+?|[\]().{}]/g;function He(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",o=i.length;return n+(o[t.toLowerCase(),r]))}function bB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function wB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function SB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function kB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function EB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Dk(e,t,r){var n=Tt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function Rk(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 PB(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 AB(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 OB(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 $k(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function CB(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 Lk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function jB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function _B(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function NB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function IB(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 MB(e,t,r){var n=yB.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function TB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function DB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function zk(e,t){return He(e.getDate(),t,2)}function RB(e,t){return He(e.getHours(),t,2)}function $B(e,t){return He(e.getHours()%12||12,t,2)}function LB(e,t){return He(1+$u.count(ii(e),e),t,3)}function cC(e,t){return He(e.getMilliseconds(),t,3)}function zB(e,t){return cC(e,t)+"000"}function FB(e,t){return He(e.getMonth()+1,t,2)}function BB(e,t){return He(e.getMinutes(),t,2)}function UB(e,t){return He(e.getSeconds(),t,2)}function WB(e){var t=e.getDay();return t===0?7:t}function HB(e,t){return He(wh.count(ii(e)-1,e),t,2)}function dC(e){var t=e.getDay();return t>=4||t===0?xl(e):xl.ceil(e)}function KB(e,t){return e=dC(e),He(xl.count(ii(e),e)+(ii(e).getDay()===4),t,2)}function VB(e){return e.getDay()}function qB(e,t){return He(mf.count(ii(e)-1,e),t,2)}function GB(e,t){return He(e.getFullYear()%100,t,2)}function YB(e,t){return e=dC(e),He(e.getFullYear()%100,t,2)}function QB(e,t){return He(e.getFullYear()%1e4,t,4)}function XB(e,t){var r=e.getDay();return e=r>=4||r===0?xl(e):xl.ceil(e),He(e.getFullYear()%1e4,t,4)}function ZB(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+He(t/60|0,"0",2)+He(t%60,"0",2)}function Fk(e,t){return He(e.getUTCDate(),t,2)}function JB(e,t){return He(e.getUTCHours(),t,2)}function e7(e,t){return He(e.getUTCHours()%12||12,t,2)}function t7(e,t){return He(1+bh.count(ai(e),e),t,3)}function fC(e,t){return He(e.getUTCMilliseconds(),t,3)}function r7(e,t){return fC(e,t)+"000"}function n7(e,t){return He(e.getUTCMonth()+1,t,2)}function i7(e,t){return He(e.getUTCMinutes(),t,2)}function a7(e,t){return He(e.getUTCSeconds(),t,2)}function o7(e){var t=e.getUTCDay();return t===0?7:t}function l7(e,t){return He(Sh.count(ai(e)-1,e),t,2)}function hC(e){var t=e.getUTCDay();return t>=4||t===0?bl(e):bl.ceil(e)}function s7(e,t){return e=hC(e),He(bl.count(ai(e),e)+(ai(e).getUTCDay()===4),t,2)}function u7(e){return e.getUTCDay()}function c7(e,t){return He(vf.count(ai(e)-1,e),t,2)}function d7(e,t){return He(e.getUTCFullYear()%100,t,2)}function f7(e,t){return e=hC(e),He(e.getUTCFullYear()%100,t,2)}function h7(e,t){return He(e.getUTCFullYear()%1e4,t,4)}function p7(e,t){var r=e.getUTCDay();return e=r>=4||r===0?bl(e):bl.ceil(e),He(e.getUTCFullYear()%1e4,t,4)}function m7(){return"+0000"}function Bk(){return"%"}function Uk(e){return+e}function Wk(e){return Math.floor(+e/1e3)}var Lo,pC,mC;v7({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 v7(e){return Lo=vB(e),pC=Lo.format,Lo.parse,mC=Lo.utcFormat,Lo.utcParse,Lo}function y7(e){return new Date(e)}function g7(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,b=f(".%L"),k=f(":%S"),S=f("%I:%M"),E=f("%I %p"),P=f("%a %d"),C=f("%b %d"),_=f("%B"),O=f("%Y");function N(j){return(d(j)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,o)=>o8(e,o/n))},r.copy=function(){return xC(t).domain(e)},si.apply(r,arguments)}function Eh(){var e=0,t=.5,r=1,n=1,i,o,s,u,d,f=nr,h,m=!1,v;function b(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 P7(n)?n:"point"}};function A7(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=A7(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 O7(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):PC(e,void 0)}function Kk(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 yf(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],ui=(e,t)=>{var r=OC(e,t);return r??wt},St={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:wy,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:ju},CC=(e,t)=>e.cartesianAxis.yAxis[t],ci=(e,t)=>{var r=CC(e,t);return r??St},D7={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??D7},or=(e,t,r)=>{switch(t){case"xAxis":return ui(e,r);case"yAxis":return ci(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))}},R7=(e,t,r)=>{switch(t){case"xAxis":return ui(e,r);case"yAxis":return ci(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Lu=(e,t,r)=>{switch(t){case"xAxis":return ui(e,r);case"yAxis":return ci(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},jC=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function _C(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,$7=V([It,vh],_C),IC=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),Ml=V([NC,or,$7],IC,{memoizeOptions:{resultEqualityCheck:gh}}),MC=V([Ml],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Cg)),TC=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),L7=V([Ml],TC),DC=e=>e.map(t=>t.data).filter(Boolean).flat(1),z7=V([Ml],e=>e.some(t=>!t.data)),RC=V([Ml],DC,{memoizeOptions:{resultEqualityCheck:gh}}),$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=V([RC,dh],$C),F7=(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=F7(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(b=>({value:Nt(b,t.dataKey)})).filter(b=>b.value!=null);return[...v,...h]}return h},zu=V([t0,or,Ml,dh,z7,RC],LC);function el(e){if(Cn(e)||e instanceof Date){var t=Number(e);if(Le(t))return t}}function qk(e){if(Array.isArray(e)){var t=[el(e[0]),el(e[1])];return Pn(t)?t:void 0}var r=el(e);if(r!=null)return[r,r]}function Nn(e){return e.map(el).filter(mr)}function B7(e,t){var r=el(e),n=el(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var U7=V([zu],e=>e==null?void 0:e.map(t=>t.value).sort(B7));function zC(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function W7(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(!(!Le(u)||!Le(d)))return[n-u,n+d]}))}var Et=e=>{var t=Mt(e),r=Nl(e);return Lu(e,t,r)},wl=V([Et],e=>e==null?void 0:e.dataKey),H7=V([MC,dh,Et],WO),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:sL(e,m,r),graphicalItems:h}]}))},BC=V([H7,MC,fh,RO],FC),UC=(e,t,r,n)=>{var i=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return fL(e,i,o)},K7=V([or],e=>e.allowDataOverflow),r0=e=>{var t;if(e==null||!("domain"in e))return wy;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:wy},WC=V([or],r0),HC=V([WC,K7],PO),V7=V([BC,un,It,HC],UC,{memoizeOptions:{resultEqualityCheck:yh}}),n0=e=>e.errorBars,q7=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>zC(r,n)),gf=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(b=>zC(o,b));m.forEach(b=>{var k,S=Nt(b,(k=r.dataKey)!==null&&k!==void 0?k:f.dataKey),E=W7(b,S,v);if(E.length>=2){var P=Math.min(...E),C=Math.max(...E);(u==null||Pd)&&(d=C)}var _=qk(S);_!=null&&(u=u==null?_[0]:Math.min(u,_[0]),d=d==null?_[1]:Math.max(d,_[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(f=>{var h=qk(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]))}),Le(u)&&Le(d))return[u,d]},G7=V([t0,or,L7,n0,It,E6],KC,{memoizeOptions:{resultEqualityCheck:yh}});function Y7(e){var t=e.value;if(Cn(t)||t instanceof Date)return t}var Q7=(e,t,r)=>{var n=e.map(Y7).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&r2(n))?EO(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},VC=e=>e.referenceElements.dots,Tl=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),X7=V([VC,It,vh],Tl),qC=e=>e.referenceElements.areas,Z7=V([qC,It,vh],Tl),GC=e=>e.referenceElements.lines,J7=V([GC,It,vh],Tl),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)]}},eU=V(X7,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)]}},tU=V([Z7,It],QC);function rU(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 nU(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"?rU(n):nU(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},iU=V([J7,It],XC),aU=V(eU,iU,tU,(e,t,r)=>gf(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?gf(n,o,i):gf(o,i);return _6(t,f,e.allowDataOverflow)},oU=V([or,WC,HC,V7,G7,aU,lt,It],ZC,{memoizeOptions:{resultEqualityCheck:yh}}),lU=[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=Mn(t,o);if(f&&u==null){var h;return EO(0,(h=r==null?void 0:r.length)!==null&&h!==void 0?h:0)}return d==="category"?Q7(n,e,f):i==="expand"&&!f?lU:s}},i0=V([or,lt,t0,zu,fh,It,oU],JC),Dl=V([or,jC,wg],EC),ej=(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 rk(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return nk(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Pn(e))return rk(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Pn(e))return nk(e,t.tickCount,t.allowDecimals,"adaptive")}}},a0=V([i0,Lu,Dl],ej),tj=(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},sU=V([or,i0,a0,It],tj),uU=V(zu,or,(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(!Le(e))return 0;var o=t==="vertical"?n.height:n.width;if(i==="gap")return e*o/2;if(i==="no-gap"){var s=ra(r,e*o),u=e*o/2;return u-s-(u-s)/o*s}return 0}),cU=(e,t,r)=>{var n=ui(e,t);return n==null||typeof n.padding!="string"?0:rj(e,"xAxis",t,r,n.padding)},dU=(e,t,r)=>{var n=ci(e,t);return n==null||typeof n.padding!="string"?0:rj(e,"yAxis",t,r,n.padding)},fU=V(ui,cU,(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}}),hU=V(ci,dU,(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}}),nj=V([Ht,fU,ah,ih,(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]}),ij=V([Ht,lt,hU,ah,ih,(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]}),Fu=(e,t,r,n)=>{var i;switch(t){case"xAxis":return nj(e,r,n);case"yAxis":return ij(e,r,n);case"zAxis":return(i=e0(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return FO(e);case"radiusAxis":return BO(e,r);default:return}},aj=V([or,Fu],hh),pU=V([Dl,sU],G6),o0=V([or,Dl,pU,aj],Jg),oj=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var i=r.type,o=r.scale,s=Mn(e,n);if(s&&(i==="number"||o!=="auto"))return t.map(u=>u.value)}},l0=V([lt,zu,Lu,It],oj),Ph=V([o0],jg);V([o0],O7);V([o0,U7],PC);V([Ml,n0,It],q7);function lj(e,t){return e.idt.id?1:0}var Ah=(e,t)=>t,Oh=(e,t,r)=>r,mU=V(rh,Ah,Oh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(lj)),vU=V(nh,Ah,Oh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(lj)),sj=(e,t)=>({width:e.width,height:t.height}),yU=(e,t)=>{var r=typeof t.width=="number"?t.width:ju;return{width:r,height:e.height}},gU=V(Ht,ui,sj),xU=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},bU=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},wU=V(li,Ht,mU,Ah,Oh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=sj(t,u);s==null&&(s=xU(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}),SU=V(oi,Ht,vU,Ah,Oh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=yU(t,u);s==null&&(s=bU(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}),kU=(e,t)=>{var r=ui(e,t);if(r!=null)return wU(e,r.orientation,r.mirror)},EU=V([Ht,ui,kU,(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}}}),PU=(e,t)=>{var r=ci(e,t);if(r!=null)return SU(e,r.orientation,r.mirror)},AU=V([Ht,ci,PU,(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}}}),OU=V(Ht,ci,(e,t)=>{var r=typeof t.width=="number"?t.width:ju;return{width:r,height:e.height}}),uj=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,o=r.type,s=r.dataKey,u=Mn(e,n),d=t.map(h=>h.value),f=d.filter(h=>h!=null);if(s&&u&&o==="category"&&i&&r2(f))return d}},s0=V([lt,zu,or,It],uj),Gk=V([lt,R7,Dl,Ph,s0,l0,Fu,a0,It],(e,t,r,n,i,o,s,u,d)=>{if(t!=null){var f=Mn(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}}}),CU=(e,t,r,n,i,o,s,u,d)=>{if(!(t==null||n==null)){var f=Mn(e,d),h=t.type,m=t.ticks,v=t.tickCount,b=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,k=h==="category"&&n.bandwidth?n.bandwidth()/b: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 C=s?s.indexOf(E):E,_=n.map(C);return Le(_)?{index:P,coordinate:_+k,value:E,offset:k}:null}).filter(mr):f&&u?u.map((E,P)=>{var C=n.map(E);return Le(C)?{coordinate:C+k,value:E,index:P,offset:k}:null}).filter(mr):n.ticks?n.ticks(v).map((E,P)=>{var C=n.map(E);return Le(C)?{coordinate:C+k,value:E,index:P,offset:k}:null}).filter(mr):n.domain().map((E,P)=>{var C=n.map(E);return Le(C)?{coordinate:C+k,value:s?s[E]:E,index:P,offset:k}:null}).filter(mr)}},cj=V([lt,Lu,Dl,Ph,a0,Fu,s0,l0,It],CU),jU=(e,t,r,n,i,o,s)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=Mn(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 Le(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 Le(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.domain().map((h,m)=>{var v=r.map(h);return Le(v)?{coordinate:v+f,value:i?i[h]:h,index:m,offset:f}:null}).filter(mr)}},dj=V([lt,Lu,Ph,Fu,s0,l0,It],jU),fj=V(or,Ph,(e,t)=>{if(!(e==null||t==null))return yf(yf({},e),{},{scale:t})}),_U=V([or,Dl,i0,aj],Jg),NU=V([_U],jg);V((e,t,r)=>e0(e,r),NU,(e,t)=>{if(!(e==null||t==null))return yf(yf({},e),{},{scale:t})});var IU=V([lt,rh,nh],(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}}),MU=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};V([MU],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,pj=e=>e.options.validateTooltipEventTypes;function mj(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Bu(e,t){var r=hj(e),n=pj(e);return mj(t,r,n)}function TU(e){return Ee(t=>Bu(t,e))}var vj=(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},DU=e=>e.tooltip.settings,Bi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},RU={itemInteraction:{click:Bi,hover:Bi},axisInteraction:{click:Bi,hover:Bi},keyboardInteraction:Bi,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}},yj=Zt({name:"tooltip",initialState:RU,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:rt()},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:rt()},removeTooltipEntrySettings:{reducer(e,t){var r=zr(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:rt()},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=yj.actions,$U=Vr.addTooltipEntrySettings,LU=Vr.replaceTooltipEntrySettings,zU=Vr.removeTooltipEntrySettings,FU=Vr.setTooltipSettingsState,BU=Vr.setActiveMouseOverItemIndex;Vr.mouseLeaveItem;var gj=Vr.mouseLeaveChart;Vr.setActiveClickItemIndex;var xj=Vr.setMouseOverAxisIndex,UU=Vr.setMouseClickAxisIndex,Ks=Vr.setSyncInteraction,xf=Vr.setKeyboardInteraction,WU=yj.reducer;function Yk(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 gd(e){for(var t=1;t{if(t==null)return Bi;var i=qU(e,t,r);if(i==null)return Bi;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(GU(i)){if(o)return gd(gd({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return gd(gd({},Bi),{},{coordinate:i.coordinate})};function YU(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 QU(e,t){var r=YU(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 XU(e,t,r){if(r==null||t==null)return!0;var n=Nt(e,t);return n==null||!Pn(r)?!0:QU(n,r)}var qs=(e,t,r,n)=>{var i=e==null?void 0:e.index;if(i==null)return null;var o=Number(i);if(!Le(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||XU(f,r,n)?String(d):null},wj=(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}}}},Sj=(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})},kj=e=>e.options.tooltipPayloadSearcher,Rl=e=>e.tooltip;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 Xk(e){for(var t=1;te(t)}function Zk(e){if(typeof e=="string")return e}function i9(e){if(!(e==null||typeof e!="object")){var t="name"in e?t9(e.name):void 0,r="unit"in e?r9(e.unit):void 0,n="dataKey"in e?n9(e.dataKey):void 0,i="payload"in e?e.payload:void 0,o="color"in e?Zk(e.color):void 0,s="fill"in e?Zk(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:o,fill:s}}}function a9(e,t){return e??t}var Ej=(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,b)=>{var k,S=b.dataDefinedOnItem,E=b.settings,P=a9(S,u),C=Array.isArray(P)?Y2(P,f,h):P,_=(k=E==null?void 0:E.dataKey)!==null&&k!==void 0?k:n,O=E==null?void 0:E.nameKey,N;if(n&&Array.isArray(C)&&!Array.isArray(C[0])&&s==="axis"?N=n2(C,n,i):N=o(C,t,d,O),Array.isArray(N))N.forEach(D=>{var B,F,z=i9(D),G=z==null?void 0:z.name,U=z==null?void 0:z.dataKey,ue=z==null?void 0:z.payload,ae=Xk(Xk({},E),{},{name:G,unit:z==null?void 0:z.unit,color:(B=z==null?void 0:z.color)!==null&&B!==void 0?B:E==null?void 0:E.color,fill:(F=z==null?void 0:z.fill)!==null&&F!==void 0?F:E==null?void 0:E.fill});v.push(Vw({tooltipEntrySettings:ae,dataKey:U,payload:ue,value:Nt(ue,U),name:G==null?void 0:String(G)}))});else{var j;v.push(Vw({tooltipEntrySettings:E,dataKey:_,payload:N,value:Nt(N,_),name:(j=Nt(N,O))!==null&&j!==void 0?j:E==null?void 0:E.name}))}return v},m)}},u0=V([Et,jC,wg],EC),o9=V([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),l9=V([Mt,Nl],_C),io=V([o9,Et,l9],IC,{memoizeOptions:{resultEqualityCheck:gh}}),s9=V([io],e=>e.filter(Cg)),Pj=V([io],DC,{memoizeOptions:{resultEqualityCheck:gh}}),u9=V([io],e=>e.some(t=>!t.data)),Za=V([Pj,un],$C),c9=V([s9,un,Et],WO),c0=V([Za,Et,io,un,u9,Pj],LC),Aj=V([Et],r0),d9=V([Et],e=>e.allowDataOverflow),Oj=V([Aj,d9],PO),f9=V([io],e=>e.filter(Cg)),h9=V([c9,f9,fh,RO],FC),p9=V([h9,un,Mt,Oj],UC),m9=V([io],TC),v9=V([Za,Et,m9,n0,Mt,P6],KC,{memoizeOptions:{resultEqualityCheck:yh}}),y9=V([VC,Mt,Nl],Tl),g9=V([y9,Mt],YC),x9=V([qC,Mt,Nl],Tl),b9=V([x9,Mt],QC),w9=V([GC,Mt,Nl],Tl),S9=V([w9,Mt],XC),k9=V([g9,S9,b9],gf),E9=V([Et,Aj,Oj,p9,v9,k9,lt,Mt],ZC),Sl=V([Et,lt,Za,c0,fh,Mt,E9],JC),P9=V([Sl,Et,u0],ej),A9=V([Et,Sl,P9,Mt],tj),Cj=e=>{var t=Mt(e),r=Nl(e),n=!1;return Fu(e,t,r,n)},jj=V([Et,Cj],hh),O9=V([Et,u0,A9,jj],Jg),_j=V([O9],jg),C9=V([lt,c0,Et,Mt],uj),j9=V([lt,c0,Et,Mt],oj),_9=(e,t,r,n,i,o,s,u)=>{if(t){var d=t.type,f=Mn(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,b)=>{var k=n.map(v);return Le(k)?{coordinate:k+m,value:v,index:b,offset:m}:null}).filter(mr):n.domain().map((v,b)=>{var k=n.map(v);return Le(k)?{coordinate:k+m,value:o?o[v]:v,index:b,offset:m}:null}).filter(mr)}}},di=V([lt,Et,u0,_j,Cj,C9,j9,Mt],_9),d0=V([hj,pj,DU],(e,t,r)=>mj(r.shared,e,t)),Nj=e=>e.tooltip.settings.trigger,f0=e=>e.tooltip.settings.defaultIndex,Uu=V([Rl,d0,Nj,f0],bj),vu=V([Uu,Za,wl,Sl],qs),Ij=V([di,vu],vj),N9=V([Uu],e=>{if(e)return e.dataKey}),I9=V([Uu],e=>{if(e)return e.graphicalItemId}),Mj=V([Rl,d0,Nj,f0],Sj),M9=V([oi,li,lt,Ht,di,f0,Mj],wj),T9=V([Uu,M9],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),D9=V([Uu],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),R9=V([Mj,vu,un,wl,Ij,kj,d0],Ej),$9=V([R9],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function Jk(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 eE(e){for(var t=1;tEe(Et),U9=()=>{var e=B9(),t=Ee(di),r=Ee(_j);return Gd(!e||!r?void 0:eE(eE({},e),{},{scale:r}),t)};function tE(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 zo(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}},q9=(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 zo(zo(zo({},n),Bt(n.cx,n.cy,s,o)),{},{angle:o,radius:s})}var u=i.coordinate,d=n.angle;return zo(zo(zo({},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 G9(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 Tj=(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(!(b==null||k==null||S==null))if(Lr(k-b)!==Lr(S-k)){var P=[];if(Lr(S-k)===Lr(i[1]-i[0])){E=S;var C=k+i[1]-i[0];P[0]=Math.min(C,(C+b)/2),P[1]=Math.max(C,(C+b)/2)}else{E=b;var _=S+i[1]-i[0];P[0]=Math.min(k,(_+k)/2),P[1]=Math.max(k,(_+k)/2)}var O=[Math.min(k,(E+k)/2),Math.max(k,(E+k)/2)];if(e>O[0]&&e<=O[1]||e>=P[0]&&e<=P[1]){var N;return(N=r[u])===null||N===void 0?void 0:N.index}}else{var j=Math.min(b,S),D=Math.max(b,S);if(e>(j+k)/2&&e<=(D+k)/2){var B;return(B=r[u])===null||B===void 0?void 0:B.index}}}else if(t)for(var F=0;F(z.coordinate+U.coordinate)/2||F>0&&F(z.coordinate+U.coordinate)/2&&e<=(z.coordinate+G.coordinate)/2)return z.index}}return-1},Dj=()=>Ee(wg),h0=(e,t)=>t,Rj=(e,t,r)=>r,p0=(e,t,r,n)=>n,Y9=V(di,e=>Kf(e,t=>t.coordinate)),m0=V([Rl,h0,Rj,p0],bj),v0=V([m0,Za,wl,Sl],qs),Q9=(e,t,r)=>{if(t!=null){var n=Rl(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},$j=V([Rl,h0,Rj,p0],Sj),bf=V([oi,li,lt,Ht,di,p0,$j],wj),X9=V([m0,bf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),Lj=V([di,v0],vj),Z9=V([$j,v0,un,wl,Lj,kj,h0],Ej),J9=V([m0,v0],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),eW=(e,t,r,n,i,o,s)=>{if(!(!e||!r||!n||!i)&&G9(e,s)){var u=hL(e,t),d=Tj(u,o,i,r,n),f=V9(t,i,d,e);return{activeIndex:String(d),activeCoordinate:f}}},tW=(e,t,r,n,i,o,s)=>{if(!(!e||!n||!i||!o||!r)){var u=v6(e,r);if(u){var d=pL(u,t),f=Tj(d,s,o,n,i),h=q9(t,o,f,u);return{activeIndex:String(f),activeCoordinate:h}}}},rW=(e,t,r,n,i,o,s,u)=>{if(!(!e||!t||!n||!i||!o))return t==="horizontal"||t==="vertical"?eW(e,t,n,i,o,s,u):tW(e,t,r,n,i,o,s)},nW=V(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}}),iW=V(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:q6}});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 nE(e){for(var t=1;tnE(nE({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),sW)},cW=new Set(Object.values(rr));function dW(e){return cW.has(e)}var zj=Zt({name:"zIndex",initialState:uW,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:rt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!dW(r)&&delete e.zIndexMap[r])},prepare:rt()},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:rt()},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:rt()}}}),Ch=zj.actions,fW=Ch.registerZIndexPortal,lv=Ch.unregisterZIndexPortal,hW=Ch.registerZIndexPortalElement,pW=Ch.unregisterZIndexPortalElement,mW=zj.reducer;function fi(e){var t=e.zIndex,r=e.children,n=ZL(),i=n&&t!==void 0&&t!==0,o=yr(),s=g.useRef(void 0),u=g.useRef(new Set),d=gt(),f=Ee(m=>nW(m,t,o));if(g.useLayoutEffect(()=>{if(!i){var m=u.current;m.forEach(b=>{d(lv({zIndex:b}))}),m.clear(),s.current=void 0;return}if(u.current.has(t)||(d(fW({zIndex:t})),u.current.add(t)),f){s.current=f;var v=u.current;v.forEach(b=>{b!==t&&(d(lv({zIndex:b})),v.delete(b))})}},[d,t,i,f]),g.useLayoutEffect(()=>{var m=u.current;return()=>{m.forEach(v=>{d(lv({zIndex:v}))}),m.clear()}},[d]),!i)return r;var h=f??s.current;return h?Df.createPortal(r,h):null}function Sy(){return Sy=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.useContext(Fj),sv={exports:{}},aE;function kW(){return aE||(aE=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 b=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],b]:d._events[k].push(b):(d._events[k]=b,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,b=m.length,k=new Array(b);v{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!On(r))return e[r]}},OW={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},Bj=Zt({name:"options",initialState:OW,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),CW=Bj.reducer,jW=Bj.actions.createEventEmitter;function _W(e){return e.tooltip.syncInteraction}var NW={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},Uj=Zt({name:"chartData",initialState:NW,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=Uj.actions,lE=y0.setChartData,IW=y0.setDataStartEndIndexes;y0.setComputedData;var MW=Uj.reducer,TW=["x","y"];function sE(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 Fo(e){for(var t=1;td.rootProps.className);g.useEffect(()=>{if(e==null)return Ol;var d=(f,h,m)=>{if(t!==m&&e===f){if(h.payload.active===!1){r(Ks({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 b=h.payload.coordinate,k=b.x,S=b.y,E=LW(b,TW),P=h.payload.sourceViewBox,C=P.x,_=P.y,O=P.width,N=P.height,j=Fo(Fo({},E),{},{x:s.x+(O?(k-C)/O:0)*s.width,y:s.y+(N?(S-_)/N:0)*s.height});r(Fo(Fo({},h),{},{payload:Fo(Fo({},h.payload),{},{coordinate:j})}))}else r(h);return}if(i!=null){var D;if(typeof n=="function"){var B={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},F=n(i,B);D=i[F]}else n==="value"&&(D=i.find(se=>String(se.value)===h.payload.label));var z=h.payload.coordinate;if(z==null||s==null){r(Ks({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(D==null){r(Ks({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:void 0}));return}var G=z.x,U=z.y,ue=Math.min(G,s.x+s.width),ae=Math.min(U,s.y+s.height),ye={x:o==="horizontal"?D.coordinate:ue,y:o==="horizontal"?ae:D.coordinate},pe=Ks({active:h.payload.active,coordinate:ye,dataKey:h.payload.dataKey,index:String(D.index),label:h.payload.label,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:h.payload.graphicalItemId});r(pe)}}};return yu.on(ky,d),()=>{yu.off(ky,d)}},[u,r,t,e,n,i,o,s])}function BW(){var e=Ee(Sg),t=Ee(kg),r=gt();g.useEffect(()=>{if(e==null)return Ol;var n=(i,o,s)=>{t!==s&&e===i&&r(IW(o))};return yu.on(oE,n),()=>{yu.off(oE,n)}},[r,t,e])}function UW(){var e=gt();g.useEffect(()=>{e(jW())},[e]),FW(),BW()}function WW(e,t,r,n,i,o){var s=Ee(k=>Q9(k,e,t)),u=Ee(I9),d=Ee(kg),f=Ee(Sg),h=Ee($O),m=Ee(_W),v=(m==null?void 0:m.sourceViewBox)!=null,b=oh();g.useEffect(()=>{if(!v&&f!=null&&d!=null){var k=Ks({active:o,coordinate:r,dataKey:s,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:b,graphicalItemId:u});yu.emit(ky,f,k,d)}},[v,r,s,u,i,n,d,f,h,o,b])}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 cE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{D(FU({shared:C,trigger:_,axisId:j,active:i,defaultIndex:B}))},[D,C,_,j,i,B]);var F=oh(),z=vO(),G=TU(C),U=(t=Ee(Oe=>J9(Oe,G,_,B)))!==null&&t!==void 0?t:{},ue=U.activeIndex,ae=U.isActive,ye=Ee(Oe=>Z9(Oe,G,_,B)),pe=Ee(Oe=>Lj(Oe,G,_,B)),se=Ee(Oe=>X9(Oe,G,_,B)),Y=ye,Q=SW(),Z=(r=i??ae)!==null&&r!==void 0?r:!1,$=J$([Y,Z]),M=qW($,2),X=M[0],le=M[1],re=G==="axis"?pe:void 0;WW(G,_,se,re,ue,Z);var ce=N??Q;if(ce==null||F==null||G==null)return null;var he=Y??fE;Z||(he=fE),f&&he.length&&(he=S$(he.filter(Oe=>Oe.value!=null&&(Oe.hide!==!0||n.includeHidden)),v,ZW));var Pe=he.length>0,J=cE(cE({},n),{},{payload:he,label:re,active:Z,activeIndex:ue,coordinate:se,accessibilityLayer:z}),we=g.createElement(cF,{allowEscapeViewBox:o,animationDuration:s,animationEasing:u,isAnimationActive:h,active:Z,coordinate:se,hasPayload:Pe,offset:m,position:b,reverseDirection:k,useTranslate3d:S,viewBox:F,wrapperStyle:E,lastBoundingBox:X,innerRef:le,hasPortalFromProps:!!N},JW(d,J));return g.createElement(g.Fragment,null,Df.createPortal(we,ce),Z&&g.createElement(wW,{cursor:P,tooltipEventType:G,coordinate:se,payload:he,index:ue}))}function rH(e,t,r){return(t=nH(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nH(e){var t=iH(e,"string");return typeof t=="symbol"?t:t+""}function iH(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 aH{constructor(t){rH(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 hE(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 oH(e){for(var t=1;t{try{var r=document.getElementById(mE);r||(r=document.createElement("span"),r.setAttribute("id",mE),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,dH,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Gs=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Mu.isSsr)return{width:0,height:0};if(!Wj.enableCache)return vE(t,r);var n=fH(t,r),i=pE.get(n);if(i)return i;var o=vE(t,r);return pE.set(n,o),o},Hj;function wf(e,t){return vH(e)||mH(e,t)||pH(e,t)||hH()}function hH(){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 pH(e,t){if(e){if(typeof e=="string")return yE(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)?yE(e,t):void 0}}function yE(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(Vj));var o=i.map(u=>({word:u,width:Gs(u,n).width})),s=r?0:Gs(" ",n).width;return{wordsWithComputedWidth:o,spaceWidth:s}}catch{return null}};function Gj(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function RH(e){return Ut(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Yj=(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),$H="…",EE=(e,t,r,n,i,o,s,u)=>{var d=e.slice(0,t),f=qj({breakAll:r,style:n,children:d+$H});if(!f)return[!1,[]];var h=Yj(f.wordsWithComputedWidth,o,s,u),m=h.length>i||Qj(h).width>Number(o);return[m,h]},LH=(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=Yj(t,n,r,i);if(!f||i)return m;var v=m.length>o||Qj(m).width>Number(n);if(!v)return m;for(var b=0,k=h.length-1,S=0,E;b<=k&&S<=h.length-1;){var P=Math.floor((b+k)/2),C=P-1,_=EE(h,C,d,u,o,n,r,i),O=SE(_,2),N=O[0],j=O[1],D=EE(h,P,d,u,o,n,r,i),B=SE(D,1),F=B[0];if(!N&&!F&&(b=P+1),N&&F&&(k=P-1),!N&&F){E=j;break}S++}return E||m},PE=e=>{var t=Ut(e)?[]:e.toString().split(Vj);return[{words:t,width:void 0}]},zH=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,o=e.breakAll,s=e.maxLines;if((t||r)&&!Mu.isSsr){var u,d,f=qj({breakAll:o,children:n,style:i});if(f){var h=f.wordsWithComputedWidth,m=f.spaceWidth;u=h,d=m}else return PE(n);return LH({breakAll:o,children:n,maxLines:s,style:i},u,d,t,!!r)}return PE(n)},Xj="#808080",FH={angle:0,breakAll:!1,capHeight:"0.71em",fill:Xj,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},g0=g.forwardRef((e,t)=>{var r=Hr(e,FH),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=wE(r,jH),v=g.useMemo(()=>zH({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]),b=m.dx,k=m.dy,S=m.angle,E=m.className,P=m.breakAll,C=wE(m,_H);if(!Cn(n)||!Cn(i)||v.length===0)return null;var _=Number(n)+(be(b)?b:0),O=Number(i)+(be(k)?k:0);if(!Le(_)||!Le(O))return null;var N;switch(h){case"start":N=uv("calc(".concat(s,")"));break;case"middle":N=uv("calc(".concat((v.length-1)/2," * -").concat(o," + (").concat(s," / 2))"));break;default:N=uv("calc(".concat(v.length-1," * -").concat(o,")"));break}var j=[],D=v[0];if(d&&D!=null){var B=D.width,F=m.width;j.push("scale(".concat(be(F)&&be(B)?F/B:1,")"))}return S&&j.push("rotate(".concat(S,", ").concat(_,", ").concat(O,")")),j.length&&(C.transform=j.join(" ")),g.createElement("text",Ey({},Br(C),{ref:t,x:_,y:O,className:Xe("recharts-text",E),textAnchor:f,fill:u.includes("url")?Xj:u}),v.map((z,G)=>{var U=z.words.join(P?"":" ");return g.createElement("tspan",{x:_,dy:G===0?N:o,key:"".concat(U,"-").concat(G)},U)}))});g0.displayName="Text";function AE(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,b=u+(h-m)/2,k=(v+b)/2,S=(h+m)/2,E=v+h/2,P=f>=0?1:-1,C=P*i,_=P>0?"end":"start",O=P>0?"start":"end",N=h>=0?1:-1,j=N*i,D=N>0?"end":"start",B=N>0?"start":"end",F=o;if(r==="top"){var z={x:v+h/2,y:d-C,horizontalAnchor:"middle",verticalAnchor:_};return F&&(z.height=Math.max(d-F.y,0),z.width=h),z}if(r==="bottom"){var G={x:b+m/2,y:d+f+C,horizontalAnchor:"middle",verticalAnchor:O};return F&&(G.height=Math.max(F.y+F.height-(d+f),0),G.width=m),G}if(r==="left"){var U={x:k-j,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"};return F&&(U.width=Math.max(U.x-F.x,0),U.height=f),U}if(r==="right"){var ue={x:k+S+j,y:d+f/2,horizontalAnchor:B,verticalAnchor:"middle"};return F&&(ue.width=Math.max(F.x+F.width-ue.x,0),ue.height=f),ue}var ae=F?{width:S,height:f}:{};return r==="insideLeft"?gn({x:k+j,y:d+f/2,horizontalAnchor:B,verticalAnchor:"middle"},ae):r==="insideRight"?gn({x:k+S-j,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"},ae):r==="insideTop"?gn({x:v+h/2,y:d+C,horizontalAnchor:"middle",verticalAnchor:O},ae):r==="insideBottom"?gn({x:b+m/2,y:d+f-C,horizontalAnchor:"middle",verticalAnchor:_},ae):r==="insideTopLeft"?gn({x:v+j,y:d+C,horizontalAnchor:B,verticalAnchor:O},ae):r==="insideTopRight"?gn({x:v+h-j,y:d+C,horizontalAnchor:D,verticalAnchor:O},ae):r==="insideBottomLeft"?gn({x:b+j,y:d+f-C,horizontalAnchor:B,verticalAnchor:_},ae):r==="insideBottomRight"?gn({x:b+m-j,y:d+f-C,horizontalAnchor:D,verticalAnchor:_},ae):r&&typeof r=="object"&&(be(r.x)||qa(r.x))&&(be(r.y)||qa(r.y))?gn({x:u+ra(r.x,S),y:d+ra(r.y,f),horizontalAnchor:"end",verticalAnchor:"end"},ae):gn({x:E,y:d+f/2,horizontalAnchor:"middle",verticalAnchor:"middle"},ae)},KH=["labelRef"],VH=["content"];function OE(e,t){if(e==null)return{};var r,n,i=qH(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(Zj.Provider,{value:d},u)},Jj=()=>{var e=g.useContext(Zj),t=oh();return e||(t?fg(t):void 0)},ZH=g.createContext(null),JH=()=>{var e=g.useContext(ZH),t=Ee(UO);return e||t},eK=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",tK=(e,t)=>{var r=Lr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},rK=(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,b=i.clockWise,k=(f+h)/2,S=tK(m,v),E=S>=0?1:-1,P,C;switch(t){case"insideStart":P=m+E*o,C=b;break;case"insideEnd":P=v-E*o,C=!b;break;case"end":P=v+E*o,C=b;break;default:throw new Error("Unsupported position ".concat(t))}C=S<=0?C:!C;var _=Bt(u,d,k,P),O=Bt(u,d,k,P+(C?1:-1)*359),N="M".concat(_.x,",").concat(_.y,` - A`).concat(k,",").concat(k,",0,1,").concat(C?0:1,`, - `).concat(O.x,",").concat(O.y),j=Ut(e.id)?nu("recharts-radial-line-"):e.id;return g.createElement("text",Yn({},n,{dominantBaseline:"central",className:Xe("recharts-radial-bar-label",s)}),g.createElement("defs",null,g.createElement("path",{id:j,d:N})),g.createElement("textPath",{xlinkHref:"#".concat(j)},r))},nK=(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 b=(o+s)/2,k=Bt(n,i,b,f),S=k.x,E=k.y;return{x:S,y:E,textAnchor:"middle",verticalAnchor:"middle"}},Nd=e=>e!=null&&"cx"in e&&be(e.cx),iK={angle:0,offset:5,zIndex:rr.label,position:"middle",textBreakAll:!1};function aK(e){if(!Nd(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 Fi(e){var t=Hr(e,iK),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=JH(),b=Jj(),k=i==="center"?b:v??b,S,E,P;r==null?S=k:Nd(r)?S=r:S=fg(r);var C=aK(S);if(!S||Ut(o)&&Ut(s)&&!g.isValidElement(u)&&typeof u!="function")return null;var _=Vs(Vs({},t),{},{viewBox:S});if(g.isValidElement(u)){_.labelRef;var O=OE(_,KH);return g.cloneElement(u,O)}if(typeof u=="function"){_.content;var N=OE(_,VH);if(E=g.createElement(u,N),g.isValidElement(E))return E}else E=eK(t);var j=Br(t);if(Nd(S)){if(i==="insideStart"||i==="insideEnd"||i==="end")return rK(t,i,E,j,S);P=nK(S,t.offset,t.position)}else{if(!C)return null;var D=HH({viewBox:C,position:i,offset:t.offset,parentViewBox:Nd(n)?void 0:n});P=Vs(Vs({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(fi,{zIndex:t.zIndex},g.createElement(g0,Yn({ref:m,className:Xe("recharts-label",f)},j,P,{textAnchor:Gj(j.textAnchor)?j.textAnchor:P.textAnchor,breakAll:h}),E))}Fi.displayName="Label";var oK=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?g.createElement(Fi,Yn({key:"label-implicit"},n)):Cn(e)?g.createElement(Fi,Yn({key:"label-implicit",value:e},n)):g.isValidElement(e)?e.type===Fi?g.cloneElement(e,Vs({key:"label-implicit"},n)):g.createElement(Fi,Yn({key:"label-implicit",content:e},n)):x0(e)?g.createElement(Fi,Yn({key:"label-implicit",content:e},n)):e&&typeof e=="object"?g.createElement(Fi,Yn({},e,{key:"label-implicit"},n)):null};function lK(e){var t=e.label,r=e.labelRef,n=Jj();return oK(t,n,r)||null}var sK=["valueAccessor"],uK=["dataKey","clockWise","id","textBreakAll","zIndex"];function Sf(){return Sf=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(RH(t))return t},e_=g.createContext(void 0),fK=e_.Provider,t_=g.createContext(void 0);t_.Provider;function hK(){return g.useContext(e_)}function pK(){return g.useContext(t_)}function Id(e){var t=e.valueAccessor,r=t===void 0?dK:t,n=jE(e,sK),i=n.dataKey;n.clockWise;var o=n.id,s=n.textBreakAll,u=n.zIndex,d=jE(n,uK),f=hK(),h=pK(),m=f||h;return!m||!m.length?null:g.createElement(fi,{zIndex:u??rr.label},g.createElement(Ur,{className:"recharts-label-list"},m.map((v,b)=>{var k,S=Ut(i)?r(v,b):Nt(v.payload,i),E=Ut(o)?{}:{id:"".concat(o,"-").concat(b)};return g.createElement(Fi,Sf({key:"label-".concat(b)},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:b,zIndex:0}))})))}Id.displayName="LabelList";function mK(e){var t=e.label;return t?t===!0?g.createElement(Id,{key:"labelList-implicit"}):g.isValidElement(t)||x0(t)?g.createElement(Id,{key:"labelList-implicit",content:t}):typeof t=="object"?g.createElement(Id,Sf({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function Py(){return Py=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=Xe("recharts-dot",i);return be(t)&&be(r)&&be(n)?g.createElement("circle",Py({},on(e),rg(e),{className:o,cx:t,cy:r,r:n})):null},vK={radiusAxis:{},angleAxis:{}},n_=Zt({name:"polarAxis",initialState:vK,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]}}}),jh=n_.actions;jh.addRadiusAxis;jh.removeRadiusAxis;jh.addAngleAxis;jh.removeAngleAxis;var yK=n_.reducer;function gK(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var i_=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;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 NE(e){for(var t=1;t{n||(i.current===null?r($U(t)):i.current!==t&&r(LU({prev:i.current,next:t})),i.current=t)},[t,r,n]),g.useLayoutEffect(()=>()=>{i.current&&(r(zU(i.current)),i.current=null)},[r]),null}function CK(e){var t=e.legendPayload,r=gt(),n=yr(),i=g.useRef(null);return g.useLayoutEffect(()=>{n||(i.current===null?r(dz(t)):i.current!==t&&r(fz({prev:i.current,next:t})),i.current=t)},[r,n,t]),g.useLayoutEffect(()=>()=>{i.current&&(r(hz(i.current)),i.current=null)},[r]),null}function jK(e,t){return MK(e)||IK(e,t)||NK(e,t)||_K()}function _K(){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 NK(e,t){if(e){if(typeof e=="string")return IE(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)?IE(e,t):void 0}}function IE(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 RK(e,t){var r=t.map((n,i)=>e[i]);return w0(r,t)}function $K(e,t){for(var r=new Map,n=0;n{var b=r(m,v);if(b!=null){var k=n.get(b);if(k!==void 0)return i.add(b),k}}),s=[];for(var u of n){var d=jK(u,2),f=d[0],h=d[1];i.has(f)||s.push(h)}return w0(o,t,s)}function Ay(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===b0?DK(e,t):r===TK?RK(e,t):LK(e,t,r)}function o_(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 zK(e,t){return WK(e)||UK(e,t)||BK(e,t)||FK()}function FK(){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 BK(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);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 KK(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,b=e.animationMatchBy,k=e.shouldUpdatePreviousRef,S=e.children,E=e.layout,P=wO(r,n),C=o_(P,o),_=(t=C.startValue)!==null&&t!==void 0?t:null,O=Ay(_,i,b??b0);return g.createElement(bO,{animationId:P,begin:u,duration:d,isActive:s,easing:f,onAnimationEnd:m,onAnimationStart:h,key:P},N=>{var j=_==null,D=i==null?i:v(O,N,E),B=k?k(N):N>0;return C.syncStepValue(D,N,B),D==null?null:S(D,N,j)})}var cv;function VK(e,t){return QK(e)||YK(e,t)||GK(e,t)||qK()}function qK(){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 GK(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{var e=g.useState(()=>nu("uid-")),t=VK(e,1),r=t[0];return r},l_=(cv=Nf.useId)!==null&&cv!==void 0?cv:XK;function ZK(e,t){var r=l_();return t||(e?"".concat(e,"-").concat(r):r)}var JK=g.createContext(void 0),eV=e=>{var t=e.id,r=e.type,n=e.children,i=ZK("recharts-".concat(r),t);return g.createElement(JK.Provider,{value:i},n(i))},tV={cartesianItems:[],polarItems:[]},s_=Zt({name:"graphicalItems",initialState:tV,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:rt()},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:rt()},removeCartesianGraphicalItem:{reducer(e,t){var r=zr(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:rt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:rt()},removePolarGraphicalItem:{reducer(e,t){var r=zr(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:rt()},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:rt()}}}),$l=s_.actions,rV=$l.addCartesianGraphicalItem,nV=$l.replaceCartesianGraphicalItem,iV=$l.removeCartesianGraphicalItem;$l.addPolarGraphicalItem;$l.removePolarGraphicalItem;$l.replacePolarGraphicalItem;var aV=s_.reducer,oV=e=>{var t=gt(),r=g.useRef(null);return g.useLayoutEffect(()=>{r.current===null?t(rV(e)):r.current!==e&&t(nV({prev:r.current,next:e})),r.current=e},[t,e]),g.useLayoutEffect(()=>()=>{r.current&&(t(iV(r.current)),r.current=null)},[t]),null},lV=g.memo(oV),sV=["points"];function DE(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 dv(e){for(var t=1;t{var P,C,_=dv(dv(dv({r:3},s),v),{},{index:E,cx:(P=S.x)!==null&&P!==void 0?P:void 0,cy:(C=S.y)!==null&&C!==void 0?C:void 0,dataKey:o,value:S.value,payload:S.payload,points:t});return g.createElement(pV,{key:"dot-".concat(E),option:r,dotProps:_,className:i})}),k={};return u&&d!=null&&(k.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),g.createElement(fi,{zIndex:h},g.createElement(Ur,kf({className:n},k),b))}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 $E(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),_V=V([jV,oi,li],(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=()=>Ee(_V),NV=()=>Ee($9);function LE(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 fv(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=fv(fv(fv({},u),Uf(i)),rg(i)),f;return g.isValidElement(i)?f=g.cloneElement(i,d):typeof i=="function"?f=i(d):f=g.createElement(r_,d),g.createElement(Ur,{className:"recharts-active-dot",clipPath:s},f)};function zE(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=Ee(vu),f=NV();if(t==null||f==null)return null;var h=t.find(m=>f.includes(m.payload));return Ut(h)?null:g.createElement(fi,{zIndex:u},g.createElement(DV,{point:h,childIndex:Number(d),mainColor:r,dataKey:i,activeDot:n,clipPath:o}))}var RV=e=>{var t=e.chartData,r=gt(),n=yr();return g.useEffect(()=>n?()=>{}:(r(lE(t)),()=>{r(lE(void 0))}),[t,r,n]),null},FE={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},d_=Zt({name:"brush",initialState:FE,reducers:{setBrushSettings(e,t){return t.payload==null?FE:t.payload}}});d_.actions.setBrushSettings;var $V=d_.reducer;function LV(e){return(e%180+180)%180}var zV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=LV(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)}}}),Ll=f_.actions;Ll.addDot;Ll.removeDot;Ll.addArea;Ll.removeArea;Ll.addLine;Ll.removeLine;var BV=f_.reducer;function UV(e,t){return VV(e)||KV(e,t)||HV(e,t)||WV()}function WV(){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 HV(e,t){if(e){if(typeof e=="string")return BE(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)?BE(e,t):void 0}}function BE(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(nu("recharts"),"-clip")),n=UV(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(qV.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 h_(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 XV(e,t){return h_(e,t+1)}function ZV(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:h_(n,f)};var S=d,E,P=()=>(E===void 0&&(E=r(k,S)),E),C=k.coordinate,_=d===0||gu(e,C,P,h,u);_||(d=0,h=s,f+=1),_&&(h=C+e*(P()/2+i),d+=f)},v;f<=o.length;)if(v=m(),v)return v.v;return[]}function JV(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,b=function(){var O=n[S];if(O==null)return 0;var N=S,j,D=()=>(j===void 0&&(j=r(O,N)),j),B=O.coordinate,F=S===h||gu(e,B,D,m,d);if(!F)return v=!1,1;F&&(m=B+e*(D()/2+i))},k,S=h;S(S===void 0&&(S=r(b,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 C=gu(e,k.tickCoord,E,u,d);C&&(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 iq(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 b=gu(e,h.tickCoord,()=>m,d,f);b&&(f=h.tickCoord-e*(m/2+i),s[u-1]=Qt(Qt({},h),{},{isShow:!0}))}}}for(var k=o?u-1:u,S=function(C){var _=s[C];if(_==null)return 1;var O=_,N,j=()=>(N===void 0&&(N=r(_,C)),N);if(C===0){var D=e*(O.coordinate-e*j()/2-d);s[C]=O=Qt(Qt({},O),{},{tickCoord:D<0?O.coordinate-D*e:O.coordinate})}else s[C]=O=Qt(Qt({},O),{},{tickCoord:O.coordinate});if(O.tickCoord!=null){var B=gu(e,O.tickCoord,j,d,f);B&&(d=O.tickCoord+e*(j()/2+i),s[C]=Qt(Qt({},O),{},{isShow:!0}))}},E=0;E{var D=typeof f=="function"?f(N.value,j):N.value;return k==="width"?YV(Gs(D,{fontSize:t,letterSpacing:r}),S,m):Gs(D,{fontSize:t,letterSpacing:r})[k]},P=i[0],C=i[1],_=i.length>=2&&P!=null&&C!=null?Lr(C.coordinate-P.coordinate):1,O=QV(o,_,k);return d==="equidistantPreserveStart"?ZV(_,O,E,i,s):d==="equidistantPreserveEnd"?JV(_,O,E,i,s):(d==="preserveStart"||d==="preserveStartEnd"?b=iq(_,O,E,i,s,d==="preserveStartEnd"):b=nq(_,O,E,i,s),b.filter(N=>N.isShow))}var aq=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(b=>{if(b){var k=b.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},oq={xAxis:{},yAxis:{}},p_=Zt({name:"renderedTicks",initialState:oq,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]}}}),m_=p_.actions,lq=m_.setRenderedTicks,sq=m_.removeRenderedTicks,uq=p_.reducer,cq=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function WE(e,t){return pq(e)||hq(e,t)||fq(e,t)||dq()}function dq(){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 fq(e,t){if(e){if(typeof e=="string")return HE(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)?HE(e,t):void 0}}function HE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return Ol;var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return i(lq({ticks:o,axisId:n,axisType:r})),()=>{i(sq({axisId:n,axisType:r}))}},[i,t,n,r]),null}var Aq=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,b=e.x,k=e.y,S=e.width,E=e.height,P=e.tickSize,C=e.tickMargin,_=e.fontSize,O=e.letterSpacing,N=e.getTicksConfig,j=e.events,D=e.axisType,B=e.axisId,F=k0(ht(ht({},N),{},{ticks:n}),_,O),z=on(N),G=Uf(i),U=Gj(z.textAnchor)?z.textAnchor:Sq(m,v),ue=kq(m,v),ae={};typeof o=="object"&&(ae=o);var ye=ht(ht({},z),{},{fill:"none"},ae),pe=F.map(Q=>ht({entry:Q},wq(Q,b,k,S,E,m,P,v,C))),se=pe.map(Q=>{var Z=Q.entry,$=Q.line;return g.createElement(Ur,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Z.value,"-").concat(Z.coordinate,"-").concat(Z.tickCoord)},o&&g.createElement("line",Ja({},ye,$,{className:Xe("recharts-cartesian-axis-tick-line",to(o,"className"))})))}),Y=pe.map((Q,Z)=>{var $,M,X=Q.entry,le=Q.tick,re=ht(ht(ht(ht({verticalAnchor:ue},z),{},{textAnchor:U,stroke:"none",fill:s},le),{},{index:Z,payload:X,visibleTicksCount:F.length,tickFormatter:u,padding:f},h),{},{angle:($=(M=h==null?void 0:h.angle)!==null&&M!==void 0?M:z.angle)!==null&&$!==void 0?$:0}),ce=ht(ht({},re),G);return g.createElement(Ur,Ja({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(X.value,"-").concat(X.coordinate,"-").concat(X.tickCoord)},_5(j,X,Z)),i&&g.createElement(Eq,{option:i,tickProps:ce,value:"".concat(typeof u=="function"?u(X.value,Z):X.value).concat(d||"")}))});return g.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},g.createElement(Pq,{ticks:F,axisId:B,axisType:D}),Y.length>0&&g.createElement(fi,{zIndex:rr.label},g.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:t},Y)),se.length>0&&g.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},se))}),Oq=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=mq(e,cq),m=g.useState(""),v=WE(m,2),b=v[0],k=v[1],S=g.useState(""),E=WE(S,2),P=E[0],C=E[1],_=g.useRef(null);g.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var N;return aq({ticks:_.current,label:(N=e.labelRef)===null||N===void 0?void 0:N.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var O=g.useCallback(N=>{if(N){var j=N.getElementsByClassName("recharts-cartesian-axis-tick-value");_.current=j;var D=j[0];if(D){var B=window.getComputedStyle(D),F=B.fontSize,z=B.letterSpacing;(F!==b||z!==P)&&(k(F),C(z))}}},[b,P]);return s||n!=null&&n<=0||i!=null&&i<=0?null:g.createElement(fi,{zIndex:e.zIndex},g.createElement(Ur,{className:Xe("recharts-cartesian-axis",o)},g.createElement(bq,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:on(e)}),g.createElement(Aq,{ref:O,axisType:d,events:h,fontSize:b,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(XH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},g.createElement(lK,{label:e.label,labelRef:e.labelRef}),e.children)))}),E0=g.forwardRef((e,t)=>{var r=Hr(e,ti);return g.createElement(Oq,Ja({},r,{ref:t}))});E0.displayName="CartesianAxis";var Cq=["x1","y1","x2","y2","key"],jq=["offset"],_q=["xAxisId","yAxisId"],Nq=["xAxisId","yAxisId"];function VE(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 v_(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=Ef(r,Cq),m=(i=on(h))!==null&&i!==void 0?i:{};m.offset;var v=Ef(m,jq);n=g.createElement("line",Na({},v,{x1:o,y1:s,x2:u,y2:d,fill:"none",key:f}))}return n}function $q(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=Ef(e,_q),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(v_,{key:"line-".concat(f),option:i,lineItemProps:h})});return g.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Lq(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=Ef(e,Nq),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(v_,{option:i,lineItemProps:h,key:"line-".concat(f)})});return g.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function zq(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,b)=>v-b);i!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var k=h[b+1],S=k==null,E=S?i+s-v:k-v;if(E<=0)return null;var P=b%t.length;return g.createElement("rect",{key:"react-".concat(b),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 Fq(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,b)=>v-b);o!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var k=h[b+1],S=k==null,E=S?o+u-v:k-v;if(E<=0)return null;var P=b%n.length;return g.createElement("rect",{key:"react-".concat(b),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 Bq=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,o=e.offset;return Q2(k0(Xt(Xt(Xt({},ti),r),{},{ticks:X2(r),viewBox:{x:0,y:0,width:n,height:i}})),o.left,o.left+o.width,t)},Uq=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,o=e.offset;return Q2(k0(Xt(Xt(Xt({},ti),r),{},{ticks:X2(r),viewBox:{x:0,y:0,width:n,height:i}})),o.top,o.top+o.height,t)},Wq={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:rr.grid};function y_(e){var t=aO(),r=oO(),n=iO(),i=Xt(Xt({},Hr(e,Wq)),{},{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,b=i.verticalValues,k=yr(),S=Ee(F=>Gk(F,"xAxis",o,k)),E=Ee(F=>Gk(F,"yAxis",s,k));if(!jn(f)||!jn(h)||!be(u)||!be(d))return null;var P=i.verticalCoordinatesGenerator||Bq,C=i.horizontalCoordinatesGenerator||Uq,_=i.horizontalPoints,O=i.verticalPoints;if((!_||!_.length)&&typeof C=="function"){var N=v&&v.length,j=C({yAxis:E?Xt(Xt({},E),{},{ticks:N?v:E.ticks}):void 0,width:t??f,height:r??h,offset:n},N?!0:m);Yd(Array.isArray(j),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof j,"]")),Array.isArray(j)&&(_=j)}if((!O||!O.length)&&typeof P=="function"){var D=b&&b.length,B=P({xAxis:S?Xt(Xt({},S),{},{ticks:D?b:S.ticks}):void 0,width:t??f,height:r??h,offset:n},D?!0:m);Yd(Array.isArray(B),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof B,"]")),Array.isArray(B)&&(O=B)}return g.createElement(fi,{zIndex:i.zIndex},g.createElement("g",{className:"recharts-cartesian-grid"},g.createElement(Rq,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),g.createElement(zq,Na({},i,{horizontalPoints:_})),g.createElement(Fq,Na({},i,{verticalPoints:O})),g.createElement($q,Na({},i,{offset:n,horizontalPoints:_,xAxis:S,yAxis:E})),g.createElement(Lq,Na({},i,{offset:n,verticalPoints:O,xAxis:S,yAxis:E}))))}y_.displayName="CartesianGrid";var Hq={},g_=Zt({name:"errorBars",initialState:Hq,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=g_.actions;P0.addErrorBar;P0.replaceErrorBar;P0.removeErrorBar;var Kq=g_.reducer;function x_(e,t){var r,n,i=Ee(f=>ui(f,e)),o=Ee(f=>ci(f,t)),s=(r=i==null?void 0:i.allowDataOverflow)!==null&&r!==void 0?r:wt.allowDataOverflow,u=(n=o==null?void 0:o.allowDataOverflow)!==null&&n!==void 0?n:St.allowDataOverflow,d=s||u;return{needClip:d,needClipX:s,needClipY:u}}function Vq(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=S0(),o=x_(t,r),s=o.needClipX,u=o.needClipY,d=o.needClip,f=Ee(_=>nj(_,t,!1)),h=Ee(_=>ij(_,r,!1));if(!d||!i)return null;var m=i.x,v=i.y,b=i.width,k=i.height,S=s&&f?Math.min(f[0],f[1]):m-b/2,E=u&&h?Math.min(h[0],h[1]):v-k/2,P=s&&f?Math.abs(f[1]-f[0]):b*2,C=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:C}))}function qq(e){var t=Uf(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:u_}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:u_}var b_=(e,t,r)=>fj(e,"xAxis",A0(e,t),r),w_=(e,t,r)=>dj(e,"xAxis",A0(e,t),r),S_=(e,t,r)=>fj(e,"yAxis",O0(e,t),r),k_=(e,t,r)=>dj(e,"yAxis",O0(e,t),r),Gq=V([lt,b_,S_,w_,k_],(e,t,r,n,i)=>Mn(e,"xAxis")?Gd(t,n,!1):Gd(r,i,!1)),Yq=(e,t)=>t,E_=V([NC,Yq],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),P_=e=>{var t=lt(e),r=Mn(t,"xAxis");return r?"yAxis":"xAxis"},Qq=(e,t)=>{var r=P_(e);return r==="yAxis"?O0(e,t):A0(e,t)},Xq=(e,t,r)=>BC(e,P_(e),Qq(e,t),r),Zq=V([E_,Xq],(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]])}}}),Jq=V([lt,b_,S_,w_,k_,Zq,k6,Gq,E_,F6],(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 b=d.data,k;if(b&&b.length>0?k=b:k=h==null?void 0:h.slice(m,v+1),k!=null)return PG({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:m,areaSettings:d,stackedData:o,displayedData:k,chartBaseValue:f,bandSize:u})}}),eG=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],tG=["id","baseLine"];function Ys(){return Ys=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"?[kl(kl({},r.next),{},{x:Qn(r.prev.x,r.next.x,t),y:Qn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),O_={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:b0,animationInterpolateFn:hG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:oG,xAxisId:0,yAxisId:0,zIndex:rr.area};function Af(e,t){return e&&e!=="none"?e:t}var pG=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:Af(n,i),value:Z2(r,t),payload:e}]},mG=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:Ol,settings:{stroke:n,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:Z2(s,t),hide:u,type:f,color:Af(n,o),unit:d,graphicalItemId:h}};return g.createElement(OK,{tooltipEntrySettings:m})});function vG(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(vV,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:u,needClip:i,clipPathId:t})}function yG(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 kl(kl({},d),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return g.createElement(fK,{value:t?i:void 0},r)}function gG(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,b=o.isRange,k=o.shape,S=o.id,E=A_(o,lG),P=Br(E),C=kl(kl({},P),{},{id:S,points:t,connectNulls:v,type:h,baseLine:r,layout:f,stroke:m,isRange:b,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(AK,{option:k,DefaultShape:O_.shape,shapeProps:C})),g.createElement(vG,{points:t,props:E,clipPathId:i}))}function xG(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Qn(n,e,r)}if(Ut(e)||On(e)){var i=be(t)?t:void 0;return Qn(i,0,r)}return e}function bG(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,b=n.animationInterpolateFn,k=g.useMemo(()=>({points:s,baseLine:u}),[s,u]),S=o_(k,o),E=hg(),P=HK(n.onAnimationStart,n.onAnimationEnd),C=P.isAnimating,_=P.handleAnimationStart,O=P.handleAnimationEnd,N=S.startValue;if(E==null)return null;var j;return Array.isArray(u)&&Array.isArray(N)?j=Ay(N,u,v):Array.isArray(u)?j=Ay(null,u,v):j=null,g.createElement(KK,{animationInput:k,animationIdPrefix:"recharts-area-",items:s,previousItemsRef:i,isAnimationActive:d,animationBegin:f,animationDuration:h,animationEasing:m,onAnimationStart:_,onAnimationEnd:O,animationInterpolateFn:b,animationMatchBy:v,layout:E},(D,B,F)=>{var z;return B===1?z=u:Array.isArray(u)?z=b(j,B,E):z=F?u:xG(u,N,B),S.syncStepValue(z,B),g.createElement(yG,{showLabels:!C,points:s},n.children,g.createElement(gG,{points:D,baseLine:z,needClip:t,clipPathId:r,props:n,animationElapsedTime:B,isAnimating:C||B<1,isEntrance:F}),g.createElement(mK,{label:n.label}))})}function wG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=g.useRef(null),o=g.useRef();return g.createElement(bG,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:o})}class SG 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,b=t.id,k=t.baseLine,S=t.zIndex;if(r)return null;var E=Xe("recharts-area",o),P=b,C=qq(n),_=C.r,O=C.strokeWidth,N=i_(n),j=_*2+O,D=d?"url(#clipPath-".concat(N?"":"dots-").concat(P,")"):void 0;return g.createElement(fi,{zIndex:S},g.createElement(Ur,{className:E},d&&g.createElement("defs",null,g.createElement(Vq,{clipPathId:P,xAxisId:f,yAxisId:h}),!N&&g.createElement("clipPath",{id:"clipPath-dots-".concat(P)},g.createElement("rect",{x:u-j/2,y:s-j/2,width:m+j,height:v+j}))),g.createElement(wG,{needClip:d,clipPathId:P,props:this.props})),g.createElement(zE,{points:i,mainColor:Af(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}),this.props.isRange&&Array.isArray(k)&&g.createElement(zE,{points:k,mainColor:Af(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}))}}function kG(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,b=e.stroke,k=e.xAxisId,S=e.yAxisId,E=A_(e,sG),P=Cl(),C=Dj(),_=x_(k,S),O=_.needClip,N=yr(),j=(t=Ee(ye=>Jq(ye,e.id,N)))!==null&&t!==void 0?t:{},D=j.points,B=j.isRange,F=j.baseLine,z=S0();if(P!=="horizontal"&&P!=="vertical"||z==null||C!=="AreaChart"&&C!=="ComposedChart")return null;var G=z.height,U=z.width,ue=z.x,ae=z.y;return!D||!D.length?null:g.createElement(SG,Pf({},E,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:o,baseLine:F,connectNulls:s,dot:u,fill:d,fillOpacity:f,height:G,hide:h,layout:P,isAnimationActive:m,isRange:B,legendType:v,needClip:O,points:D,stroke:b,width:U,left:ue,top:ae,xAxisId:k,yAxisId:S}))}var EG=(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 PG(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,b=e.yAxisTicks,k=e.bandSize,S=o&&o.length,E=EG(s,u,n,d,f),P=s==="horizontal",C=!1,_=h.map((N,j)=>{var D,B,F,z;if(S)z=o[m+j];else{var G=Nt(N,i);Array.isArray(G)?(z=G,C=!0):z=[E,G]}var U=(D=(B=z)===null||B===void 0?void 0:B[1])!==null&&D!==void 0?D:null,ue=U==null||S&&!r&&Nt(N,i)==null;if(P){var ae;return{x:Ww({axis:d,ticks:v,bandSize:k,entry:N,index:j}),y:ue?null:(ae=f.scale.map(U))!==null&&ae!==void 0?ae:null,value:z,payload:N}}return{x:ue?null:(F=d.scale.map(U))!==null&&F!==void 0?F:null,y:Ww({axis:f,ticks:b,bandSize:k,entry:N,index:j}),value:z,payload:N}}),O;return S||C?O=_.map(N=>{var j,D=Array.isArray(N.value)?N.value[0]:null;if(P){var B;return{x:N.x,y:D!=null&&N.y!=null&&(B=f.scale.map(D))!==null&&B!==void 0?B:null,payload:N.payload}}return{x:D!=null&&(j=d.scale.map(D))!==null&&j!==void 0?j:null,y:N.y,payload:N.payload}}):O=P?f.scale.map(E):d.scale.map(E),{points:_,baseLine:O??0,isRange:C}}function AG(e){var t=Hr(e,O_),r=yr();return g.createElement(eV,{id:t.id,type:"area"},n=>g.createElement(g.Fragment,null,g.createElement(CK,{legendPayload:pG(t)}),g.createElement(mG,{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(lV,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:uL(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),g.createElement(kG,Pf({},t,{id:n}))))}var C_=g.memo(AG,ch);C_.displayName="Area";var OG=["domain","range"],CG=["domain","range"];function YE(e,t){if(e==null)return{};var r,n,i=jG(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(s!=null)return ZE(ZE({},o),{},{type:s})},[o,s]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(wV(u)):r.current!==u&&t(SV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(kV(r.current)),r.current=null)},[t]),null}var LG=e=>{var t=e.xAxisId,r=e.className,n=Ee(eO),i=yr(),o="xAxis",s=Ee(v=>cj(v,o,t,i)),u=Ee(v=>gU(v,t)),d=Ee(v=>EU(v,t)),f=Ee(v=>OC(v,t));if(u==null||d==null||f==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=Cy(e,NG);f.id,f.scale;var m=Cy(f,IG);return g.createElement(E0,Oy({},h,m,{x:d.x,y:d.y,width:u.width,height:u.height,className:Xe("recharts-".concat(o," ").concat(o),r),viewBox:n,ticks:s,axisType:o,axisId:t}))},zG={allowDataOverflow:wt.allowDataOverflow,allowDecimals:wt.allowDecimals,allowDuplicatedCategory:wt.allowDuplicatedCategory,angle:wt.angle,axisLine:ti.axisLine,height:wt.height,hide:!1,includeHidden:wt.includeHidden,interval:wt.interval,label:!1,minTickGap:wt.minTickGap,mirror:wt.mirror,orientation:wt.orientation,padding:wt.padding,reversed:wt.reversed,scale:wt.scale,tick:wt.tick,tickCount:wt.tickCount,tickLine:ti.tickLine,tickSize:ti.tickSize,type:wt.type,niceTicks:wt.niceTicks,xAxisId:0},FG=e=>{var t=Hr(e,zG);return g.createElement(g.Fragment,null,g.createElement($G,{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(LG,t))},__=g.memo(FG,j_);__.displayName="XAxis";var BG=["type"],UG=["dangerouslySetInnerHTML","ticks","scale"],WG=["id","scale"];function jy(){return jy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return eP(eP({},o),{},{type:s})},[s,o]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(EV(u)):r.current!==u&&t(PV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(AV(r.current)),r.current=null)},[t]),null}function YG(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,o=g.useRef(null),s=g.useRef(null),u=Ee(eO),d=yr(),f=gt(),h="yAxis",m=Ee(P=>OU(P,t)),v=Ee(P=>AU(P,t)),b=Ee(P=>cj(P,h,t,d)),k=Ee(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 C=P.getCalculatedWidth();Math.round(m.width)!==Math.round(C)&&f(OV({id:t,width:C}))}}},[b,m,f,i,t,n,k]),m==null||v==null||k==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var S=_y(e,UG);k.id,k.scale;var E=_y(k,WG);return g.createElement(E0,jy({},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:Xe("recharts-".concat(h," ").concat(h),r),viewBox:u,ticks:b,axisType:h,axisId:t}))}var QG={allowDataOverflow:St.allowDataOverflow,allowDecimals:St.allowDecimals,allowDuplicatedCategory:St.allowDuplicatedCategory,angle:St.angle,axisLine:ti.axisLine,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:ti.tickLine,tickSize:ti.tickSize,type:St.type,niceTicks:St.niceTicks,width:St.width,yAxisId:0},XG=e=>{var t=Hr(e,QG);return g.createElement(g.Fragment,null,g.createElement(GG,{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(YG,t))},N_=g.memo(XG,j_);N_.displayName="YAxis";var ZG=(e,t)=>t,C0=V([ZG,lt,UO,Mt,jj,di,Y9,Ht],rW);function JG(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function j0(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(JG(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 I_=Cr("mouseClick"),M_=Cu();M_.startListening({actionCreator:I_,effect:(e,t)=>{var r=e.payload,n=C0(t.getState(),j0(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(UU({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var Ny=Cr("mouseMove"),T_=Cu(),Bo=null,ba=null,hv=null;T_.startListening({actionCreator:Ny,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"));Bo!==null&&(cancelAnimationFrame(Bo),Bo=null),ba!==null&&(typeof o!="number"||!u)&&(clearTimeout(ba),ba=null),hv=j0(r);var d=()=>{var f=t.getState(),h=Bu(f,f.tooltip.settings.shared);if(!hv){Bo=null,ba=null;return}if(h==="axis"){var m=C0(f,hv);(m==null?void 0:m.activeIndex)!=null?t.dispatch(xj({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(gj())}Bo=null,ba=null};if(!u){d();return}o==="raf"?Bo=requestAnimationFrame(d):typeof o=="number"&&ba===null&&(ba=setTimeout(d,o))}});function eY(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 tP={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},D_=Zt({name:"rootProps",initialState:tP,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:tP.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}}}),tY=D_.reducer,rY=D_.actions.updateOptions,nY=null,iY={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)},R_=Zt({name:"polarOptions",initialState:nY,reducers:iY});R_.actions.updatePolarOptions;var aY=R_.reducer,$_=Cr("keyDown"),L_=Cr("focus"),z_=Cr("blur"),_h=Cu(),Uo=null,wa=null,bd=null;_h.startListening({actionCreator:$_,effect:(e,t)=>{bd=e.payload,Uo!==null&&(cancelAnimationFrame(Uo),Uo=null);var r=t.getState(),n=r.eventSettings,i=n.throttleDelay,o=n.throttledEvents,s=o==="all"||o.includes("keydown");wa!==null&&(typeof i!="number"||!s)&&(clearTimeout(wa),wa=null);var u=()=>{try{var d=t.getState(),f=d.rootProps.accessibilityLayer!==!1;if(!f)return;var h=d.tooltip.keyboardInteraction,m=bd;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=qs(h,Za(d),wl(d),Sl(d)),b=v==null?-1:Number(v),k=!Number.isFinite(b)||b<0,S=di(d),E=Za(d),P=Bu(d,d.tooltip.settings.shared);if(m==="Enter"){if(k)return;var C=bf(d,P,"hover",String(h.index));t.dispatch(xf({active:!h.active,activeIndex:h.index,activeCoordinate:C}));return}var _=IU(d),O=_==="left-to-right"?1:-1,N=m==="ArrowRight"?1:-1,j;if(k){var D=wl(d),B=Sl(d),F=N*O,z=ye=>({active:!1,index:String(ye),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(j=-1,F>0){for(var G=0;G=0;U--)if(qs(z(U),E,D,B)!=null){j=U;break}if(j<0)return}else{j=b+N*O;var ue=(S==null?void 0:S.length)||E.length;if(ue===0||j>=ue||j<0)return}var ae=bf(d,P,"hover",String(j));t.dispatch(xf({active:!0,activeIndex:j.toString(),activeCoordinate:ae}))}finally{Uo=null,wa=null}};if(!s){u();return}i==="raf"?Uo=requestAnimationFrame(u):typeof i=="number"&&wa===null&&(u(),bd=null,wa=setTimeout(()=>{bd?u():(wa=null,Uo=null)},i))}});_h.startListening({actionCreator:L_,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=Bu(r,r.tooltip.settings.shared),u=bf(r,s,"hover",String(o));t.dispatch(xf({active:!0,activeIndex:o,activeCoordinate:u}))}}}});_h.startListening({actionCreator:z_,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(xf({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function F_(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"),B_=Cu(),wd=new Map,Bs=new Map,pv=new Map;B_.startListening({actionCreator:Rr,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var o=i.type,s=F_(i);pv.set(o,{handler:n,reactEvent:s});var u=wd.get(o);u!==void 0&&(cancelAnimationFrame(u),wd.delete(o));var d=t.getState(),f=d.eventSettings,h=f.throttleDelay,m=f.throttledEvents,v=m,b=v==="all"||(v==null?void 0:v.includes(o)),k=Bs.get(o);k!==void 0&&(typeof h!="number"||!b)&&(clearTimeout(k),Bs.delete(o));var S=()=>{var C=pv.get(o);try{if(!C)return;var _=C.handler,O=C.reactEvent,N=t.getState(),j={activeCoordinate:T9(N),activeDataKey:N9(N),activeIndex:vu(N),activeLabel:Ij(N),activeTooltipIndex:vu(N),isTooltipActive:D9(N)};_&&_(j,O)}finally{wd.delete(o),Bs.delete(o),pv.delete(o)}};if(!b){S();return}if(h==="raf"){var E=requestAnimationFrame(S);wd.set(o,E)}else if(typeof h=="number"){if(!Bs.has(o)){S();var P=setTimeout(S,h);Bs.set(o,P)}}else S()}}});var oY=V([Rl],e=>e.tooltipItemPayloads),lY=V([oY,(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)}}}),U_=Cr("touchMove"),W_=Cu(),Sa=null,Ri=null,rP=null,Us=null;W_.startListening({actionCreator:U_,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Us=F_(r);var n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||s.includes("touchmove");Sa!==null&&(cancelAnimationFrame(Sa),Sa=null),Ri!==null&&(typeof o!="number"||!u)&&(clearTimeout(Ri),Ri=null),rP=Array.from(r.touches).map(f=>j0({clientX:f.clientX,clientY:f.clientY,currentTarget:r.currentTarget}));var d=()=>{if(Us!=null){var f=t.getState(),h=Bu(f,f.tooltip.settings.shared);if(h==="axis"){var m,v=(m=rP)===null||m===void 0?void 0:m[0];if(v==null){Sa=null,Ri=null;return}var b=C0(f,v);(b==null?void 0:b.activeIndex)!=null&&t.dispatch(xj({activeIndex:b.activeIndex,activeDataKey:void 0,activeCoordinate:b.activeCoordinate}))}else if(h==="item"){var k,S=Us.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(vL),C=(k=E.getAttribute(yL))!==null&&k!==void 0?k:void 0,_=io(f).find(j=>j.id===C);if(P==null||_==null||C==null)return;var O=_.dataKey,N=lY(f,P,C);t.dispatch(BU({activeDataKey:O,activeIndex:P,activeCoordinate:N,activeGraphicalItemId:C}))}Sa=null,Ri=null}};if(!u){d();return}o==="raf"?Sa=requestAnimationFrame(d):typeof o=="number"&&Ri===null&&(d(),Us=null,Ri=setTimeout(()=>{Us?d():(Ri=null,Sa=null)},o))}}});var H_={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},K_=Zt({name:"eventSettings",initialState:H_,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),sY=K_.actions.setEventSettings,uY=K_.reducer,cY=w2({brush:$V,cartesianAxis:CV,chartData:MW,errorBars:Kq,eventSettings:uY,graphicalItems:aV,layout:eL,legend:pz,options:CW,polarAxis:yK,polarOptions:aY,referenceElements:BV,renderedTicks:uq,rootProps:tY,tooltip:WU,zIndex:mW}),dY=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return P4({reducer:cY,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([M_.middleware,T_.middleware,_h.middleware,B_.middleware,W_.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat(R2({type:"raf"}))},devTools:{serialize:{replacer:eY},name:"recharts-".concat(r)}})};function fY(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,i=yr(),o=g.useRef(null);if(i)return r;o.current==null&&(o.current=dY(t,n));var s=ig;return g.createElement(_z,{context:s,store:o.current},r)}function hY(e){var t=e.layout,r=e.margin,n=gt(),i=yr();return g.useEffect(()=>{i||(n(X4(t)),n(Q4(r)))},[n,i,t,r]),null}var pY=g.memo(hY,ch);function mY(e){var t=gt();return g.useEffect(()=>{t(rY(e))},[t,e]),null}var vY=e=>{var t=gt();return g.useEffect(()=>{t(sY(e))},[t,e]),null},yY=g.memo(vY,ch);function nP(e){var t=e.zIndex,r=e.isPanorama,n=g.useRef(null),i=gt();return g.useLayoutEffect(()=>(n.current&&i(hW({zIndex:t,element:n.current,isPanorama:r})),()=>{i(pW({zIndex:t,isPanorama:r}))}),[i,t,r]),g.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function iP(e){var t=e.children,r=e.isPanorama,n=Ee(iW);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(nP,{key:s,zIndex:s,isPanorama:r})),t,o.map(s=>g.createElement(nP,{key:s,zIndex:s,isPanorama:r})))}var gY=["children"];function xY(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=aO(),n=oO(),i=vO();if(!jn(r)||!jn(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,Of({},s,{title:u,desc:d,role:h,tabIndex:f,width:r,height:n,style:wY,ref:t}),o)}),kY=e=>{var t=e.children,r=Ee(ah);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)},aP=g.forwardRef((e,t)=>{var r=e.children,n=xY(e,gY),i=yr();return i?g.createElement(kY,null,g.createElement(iP,{isPanorama:!0},r)):g.createElement(SY,Of({ref:t},n),g.createElement(iP,{isPanorama:!1},r))});function EY(e,t){return CY(e)||OY(e,t)||AY(e,t)||PY()}function PY(){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 AY(e,t){if(e){if(typeof e=="string")return oP(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)?oP(e,t):void 0}}function oP(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;Le(u)&&u!==o&&e(J4(u))}},[n,e,o]),i}function lP(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 _Y(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(UW(),null);function jf(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var zY=g.forwardRef((e,t)=>{var r,n,i=g.useRef(null),o=g.useState({containerWidth:jf((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:jf((n=e.style)===null||n===void 0?void 0:n.height)}),s=Cf(o,2),u=s[0],d=s[1],f=g.useCallback((m,v)=>{d(b=>{var k=Math.round(m),S=Math.round(v);return b.containerWidth===k&&b.containerHeight===S?b:{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(),b=v.width,k=v.height;f(b,k);var S=P=>{var C=P[0];if(C!=null){var _=C.contentRect,O=_.width,N=_.height;f(O,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(_u,{width:u.containerWidth,height:u.containerHeight}),g.createElement("div",ea({ref:h},e)))}),FY=g.forwardRef((e,t)=>{var r=e.width,n=e.height,i=g.useState({containerWidth:jf(r),containerHeight:jf(n)}),o=Cf(i,2),s=o[0],u=o[1],d=g.useCallback((h,m)=>{u(v=>{var b=Math.round(h),k=Math.round(m);return v.containerWidth===b&&v.containerHeight===k?v:{containerWidth:b,containerHeight:k}})},[]),f=g.useCallback(h=>{if(typeof t=="function"&&t(h),h!=null){var m=h.getBoundingClientRect(),v=m.width,b=m.height;d(v,b)}},[t,d]);return g.createElement(g.Fragment,null,g.createElement(_u,{width:s.containerWidth,height:s.containerHeight}),g.createElement("div",ea({ref:f},e)))}),BY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return g.createElement(g.Fragment,null,g.createElement(_u,{width:r,height:n}),g.createElement("div",ea({ref:t},e)))}),UY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?g.createElement(FY,ea({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?g.createElement(BY,ea({},e,{width:r,height:n,ref:t})):g.createElement(g.Fragment,null,g.createElement(_u,{width:r,height:n}),g.createElement("div",ea({ref:t},e)))});function WY(e){return e?zY:UY}var HY=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,b=e.onTouchEnd,k=e.onTouchMove,S=e.onTouchStart,E=e.style,P=e.width,C=e.responsive,_=e.dispatchTouchEvents,O=_===void 0?!0:_,N=g.useRef(null),j=gt(),D=g.useState(null),B=Cf(D,2),F=B[0],z=B[1],G=g.useState(null),U=Cf(G,2),ue=U[0],ae=U[1],ye=jY(),pe=dg(),se=(pe==null?void 0:pe.width)>0?pe.width:P,Y=(pe==null?void 0:pe.height)>0?pe.height:i,Q=g.useCallback(Ae=>{ye(Ae),typeof t=="function"&&t(Ae),z(Ae),ae(Ae),Ae!=null&&(N.current=Ae)},[ye,t,z,ae]),Z=g.useCallback(Ae=>{j(I_(Ae)),j(Rr({handler:o,reactEvent:Ae}))},[j,o]),$=g.useCallback(Ae=>{j(Ny(Ae)),j(Rr({handler:f,reactEvent:Ae}))},[j,f]),M=g.useCallback(Ae=>{j(gj()),j(Rr({handler:h,reactEvent:Ae}))},[j,h]),X=g.useCallback(Ae=>{j(Ny(Ae)),j(Rr({handler:m,reactEvent:Ae}))},[j,m]),le=g.useCallback(()=>{j(L_())},[j]),re=g.useCallback(()=>{j(z_())},[j]),ce=g.useCallback(Ae=>{j($_(Ae.key))},[j]),he=g.useCallback(Ae=>{j(Rr({handler:s,reactEvent:Ae}))},[j,s]),Pe=g.useCallback(Ae=>{j(Rr({handler:u,reactEvent:Ae}))},[j,u]),J=g.useCallback(Ae=>{j(Rr({handler:d,reactEvent:Ae}))},[j,d]),we=g.useCallback(Ae=>{j(Rr({handler:v,reactEvent:Ae}))},[j,v]),Oe=g.useCallback(Ae=>{j(Rr({handler:S,reactEvent:Ae}))},[j,S]),ne=g.useCallback(Ae=>{O&&j(U_(Ae)),j(Rr({handler:k,reactEvent:Ae}))},[j,O,k]),Ye=g.useCallback(Ae=>{j(Rr({handler:b,reactEvent:Ae}))},[j,b]),Be=WY(C);return g.createElement(Fj.Provider,{value:F},g.createElement(i5.Provider,{value:ue},g.createElement(Be,{width:se??(E==null?void 0:E.width),height:Y??(E==null?void 0:E.height),className:Xe("recharts-wrapper",n),style:_Y({position:"relative",cursor:"default",width:se,height:Y},E),onClick:Z,onContextMenu:he,onDoubleClick:Pe,onFocus:le,onBlur:re,onKeyDown:ce,onMouseDown:J,onMouseEnter:$,onMouseLeave:M,onMouseMove:X,onMouseUp:we,onTouchEnd:Ye,onTouchMove:ne,onTouchStart:Oe,ref:Q},g.createElement(LY,null),r)))}),KY=["width","height","responsive","children","className","style","compact","title","desc"];function VY(e,t){if(e==null)return{};var r,n,i=qY(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=VY(e,KY),v=on(m);return d?g.createElement(g.Fragment,null,g.createElement(_u,{width:r,height:n}),g.createElement(aP,{otherAttributes:v,title:f,desc:h},o)):g.createElement(HY,{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(aP,{otherAttributes:v,title:f,desc:h,ref:t},g.createElement(GV,null,o)))});function Iy(){return Iy=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.createElement(tQ,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:rQ,tooltipPayloadSearcher:AW,categoricalChartProps:e,ref:t}));const iQ="rgba(130,130,150,0.14)",cP="rgba(130,130,150,0.85)";function aQ(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 V_(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function oQ({active:e,payload:t,unit:r}){return!e||!(t!=null&&t.length)?null:x.jsx("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:x.jsx("div",{className:"space-y-1",children:t.map(n=>x.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:n.color}}),x.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:n.name}),x.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:V_(n.value,r)})]},n.dataKey))})})}function q_({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176}){const o=e.reduce((u,d)=>t.reduce((f,h)=>Math.max(f,Number(d[h.key])||0),u),0),s=n==="percent"?Math.min(100,Math.max(25,Math.ceil(o*1.2/25)*25)):Math.max(aQ(o*1.15),10);return x.jsx("div",{style:{height:i},className:"w-full",children:x.jsx(QL,{width:"100%",height:"100%",children:x.jsxs(nQ,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[x.jsx("defs",{children:t.map(u=>x.jsxs("linearGradient",{id:`grad-${u.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[x.jsx("stop",{offset:"0%",stopColor:u.color,stopOpacity:.22}),x.jsx("stop",{offset:"100%",stopColor:u.color,stopOpacity:0})]},u.key))}),x.jsx(y_,{vertical:!1,stroke:iQ}),x.jsx(__,{dataKey:"t",hide:!0}),x.jsx(N_,{domain:[0,s],ticks:[0,s/2,s],tickFormatter:u=>V_(u,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:cP}}),x.jsx(tH,{content:x.jsx(oQ,{unit:r}),cursor:{stroke:cP,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(u=>x.jsx(C_,{type:"monotone",dataKey:u.key,name:u.label,stroke:u.color,strokeWidth:2,fill:`url(#grad-${u.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},u.key))]})})})}const lQ=[{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 sQ(){var s,u,d,f;const{sys:e,hist:t}=q3(),r=!!(e!=null&&e.gpu&&e.gpu.busy_percent!=null&&e.gpu.gtt_used!=null&&e.gpu.gtt_total!=null),n=lQ.filter(h=>h.key!=="gpu"||r),i={cpu:(s=e==null?void 0:e.cpu)==null?void 0:s.percent,ram:(u=e==null?void 0:e.ram)==null?void 0:u.percent,gpu:r?e.gpu.busy_percent:null,disk:(d=e==null?void 0:e.disk)==null?void 0:d.percent},o={cpu:(f=e==null?void 0:e.cpu)!=null&&f.cores?`${e.cpu.cores} Cores`:"",ram:e?`${Do(e.ram.used)}/${Do(e.ram.total)} GB`:"",gpu:r?`${Do(e.gpu.gtt_used)}/${Do(e.gpu.gtt_total)} GB`:"",disk:e!=null&&e.disk?`${Do(e.disk.used)}/${Do(e.disk.total)} GB`:""};return x.jsxs("div",{className:"flex flex-col justify-between mc-card p-5",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[x.jsx(LP,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"System-Status"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),e?x.jsxs(x.Fragment,{children:[x.jsx("div",{className:"mb-2 grid grid-cols-2 gap-x-4 gap-y-1.5",children:n.map(h=>x.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:h.color}}),x.jsx("span",{className:"shrink-0 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:h.label}),x.jsxs("span",{className:"shrink-0 font-mono text-xs font-bold tabular-nums text-foreground",children:[Math.round(i[h.key]??0),"%"]}),o[h.key]&&x.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/60",children:o[h.key]})]},h.key))}),x.jsx(q_,{data:t,series:n,unit:"%",yMode:"percent",height:176})]}):x.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)&&x.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&&x.jsxs("span",{children:["CPU Temp: ",e.temp.cpu," °C"]}),e.temp.gpu!=null&&x.jsxs("span",{children:["GPU Temp: ",e.temp.gpu," °C"]})]})]})}const dP=[{key:"prompt",label:"Prompt",color:"#f59e0b"},{key:"completion",label:"Antwort",color:"#2dd4bf"}];function uQ(){const{data:e}=MA(),t=F3(),r=t[t.length-1],n=r?Math.round(r.prompt+r.completion):0;return x.jsxs("div",{className:"mc-card p-5",children:[x.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(KM,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Token-Durchsatz"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),e&&x.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[x.jsx("span",{className:"font-space text-3xl font-bold tracking-tight text-foreground tabular-nums",children:n.toLocaleString("de-DE")}),x.jsx("span",{className:"text-xs text-muted-foreground",children:"tok/s aktuell"})]}),e&&x.jsxs("div",{className:"mt-0.5 space-y-0.5 font-mono text-[11px] text-muted-foreground/70",children:[x.jsxs("div",{children:[e.total_tokens.toLocaleString("de-DE")," Tokens gesamt · ",x.jsxs("span",{className:"text-emerald-400/90",children:[e.saved_eur.toLocaleString("de-DE",{minimumFractionDigits:2})," € gespart"]})]}),x.jsxs("div",{className:"text-muted-foreground/55",children:["Input ",e.prompt_tokens.toLocaleString("de-DE")," · Output ",e.completion_tokens.toLocaleString("de-DE")]})]})]}),x.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1.5 pt-1",children:dP.map(i=>x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),x.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:i.label}),x.jsx("span",{className:"font-mono text-xs font-bold tabular-nums text-foreground",children:Math.round((r==null?void 0:r[i.key])??0)})]},i.key))})]}),e?x.jsx(q_,{data:t,series:dP,unit:" tok/s",yMode:"auto",height:150}):x.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:"Lade Durchsatz…"}),x.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 El=[{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"}],Ia=e=>e==null?"–":`${(e/1e3).toLocaleString("de-DE",{minimumFractionDigits:1,maximumFractionDigits:1})} s`;function cQ(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 My(e){return El.reduce((t,r)=>t+(e[r.key]??0),0)}function dQ(e){let t=null;for(const r of El){const n=e[r.key];n!=null&&(t==null||n>t.ms)&&(t={label:r.label,color:r.color,ms:n})}return t}function fQ({t:e,scale:t}){const r=El.map(n=>`${n.label} ${Ia(e[n.key])}`).join(" · ")+(e.mem0_ms!=null?` (davon Mem0 ${Ia(e.mem0_ms)})`:"");return x.jsxs("div",{className:"flex items-center gap-2.5",children:[x.jsx("span",{className:"w-14 shrink-0 text-right font-mono text-[10px] text-muted-foreground/60",children:cQ(e.ts)}),x.jsxs("div",{className:"relative h-4 flex-1 overflow-hidden rounded-sm bg-muted/25",title:r,children:[x.jsx("div",{className:"absolute inset-0 flex",children:El.map(n=>{const i=e[n.key];return!i||i<=0?null:x.jsx("div",{style:{width:`${i/t*100}%`,background:n.color},className:"h-full first:rounded-l-sm"},n.key)})}),e.error&&x.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-rose-500/15 text-[10px] font-semibold text-rose-300",children:"Fehler"})]}),x.jsx("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] font-semibold tabular-nums text-foreground",children:e.error?"–":Ia(My(e))})]})}function hQ(){const{data:e}=I3(12),t=e??[],r=Math.max(1,...t.map(o=>My(o))),n=t[0],i=n?dQ(n):null;return x.jsxs("div",{className:"mc-card p-5",children:[x.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[x.jsxs("div",{children:[x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(lT,{className:"h-4.5 w-4.5 text-primary"}),x.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Latenz je Turn"}),x.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[x.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),n?x.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[x.jsx("span",{className:`font-space text-3xl font-bold tracking-tight tabular-nums ${n.error?"text-rose-400":"text-foreground"}`,children:n.error?"Fehler":Ia(My(n))}),x.jsxs("span",{className:"text-xs text-muted-foreground",children:["letzter Turn",!n.error&&i&&x.jsxs(x.Fragment,{children:[" · Täter: ",x.jsx("span",{style:{color:i.color},className:"font-semibold",children:i.label})," ",Ia(i.ms)]})]})]}):x.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:"Noch kein Voice-Turn aufgezeichnet."}),n&&!n.error&&x.jsxs("div",{className:"mt-0.5 font-mono text-[11px] text-muted-foreground/70",children:[El.filter(o=>n[o.key]!=null).map(o=>`${o.label} ${Ia(n[o.key])}`).join(" · "),n.mem0_ms!=null&&x.jsxs("span",{className:"text-muted-foreground/50",children:[" · davon Mem0 ",Ia(n.mem0_ms)]})]})]}),x.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1 pt-1",children:El.map(o=>x.jsxs("div",{className:"flex items-center gap-1.5",children:[x.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:o.color}}),x.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:o.label})]},o.key))})]}),t.length>0?x.jsx("div",{className:"space-y-1.5",children:t.map(o=>x.jsx(fQ,{t:o,scale:r},o.id))}):x.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."}),x.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 _f=e=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:e}}));function pQ({onNavigate:e}){var ue,ae,ye,pe;const{data:t}=IA(),{data:r}=NA(),{data:n}=T3(),{data:i}=R3(),{data:o}=M3(),{data:s}=D3(),{data:u}=j3(),d=U3(),{showAlert:f,dialogElement:h}=RA(),m=If(),[v,b]=g.useState({});async function k(se,Y){b(Q=>({...Q,[se]:!0}));try{if(Y.kind==="loadModel")await Me(`/api/models/${encodeURIComponent(Y.model)}/load`,{method:"POST"});else{const Q=await Me("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:Y.service})});Q.ok||f("Reparatur nicht ganz geklappt",(Q.err||"Unbekannter Fehler")+(Y.needsSudo?` - -Tipp: Dafür wird evtl. das Box-Passwort gebraucht (oben rechts hinterlegen).`:""))}m.invalidateQueries({queryKey:Ge.health}),m.invalidateQueries({queryKey:Ge.services}),m.invalidateQueries({queryKey:Ge.models})}catch(Q){f("Reparatur fehlgeschlagen",String((Q==null?void 0:Q.message)||Q))}finally{b(Q=>({...Q,[se]:!1}))}}const S=((ue=t==null?void 0:t.running)==null?void 0:ue.length)??0,E=(r==null?void 0:r.services.filter(se=>se.ok).length)??0,P=(r==null?void 0:r.services.length)??0,C=P-E,_=(i==null?void 0:i.length)??0,O=(n?(n.os>0?1:0)+(n.engine>0?1:0)+(n.swap>0?1:0)+(n.models>0?1:0):0)+(((ae=n==null?void 0:n.components)==null?void 0:ae.filter(se=>se.update===!0).length)??0),N=(s==null?void 0:s.gateway.ok)&&(s==null?void 0:s.memory.ok),j=u!=null&&u.available?u.open_count:0,D=(ye=t==null?void 0:t.models)==null?void 0:ye.find(se=>se.role==="hermes"),B=D!=null&&D.name?(pe=D.name.split("/").pop())==null?void 0:pe.replace(/\.gguf$/i,""):"",F=i?i.filter(se=>["auto","agent","hermes"].includes(se.source)).length:0,z=r==null?void 0:r.services.filter(se=>!se.ok).map(se=>se.name).join(", "),G=n?[n.os>0&&"OS",n.engine>0&&"Engine",n.swap>0&&"Swap",n.models>0&&"Modelle"].filter(Boolean):[],U=G.length>0?G.join(" + "):"";return x.jsxs("div",{className:"space-y-6",children:[x.jsxs("div",{children:[x.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"}),x.jsx("p",{className:"text-sm text-muted-foreground",children:"Deine Box auf einen Blick — Details hinter jeder Kachel."})]}),x.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 items-start",children:[x.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[x.jsx(mQ,{verdict:d.verdict,memory:d.memory,warns:d.warns}),x.jsx(K3,{}),x.jsxs("section",{children:[x.jsx(Sd,{children:"Leistung"}),x.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[x.jsx(sQ,{}),x.jsx(uQ,{})]}),x.jsx("div",{className:"mt-4",children:x.jsx(hQ,{})})]}),x.jsxs("section",{children:[x.jsx(Sd,{children:"Bereiche"}),x.jsxs("div",{className:"grid gap-4 grid-cols-2 md:grid-cols-3",children:[x.jsx(To,{icon:Uy,title:"Auftragsbuch",value:u!=null&&u.available?j:"—",unit:j===1?"Vorschlag":"Vorschläge",tone:u?j>0?"warn":"ok":"loading",hint:j>0?`${j} offene Patches`:"Keine ausstehenden Vorschläge",onClick:()=>e("auftraege")}),x.jsx(To,{icon:$P,title:"Modelle",value:S,unit:"warm",tone:S>0?"ok":"muted",hint:B?`Hirn: ${B}`:"Kein Hermes-Modell geladen",onClick:()=>e("models")}),x.jsx(To,{icon:By,title:"Gedächtnis",value:i?_:"…",unit:"Notizen",tone:i?"ok":"loading",hint:i?`${_} Fakten (${F} auto gelernt)`:"Gedächtnis-Pool laden...",onClick:()=>e("memory")}),x.jsx(To,{icon:Hy,title:"Dienste",value:r?`${E}/${P}`:"…",unit:"laufen",tone:r?C>0?"warn":"ok":"loading",hint:z?`Ausfall: ${z}`:"Alle Dienste online",onClick:()=>_f("maintenance")}),x.jsx(To,{icon:zP,title:"Updates",value:n?O>0?O:"0":"…",unit:O>0?"bereit":"aktuell",tone:n?O>0?"warn":"ok":"loading",hint:O>0?`Verfügbar: ${U}`:"Alles auf dem neuesten Stand",onClick:()=>_f("maintenance")}),x.jsx(To,{icon:Wy,title:"Verbinden",value:"Zed",unit:N?"· bereit":"",tone:s?N?"ok":"warn":"loading",hint:o!=null&&o.pc_executor_reachable?"IDE & PC online (:7777)":"IDE-Kopplung (PC offline)",onClick:()=>e("connect")})]})]})]}),x.jsxs("div",{className:"space-y-6",children:[x.jsx(vQ,{problems:d.problems,pendingCount:O,openAuftraege:j,busy:v,onRepair:k,onNavigate:e}),x.jsxs("section",{children:[x.jsx(Sd,{children:"Anstehendes"}),x.jsx(V3,{})]}),x.jsxs("section",{children:[x.jsx(Sd,{children:"Werkzeuge & Diagnose"}),x.jsx(yQ,{agent:o,svcErrors:C,onNavigate:e})]})]})]}),h]})}function Sd({children:e}){return x.jsx("p",{className:"mb-2 ml-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:e})}function mQ({verdict:e,memory:t,warns:r}){const n=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.",i={loading:{ring:"border-border/60 bg-card/45",icon:Tf,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:cT,iconCls:"text-emerald-400",title:"Box gesund",sub:"Alle wichtigen Dienste laufen."},warn:{ring:"border-amber-500/40 bg-amber-500/5",icon:eu,iconCls:"text-amber-400",title:"Kleinigkeit an der Box",sub:n},problem:{ring:"border-red-500/50 bg-red-500/5",icon:eu,iconCls:"text-red-400",title:"Box braucht Hilfe",sub:"Ein wichtiger Dienst hakt."}}[e],o=i.icon,s={ok:"text-emerald-400",warn:"text-amber-400",full:"text-red-400",unknown:"text-muted-foreground"}[t.status],u={ok:"bg-emerald-500",warn:"bg-amber-500",full:"bg-red-500",unknown:"bg-muted-foreground/40"}[t.status];return x.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",i.ring),children:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border/40 bg-background/30",children:x.jsx(o,{className:De("h-6 w-6",i.iconCls)})}),x.jsxs("div",{className:"min-w-0",children:[x.jsx("h2",{className:"text-base font-bold tracking-tight text-foreground",children:i.title}),x.jsx("p",{className:"text-xs text-muted-foreground",children:i.sub})]})]}),x.jsxs("div",{className:"w-full max-w-[16rem] rounded-xl border border-border/30 bg-background/20 p-3",children:[x.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[x.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",children:[x.jsx(uT,{className:"h-3.5 w-3.5"})," Speicher"]}),x.jsx("span",{className:De("font-mono font-bold",s),children:t.status==="unknown"?"—":`${t.usedGb.toFixed(1)} / ${t.totalGb.toFixed(1)} GB`})]}),x.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:x.jsx("div",{className:De("h-full rounded-full transition-all duration-500",u),style:{width:`${t.pct}%`}})})]})]})}function vQ({problems:e,pendingCount:t,openAuftraege:r,busy:n,onRepair:i,onNavigate:o}){const s=t>0,u=r>0,d=e.length===0&&!s&&!u;return x.jsx("div",{className:"h-full flex flex-col justify-between",children:d?x.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-4 h-full",children:[x.jsx(QM,{className:"h-5 w-5 shrink-0 text-emerald-400"}),x.jsxs("div",{children:[x.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu tun"}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Alles läuft. Du musst gerade nichts abnicken."})]})]}):x.jsxs("div",{className:"space-y-2 h-full flex flex-col justify-center",children:[e.map(f=>x.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:[x.jsxs("div",{className:"flex min-w-0 items-center gap-3 w-full",children:[x.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:x.jsx(f.icon,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{className:"min-w-0 flex-1",children:[x.jsx("p",{className:"text-sm font-bold text-foreground",children:f.label}),x.jsx("p",{className:"truncate text-xs text-muted-foreground",children:f.detail})]})]}),f.repair&&x.jsxs("button",{onClick:()=>f.repair&&i(f.id,f.repair),disabled:!!n[f.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:[n[f.id]?x.jsx(Tf,{className:"h-3.5 w-3.5 animate-spin"}):x.jsx(AT,{className:"h-3.5 w-3.5"}),f.repair.label]})]},f.id)),u&&x.jsxs("button",{onClick:()=>o("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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.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:x.jsx(Uy,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{children:[x.jsxs("p",{className:"text-sm font-bold text-foreground",children:[r," Vorschl",r===1?"ag":"äge"," im Auftragsbuch"]}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Annehmen oder ablehnen."})]})]}),x.jsx(Js,{className:"h-4 w-4 shrink-0 text-primary/70"})]}),s&&x.jsxs("button",{onClick:()=>_f("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:[x.jsxs("div",{className:"flex items-center gap-3",children:[x.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:x.jsx(zP,{className:"h-4.5 w-4.5"})}),x.jsxs("div",{children:[x.jsxs("p",{className:"text-sm font-bold text-foreground",children:[t," Update",t===1?"":"s"," bereit"]}),x.jsx("p",{className:"text-xs text-muted-foreground",children:"Ansehen und entscheiden."})]})]}),x.jsx(Js,{className:"h-4 w-4 shrink-0 text-amber-300/70"})]})]})})}function yQ({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:"Direkte Box-Shell (SSH)",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:()=>_f("logs")},{label:"Interaktives Terminal",status:"Öffnen",tone:"muted",action:()=>r("konsole")},{label:"Wissens-Vault",status:"Öffnen",tone:"muted",action:()=>r("wissen")},{label:"Chronik & Zeitmaschine",status:"Öffnen",tone:"muted",action:()=>r("chronik")}];return x.jsx("div",{className:"rounded-2xl border border-border/60 bg-card/30 p-4 space-y-3 shadow-sm",children:x.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 x.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:[x.jsx("span",{className:"text-muted-foreground group-hover:text-foreground transition-colors font-medium",children:i.label}),x.jsxs("div",{className:"flex items-center gap-2",children:[x.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}),x.jsx("span",{className:De("h-1.5 w-1.5 rounded-full",s)})]})]},o)})})})}const gQ=g.lazy(()=>In(()=>import("./ModelsView-DaM533fz.js"),__vite__mapDeps([0,1])).then(e=>({default:e.ModelsView}))),xQ=g.lazy(()=>In(()=>import("./ConnectView-Bu447O4H.js"),__vite__mapDeps([2,3,4,5])).then(e=>({default:e.ConnectView}))),bQ=g.lazy(()=>In(()=>import("./MemoryView-CetGZ7-5.js"),__vite__mapDeps([6,5,7,8])).then(e=>({default:e.MemoryView}))),wQ=g.lazy(()=>In(()=>import("./AgentView-Dz0JOXlc.js"),[]).then(e=>({default:e.AgentView}))),SQ=g.lazy(()=>In(()=>import("./KonsoleView-BCeS8iMC.js"),[]).then(e=>({default:e.KonsoleView}))),kQ=g.lazy(()=>In(()=>import("./GuideView-CKYHqyIN.js"),__vite__mapDeps([9,8,1,10])).then(e=>({default:e.GuideView}))),EQ=g.lazy(()=>In(()=>import("./AuftragsbuchView-LJ3OIPGp.js"),__vite__mapDeps([11,10,7])).then(e=>({default:e.AuftragsbuchView}))),PQ=g.lazy(()=>In(()=>import("./ChronikView-CyCTki5t.js"),[]).then(e=>({default:e.ChronikView}))),AQ=g.lazy(()=>In(()=>import("./EigenlebenView-IypEJ0BF.js"),__vite__mapDeps([12,8,4])).then(e=>({default:e.EigenlebenView}))),OQ=g.lazy(()=>In(()=>import("./WissenView-BIHIR-Sv.js"),__vite__mapDeps([13,3])).then(e=>({default:e.WissenView})));function CQ(){return x.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:x.jsx(Tf,{className:"h-5 w-5 animate-spin","aria-label":"Lädt …"})})}const jQ=/Mac|iPhone|iPad/.test(navigator.platform);function _Q(){B3(),C3();const[e,t]=g.useState(()=>{const k=window.location.hash.slice(1);return Yo.some(S=>S.id===k)?k:"dashboard"}),r=g.useCallback(k=>{window.location.hash.slice(1)===k?t(k):window.location.hash=k},[]),[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}=_A(),{data:v}=Bf();g.useEffect(()=>{document.documentElement.classList.add("dark")},[]),g.useEffect(()=>{const k=S=>{var P;h(((P=S.detail)==null?void 0:P.tab)||"maintenance"),d(!0)};return window.addEventListener("open-system-drawer",k),()=>window.removeEventListener("open-system-drawer",k)},[]),g.useEffect(()=>{const k=S=>{var P;const E=(P=S.detail)==null?void 0:P.view;E&&r(E)};return window.addEventListener("mc-navigate",k),()=>window.removeEventListener("mc-navigate",k)},[r]),g.useEffect(()=>{const k=()=>{const S=window.location.hash.slice(1);Yo.some(E=>E.id===S)&&t(S)};return window.addEventListener("hashchange",k),()=>window.removeEventListener("hashchange",k)},[]),g.useEffect(()=>{s(!1)},[e]);const b=Yo.find(k=>k.id===e);return x.jsxs("div",{className:"flex h-full relative",children:[x.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(", ")}}),x.jsx(TR,{onNavigate:r}),x.jsx(A3,{open:u,onClose:()=>d(!1),defaultTab:f}),x.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:x.jsx(fP,{collapsed:n,onToggleCollapse:()=>{i(k=>{const S=!k;return localStorage.setItem("mc_sidebar_collapsed",S.toString()),S})},view:e,health:m,sysStatus:v})}),x.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:[x.jsx("div",{className:"absolute inset-0 bg-black/60",onClick:()=>s(!1)}),x.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:x.jsx(fP,{collapsed:!1,onClose:()=>s(!1),view:e,health:m,sysStatus:v})})]}),x.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[x.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:[x.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[x.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:x.jsx(mT,{className:"h-5 w-5","aria-hidden":"true"})}),x.jsx("div",{className:"truncate text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:b.hint})]}),x.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[x.jsx(v3,{}),x.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"}),x.jsxs("button",{onClick:()=>{const k=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(k)},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:[x.jsx(nT,{className:"h-3.5 w-3.5"}),x.jsx("span",{className:"hidden sm:inline",children:"Suchen"}),x.jsx("kbd",{className:"hidden sm:inline rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:jQ?"⌘K":"Strg+K"})]})]})]}),x.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6 scrollbar-thin",children:x.jsxs(g.Suspense,{fallback:x.jsx(CQ,{}),children:[e==="dashboard"&&x.jsx(pQ,{onNavigate:k=>r(k)}),e==="auftraege"&&x.jsx(EQ,{}),e==="models"&&x.jsx(gQ,{}),e==="connect"&&x.jsx(xQ,{}),e==="memory"&&x.jsx(bQ,{}),e==="wissen"&&x.jsx(OQ,{}),e==="chronik"&&x.jsx(PQ,{}),e==="eigenleben"&&x.jsx(AQ,{}),e==="agent"&&x.jsx(wQ,{}),e==="konsole"&&x.jsx(SQ,{}),e==="guide"&&x.jsx(kQ,{}),!["dashboard","auftraege","eigenleben","models","connect","memory","wissen","chronik","agent","konsole","guide"].includes(e)&&x.jsx(y3,{title:b.label,hint:b.hint})]})})]})]})}function fP({collapsed:e,onToggleCollapse:t,onClose:r,view:n,health:i,sysStatus:o}){var s,u,d,f,h;return x.jsxs(x.Fragment,{children:[x.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:[x.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[x.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!e&&x.jsxs("div",{className:"leading-tight",children:[x.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),x.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),t&&x.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?x.jsx(Js,{className:"h-4 w-4","aria-hidden":"true"}):x.jsx(ZM,{className:"h-4 w-4","aria-hidden":"true"})}),r&&x.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:x.jsx(Pu,{className:"h-4 w-4","aria-hidden":"true"})})]}),x.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:(()=>{let m=null;return Yo.map(v=>{const b=v.group!==m;return m=v.group,x.jsxs("div",{className:"space-y-1",children:[b&&(e?m!==Yo[0].group&&x.jsx("div",{className:"my-3 border-t border-border/30"}):x.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:v.group})),x.jsxs("a",{href:`#${v.id}`,onClick:r,"aria-current":n===v.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===v.id?e?"nav-active-collapsed":"nav-active":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:e?v.label:void 0,"aria-label":e?v.label:void 0,children:[x.jsx(v.icon,{className:"h-4.5 w-4.5 shrink-0","aria-hidden":"true"}),!e&&x.jsx("span",{className:"truncate",children:v.label})]})]},v.id)})})()}),x.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?x.jsx("div",{className:"flex justify-center",children:x.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",i?i.engine_reachable?i.brain&&!i.brain.ready?"bg-amber-500 animate-pulse":"bg-emerald-500 animate-pulse":"bg-amber-500":"bg-red-500"),title:i?i.engine_reachable?i.brain&&!i.brain.ready?`Hirn offline (${i.brain.model??"fast"})`:"Engine + Hirn online":"Engine offline":"Backend offline"})}):x.jsxs("div",{className:"space-y-2 text-left",children:[i?x.jsxs(x.Fragment,{children:[x.jsxs("span",{className:"flex items-center gap-2",children:[x.jsx("span",{className:De("h-2 w-2 rounded-full animate-pulse",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),x.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"]})]}),i.brain&&!i.brain.ready&&x.jsxs("span",{className:"flex items-center gap-2 text-amber-400",title:`Agent-Hirn '${i.brain.model??"fast"}' lädt nicht/abgestürzt`,children:[x.jsx("span",{className:"h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),x.jsxs("span",{className:"truncate",children:["Hirn offline",i.brain.model?` (${i.brain.model})`:""]})]})]}):x.jsxs("span",{className:"flex items-center gap-2",children:[x.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",x.jsx("span",{className:"truncate",children:"Backend offline"})]}),(o==null?void 0:o.versions)&&x.jsxs("div",{className:"space-y-1 text-[9px] text-muted-foreground/60 mt-2 pt-2 border-t border-border/30",children:[x.jsxs("div",{className:"truncate",title:o.versions.mc2?`${o.versions.mc2.branch}-${o.versions.mc2.hash}${o.versions.mc2.dirty?"*":""} (${o.versions.mc2.date})`:"nicht gefunden",children:[x.jsx("strong",{children:"MC2:"})," ",o.versions.mc2?`${o.versions.mc2.hash}${o.versions.mc2.dirty?"*":""}`:"—"]}),x.jsxs("div",{className:"truncate",title:((s=o.versions.engine)==null?void 0:s.type)==="git"?`${o.versions.engine.branch}-${o.versions.engine.hash}${o.versions.engine.dirty?"*":""} (${o.versions.engine.date})`:((u=o.versions.engine)==null?void 0:u.version_text)||"unbekannt",children:[x.jsx("strong",{children:"Engine:"})," ",((d=o.versions.engine)==null?void 0:d.type)==="git"?`${o.versions.engine.hash}${o.versions.engine.dirty?"*":""}`:((h=(f=o.versions.engine)==null?void 0:f.version_text)==null?void 0:h.split(" ").pop())||"—"]}),x.jsxs("div",{className:"truncate",title:o.versions.hermes_agent?`${o.versions.hermes_agent.branch}-${o.versions.hermes_agent.hash}${o.versions.hermes_agent.dirty?"*":""} (${o.versions.hermes_agent.date})`:"nicht gefunden",children:[x.jsx("strong",{children:"Hermes Agent:"})," ",o.versions.hermes_agent?`${o.versions.hermes_agent.hash}${o.versions.hermes_agent.dirty?"*":""}`:"—"]})]})]})})]})}class NQ extends Ry.Component{constructor(){super(...arguments);Os(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?x.jsx("div",{className:"min-h-screen flex items-center justify-center bg-neutral-950 text-neutral-200 p-8",children:x.jsxs("div",{className:"max-w-lg space-y-4 text-center",children:[x.jsx("div",{className:"text-2xl",children:"Da ist etwas schiefgelaufen."}),x.jsx("div",{className:"text-sm text-neutral-400 break-all",children:this.state.error.message}),x.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 IQ=new OM({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});tM.createRoot(document.getElementById("root")).render(x.jsx(Ry.StrictMode,{children:x.jsx(NQ,{children:x.jsx(CM,{client:IQ,children:x.jsx(_Q,{})})})}));export{kT as $,D3 as A,By as B,QM as C,$1 as D,jv as E,Js as F,JM as G,uT as H,R3 as I,FQ as J,ET as K,Tf as L,F1 as M,BP as N,tT as O,gT as P,Ky as Q,M3 as R,bT as S,eu as T,aT as U,TQ as V,Mf as W,Pu as X,KM as Y,AT as Z,In as _,UQ as a,Hy as a0,$P as a1,Wy as a2,lT as a3,j3 as a4,Go as a5,DQ as a6,RQ as a7,eT as a8,Uy as a9,_3 as aa,dT as ab,VM as ac,yT as ad,zP as ae,cT as af,zQ as ag,LQ as ah,z1 as ai,$Q as aj,oT as ak,pT as al,cf as am,Ry as an,pu as ao,xk as ap,I8 as aq,Ng as ar,ck as as,uk as at,Dy as au,RA as b,ke as c,GQ as d,De as e,VQ as f,Me as g,qM as h,HQ as i,x as j,qQ as k,Do as l,IA as m,Bf as n,BQ as o,$R as p,Ge as q,g as r,LP as s,YQ as t,If as u,PT as v,XM as w,WQ as x,T3 as y,KQ as z}; diff --git a/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 b/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 new file mode 100644 index 0000000..5b8678f Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-300-normal-BnqRxXuy.woff2 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 new file mode 100644 index 0000000..5b2c763 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-300-normal-LR1W_oT8.woff differ diff --git a/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff b/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff new file mode 100644 index 0000000..6bd8b02 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff differ diff --git a/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 b/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 new file mode 100644 index 0000000..e7583fc Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 differ diff --git a/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 b/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 new file mode 100644 index 0000000..dd14bcf Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 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 new file mode 100644 index 0000000..c8aa26e Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff 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 new file mode 100644 index 0000000..10ec579 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff differ diff --git a/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 b/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 new file mode 100644 index 0000000..e250ef0 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 differ diff --git a/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 b/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 new file mode 100644 index 0000000..781e4b4 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 differ diff --git a/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff b/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff new file mode 100644 index 0000000..46451f1 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff 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 new file mode 100644 index 0000000..70a3d6b Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-300-normal-CgCALhwJ.woff2 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 new file mode 100644 index 0000000..5b423a7 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-300-normal-RId2JxDB.woff 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 new file mode 100644 index 0000000..4ee0d27 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 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 new file mode 100644 index 0000000..6b6dc78 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff 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 new file mode 100644 index 0000000..c21492c Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 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 new file mode 100644 index 0000000..e5c7962 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff 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 new file mode 100644 index 0000000..7b24dd8 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff 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 new file mode 100644 index 0000000..e00289e Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 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 new file mode 100644 index 0000000..1a5c3ce Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 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 new file mode 100644 index 0000000..6fb2700 Binary files /dev/null and b/frontend/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff differ diff --git a/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff b/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff new file mode 100644 index 0000000..9db84f3 Binary files /dev/null and b/frontend/dist/assets/inter-greek-300-normal-BrhSP0vQ.woff 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 new file mode 100644 index 0000000..12dbd33 Binary files /dev/null and b/frontend/dist/assets/inter-greek-300-normal-DmGD3g_f.woff2 differ diff --git a/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 b/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 new file mode 100644 index 0000000..e7103fb Binary files /dev/null and b/frontend/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 differ diff --git a/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff b/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff new file mode 100644 index 0000000..c0c36e2 Binary files /dev/null and b/frontend/dist/assets/inter-greek-400-normal-q2sYcFCs.woff 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 new file mode 100644 index 0000000..730be94 Binary files /dev/null and b/frontend/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 differ diff --git a/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff b/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff new file mode 100644 index 0000000..b4ebbd9 Binary files /dev/null and b/frontend/dist/assets/inter-greek-500-normal-Xzm54t5V.woff differ diff --git a/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff b/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff new file mode 100644 index 0000000..ae72058 Binary files /dev/null and b/frontend/dist/assets/inter-greek-600-normal-BZpKdvQh.woff differ diff --git a/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 b/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 new file mode 100644 index 0000000..479b547 Binary files /dev/null and b/frontend/dist/assets/inter-greek-600-normal-plRanbMR.woff2 differ diff --git a/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff b/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff new file mode 100644 index 0000000..1d428f5 Binary files /dev/null and b/frontend/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff differ diff --git a/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 b/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 new file mode 100644 index 0000000..3a9fc0b Binary files /dev/null and b/frontend/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 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 new file mode 100644 index 0000000..d82d917 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-300-normal-DLbbeei1.woff 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 new file mode 100644 index 0000000..5a92c3c Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-300-normal-l2DDyC6M.woff2 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 new file mode 100644 index 0000000..7cb1d6b Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 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 new file mode 100644 index 0000000..96f1f60 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff 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 new file mode 100644 index 0000000..713c500 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff 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 new file mode 100644 index 0000000..4062b66 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 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 new file mode 100644 index 0000000..b3d15d1 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff 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 new file mode 100644 index 0000000..83e7de9 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 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 new file mode 100644 index 0000000..e36fd56 Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff 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 new file mode 100644 index 0000000..af7bcba Binary files /dev/null and b/frontend/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 differ diff --git a/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 b/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 new file mode 100644 index 0000000..ece952c Binary files /dev/null and b/frontend/dist/assets/inter-latin-300-normal-BVlfKGgI.woff2 differ diff --git a/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff b/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff new file mode 100644 index 0000000..469a31b Binary files /dev/null and b/frontend/dist/assets/inter-latin-300-normal-i8F0SvXL.woff differ diff --git a/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 b/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 new file mode 100644 index 0000000..f15b025 Binary files /dev/null and b/frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 differ diff --git a/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff b/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff new file mode 100644 index 0000000..2f21ed4 Binary files /dev/null and b/frontend/dist/assets/inter-latin-400-normal-CyCys3Eg.woff differ diff --git a/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff b/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff new file mode 100644 index 0000000..07775a3 Binary files /dev/null and b/frontend/dist/assets/inter-latin-500-normal-BL9OpVg8.woff differ diff --git a/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 b/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 new file mode 100644 index 0000000..54f0a59 Binary files /dev/null and b/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 differ diff --git a/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff b/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff new file mode 100644 index 0000000..323fa67 Binary files /dev/null and b/frontend/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff differ diff --git a/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 b/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 new file mode 100644 index 0000000..d189794 Binary files /dev/null and b/frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 differ diff --git a/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff b/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff new file mode 100644 index 0000000..161b01e Binary files /dev/null and b/frontend/dist/assets/inter-latin-700-normal-BLAVimhd.woff differ diff --git a/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 b/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 new file mode 100644 index 0000000..a68fb10 Binary files /dev/null and b/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 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 new file mode 100644 index 0000000..42f4549 Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-300-normal-CPgO9Ksf.woff2 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 new file mode 100644 index 0000000..6883378 Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-300-normal-Dp1L8vcn.woff 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 new file mode 100644 index 0000000..0238739 Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff 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 new file mode 100644 index 0000000..5243e4b Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 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 new file mode 100644 index 0000000..e6a577e Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff 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 new file mode 100644 index 0000000..2ab7ebf Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 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 new file mode 100644 index 0000000..74b454b Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff 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 new file mode 100644 index 0000000..bad65d4 Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 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 new file mode 100644 index 0000000..c9507e3 Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 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 new file mode 100644 index 0000000..b4517fc Binary files /dev/null and b/frontend/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff differ diff --git a/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 b/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 new file mode 100644 index 0000000..5c473b3 Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-300-normal-Bdr24Bqb.woff2 differ diff --git a/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff b/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff new file mode 100644 index 0000000..424f0fc Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-300-normal-DDGmYYdT.woff differ diff --git a/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff b/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff new file mode 100644 index 0000000..ff3f8f1 Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff differ diff --git a/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 b/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 new file mode 100644 index 0000000..ba7767f Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 differ diff --git a/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 b/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 new file mode 100644 index 0000000..abe88f5 Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 differ diff --git a/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff b/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff new file mode 100644 index 0000000..87a9d4d Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff 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 new file mode 100644 index 0000000..264f0f5 Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff differ diff --git a/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 b/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 new file mode 100644 index 0000000..e7b7814 Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 differ diff --git a/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff b/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff new file mode 100644 index 0000000..26d92ec Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff differ diff --git a/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 b/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 new file mode 100644 index 0000000..38c516e Binary files /dev/null and b/frontend/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 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 new file mode 100644 index 0000000..f60f0bd Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 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 new file mode 100644 index 0000000..086ce0c Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff 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 new file mode 100644 index 0000000..0dc133d Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff 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 new file mode 100644 index 0000000..1580765 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 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 new file mode 100644 index 0000000..bfb875b Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff 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 new file mode 100644 index 0000000..da7ab5f Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 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 new file mode 100644 index 0000000..98d1e53 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff 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 new file mode 100644 index 0000000..ec8722e Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 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 new file mode 100644 index 0000000..41fa3d6 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff 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 new file mode 100644 index 0000000..5858873 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 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 new file mode 100644 index 0000000..be878e6 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 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 new file mode 100644 index 0000000..4e8415a Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff 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 new file mode 100644 index 0000000..9d97c9b Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 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 new file mode 100644 index 0000000..9c4a3ce Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff 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 new file mode 100644 index 0000000..5cc89b1 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 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 new file mode 100644 index 0000000..63bb843 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff 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 new file mode 100644 index 0000000..619ec08 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff 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 new file mode 100644 index 0000000..672dd50 Binary files /dev/null and b/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff differ diff --git a/frontend/dist/assets/lightbulb-D9Ggmjq-.js b/frontend/dist/assets/lightbulb-BmFqk4PC.js similarity index 90% rename from frontend/dist/assets/lightbulb-D9Ggmjq-.js rename to frontend/dist/assets/lightbulb-BmFqk4PC.js index 523cc2d..6642297 100644 --- a/frontend/dist/assets/lightbulb-D9Ggmjq-.js +++ b/frontend/dist/assets/lightbulb-BmFqk4PC.js @@ -1,4 +1,4 @@ -import{c as t}from"./index-DgTg5QdX.js";/** +import{c as t}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/rotate-ccw-CzU0JCRt.js b/frontend/dist/assets/rotate-ccw-CzU0JCRt.js new file mode 100644 index 0000000..175cff9 --- /dev/null +++ b/frontend/dist/assets/rotate-ccw-CzU0JCRt.js @@ -0,0 +1,6 @@ +import{c as t}from"./index-B7xWfxHK.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/send-o-W_9aTj.js b/frontend/dist/assets/send-CR5xzVO1.js similarity index 90% rename from frontend/dist/assets/send-o-W_9aTj.js rename to frontend/dist/assets/send-CR5xzVO1.js index c57d856..0943176 100644 --- a/frontend/dist/assets/send-o-W_9aTj.js +++ b/frontend/dist/assets/send-CR5xzVO1.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DgTg5QdX.js";/** +import{c as a}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff b/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff new file mode 100644 index 0000000..48b5613 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-400-normal-BnQMeOim.woff 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 new file mode 100644 index 0000000..0e63471 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 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 new file mode 100644 index 0000000..5ae8ea9 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff 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 new file mode 100644 index 0000000..0db251f Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2 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 new file mode 100644 index 0000000..b9da83f Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-600-normal-BflQw4A9.woff 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 new file mode 100644 index 0000000..a1db41a Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 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 new file mode 100644 index 0000000..134d64b Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff 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 new file mode 100644 index 0000000..44604a0 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 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 new file mode 100644 index 0000000..de4425f Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2 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 new file mode 100644 index 0000000..4c2a424 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff 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 new file mode 100644 index 0000000..3ac7553 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff 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 new file mode 100644 index 0000000..0905781 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2 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 new file mode 100644 index 0000000..2438b7a Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2 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 new file mode 100644 index 0000000..9c0101a Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff 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 new file mode 100644 index 0000000..332a5ee Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2 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 new file mode 100644 index 0000000..ece1591 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff 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 new file mode 100644 index 0000000..a1bd433 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2 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 new file mode 100644 index 0000000..0b254ea Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff 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 new file mode 100644 index 0000000..a9ddbdb Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff 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 new file mode 100644 index 0000000..88b774d Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2 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 new file mode 100644 index 0000000..7dbe92c Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff 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 new file mode 100644 index 0000000..d077eb7 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2 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 new file mode 100644 index 0000000..972f450 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2 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 new file mode 100644 index 0000000..12422f5 Binary files /dev/null and b/frontend/dist/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff differ diff --git a/frontend/dist/assets/zap-BX-39Xxr.js b/frontend/dist/assets/zap-DsIHOTxw.js similarity index 97% rename from frontend/dist/assets/zap-BX-39Xxr.js rename to frontend/dist/assets/zap-DsIHOTxw.js index 32e2fa1..e80cdbd 100644 --- a/frontend/dist/assets/zap-BX-39Xxr.js +++ b/frontend/dist/assets/zap-DsIHOTxw.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-DgTg5QdX.js";/** +import{c as a}from"./index-B7xWfxHK.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 33390ce..83760e6 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -1,16 +1,16 @@ - - - - - - - - - Mission Control 2.0 - - - - -
- - + + + + + + + + + Mission Control 2.0 + + + + +
+ + diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index e23cb1d..3893346 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -3,7 +3,6 @@ import { Command as CommandIcon, ChevronLeft, ChevronRight, Loader2, Menu, X } f import { NAV, type ViewId } from "@/nav" import { CommandPalette } from "@/components/CommandPalette" import { ExpertToggle } from "@/components/ExpertToggle" -import { Placeholder } from "@/views/Placeholder" import { SystemDrawer } from "@/components/SystemDrawer" import { useHealth, useSystemStatus } from "@/lib/queries" import type { Health, SystemStatus } from "@/lib/api" @@ -54,7 +53,9 @@ export default function App() { const [drawerOpen, setDrawerOpen] = useState(false) const [drawerTab, setDrawerTab] = useState<"maintenance" | "logs">("maintenance") - const { data: health } = useHealth() + // isError mitnehmen: React Query behält bei Fehlern die letzten Daten — ohne den + // Fehler-Blick zeigte die Sidebar bei totem Backend ewig den letzten grünen Stand. + const { data: health, isError: backendDown } = useHealth() const { data: sysStatus } = useSystemStatus() useEffect(() => { @@ -129,6 +130,7 @@ export default function App() { }} view={view} health={health} + backendDown={backendDown} sysStatus={sysStatus} /> @@ -151,6 +153,7 @@ export default function App() { onClose={() => setMobileNavOpen(false)} view={view} health={health} + backendDown={backendDown} sysStatus={sysStatus} /> @@ -208,9 +211,6 @@ export default function App() { {view === "agent" && } {view === "konsole" && } {view === "guide" && } - {!["dashboard", "auftraege", "eigenleben", "models", "connect", "memory", "wissen", "chronik", "agent", "konsole", "guide"].includes(view) && ( - - )} @@ -221,13 +221,14 @@ export default function App() { // Sidebar-Inhalt (Logo, Navigation, Status-Fuß) — geteilt zwischen Desktop-Leiste // und Mobile-Off-Canvas, damit beide immer identisch bleiben. function SidebarContent({ - collapsed, onToggleCollapse, onClose, view, health, sysStatus, + collapsed, onToggleCollapse, onClose, view, health, backendDown, sysStatus, }: { collapsed: boolean onToggleCollapse?: () => void onClose?: () => void view: ViewId health: Health | undefined + backendDown: boolean sysStatus: SystemStatus | undefined }) { return ( @@ -308,18 +309,25 @@ function SidebarContent({
+ )} title={backendDown + ? "Zentrale antwortet nicht — Anzeigen evtl. veraltet" + : health + ? (!health.engine_reachable ? "Engine offline" + : (health.brain && !health.brain.ready ? `Hirn offline (${health.brain.model ?? "fast"})` : "Engine + Hirn online")) + : "Backend offline"} />
) : (
- {health ? ( + {backendDown ? ( + + + Zentrale antwortet nicht + + ) : health ? ( <> diff --git a/frontend/src/components/SystemDrawer.tsx b/frontend/src/components/SystemDrawer.tsx index 15d10d7..5ad0838 100644 --- a/frontend/src/components/SystemDrawer.tsx +++ b/frontend/src/components/SystemDrawer.tsx @@ -1,678 +1,575 @@ -import { useEffect, useState } from "react" -import { X, RefreshCw, Cpu, Server, Shield, Power, Camera, Bot, Box, Shuffle, DownloadCloud } from "lucide-react" -import { api, type Job, type UpdatesResp, type ServicesResp, type UpdateDetails } from "@/lib/api" -import { cn } from "@/lib/utils" -import { CustomDialog } from "./CustomDialog" -import { SERVICES, ServiceRow, UpdateRow, formatBytes } from "./system/rows" -import { LogConsole } from "./system/LogConsole" -import { SettingsTab } from "./system/SettingsTab" -import { UpdateDetailModal, type UpdateDetailState } from "./system/UpdateDetailModal" - - -interface SystemDrawerProps { - open: boolean - onClose: () => void - defaultTab?: "maintenance" | "logs" | "settings" -} - - -export function SystemDrawer({ open, onClose, defaultTab = "maintenance" }: SystemDrawerProps) { - const [updates, setUpdates] = useState(null) - const [jobs, setJobs] = useState([]) - const [selectedService, setSelectedService] = useState("llama-swap") - const [logs, setLogs] = useState("") - const [loadingLogs, setLoadingLogs] = useState(false) - const [logStatus, setLogStatus] = useState(null) - const [restartingServices, setRestartingServices] = useState>({}) - const [activeTab, setActiveTab] = useState<"maintenance" | "logs" | "settings">("maintenance") - const [checkingUpdates, setCheckingUpdates] = useState(false) - const [backupMsg, setBackupMsg] = useState("") - const [backupRunning, setBackupRunning] = useState(false) - const [services, setServices] = useState(null) - const [backups, setBackups] = useState<{ snapshot: string; size_mb?: number }[]>([]) - const [hermesUpdating, setHermesUpdating] = useState(false) - - // Update-Detail-Fenster: zeigt VOR dem Anwenden, was genau aktualisiert wird. - const [detail, setDetail] = useState(null) - - // Custom Dialog State - const [dialog, setDialog] = useState<{ - type: "alert" | "confirm" - title: string - message: string - onConfirm: () => void - onCancel?: () => void - } | null>(null) - - function showAlert(title: string, message: string, onConfirm?: () => void) { - setDialog({ - type: "alert", - title, - message, - onConfirm: () => { - setDialog(null) - if (onConfirm) onConfirm() - } - }) - } - - function showConfirm(title: string, message: string, onConfirm: () => void) { - setDialog({ - type: "confirm", - title, - message, - onConfirm: () => { - setDialog(null) - onConfirm() - }, - onCancel: () => setDialog(null) - }) - } - - function formatLastCheck(ts?: number | null) { - if (!ts) return "Nie" - return new Date(ts * 1000).toLocaleString("de-DE", { - day: "2-digit", - month: "2-digit", - hour: "2-digit", - minute: "2-digit", - second: "2-digit" - }) - } - - - useEffect(() => { - if (open && defaultTab) { - setActiveTab(defaultTab) - } - }, [open, defaultTab]) - - - function loadUpdates() { - api("/api/maintenance/updates") - .then(setUpdates) - .catch((e) => console.error("Error loading updates", e)) - } - - function loadJobs() { - api<{ jobs: Job[] }>("/api/jobs") - .then((data) => setJobs(data.jobs || [])) - .catch((e) => console.error("Error loading jobs", e)) - } - - function loadServices() { - api("/api/system/services").then(setServices).catch(() => {}) - } - - function loadBackups() { - api<{ backups: { snapshot: string; size_mb?: number }[] }>("/api/system/backups") - .then((d) => setBackups(d.backups || [])).catch(() => {}) - } - - function loadServiceLogs(service: string) { - setLoadingLogs(true) - setLogStatus(null) - api<{ ok: boolean; text: string; err?: string; status?: string }>(`/api/maintenance/logs?service=${service}&lines=150`) - .then((res) => { - if (res.ok) { - setLogs(res.text) - } else { - setLogs(`Fehler beim Laden der Logs: ${res.err || "Unbekannter Fehler"}`) - if (res.status === "incorrect_password" || res.status === "password_required") { - setLogStatus(res.status) - } - } - }) - .catch((e) => setLogs(`Fehler: ${e.message}`)) - .finally(() => setLoadingLogs(false)) - } - - // Poll jobs & updates when open - useEffect(() => { - if (!open) return - loadUpdates() - loadJobs() - loadServices() - loadBackups() - const timer = setInterval(() => { - loadJobs() - loadUpdates() - loadServices() - }, 3000) - return () => clearInterval(timer) - }, [open]) - - // Load logs when tab is active or service changes - useEffect(() => { - if (!open || activeTab !== "logs") return - loadServiceLogs(selectedService) - }, [open, activeTab, selectedService]) - - // Backend-Wartungsriegel: lehnt ein zweites Update ab, solange eines läuft. - function handledBusy(res: any): boolean { - if (res?.status === "busy") { - showAlert("Update läuft bereits", `Es läuft gerade „${res.running}". Bitte warte, bis es fertig ist.`) - loadJobs() - return true - } - return false - } - - // Passwort-Fehler NICHT mehr verschlucken: OS-Update braucht das Box-Passwort. Früher - // lief die Aktion bei fehlendem/falschem Passwort ins Leere („passiert nichts"). - function handledSudo(res: any): boolean { - if (res?.status === "password_required" || res?.status === "incorrect_password") { - showAlert( - "Box-Passwort nötig", - (res.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.", - ) - return true - } - if (res && res.ok === false) { - showAlert("Update fehlgeschlagen", res.err || "Unbekannter Fehler.") - return true - } - return false - } - - async function triggerOsUpdate() { - try { - const res = await api("/api/maintenance/os-update", { method: "POST" }) - if (handledBusy(res) || handledSudo(res)) return - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `Fehler beim Starten des OS-Updates: ${e.message}`) - } - } - - async function triggerEngineUpdate() { - try { - const res = await api("/api/maintenance/engine-update", { method: "POST" }) - if (handledBusy(res) || handledSudo(res)) return - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `Fehler beim Engine-Update: ${e.message}`) - } - } - - async function triggerSwapUpdate() { - try { - const res = await api("/api/maintenance/swap-update", { method: "POST" }) - if (handledBusy(res) || handledSudo(res)) return - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `Fehler beim Router-Update: ${e.message}`) - } - } - - async function doHermesUpdate() { - setHermesUpdating(true) - try { - const res = await api("/api/maintenance/hermes-update", { method: "POST" }) - if (handledBusy(res)) return - loadJobs() - } catch (e: any) { - showAlert("Fehler", `Hermes-Update fehlgeschlagen: ${e.message}`) - } finally { - setHermesUpdating(false) - } - } - - // Öffnet das Detail-Fenster und lädt, was genau aktualisiert würde. - async function openUpdateDetails(kind: "os" | "engine" | "swap" | "hermes") { - setDetail({ kind, loading: true, data: null }) - try { - const d = await api(`/api/maintenance/update-details?kind=${kind}`) - setDetail({ kind, loading: false, data: d }) - } catch (e: any) { - setDetail({ kind, loading: false, data: { kind, error: e.message } }) - } - } - - // Bestätigung aus dem Detail-Fenster → startet das passende Update. - function applyFromDetail() { - const kind = detail?.kind - setDetail(null) - if (kind === "os") triggerOsUpdate() - else if (kind === "engine") triggerEngineUpdate() - else if (kind === "swap") triggerSwapUpdate() - else if (kind === "hermes") doHermesUpdate() - } - - // „Alle aktualisieren": kettet alle AUSSTEHENDEN Updates in EINEM Wartungs-Job - // (Engine → Router → Hermes → OS; das Backend nutzt exakt die Einzel-Update-Befehle - // inkl. deren Backup/Postcheck/Rollback — bei einem Fehler stoppt die Kette). - function triggerUpdateAll() { - const teile = [ - updates?.engine ? "Engine" : null, - updates?.swap ? "Router" : null, - updates?.components?.some((c) => c.update === true) ? "Hermes-Agent" : null, - updates?.os ? `OS (${updates.os} Pakete)` : null, - ].filter(Boolean) - showConfirm( - "Alle Updates einspielen?", - `Nacheinander in einem Job: ${teile.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 res = await api("/api/maintenance/update-all", { method: "POST" }) - if (handledBusy(res) || handledSudo(res)) return - if (res?.status === "nothing") { showAlert("Nichts zu tun", "Es stehen keine Updates aus."); return } - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `„Alle aktualisieren" konnte nicht starten: ${e.message}`) - } - }, - ) - } - - async function triggerCheckUpdates() { - setCheckingUpdates(true) - try { - await api("/api/maintenance/check-updates", { method: "POST" }) - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `Fehler bei der Update-Suche: ${e.message}`) - } finally { - setCheckingUpdates(false) - } - } - - async function triggerModelUpgrade(repo: string, role: string) { - try { - await api("/api/models/install", { - method: "POST", - body: JSON.stringify({ repo, role }) - }) - showAlert("Gestartet", `Modell-Upgrade für '${role}' (${repo}) gestartet.`) - loadJobs() - setActiveTab("maintenance") - } catch (e: any) { - showAlert("Fehler", `Fehler beim Starten des Modell-Upgrades: ${e.message}`) - } - } - - async function triggerReboot() { - showConfirm( - "Reboot bestätigen", - "Bist du sicher, dass du das gesamte Host-System neu starten willst?", - async () => { - try { - await api("/api/maintenance/reboot", { method: "POST" }) - showAlert("Reboot", "Reboot ausgelöst. System startet neu...", () => { - onClose() - }) - } catch (e: any) { - showAlert("Fehler", `Fehler beim Reboot: ${e.message}`) - } - } - ) - } - - async function doBackup() { - setBackupRunning(true) - setBackupMsg("Snapshot wird erzeugt...") - try { - const r = await api<{ ok: boolean; snapshot: string; files: string[] }>("/api/system/backup", { method: "POST" }) - setBackupMsg(r.ok ? `Snapshot erzeugt: ${r.snapshot} (${r.files.length} Komponenten)` : "Backup fehlgeschlagen.") - loadBackups() - } catch (e: any) { - setBackupMsg(`Fehler: ${e.message}`) - } finally { - setBackupRunning(false) - } - } - - async function restartService(serviceId: string) { - setRestartingServices(prev => ({ ...prev, [serviceId]: true })) - try { - const res = await api<{ ok: boolean; err?: string }>("/api/maintenance/restart", { - method: "POST", - body: JSON.stringify({ service: serviceId }) - }) - if (res.ok) { - showAlert("Dienst neu gestartet", `Dienst ${serviceId} wurde erfolgreich neu gestartet.`, () => { - if (activeTab === "logs" && selectedService === serviceId) { - loadServiceLogs(serviceId) - } - }) - } else { - showAlert("Fehler", `Fehler beim Neustart: ${res.err || "Unbekannter Fehler"}`) - } - } catch (e: any) { - showAlert("Fehler", `Fehler beim Neustart: ${e.message}`) - } finally { - setRestartingServices(prev => ({ ...prev, [serviceId]: false })) - } - } - - async function cancelJob(jobId: string) { - try { - await api(`/api/jobs/${jobId}/cancel`, { method: "POST" }) - loadJobs() - } catch (e: any) { - showAlert("Fehler", `Fehler beim Abbrechen: ${e.message}`) - } - } - - // Aktiver Wartungs-Job (System-Update) → UI-Aktionen sperren, Dashboard bleibt sichtbar. - const maintenanceJob = jobs.find(j => (j.state === "running" || j.state === "queued") && j.group === "maintenance") - // Wie viele Update-ARTEN ausstehen (für den „Alle aktualisieren"-Button). - const pendingAll = - (updates ? (updates.os > 0 ? 1 : 0) + (updates.engine ? 1 : 0) + (updates.swap ? 1 : 0) : 0) + - (updates?.components?.filter((c) => c.update === true).length ?? 0) - - return ( - <> - {/* Backdrop */} -
- - {/* Drawer */} -
- {/* Header */} -
-
- -

OS-Zentrale & Pflege

-
- -
- - {/* Navigation Tabs */} -
- - - -
- - {/* Content */} -
- {activeTab === "maintenance" && ( - <> - {/* Updates */} -
-
-

Updates

-
- {pendingAll > 0 && ( - - )} - -
-
- {updates?.last_check && ( -
Zuletzt gesucht: {formatLastCheck(updates.last_check)}
- )} - {maintenanceJob && ( -
- - Update läuft: {maintenanceJob.label} — bitte warten. Weitere Updates sind solange gesperrt. -
- )} -
- openUpdateDetails("os")} /> - openUpdateDetails("engine")} /> - openUpdateDetails("swap")} /> - {(() => { - const h = updates?.components?.find((c) => c.key === "hermes_agent") - return ( - openUpdateDetails("hermes")} /> - ) - })()} - {updates?.model_list?.map((m) => ( - triggerModelUpgrade(m.repo, m.role)} /> - ))} -
-
- - {/* Dienste */} -
-

Dienste

-
- {SERVICES.map((s) => ( - x.name.toLowerCase().includes(s.reach))?.ok} busy={restartingServices[s.id]} onRestart={() => restartService(s.id)} onLogs={() => { setSelectedService(s.id); setActiveTab("logs") }} /> - ))} -
-
- - {/* Backup */} -
-

Backup

-
-
-
{backups[0] ? `Letztes: ${backups[0].snapshot}` : "Noch kein Backup"}
-
{backups.length} Snapshots · Restore per CLI (restore.sh)
-
- -
- {backupMsg && ( -
{backupMsg}
- )} -
- - {/* Gefahrenzone */} -
-

Gefahrenzone

- -
- - {/* Active Jobs */} -
-
-

Hintergrund-Aufgaben

- - {jobs.filter(j => j.state === "running" || j.state === "queued").length} Aktiv - -
- -
- {jobs.length === 0 ? ( -
- Aktuell keine aktiven Hintergrund-Jobs. -
- ) : ( - jobs.map((job) => { - const isActive = job.state === "running" || job.state === "queued" - return ( -
-
-
-
- {isActive && ( - - - - - )} - {job.label} -
-
- ID: {job.id} - - - {job.state} - -
-
- - {isActive && ( - - )} -
- - {/* Progress */} - {job.state === "running" && ( -
-
-
-
-
- {job.progress ?? 0}% - {job.done_bytes != null && job.total_bytes != null && ( - - {formatBytes(job.done_bytes)} / {formatBytes(job.total_bytes)} - {job.rate_bps != null && ` (${formatBytes(job.rate_bps)}/s)`} - - )} - {job.eta_s != null && ETA: {job.eta_s}s} -
-
- )} -
- ) - }) - )} -
-
- - )} - - {activeTab === "logs" && ( - // Logs View -
- {/* Service Select & Restart */} -
- - - -
- - loadServiceLogs(selectedService)} - onOpenSettings={() => setActiveTab("settings")} - /> -
- )} - - {activeTab === "settings" && } -
-
- - {detail && ( - setDetail(null)} onApply={applyFromDetail} /> - )} - - {dialog && ( - - )} - - ) -} +import { useEffect, useState } from "react" +import { X, RefreshCw, Cpu, Server, Shield, Power, Camera, Bot, Box, Shuffle, DownloadCloud } from "lucide-react" +import { api, type UpdateDetails } from "@/lib/api" +import { cn } from "@/lib/utils" +import { useDialog } from "@/lib/useDialog" +import { useJobs, useServices, useUpdates, useZeitmaschine, useQueryClient, qk, invalidate } from "@/lib/queries" +import { fmtBytes } from "@/lib/format" +import { ServiceRow, UpdateRow } from "./system/rows" +import { LogConsole } from "./system/LogConsole" +import { SettingsTab } from "./system/SettingsTab" +import { UpdateDetailModal, type UpdateDetailState } from "./system/UpdateDetailModal" + +// System-Schublade (Pflege/Logs/Einstellungen). Datenweg: AUSSCHLIESSLICH die zentralen +// React-Query-Hooks — früher pollte hier ein eigener setInterval alle 3 s dieselben +// Endpunkte (inkl. des teuren Updates-Checks) am Query-Layer vorbei, wodurch Cockpit +// und Schublade verschiedene Stände zeigen konnten (Review 15.07.). Die Dienste-Liste +// kommt 1:1 aus /api/system/services (unit + scope), keine UI-Kopie mehr. + +interface SystemDrawerProps { + open: boolean + onClose: () => void + defaultTab?: "maintenance" | "logs" | "settings" +} + +export function SystemDrawer({ open, onClose, defaultTab = "maintenance" }: SystemDrawerProps) { + const qc = useQueryClient() + const { showAlert, showConfirm, dialogElement } = useDialog() + + // Geteilte Caches; Jobs/Zeitmaschine beobachten nur bei offener Schublade. + const { data: updates } = useUpdates() + const { data: services } = useServices() + const jobs = useJobs(3_000, open).data ?? [] + const { data: zeit } = useZeitmaschine(undefined, open) + + const [selectedService, setSelectedService] = useState("llama-swap") + const [logs, setLogs] = useState("") + const [loadingLogs, setLoadingLogs] = useState(false) + const [logStatus, setLogStatus] = useState(null) + const [restartingServices, setRestartingServices] = useState>({}) + const [activeTab, setActiveTab] = useState<"maintenance" | "logs" | "settings">("maintenance") + const [checkingUpdates, setCheckingUpdates] = useState(false) + const [backupMsg, setBackupMsg] = useState("") + const [backupRunning, setBackupRunning] = useState(false) + const [hermesUpdating, setHermesUpdating] = useState(false) + + // Update-Detail-Fenster: zeigt VOR dem Anwenden, was genau aktualisiert wird. + const [detail, setDetail] = useState(null) + + const svcList = services?.services ?? [] + const refreshJobs = () => invalidate(qc, qk.jobs) + + function formatLastCheck(ts?: number | null) { + if (!ts) return "Nie" + return new Date(ts * 1000).toLocaleString("de-DE", { + day: "2-digit", month: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", + }) + } + + useEffect(() => { + if (open && defaultTab) setActiveTab(defaultTab) + }, [open, defaultTab]) + + // Beim Öffnen einmal frisch ziehen — danach übernehmen die normalen Poll-Takte. + useEffect(() => { + if (open) invalidate(qc, qk.updates, qk.services, qk.jobs, qk.zeitmaschine) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [open]) + + function loadServiceLogs(service: string) { + setLoadingLogs(true) + setLogStatus(null) + api<{ ok: boolean; text: string; err?: string; status?: string }>(`/api/maintenance/logs?service=${service}&lines=150`) + .then((res) => { + if (res.ok) { + setLogs(res.text) + } else { + setLogs(`Fehler beim Laden der Logs: ${res.err || "Unbekannter Fehler"}`) + if (res.status === "incorrect_password" || res.status === "password_required") { + setLogStatus(res.status) + } + } + }) + .catch((e) => setLogs(`Fehler: ${e.message}`)) + .finally(() => setLoadingLogs(false)) + } + + // Load logs when tab is active or service changes + useEffect(() => { + if (!open || activeTab !== "logs") return + loadServiceLogs(selectedService) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [open, activeTab, selectedService]) + + // Backend-Wartungsriegel: lehnt ein zweites Update ab, solange eines läuft. + function handledBusy(res: any): boolean { + if (res?.status === "busy") { + showAlert("Update läuft bereits", `Es läuft gerade „${res.running}". Bitte warte, bis es fertig ist.`) + refreshJobs() + return true + } + return false + } + + // Passwort-Fehler NICHT verschlucken: OS-Update braucht das Box-Passwort. + function handledSudo(res: any): boolean { + if (res?.status === "password_required" || res?.status === "incorrect_password") { + showAlert( + "Box-Passwort nötig", + (res.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.", + ) + return true + } + if (res && res.ok === false) { + showAlert("Update fehlgeschlagen", res.err || "Unbekannter Fehler.") + return true + } + return false + } + + async function triggerUpdate(kind: "os" | "engine" | "swap") { + const path = { os: "os-update", engine: "engine-update", swap: "swap-update" }[kind] + try { + const res = await api(`/api/maintenance/${path}`, { method: "POST" }) + if (handledBusy(res) || handledSudo(res)) return + refreshJobs() + setActiveTab("maintenance") + } catch (e: any) { + showAlert("Fehler", `Update konnte nicht starten: ${e.message}`) + } + } + + async function doHermesUpdate() { + setHermesUpdating(true) + try { + const res = await api("/api/maintenance/hermes-update", { method: "POST" }) + if (handledBusy(res)) return + refreshJobs() + } catch (e: any) { + showAlert("Fehler", `Hermes-Update fehlgeschlagen: ${e.message}`) + } finally { + setHermesUpdating(false) + } + } + + // Öffnet das Detail-Fenster und lädt, was genau aktualisiert würde. + async function openUpdateDetails(kind: "os" | "engine" | "swap" | "hermes") { + setDetail({ kind, loading: true, data: null }) + try { + const d = await api(`/api/maintenance/update-details?kind=${kind}`) + setDetail({ kind, loading: false, data: d }) + } catch (e: any) { + setDetail({ kind, loading: false, data: { kind, error: e.message } }) + } + } + + // Bestätigung aus dem Detail-Fenster → startet das passende Update. + function applyFromDetail() { + const kind = detail?.kind + setDetail(null) + if (kind === "os" || kind === "engine" || kind === "swap") triggerUpdate(kind) + else if (kind === "hermes") doHermesUpdate() + } + + // „Alle aktualisieren": kettet alle AUSSTEHENDEN Updates in EINEM Wartungs-Job + // (Engine → Router → Hermes → OS; bei einem Fehler stoppt die Kette). + function triggerUpdateAll() { + const teile = [ + updates?.engine ? "Engine" : null, + updates?.swap ? "Router" : null, + updates?.components?.some((c) => c.update === true) ? "Hermes-Agent" : null, + updates?.os ? `OS (${updates.os} Pakete)` : null, + ].filter(Boolean) + showConfirm( + "Alle Updates einspielen?", + `Nacheinander in einem Job: ${teile.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 res = await api("/api/maintenance/update-all", { method: "POST" }) + if (handledBusy(res) || handledSudo(res)) return + if (res?.status === "nothing") { showAlert("Nichts zu tun", "Es stehen keine Updates aus."); return } + refreshJobs() + setActiveTab("maintenance") + } catch (e: any) { + showAlert("Fehler", `„Alle aktualisieren" konnte nicht starten: ${e.message}`) + } + }, + ) + } + + async function triggerCheckUpdates() { + setCheckingUpdates(true) + try { + await api("/api/maintenance/check-updates", { method: "POST" }) + invalidate(qc, qk.jobs, qk.updates) + setActiveTab("maintenance") + } catch (e: any) { + showAlert("Fehler", `Fehler bei der Update-Suche: ${e.message}`) + } finally { + setCheckingUpdates(false) + } + } + + async function triggerModelUpgrade(repo: string, role: string) { + try { + await api("/api/models/install", { method: "POST", body: JSON.stringify({ repo, role }) }) + showAlert("Gestartet", `Modell-Upgrade für '${role}' (${repo}) gestartet.`) + refreshJobs() + setActiveTab("maintenance") + } catch (e: any) { + showAlert("Fehler", `Fehler beim Starten des Modell-Upgrades: ${e.message}`) + } + } + + async function triggerReboot() { + showConfirm( + "Reboot bestätigen", + "Bist du sicher, dass du das gesamte Host-System neu starten willst?", + async () => { + try { + await api("/api/maintenance/reboot", { method: "POST" }) + showAlert("Reboot", "Reboot ausgelöst. System startet neu...", () => onClose()) + } catch (e: any) { + showAlert("Fehler", `Fehler beim Reboot: ${e.message}`) + } + } + ) + } + + async function doBackup() { + setBackupRunning(true) + setBackupMsg("Snapshot wird erzeugt...") + try { + const r = await api<{ ok: boolean; snapshot: string; files: string[] }>("/api/system/backup", { method: "POST" }) + setBackupMsg(r.ok ? `Snapshot erzeugt: ${r.snapshot} (${r.files.length} Komponenten)` : "Backup fehlgeschlagen.") + invalidate(qc, qk.zeitmaschine) + } catch (e: any) { + setBackupMsg(`Fehler: ${e.message}`) + } finally { + setBackupRunning(false) + } + } + + async function restartService(serviceId: string) { + setRestartingServices(prev => ({ ...prev, [serviceId]: true })) + try { + const res = await api<{ ok: boolean; err?: string }>("/api/maintenance/restart", { + method: "POST", + body: JSON.stringify({ service: serviceId }) + }) + if (res.ok) { + showAlert("Dienst neu gestartet", `Dienst ${serviceId} wurde erfolgreich neu gestartet.`, () => { + if (activeTab === "logs" && selectedService === serviceId) { + loadServiceLogs(serviceId) + } + }) + invalidate(qc, qk.services, qk.health, qk.models) + } else { + showAlert("Fehler", `Fehler beim Neustart: ${res.err || "Unbekannter Fehler"}`) + } + } catch (e: any) { + showAlert("Fehler", `Fehler beim Neustart: ${e.message}`) + } finally { + setRestartingServices(prev => ({ ...prev, [serviceId]: false })) + } + } + + async function cancelJob(jobId: string) { + try { + await api(`/api/jobs/${jobId}/cancel`, { method: "POST" }) + refreshJobs() + } catch (e: any) { + showAlert("Fehler", `Fehler beim Abbrechen: ${e.message}`) + } + } + + // Aktiver Wartungs-Job (System-Update) → UI-Aktionen sperren, Dashboard bleibt sichtbar. + const maintenanceJob = jobs.find(j => (j.state === "running" || j.state === "queued") && j.group === "maintenance") + // Wie viele Update-ARTEN ausstehen (für den „Alle aktualisieren"-Button). + const pendingAll = + (updates ? (updates.os > 0 ? 1 : 0) + (updates.engine ? 1 : 0) + (updates.swap ? 1 : 0) : 0) + + (updates?.components?.filter((c) => c.update === true).length ?? 0) + + const backups = zeit?.backups ?? [] + + return ( + <> + {/* Backdrop */} +
+ + {/* Drawer */} +
+ {/* Header */} +
+
+ +

OS-Zentrale & Pflege

+
+ +
+ + {/* Navigation Tabs */} +
+ {(["maintenance", "logs", "settings"] as const).map((tab) => ( + + ))} +
+ + {/* Content */} +
+ {activeTab === "maintenance" && ( + <> + {/* Updates */} +
+
+

Updates

+
+ {pendingAll > 0 && ( + + )} + +
+
+ {updates?.last_check && ( +
Zuletzt gesucht: {formatLastCheck(updates.last_check)}
+ )} + {maintenanceJob && ( +
+ + Update läuft: {maintenanceJob.label} — bitte warten. Weitere Updates sind solange gesperrt. +
+ )} +
+ openUpdateDetails("os")} /> + openUpdateDetails("engine")} /> + openUpdateDetails("swap")} /> + {(() => { + const h = updates?.components?.find((c) => c.key === "hermes_agent") + return ( + openUpdateDetails("hermes")} /> + ) + })()} + {updates?.model_list?.map((m) => ( + triggerModelUpgrade(m.repo, m.role)} /> + ))} +
+
+ + {/* Dienste — 1:1 die Backend-Liste (inkl. LLM-Gateway + Wächter seit UMBAU v3) */} +
+

Dienste

+
+ {svcList.length === 0 && ( +
+ Dienste-Liste wird geladen … +
+ )} + {svcList.map((s) => ( + restartService(s.unit)} + onLogs={() => { setSelectedService(s.unit); setActiveTab("logs") }} /> + ))} +
+
+ + {/* Backup — Liste kommt aus derselben Quelle wie die Zeitmaschine (Chronik) */} +
+

Backup

+
+
+
{backups[0] ? `Letztes: ${backups[0].snapshot}` : "Noch kein Backup"}
+
{backups.length} Snapshots · Wiederherstellen: Chronik → Zeitmaschine
+
+ +
+ {backupMsg && ( +
{backupMsg}
+ )} +
+ + {/* Gefahrenzone */} +
+

Gefahrenzone

+ +
+ + {/* Active Jobs */} +
+
+

Hintergrund-Aufgaben

+ + {jobs.filter(j => j.state === "running" || j.state === "queued").length} Aktiv + +
+ +
+ {jobs.length === 0 ? ( +
+ Aktuell keine aktiven Hintergrund-Jobs. +
+ ) : ( + jobs.map((job) => { + const isActive = job.state === "running" || job.state === "queued" + return ( +
+
+
+
+ {isActive && ( + + + + + )} + {job.label} +
+
+ ID: {job.id} + + + {job.state} + +
+
+ + {isActive && ( + + )} +
+ + {/* Progress */} + {job.state === "running" && ( +
+
+
+
+
+ {job.progress ?? 0}% + {job.done_bytes != null && job.total_bytes != null && ( + + {fmtBytes(job.done_bytes)} / {fmtBytes(job.total_bytes)} + {job.rate_bps != null && ` (${fmtBytes(job.rate_bps)}/s)`} + + )} + {job.eta_s != null && ETA: {job.eta_s}s} +
+
+ )} +
+ ) + }) + )} +
+
+ + )} + + {activeTab === "logs" && ( + // Logs View +
+ {/* Service Select & Restart — dieselbe Backend-Liste wie die Wartungs-Ansicht */} +
+ + + +
+ + loadServiceLogs(selectedService)} + onOpenSettings={() => setActiveTab("settings")} + /> +
+ )} + + {activeTab === "settings" && } +
+
+ + {detail && ( + setDetail(null)} onApply={applyFromDetail} /> + )} + + {dialogElement} + + ) +} diff --git a/frontend/src/components/system/rows.tsx b/frontend/src/components/system/rows.tsx index 5030d17..33c1cb8 100644 --- a/frontend/src/components/system/rows.tsx +++ b/frontend/src/components/system/rows.tsx @@ -2,16 +2,8 @@ import { RefreshCw, FileText } from "lucide-react" import { cn } from "@/lib/utils" // Präsentations-Atome des SystemDrawers (Review P2-14: aus dem 934-Z-Monolithen extrahiert). - -// systemd-Units (restart/logs) + reach = Stichwort zum Mappen auf /api/system/services. -export const SERVICES = [ - { id: "mission-control-2", label: "Mission Control", type: "user", reach: "gateway (integr" }, - { id: "hermes-gateway", label: "Hermes Gateway", type: "user", reach: "hermes-gateway" }, - { id: "mem0-service", label: "Mem0 (Gedächtnis)", type: "user", reach: "mem0" }, - { id: "voice-service", label: "Voice (Sprache)", type: "user", reach: "voice" }, - { id: "hermes-builtin-ui", label: "Hermes GUI (Desktop-Gateway)", type: "user", reach: "hermes-gui" }, - { id: "llama-swap", label: "Llama Swap", type: "system", reach: "llama-swap" }, -] +// Die frühere SERVICES-Konstante (UI-Kopie der Dienste-Liste) ist weg: der Drawer rendert +// jetzt direkt die Backend-Antwort von /api/system/services — EINE Quelle der Wahrheit. export function UpdateRow({ icon: Icon, iconClass, name, status, available, busy, actionLabel, onAction }: { icon: any; iconClass: string; name: string; status: string; available: boolean; busy?: boolean; actionLabel: string; onAction: () => void @@ -50,9 +42,3 @@ export function ServiceRow({ label, ok, system, busy, onRestart, onLogs }: {
) } - -export function formatBytes(bytes?: number) { - if (bytes == null) return "" - if (bytes > 1024 ** 3) return `${(bytes / 1024 ** 3).toFixed(2)} GB` - return `${(bytes / 1024 ** 2).toFixed(1)} MB` -} diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e2a1e9a..f0ec290 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -270,8 +270,15 @@ export interface SystemStatus { versions?: Versions } +export interface ServiceInfo { + name: string + unit: string // echter systemd-Name — Basis für Restart/Logs/Matching (kein Namens-Raten) + url: string + ok: boolean + scope: "user" | "system" +} export interface ServicesResp { - services: { name: string; unit: string; url: string; ok: boolean }[] + services: ServiceInfo[] links: { engine_ui: string; gateway: string; hermes_ui: string } } @@ -387,6 +394,7 @@ export interface AgentStatus { telegram_enabled?: boolean mcp_server_count?: number pc_executor_reachable?: boolean + pc_executor_url?: string } export interface Job { diff --git a/frontend/src/lib/queries.ts b/frontend/src/lib/queries.ts index 3738141..3bc8983 100644 --- a/frontend/src/lib/queries.ts +++ b/frontend/src/lib/queries.ts @@ -111,9 +111,11 @@ export const useIdeenLog = (id: string, enabled: boolean = false) => staleTime: 0, }) +// Limit gehört in den Key: zwei Aufrufer mit verschiedenen Limits würden sich sonst +// denselben Cache-Eintrag gegenseitig überschreiben. SSE invalidiert das Präfix ["chronik"]. export const useChronik = (limit = 150, refetchInterval: number = TAKT.gemuetlich) => useQuery({ - queryKey: qk.chronik, + queryKey: [...qk.chronik, limit], queryFn: () => api(`/api/chronik?limit=${limit}`), refetchInterval: relax(refetchInterval), select: (d) => d.items ?? [], @@ -129,11 +131,12 @@ export const useEigenleben = (refetchInterval: number = TAKT.traege) => refetchInterval, }) -export const useZeitmaschine = (refetchInterval: number = TAKT.traege) => +export const useZeitmaschine = (refetchInterval: number = TAKT.traege, enabled = true) => useQuery({ queryKey: qk.zeitmaschine, queryFn: () => api("/api/zeitmaschine"), refetchInterval, + enabled, }) export const useReminders = (refetchInterval: number = TAKT.traege) => @@ -169,8 +172,9 @@ export const useSystemStatus = (refetchInterval: number = TAKT.graph) => export const useServices = (refetchInterval: number = TAKT.normal) => useQuery({ queryKey: qk.services, queryFn: () => api("/api/system/services"), refetchInterval }) +// Der SSE-Strom invalidiert "models" bei Laden/Entladen → Poller ist nur Sicherheitsnetz. export const useModels = (refetchInterval: number = TAKT.schnell) => - useQuery({ queryKey: qk.models, queryFn: () => api("/api/models"), refetchInterval }) + useQuery({ queryKey: qk.models, queryFn: () => api("/api/models"), refetchInterval: relax(refetchInterval) }) export const useGroups = (refetchInterval: number = TAKT.normal) => useQuery({ queryKey: qk.groups, queryFn: () => api("/api/groups"), refetchInterval }) @@ -182,11 +186,14 @@ export const useRoutingPolicy = () => useQuery({ queryKey: qk.routingPolicy, queryFn: () => api("/api/routing/policy") }) // Jobs (Downloads) takten etwas schneller, damit Fortschritts-Balken flüssig wirken. -export const useJobs = (refetchInterval = 3_000) => +// `enabled=false` pausiert den Beobachter (z. B. geschlossene System-Schublade) — +// der Cache bleibt geteilt, es pollt nur niemand umsonst. +export const useJobs = (refetchInterval = 3_000, enabled = true) => useQuery({ queryKey: qk.jobs, queryFn: () => api<{ jobs: Job[] }>("/api/jobs"), refetchInterval, + enabled, select: (d) => d.jobs ?? [], }) @@ -242,7 +249,7 @@ export const useMemory = (opts?: { q?: string; category?: string; limit?: number }) /** Nach Mutationen die betroffenen Listen-Queries neu ziehen. */ -export function invalidate(qc: QueryClient, ...keys: readonly unknown[][]) { +export function invalidate(qc: QueryClient, ...keys: (readonly unknown[])[]) { for (const key of keys) qc.invalidateQueries({ queryKey: key }) } diff --git a/frontend/src/lib/useLucyHealth.ts b/frontend/src/lib/useLucyHealth.ts index be88710..0ef0957 100644 --- a/frontend/src/lib/useLucyHealth.ts +++ b/frontend/src/lib/useLucyHealth.ts @@ -2,7 +2,7 @@ // Lucy-Fähigkeiten in Klartext, inkl. Gesamt-Verdikt, Speicher-Ampel und einer // konkreten 1-Klick-Reparatur pro Problem. EINE Quelle für das Status-Panel. -import { Brain, BookMarked, Eye, Plug, Bot, Mic, type LucideIcon } from "lucide-react" +import { Brain, BookMarked, Eye, Plug, Bot, Mic, ShieldAlert, Server, type LucideIcon } from "lucide-react" import { useHealth, useServices, useModels, useSystemStatus } from "./queries" export type CheckStatus = "ok" | "warn" | "down" | "loading" @@ -40,17 +40,25 @@ export interface LucyHealth { memory: MemoryAmpel problems: LucyCheck[] // kritische Down-Checks (für den Schnellzugriff im Banner) warns: LucyCheck[] // nicht-kritische Hinweise — damit das Banner SAGT, was los ist + unreachable: boolean // Zentrale (MC2) antwortet nicht → alle anderen Anzeigen sind veraltet } export function useLucyHealth(): LucyHealth { - const { data: health } = useHealth() - const { data: svc } = useServices() + const { data: health, isError: healthErr } = useHealth() + const { data: svc, isError: svcErr } = useServices() const { data: modelsResp } = useModels() const { data: sys } = useSystemStatus() + // React Query behält bei Fehlern die letzten Daten — ohne diesen Riegel zeigte die UI + // bei totem Backend dauerhaft den letzten grünen Stand („eingefrorene Ampel", Review 15.07.). + const unreachable = healthErr || svcErr + const loaded = !!health && !!svc - const svcOk = (frag: string): boolean | undefined => - svc?.services.find((s) => s.name.toLowerCase().includes(frag))?.ok + // Matching über den ECHTEN systemd-Unit-Namen (Backend liefert `unit`) — vorher wurde + // fragil im deutschen Anzeige-Namen gesucht ("gateway (integr" …). + const svcOk = (unit: string): boolean | undefined => + svc?.services.find((s) => s.unit === unit)?.ok + const svcHas = (unit: string): boolean => !!svc?.services.some((s) => s.unit === unit) const engineOk = health?.engine_reachable const brainReady = health?.brain?.ready @@ -61,6 +69,15 @@ export function useLucyHealth(): LucyHealth { const checks: LucyCheck[] = [] + // 0) Die Zentrale selbst. Antwortet MC2 nicht, ist ALLES andere Spekulation — + // dieser Check übertrumpft die übrigen (die zeigen sonst eingefrorene alte Werte). + if (unreachable) { + checks.push({ + id: "mc2", label: "Steuerpult (MC2)", icon: Server, critical: true, status: "down", + detail: "Die Zentrale antwortet nicht — alle Anzeigen hier können veraltet sein. Läuft die Box? Deploy aktiv?", + }) + } + // 1) Lucys Hirn — die wichtigste Fähigkeit. Engine läuft UND das Hirn-Modell ist geladen? checks.push(((): LucyCheck => { const base = { id: "brain", label: "Lucys Hirn", icon: Brain, critical: true } @@ -107,7 +124,7 @@ export function useLucyHealth(): LucyHealth { // 3) Lucys Gedächtnis — Mem0-Dienst. checks.push(((): LucyCheck => { const base = { id: "memory", label: "Lucys Gedächtnis", icon: BookMarked, critical: true } - const ok = svcOk("mem0") + const ok = svcOk("mem0-service") if (!loaded || ok === undefined) return { ...base, status: "loading", detail: "Wird geprüft …" } return ok ? { ...base, status: "ok", detail: "Merkt sich Neues und findet Altes wieder." } @@ -119,25 +136,45 @@ export function useLucyHealth(): LucyHealth { } })()) - // 4) Verbindung (Gateway) — der integrierte OpenAI-Gateway, über den Apps/IDEs Lucy erreichen. + // 4) Verbindung (LLM-Gateway) — der Denkpfad, über den Apps/IDEs/Lucy die Modelle erreichen. + // Seit UMBAU v3 ist das der EIGENE mc2-gateway-Prozess; health.gateway_reachable prüft + // ihn jetzt wirklich (statt nur die Engine). Repariert wird die richtige Unit. checks.push(((): LucyCheck => { const base = { id: "gateway", label: "Verbindung (Gateway)", icon: Plug, critical: true } - const ok = health ? health.gateway_reachable : svcOk("integriert") + const ok = health ? health.gateway_reachable : svcOk("mc2-gateway") if (!loaded || ok === undefined) return { ...base, status: "loading", detail: "Wird geprüft …" } + const unit = svcHas("mc2-gateway") ? "mc2-gateway" : "mission-control-2" return ok ? { ...base, status: "ok", detail: "Apps und IDEs können Lucy erreichen." } : { ...base, status: "down", - detail: "Die Verbindungs-Zentrale antwortet nicht — Apps erreichen Lucy nicht.", - repair: { kind: "restart", service: "mission-control-2", label: "Zentrale neu starten" }, + detail: "Der Modell-Gateway antwortet nicht — Lucy und die IDEs erreichen kein Modell.", + repair: { kind: "restart", service: unit, label: "Gateway neu starten" }, + } + })()) + + // 4b) Der Wächter (Steward) — überwacht Warm-Set, Health-Flanken und Gedächtnis-Dubletten. + // Nicht kritisch fürs Antworten, aber ohne ihn merkt niemand, wenn etwas kippt. + checks.push(((): LucyCheck => { + const base = { id: "steward", label: "Wächter (Steward)", icon: ShieldAlert, critical: false } + if (!loaded) return { ...base, status: "loading", detail: "Wird geprüft …" } + if (!svcHas("mc2-steward")) + return { ...base, status: "ok", detail: "Auf dieser Installation nicht eingerichtet." } + return svcOk("mc2-steward") + ? { ...base, status: "ok", detail: "Wacht über Warm-Set, Dienste und Gedächtnis." } + : { + ...base, + 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" }, } })()) // 5) Lucys Agent (Hermes) — der Dienst, der als Lucy antwortet (Terminal/Telegram/Sprechen). checks.push(((): LucyCheck => { const base = { id: "agent", label: "Lucys Agent (Hermes)", icon: Bot, critical: true } - const ok = svcOk("hermes-gateway") + const ok = svcOk("hermes-gateway") // unit-Name (identisch zum alten Namens-Match, jetzt exakt) if (!loaded || ok === undefined) return { ...base, status: "loading", detail: "Wird geprüft …" } return ok ? { ...base, status: "ok", detail: "Lucy ist bereit zu reden und zu handeln." } @@ -152,7 +189,7 @@ export function useLucyHealth(): LucyHealth { // 6) Lucys Stimme — Voice-Dienst (STT/TTS). Nicht kritisch: Chat geht auch ohne. checks.push(((): LucyCheck => { const base = { id: "voice", label: "Lucys Stimme", icon: Mic, critical: false } - const ok = svcOk("voice") + const ok = svcOk("voice-service") if (!loaded || ok === undefined) return { ...base, status: "loading", detail: "Wird geprüft …" } return ok ? { ...base, status: "ok", detail: "Lucy kann hören und sprechen." } @@ -194,5 +231,5 @@ export function useLucyHealth(): LucyHealth { ? "warn" : "gut" - return { verdict, checks, memory, problems, warns } + return { verdict, checks, memory, problems, warns, unreachable } } diff --git a/frontend/src/views/AgentView.tsx b/frontend/src/views/AgentView.tsx index 18505ad..41183b4 100644 --- a/frontend/src/views/AgentView.tsx +++ b/frontend/src/views/AgentView.tsx @@ -18,6 +18,13 @@ export function AgentView() { const installed = modelsData?.models ?? [] + // Adressen aus dem Status-Payload statt hartcodiert — die UI zeigt, was konfiguriert IST. + const port = (url?: string) => url?.match(/:(\d+)/)?.[1] ?? "" + const gwPort = port(s?.gateway_url) || "8642" + const pcUrl = s?.pc_executor_url ?? "" + const pcHost = pcUrl.replace(/^https?:\/\//, "") + const pcPort = port(pcUrl) || "7777" + // Alias setzen → roher Config-Write (model.default zeigt aufs Alias). async function setBrainAlias(alias: string) { try { @@ -52,7 +59,7 @@ export function AgentView() { Hermes Agenten-Cockpit

- Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port :8642) und seine eigene UI besitzt. + Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port :{gwPort}) und seine eigene UI besitzt.

@@ -112,7 +119,7 @@ export function AgentView() {
Agent Gateway - :8642 + :{gwPort}
- :7777 {s.pc_executor_reachable ? "verbunden" : "offline"} + :{pcPort} {s.pc_executor_reachable ? "verbunden" : "offline"}
@@ -185,7 +192,7 @@ export function AgentView() {

- Der Hermes PC Executor läuft auf 192.168.178.98:7777 und ermöglicht Hermes den direkten Zugriff auf deinen Windows-PC — Shell-Befehle, Screenshots, Tastatureingaben. + Der Hermes PC Executor läuft auf {pcHost || "deinem Windows-PC"} und ermöglicht Hermes den direkten Zugriff auf deinen Windows-PC — Shell-Befehle, Screenshots, Tastatureingaben.

Hermes erreicht den PC über den MCP-Server hermes-pc-control, der automatisch beim Gateway-Start verbunden wird. diff --git a/frontend/src/views/GuideView.tsx b/frontend/src/views/GuideView.tsx index 5bc2c1b..92cd0ad 100644 --- a/frontend/src/views/GuideView.tsx +++ b/frontend/src/views/GuideView.tsx @@ -281,11 +281,11 @@ export function GuideView() { und transparentes Routing — der Client merkt nicht, welches Modell tatsächlich antwortet.

- Die model:auto-Idee: du sagst „auto", das Gateway wählt das passende Modell je nach Anfrage und - lädt es bei Bedarf. + Die Lane-Idee: du wählst chat (Alltag, auto geht als Alias weiter) oder{" "} + coding (agentisch), das Gateway pickt das passende echte Modell und lädt es bei Bedarf.

- Dein Gateway: http://192.168.178.151:9001/v1, Model auto, API-Key beliebig. + Dein Gateway: http://192.168.178.151:9001/v1, Model chat oder coding, API-Key beliebig. Fertige Configs erzeugt dir der Verbinden-Tab live — eine Wahrheit, kein Abtippen. @@ -398,7 +398,7 @@ description: Treibt Entwicklung mit strikter TDD-Praxis Deine Haupt-IDE ist inzwischen 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 Verbinden-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. - Essenz: Base …:9001/v1, Model auto, Key beliebig. + Essenz: Base …:9001/v1, Model chat / coding, Key beliebig. diff --git a/frontend/src/views/ModelsView.tsx b/frontend/src/views/ModelsView.tsx index 430c8f3..345d824 100644 --- a/frontend/src/views/ModelsView.tsx +++ b/frontend/src/views/ModelsView.tsx @@ -1,46 +1,64 @@ -import { useState } from "react" -import { cn } from "@/lib/utils" -import { JobsBar } from "@/components/models/JobsBar" -import { ModelsWorkbench } from "./models/werkbank/ModelsWorkbench" -import { Discover } from "./models/Discover" - -export function ModelsView() { - const [tab, setTab] = useState<"cockpit" | "discover">("cockpit") - return ( -
-
-
-

- Modell-Manager -

-

- Verwalte deine Modelle und passe das Gateway-Routing live über das interaktive Cockpit an. -

-
- -
- {(["cockpit", "discover"] as const).map((t) => ( - - ))} -
-
- - - -
- {tab === "cockpit" ? : } -
-
- ) -} +import { useState } from "react" +import { cn } from "@/lib/utils" +import { JobsBar } from "@/components/models/JobsBar" +import { LaneEditor } from "@/components/models/LaneEditor" +import { WarmSetManager } from "@/components/models/WarmSetManager" +import { ModelsWorkbench } from "./models/werkbank/ModelsWorkbench" +import { Discover } from "./models/Discover" + +// Modell-Manager: Werkbank (verwalten) · Routing & Warm-Set (Lanes-Policy + Immer-bereit-Set, +// vorher im toten Alt-Cockpit verwaist und damit UNERREICHBAR — Review 15.07.) · Entdecken. +const TABS = [ + { id: "werkbank", label: "Werkbank" }, + { id: "routing", label: "Routing & Warm-Set" }, + { id: "discover", label: "Modelle finden" }, +] as const +type TabId = (typeof TABS)[number]["id"] + +export function ModelsView() { + const [tab, setTab] = useState("werkbank") + return ( +
+
+
+

+ Modell-Manager +

+

+ Modelle verwalten, das Lane-Routing einstellen und Neues von HuggingFace holen. +

+
+ +
+ {TABS.map((t) => ( + + ))} +
+
+ + + +
+ {tab === "werkbank" && } + {tab === "routing" && ( +
+ + +
+ )} + {tab === "discover" && } +
+
+ ) +} diff --git a/frontend/src/views/Placeholder.tsx b/frontend/src/views/Placeholder.tsx deleted file mode 100644 index 7ad93f1..0000000 --- a/frontend/src/views/Placeholder.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Construction } from "lucide-react" - -export function Placeholder({ title, hint }: { title: string; hint: string }) { - return ( -
-
-

{title}

-

{hint}

-
-
- -
Kommt in einer späteren Phase.
-
-
- ) -} diff --git a/frontend/src/views/cockpit/CockpitView.tsx b/frontend/src/views/cockpit/CockpitView.tsx index 2c4c1dd..5745209 100644 --- a/frontend/src/views/cockpit/CockpitView.tsx +++ b/frontend/src/views/cockpit/CockpitView.tsx @@ -2,12 +2,12 @@ import { useState } from "react" import { Boxes, Brain, Server, ShieldAlert, Plug, HeartPulse, AlertTriangle, Loader2, Wrench, Check, HardDrive, ChevronRight, - Inbox, + Inbox, HelpCircle, } from "lucide-react" import { api } from "@/lib/api" import { useModels, useServices, useUpdates, useMemory, useAgentStatus, useConnectHealth, - useAuftragsbuch, useQueryClient, qk, + useAuftragsbuch, useIdeen, useQueryClient, qk, } from "@/lib/queries" import { useLucyHealth, type Repair } from "@/lib/useLucyHealth" import { useDialog } from "@/lib/useDialog" @@ -34,6 +34,7 @@ export function CockpitView({ onNavigate }: { onNavigate: (v: string) => void }) const { data: agent } = useAgentStatus() const { data: connect } = useConnectHealth() const { data: auftraege } = useAuftragsbuch() + const { data: ideen } = useIdeen() const health = useLucyHealth() const { showAlert, dialogElement } = useDialog() @@ -71,8 +72,17 @@ export function CockpitView({ onNavigate }: { onNavigate: (v: string) => void }) const pendingCount = (updates ? (updates.os > 0 ? 1 : 0) + (updates.engine > 0 ? 1 : 0) + (updates.swap > 0 ? 1 : 0) + (updates.models > 0 ? 1 : 0) : 0) + (updates?.components?.filter((c) => c.update === true).length ?? 0) - const connectOk = connect?.gateway.ok && connect?.memory.ok const openAuftraege = auftraege?.available ? auftraege.open_count : 0 + // Hängende Karten warten auf DEINE Antwort — bisher sah das Cockpit sie gar nicht + // („Nichts zu tun" trotz roter Karte im Auftragsbuch, Review 15.07.). + const blockedIdeen = ideen?.available ? ideen.items.filter((i) => i.status === "blocked").length : 0 + + // Verbinden: die drei Leitungen (Modell-Gateway · Gedächtnis · Desktop-Gateway). + const connectLines = connect ? [connect.gateway, connect.memory, connect.desktop_gateway] : [] + const connectOkCount = connectLines.filter((l) => l?.ok).length + const connectBad = connect + ? (!connect.gateway.ok ? "Modell-Leitung" : !connect.memory.ok ? "Gedächtnis-Leitung" : !connect.desktop_gateway.ok ? "Desktop-Gateway" : "") + : "" // Zusätzliche reaktive Livedaten für die Kacheln const activeBrain = models?.models?.find((m: any) => m.role === "hermes") @@ -103,7 +113,7 @@ export function CockpitView({ onNavigate }: { onNavigate: (v: string) => void }) {/* Hauptspalte Links */}
{/* Status-Zeile */} - + {/* Morgenlage — das jüngste Nacht-Gutachten (verschwindet, wenn keines da ist) */} @@ -127,8 +137,10 @@ export function CockpitView({ onNavigate }: { onNavigate: (v: string) => void }) 0 ? "warn" : "ok"} - hint={openAuftraege > 0 ? `${openAuftraege} offene Patches` : "Keine ausstehenden Vorschläge"} + tone={!auftraege ? "loading" : blockedIdeen > 0 || openAuftraege > 0 ? "warn" : "ok"} + hint={blockedIdeen > 0 + ? `${blockedIdeen} Karte${blockedIdeen === 1 ? "" : "n"} wartet auf deine Antwort` + : openAuftraege > 0 ? `${openAuftraege} offene Patches` : "Keine ausstehenden Vorschläge"} onClick={() => onNavigate("auftraege")} /> void }) onClick={() => openDrawer("maintenance")} /> onNavigate("connect")} />
@@ -173,6 +186,7 @@ export function CockpitView({ onNavigate }: { onNavigate: (v: string) => void }) problems={health.problems} pendingCount={pendingCount} openAuftraege={openAuftraege} + blockedIdeen={blockedIdeen} busy={busy} onRepair={runRepair} onNavigate={onNavigate} @@ -202,19 +216,23 @@ function ZoneLabel({ children }: { children: React.ReactNode }) { } // Ehrliche Status-Zeile: großes Verdikt + Speicher-Pille. Erzählrahmen = Box. -function StatusLine({ verdict, memory, warns }: { +function StatusLine({ verdict, memory, warns, problems }: { verdict: ReturnType["verdict"] memory: ReturnType["memory"] warns: ReturnType["warns"] + problems: ReturnType["problems"] }) { const warnText = warns.length ? `${warns[0].label}: ${warns[0].detail}${warns.length > 1 ? ` (+${warns.length - 1} weitere)` : ""}` : memory.status === "full" ? memory.text : "Nichts Schlimmes — nur ein Hinweis." + const problemText = problems.length + ? `${problems[0].label}: ${problems[0].detail}${problems.length > 1 ? ` (+${problems.length - 1} weitere)` : ""}` + : "Ein wichtiger Dienst hakt." const b = { loading: { ring: "border-border/60 bg-card/45", icon: Loader2, 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: HeartPulse, iconCls: "text-emerald-400", title: "Box gesund", sub: "Alle wichtigen Dienste laufen." }, warn: { ring: "border-amber-500/40 bg-amber-500/5", icon: AlertTriangle, iconCls: "text-amber-400", title: "Kleinigkeit an der Box", sub: warnText }, - problem: { ring: "border-red-500/50 bg-red-500/5", icon: AlertTriangle, iconCls: "text-red-400", title: "Box braucht Hilfe", sub: "Ein wichtiger Dienst hakt." }, + problem: { ring: "border-red-500/50 bg-red-500/5", icon: AlertTriangle, iconCls: "text-red-400", title: "Box braucht Hilfe", sub: problemText }, }[verdict] const Icon = b.icon const memTone = { ok: "text-emerald-400", warn: "text-amber-400", full: "text-red-400", unknown: "text-muted-foreground" }[memory.status] @@ -253,18 +271,20 @@ function StatusLine({ verdict, memory, warns }: { // „Braucht dich": kritische Probleme (mit 1-Klick-Reparatur) + bereitliegende Updates // + offene Vorschläge im Auftragsbuch. function NeedsYou({ - problems, pendingCount, openAuftraege, busy, onRepair, onNavigate, + problems, pendingCount, openAuftraege, blockedIdeen, busy, onRepair, onNavigate, }: { problems: ReturnType["problems"] pendingCount: number openAuftraege: number + blockedIdeen: number busy: Record onRepair: (id: string, r: Repair) => void onNavigate: (v: string) => void }) { const hasUpdates = pendingCount > 0 const hasAuftraege = openAuftraege > 0 - const nothing = problems.length === 0 && !hasUpdates && !hasAuftraege + const hasBlocked = blockedIdeen > 0 + const nothing = problems.length === 0 && !hasUpdates && !hasAuftraege && !hasBlocked return (
@@ -301,6 +321,23 @@ function NeedsYou({ )}
))} + {hasBlocked && ( + + )} {hasAuftraege && ( - )} -
-
- - {/* The memory bar */} -
- {runningWithInfo.length === 0 ? ( -
- VRAM Leer — Auto-Swap lädt Modelle bei Anfrage -
- ) : ( - runningWithInfo.map((m, idx) => { - const widthPct = ((m.size_bytes || 0) / capacity) * 100 - const bgClass = [ - "from-teal-500 to-emerald-500", - "from-indigo-500 to-blue-500", - "from-purple-500 to-pink-500", - "from-cyan-500 to-sky-500" - ][idx % 4] - return ( -
- - {m.role ? `[${roleMeta(m.role).short}] ` : ""}{m.name.split("/").pop()?.replace(".gguf", "")} - - {fmtSize(m.size_bytes)} -
- ) - }) - )} -
-
- - {/* ZONE B.3: Immer-bereit-Set (Warm-Set / brains-Gruppe) — in Klartext, mit Budget */} - - - {/* ZONE B.4: Lane-Routing & Policy (UI-editierbar, hot-reload) — Experten-Detail */} - {expert && } - - {/* ZONE B.5: Slot-Belegung */} -
-
- {expert ? "Gateway Steckplatz-Belegung (Slot-Zuweisung)" : "Wer macht was bei Lucy — zum Ändern antippen"} -
-
- {ROLES.map((role) => { - const m = models.find((x) => x.role === role) - const isWarm = m ? running.includes(m.name) : false - - return ( -
openRoleAssign(role)} - className={cn( - "rounded-xl border p-3 flex flex-col justify-between gap-2.5 transition-all cursor-pointer select-none text-left bg-background/25 hover:border-primary/45 hover:bg-background/40 group min-h-[90px]", - isWarm - ? "border-emerald-500/40 shadow-sm shadow-emerald-500/5" - : m - ? "border-primary/20 bg-primary/5" - : "border-border/30 border-dashed opacity-75" - )} - > -
- - {isWarm && } -
- -
- {m ? m.name.split("/").pop()?.replace(/\.gguf$/i, "") : "nicht zugewiesen"} -
- -
- Ändern ➔ -
-
- ) - })} -
-
- - {/* ZONE B.6: Agent-Hirn (Hermes) — sichtbar + updatebar (NousResearch) */} - {brain?.current && ( -
-
-
- - Agent-Hirn (Hermes) - {brain.current.version != null && ( - v{brain.current.version} - )} -
- -
- -
-
-
- {brain.current.name.split("/").pop()} -
-
- {brain.current.params_b ? `${brain.current.params_b}B` : "—"} - {brain.current.quant || "GGUF"} - {fmtSize(brain.current.size_bytes || 0)} -
-
- {brain.update_available && brain.recommended ? ( - - ) : ( - - Neueste Generation - - )} -
- - {brain.update_available && brain.recommended && ( -
- - Neuere Generation verfügbar: {brain.recommended.name.replace(/-GGUF$/i, "")} - (v{brain.recommended.version}, {brain.recommended.params_b}B) — von NousResearch. -
- )} - - {brain.budget && ( -
- - - Always-On-Brain ~{brain.budget.brain_gb} GB + größtes on-demand (~{brain.budget.largest_ondemand_gb} GB) - = {(brain.budget.brain_gb + brain.budget.largest_ondemand_gb).toFixed(1)} / {brain.budget.gtt_gb} GB - {brain.budget.fits - ? " · passt gleichzeitig ✓" - : " · passt NICHT gleichzeitig ⚠ — heavy/coder würden das Brain verdrängen. Kleineres Brain oder weniger Kontext."} - -
- )} -
- )} - - {/* ZONE C: Library list cards & Upgrade Radar */} -
-
-
- Installierte Modell-Bibliothek ({filteredModels.length} von {models.length}) -
- -
- {/* Filter mode selector */} -
- - -
- - {/* Grid/List layout selector */} -
- - -
-
-
- - {viewMode === "grid" ? ( -
- {filteredModels.length === 0 ? ( -
- {filterMode === "in_use" - ? "Keine Modelle in Benutzung (keine Zuweisung oder warm geladene Modelle)." - : "Keine Modelle konfiguriert. Verwende den Tab \"Modelle finden\" zum Herunterladen."} -
- ) : ( - filteredModels.map((m) => { - const isRunning = running.includes(m.name) - const hasUpgrade = updates?.model_list.find((u) => u.role === m.role) - const brand = getBrandInfo(m.name) - - return ( -
-
-
-
- {/* Brand Icon Badge */} -
- {brand.initial} -
- -
-

- {m.name.split("/").pop()} -

-
- - {m.quant || "GGUF"} - - {isRunning && ( - - Warm - - )} - {m.role && } - {isProtected(m.role) && ( - - 🔒 geschützt - - )} - {expert && isCoresident(m.name) && ( - - 🧠 Ko-resident - - )} - {expert && m.prompt_cache && ( - - PC - - )} - {expert && (m.spec_active ? ( - - SPEC - - ) : m.spec_draft_model ? ( - - SPEC? - - ) : null)} - {expert && m.parallel_slots > 1 && ( - - SLOTS: {m.parallel_slots} - - )} - {m.incomplete && ( - - ⚠ Datei fehlt - - )} -
-
-
-
- -
- -
-
- -
-
-
- -
-
Größe
-
{fmtSize(m.size_bytes)}
-
-
- -
- -
-
Kontext
-
{fmtCtx(m.ctx)}
-
-
-
- - {/* Smart Upgrade radar trigger banner */} - {hasUpgrade && ( -
-
- - Upgrade verfügbar: {hasUpgrade.repo.split("/").pop()} -
- -
- )} - - {/* Actions row at the bottom of Grid Card */} -
- {(() => { - const prot = isProtected(m.role) - const lockUnload = isRunning && prot - const disabled = (m.incomplete && !isRunning) || lockUnload - return ( - - ) - })()} - {expert && ( - - )} - {expert && brainsGroup && ( - - )} - {expert && ( - - )} - -
-
-
- ) - }) - )} -
- ) : ( -
- {filteredModels.length === 0 ? ( -
- {filterMode === "in_use" - ? "Keine Modelle in Benutzung (keine Zuweisung oder warm geladene Modelle)." - : "Keine Modelle konfiguriert. Verwende den Tab \"Modelle finden\" zum Herunterladen."} -
- ) : ( - filteredModels.map((m) => { - const isRunning = running.includes(m.name) - const brand = getBrandInfo(m.name) - - return ( -
-
- {/* Brand Icon */} -
- {brand.initial} -
- -
-
-

- {m.name.split("/").pop()} -

- {m.role && } - {isProtected(m.role) && ( - - 🔒 geschützt - - )} - {expert && isCoresident(m.name) && ( - - 🧠 Ko-resident - - )} - {expert && m.prompt_cache && ( - - PC - - )} - {expert && (m.spec_active ? ( - - SPEC - - ) : m.spec_draft_model ? ( - - SPEC? - - ) : null)} - {expert && m.parallel_slots > 1 && ( - - SLOTS: {m.parallel_slots} - - )} - {m.incomplete && ( - - ⚠ Datei fehlt - - )} - {isRunning && ( - - warm - - )} -
-
- Größe: {fmtSize(m.size_bytes)} - - Kontext: {fmtCtx(m.ctx)} - - {m.quant || "GGUF"} -
-
-
- - {/* Chips and Actions */} -
-
- -
- -
- {(() => { - const prot = isProtected(m.role) - const lockUnload = isRunning && prot - const disabled = (m.incomplete && !isRunning) || lockUnload - return ( - - ) - })()} - {expert && ( - - )} - {expert && brainsGroup && ( - - )} - {expert && ( - - )} - -
-
-
- ) - }) - )} -
- )} -
- - {/* Role Assignment Modal */} - {activeRoleForAssign && ( - { handleRoleChange(activeRoleForAssign, name); setActiveRoleForAssign(null) }} - onClose={() => setActiveRoleForAssign(null)} /> - )} - - {specModel && ( - setSpecModel(null)} - onChanged={reload} - /> - )} - - {dialogElement} - - ) -} diff --git a/frontend/src/views/models/cockpit/RoleAssignModal.tsx b/frontend/src/views/models/cockpit/RoleAssignModal.tsx deleted file mode 100644 index 976cc35..0000000 --- a/frontend/src/views/models/cockpit/RoleAssignModal.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { Check, X, Zap } from "lucide-react" -import { cn } from "@/lib/utils" -import { fmtSize } from "@/lib/format" -import { roleMeta } from "@/lib/roleMeta" -import { RoleLabel } from "@/components/models/ModelBadges" -import type { ModelInfo, RoleRecResp } from "@/lib/api" - -// Rollen-Zuweisungs-Modal des Cockpits (Review P2-14, Teil 2: aus dem 990-Z-Monolithen -// extrahiert). Zeigt die Modell-Bibliothek sortiert nach Empfehlung (RoleRec-Score) und -// hält das Schutzgeländer: lebenswichtige Rollen (Hirn/Gedächtnis) können nicht leer bleiben. -const isProtected = (role?: string | null) => !!roleMeta(role).protected -export function RoleAssignModal({ role, roleRec, models, onAssign, onClose }: { - role: string - roleRec: RoleRecResp | null - models: ModelInfo[] - onAssign: (modelName: string) => void - onClose: () => void -}) { - const rec = roleRec && roleRec.role === role ? roleRec : null - const recByName: Record = {} - rec?.models.forEach((r) => { recByName[r.name] = r }) - // Empfohlene Reihenfolge (nach Score) wenn vorhanden, sonst Bibliotheks-Reihenfolge. - const ordered = rec - ? rec.models.map((r) => models.find((m) => m.name === r.name)).filter(Boolean) as ModelInfo[] - : models - return ( -
-
-
-

- festlegen -

- -
-
-

- Wähle ein Modell für {roleMeta(role).label} - {roleMeta(role).desc} -

- {rec?.recommended && ( - - )} -
- -
- {/* Schutzgeländer: eine lebenswichtige Rolle (Hirn/Gedächtnis) lässt sich nicht leeren. */} - {isProtected(role) ? ( -
- 🔒 Diese Rolle ist lebenswichtig und kann nicht leer bleiben — wähle stattdessen ein anderes Modell. -
- ) : ( - - )} - {ordered.map((m) => { - const r = recByName[m.name] - const isCur = m.role === role - const isRec = !!r?.recommended - const unfit = !!r && !r.suitable - return ( - - ) - })} -
-
-
- ) -} diff --git a/frontend/src/views/models/werkbank/MaschinenraumBar.tsx b/frontend/src/views/models/werkbank/MaschinenraumBar.tsx index 276296c..f325510 100644 --- a/frontend/src/views/models/werkbank/MaschinenraumBar.tsx +++ b/frontend/src/views/models/werkbank/MaschinenraumBar.tsx @@ -22,8 +22,14 @@ export function MaschinenraumBar({ }) { const capacity = capacityBytes > 2 * B ? capacityBytes : 124 * B const weights = running.reduce((a, m) => a + (m.size_bytes || 0), 0) - const freeBytes = Math.max(0, capacity - weights) + // Ehrliche Rechnung: „frei" geht von der REALEN Belegung aus (inkl. KV-Cache), nicht + // nur von den Dateigrößen — vorher konnte die Leiste viel „frei" zeigen, während der + // Speicher praktisch voll war (Review 15.07.). Die Differenz wird als eigenes + // Betriebs-Segment (KV-Cache/Overhead) sichtbar statt verschwiegen. + const overheadBytes = Math.max(0, realUsedBytes - weights) + const freeBytes = Math.max(0, capacity - Math.max(weights, realUsedBytes)) const freePct = (freeBytes / capacity) * 100 + const overheadPct = (overheadBytes / capacity) * 100 return (
@@ -31,13 +37,13 @@ export function MaschinenraumBar({
-
Arbeitsspeicher
+
Modell-Speicher (GPU-Pool)
{gb(capacity)} GB gesamt
-
{gb(weights)} GB Modelle geladen
- {realUsedBytes > 0 &&
{gb(realUsedBytes)} GB real belegt (inkl. KV-Cache)
} +
{gb(weights)} GB Modell-Gewichte
+ {overheadBytes > 0 &&
{gb(overheadBytes)} GB KV-Cache & Betrieb
}
{gb(freeBytes)} GB frei
@@ -73,6 +79,15 @@ export function MaschinenraumBar({ ) })} + {overheadPct > 1.5 && ( +
+ KV +
+ )} {freePct > 1.5 && (
) })} + {overheadBytes > 0 && ( + + KV-Cache & Betrieb · {gb(overheadBytes)} GB + + )} frei · {gb(freeBytes)} GB