From 84dc34c0a3439426df92f4bc65fbedeb2c2f12e6 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 27 Aug 2026 14:58:42 +0200 Subject: [PATCH] fix(stack): Mem0 restlos ausgebaut + vier stille Defekte behoben Systemaudit vom 27.08.2026. Alle Befunde gemessen, nicht vermutet. VIER STILLE DEFEKTE 1. mc2-steward startete seit Wochen nicht (live: 207.609 Neustarts). steward.py importierte services.memory, das beim Mem0-Ausbau geloescht wurde -> ImportError bei jedem Start. Re-Warm- und Health-Waechter waren damit tot. 2. Jedes Hermes-Update wurde automatisch zurueckgerollt. hermes-postcheck.sh prueft vier Dinge, die es seit dem 07.08. nicht mehr gibt (Sidecar :8765, /api/memory, memory.provider, mc2-memory-Plugin). Die Checks konnten nicht gruen werden -> autoupdate.sh wertete jedes Update als rot und rollte es zurueck. Checks ersatzlos entfernt; der Tool-Smoke laeuft ohnehin durch den echten Agenten. 3. 7 von 12 Skills waren per Knopfdruck nicht startbar. deploy.sh kopiert Skills mit tr '-' '_' nach ~/.hermes/skills/, routers/skills.py gab Hermes aber den Ordnernamen MIT Bindestrich. Der Knopf meldete Erfolg, ausgefuehrt wurde nichts. Neu: _hermes_name(). 4. deploy.sh warf bei jedem Deploy die Live-Modellkonfiguration weg. MC2 schreibt /etc/llama-swap/config.yaml selbst; die Repo-Datei ist nur ein Abzug (ihm fehlt u.a. kritiker/Devstral). Jetzt: erst sichern, Diff zeigen, dann kopieren. MC_DEPLOY_SKIP_SWAP_CONFIG=1 ueberspringt. MEM0-AUSBAU VOLLENDET (Kriterium 3: 17 -> 0 Dateien) - mem0_service/, mcp/mcp_memory.py und hermes/plugins/mc2-memory entfernt; das Plugin schickte bei JEDEM Turn zwei 404-Requests an tote Routen. - MEMORY_DB/MEM0_SERVICE_URL, _mem0_reachable(), MC_MEMORY_DB und MC_MEM_DEDUPE_ENABLED aus Config/Router/Unit entfernt. - mem0_ms war strukturell tot (park("retrieve") wird nirgends mehr aufgerufen) -> aus Backend, API-Typ und Latenzkarte entfernt. - Verbinden-Tab: tote Gedaechtnis-MCP-Leitung raus, Status-Kachel bleibt. - AGENTS.md beschrieb Mem0 noch als aktiv - korrigiert. GATEWAY-ROBUSTHEIT - _proxy gab bei ungueltigen Payloads HTTP 500 (gemessen 5/5: Rohtext, leerer Body, JSON-Liste, JSON-String, null) -> jetzt 5/5 HTTP 400. - Bild-Weiche ohne Deckel: 10 Bilder x 2 Versuche x 240 s hielten den Client bis zu 80 min. Neu: MC_CODER_IMAGE_MAX (4), Rueckfall auf die Vision-Umleitung. - /v1/models: nicht-JSON von der Engine gab 500 -> jetzt 502. UNITS UND DEPLOY - mc2-steward.service, dessen warmset-Drop-in und voice-service.service fehlten im Repo, obwohl maintenance.py und stack-postcheck.sh sie voraussetzen. 1:1 von der laufenden Box uebernommen. - deploy.sh startete mc2-steward nie neu; restore.sh liess mc2-gateway und mc2-steward mit alter Config weiterlaufen. Beide ergaenzt. FRONTEND - useEigenleben rief /api/eigenleben - existiert im Backend nicht und wurde nirgends genutzt. Samt Typen entfernt. - Anleitung beschrieb einen Gedaechtnis-Tab, den es nicht gibt. - Abgeglichen: alle uebrigen 63 Frontend-Aufrufe treffen echte Routen, alle 5 SSE-Invalidation-Keys sind gemappt, keine ungefangenen Promises. Gates: compileall gruen - ruff "All checks passed" - tsc gruen - vite build gruen (dist aktualisiert) - Importe app/steward/gateway_app gruen. Co-Authored-By: Claude Opus 5 --- .agents/mcp_config.json | 6 - AGENTS.md | 2 +- backend/config.py | 15 +- backend/routers/connect.py | 11 +- backend/routers/gateway_proxy.py | 38 +- backend/routers/skills.py | 31 +- backend/routers/system.py | 9 +- backend/routers/voice.py | 12 +- backend/routers/zeitmaschine.py | 2 +- backend/services/backup.py | 2 +- backend/services/connect.py | 27 +- backend/services/sentry.py | 2 +- backend/services/voice_metrics.py | 46 +- backend/steward.py | 13 +- deploy/agent-hooks/box-steckbrief-inject.sh | 2 +- deploy/autoupdate.sh | 2 +- deploy/backup.sh | 17 +- deploy/deploy.sh | 33 +- deploy/hermes-postcheck.sh | 41 +- deploy/llama-swap.config.yaml | 4 +- deploy/mc2-backup.service | 2 +- deploy/mc2-steward.service | 37 ++ deploy/mc2-steward.service.d-warmset.conf | 11 + deploy/mission-control-2.service | 9 +- deploy/restore.sh | 10 +- deploy/stack-postcheck.sh | 17 +- deploy/venv-audit.sh | 4 +- deploy/voice-service.service | 33 ++ deploy/warmup.sh | 2 +- docs/wissen/STACK.md | 3 +- ...View-C-rUOPjn.js => AgentView-pp2NXhb4.js} | 2 +- ...YOUdf1.js => AuftragsbuchView-CFtqxzIs.js} | 2 +- ...ew-BBdQX2_R.js => ChronikView-BbW5EQy6.js} | 2 +- frontend/dist/assets/ConnectView-5DXpNBft.js | 26 - frontend/dist/assets/ConnectView-Ibsr5kGX.js | 26 + ...View-D6hHVfTx.js => GuideView-DwZocTb3.js} | 8 +- ...View-DcsN5ZLB.js => IdeenView-J4hS7xB2.js} | 2 +- ...obsBar-Ckecoyqy.js => JobsBar-DG8VDiAV.js} | 2 +- ...ew-Bdk_kJ2m.js => KonsoleView-BDDotueL.js} | 2 +- ...iew-aEV2pe9C.js => ModelsView-DIBx0djl.js} | 2 +- ...l-BfFwUeZU.js => SectionLabel-DKDWJ8hi.js} | 2 +- ...iew-C5D9xEVH.js => SkillsView-XWoP6WFO.js} | 2 +- ...iew-DpReQzIY.js => WissenView-DgvIyHvX.js} | 29 +- ...n-SPeGIim5.js => chevron-down-BTSzJRag.js} | 2 +- ...e-xml-AZtn6xxf.js => code-xml-BiSOeCkP.js} | 2 +- frontend/dist/assets/folder-open-FZLk16T9.js | 6 - .../{index-CCbyojll.js => index-DNt66je4.js} | 78 +-- ...{index-Dv1-nhwH.css => index-qQDuX0H0.css} | 2 +- ...{layers-Dpl2QlP2.js => layers-BakyhGhx.js} | 2 +- ...ccw-DuKtbjZS.js => rotate-ccw-CGv9dXzB.js} | 2 +- .../{zap-CRNNnxfs.js => zap-cdYTHDpR.js} | 2 +- frontend/dist/index.html | 4 +- .../src/components/dashboard/LatencyCard.tsx | 8 +- frontend/src/lib/api.ts | 58 +-- frontend/src/lib/queries.ts | 23 - frontend/src/views/ConnectView.tsx | 72 +-- frontend/src/views/GuideView.tsx | 10 +- hermes/plugins/mc2-memory/__init__.py | 250 --------- hermes/plugins/mc2-memory/plugin.yaml | 5 - mcp/mcp_mc.py | 6 +- mcp/mcp_memory.py | 127 ----- mem0_service/app.py | 483 ------------------ mem0_service/migrate.py | 62 --- mem0_service/requirements.txt | 9 - mem0_service/smoke_test.py | 71 --- 65 files changed, 394 insertions(+), 1440 deletions(-) create mode 100644 deploy/mc2-steward.service create mode 100644 deploy/mc2-steward.service.d-warmset.conf create mode 100644 deploy/voice-service.service rename frontend/dist/assets/{AgentView-C-rUOPjn.js => AgentView-pp2NXhb4.js} (99%) rename frontend/dist/assets/{AuftragsbuchView-BdYOUdf1.js => AuftragsbuchView-CFtqxzIs.js} (99%) rename frontend/dist/assets/{ChronikView-BBdQX2_R.js => ChronikView-BbW5EQy6.js} (99%) delete mode 100644 frontend/dist/assets/ConnectView-5DXpNBft.js create mode 100644 frontend/dist/assets/ConnectView-Ibsr5kGX.js rename frontend/dist/assets/{GuideView-D6hHVfTx.js => GuideView-DwZocTb3.js} (64%) rename frontend/dist/assets/{IdeenView-DcsN5ZLB.js => IdeenView-J4hS7xB2.js} (99%) rename frontend/dist/assets/{JobsBar-Ckecoyqy.js => JobsBar-DG8VDiAV.js} (96%) rename frontend/dist/assets/{KonsoleView-Bdk_kJ2m.js => KonsoleView-BDDotueL.js} (98%) rename frontend/dist/assets/{ModelsView-aEV2pe9C.js => ModelsView-DIBx0djl.js} (99%) rename frontend/dist/assets/{SectionLabel-BfFwUeZU.js => SectionLabel-DKDWJ8hi.js} (93%) rename frontend/dist/assets/{SkillsView-C5D9xEVH.js => SkillsView-XWoP6WFO.js} (98%) rename frontend/dist/assets/{WissenView-DpReQzIY.js => WissenView-DgvIyHvX.js} (81%) rename frontend/dist/assets/{chevron-down-SPeGIim5.js => chevron-down-BTSzJRag.js} (85%) rename frontend/dist/assets/{code-xml-AZtn6xxf.js => code-xml-BiSOeCkP.js} (88%) delete mode 100644 frontend/dist/assets/folder-open-FZLk16T9.js rename frontend/dist/assets/{index-CCbyojll.js => index-DNt66je4.js} (87%) rename frontend/dist/assets/{index-Dv1-nhwH.css => index-qQDuX0H0.css} (53%) rename frontend/dist/assets/{layers-Dpl2QlP2.js => layers-BakyhGhx.js} (91%) rename frontend/dist/assets/{rotate-ccw-DuKtbjZS.js => rotate-ccw-CGv9dXzB.js} (88%) rename frontend/dist/assets/{zap-CRNNnxfs.js => zap-cdYTHDpR.js} (96%) delete mode 100644 hermes/plugins/mc2-memory/__init__.py delete mode 100644 hermes/plugins/mc2-memory/plugin.yaml delete mode 100644 mcp/mcp_memory.py delete mode 100644 mem0_service/app.py delete mode 100644 mem0_service/migrate.py delete mode 100644 mem0_service/requirements.txt delete mode 100644 mem0_service/smoke_test.py diff --git a/.agents/mcp_config.json b/.agents/mcp_config.json index 6b39384..15de689 100644 --- a/.agents/mcp_config.json +++ b/.agents/mcp_config.json @@ -1,11 +1,5 @@ { "mcpServers": { - "mc2-memory": { - "command": "python", - "args": [ - "F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py" - ] - }, "mc2-system": { "command": "python", "args": [ diff --git a/AGENTS.md b/AGENTS.md index 327bf9c..0e5648d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,7 +12,7 @@ Engine (llama-swap) · Builtin-Routing-Gateway (`model: auto`) · MC2 (FastAPI + - **System:** Bosgame M5 (AMD Strix Halo APU) - **Arbeitsspeicher (RAM/VRAM):** 128 GB Shared Memory (ca. 122.7 GB nutzbar). - **Inference-Limit:** Modelle im GGUF-Format dürfen maximal ca. 100-110 GB groß sein (entspricht ca. 150B Parametern bei Q4_K_M). Größere Modelle (wie 200B+ oder 2T Parameter) **können lokal nicht ausgeführt werden** und sind auszuschließen, es sei denn, es handelt sich um stark quantisierte MoEs. -**Gedächtnis & Dienste:** Hermes ist das autonome Agenten-Gehirn („Lucy"). Mem0 läuft als dedizierter semantischer Langzeit-Gedächtnis-Sidecar (`mem0-service` auf `:8765`) und wird von Hermes via MCP (`mcp_memory.py`) eingebunden. Governor, Zed-Workflows und alte Mittelschichten sind komplett gelöscht. +**Gedächtnis & Dienste:** Hermes ist das autonome Agenten-Gehirn („Lucy") **und die alleinige Gedächtnis-Wahrheit** — es führt sein Gedächtnis selbst. Der frühere Sidecar auf `:8765` samt Memory-MCP-Server und MC2-Memory-Plugin wurde am 07.08.2026 abgelöst und am 27.08.2026 restlos ausgebaut (`docs/wissen/VERDIKTE.md`): MC2 hat **keine** `/api/memory`-Routen mehr, nichts darf mehr dorthin greifen. Governor, Zed-Workflows und alte Mittelschichten sind komplett gelöscht. ## Sprache (nicht verhandelbar) - **Alles User-Sichtbare ist Deutsch:** UI-Texte, Fehlermeldungen, Update-/Radar-Meldungen, diff --git a/backend/config.py b/backend/config.py index 1f5be42..af24707 100644 --- a/backend/config.py +++ b/backend/config.py @@ -19,13 +19,9 @@ MODELS_DIR = Path(os.environ.get("MC_MODELS_DIR", "/srv/models")) # Persistent neben den Modellen (übersteht Deploys). TTL = Frische-Fenster. DISCOVER_CACHE_PATH = Path(os.environ.get("MC_DISCOVER_CACHE", str(MODELS_DIR / "mc2-discover.json"))) DISCOVER_TTL = int(os.environ.get("MC_DISCOVER_TTL", "43200")) # 12 h -# Geteiltes Gedächtnis (SQLite, WAL). Persistent neben den Modellen. -# Hinweis: nur noch für die einmalige Mem0-Migration relevant — das aktive Gedächtnis -# liegt jetzt in Mem0/Chroma hinter dem Sidecar (siehe MEM0_SERVICE_URL). -MEMORY_DB = Path(os.environ.get("MC_MEMORY_DB", str(MODELS_DIR / "mc2-memory.db"))) -# Mem0-Sidecar (auto-lernendes, semantisches Gedächtnis). Läuft im ~/.mem0/venv (Python 3.12), -# weil mem0+chromadb unter dem 3.14-Backend nicht laufen. MC2 spricht ihn lokal per HTTP an. -MEM0_SERVICE_URL = os.environ.get("MC_MEM0_SERVICE_URL", "http://127.0.0.1:8765").rstrip("/") +# Gedächtnis: MC2 hält KEINS mehr. Bis August 2026 lief hier erst eine eigene SQLite-DB, +# dann ein semantischer Sidecar auf :8765 — beides ist abgelöst, der Port ist tot. +# Einzige Gedächtnis-Wahrheit ist jetzt Hermes selbst (HERMES_API_URL, siehe unten). # Befehl-Vorlage für llama-swap: {model}=GGUF-Pfad, {ctx}=Kontext, ${PORT} bleibt stehen. # Hinweis: --prompt-cache/--prompt-cache-all sind llama-CLI-Flags, NICHT llama-server — # llama-server lehnt sie ab ("invalid argument") und startet dann nicht. Prompt-Caching @@ -72,7 +68,7 @@ V1_UPSTREAM = os.environ.get("MC_V1_UPSTREAM", "").rstrip("/") HERMES_API_URL = os.environ.get("HERMES_API_URL", "http://127.0.0.1:8642").rstrip("/") # API-Key der Hermes-`api_server`-Plattform (~/.hermes/.env: API_SERVER_KEY). Nötig für # /v1/chat/completions (Voice-Pipeline) — Bearer-Auth, sonst 401. Derselbe volle Agent -# (Tools + geteiltes Mem0) wie CLI/Telegram, nur über HTTP. +# (Tools + eigenes Gedächtnis) wie CLI/Telegram, nur über HTTP. def _read_hermes_env(key: str) -> str: """Liest einen Schlüssel aus ~/.hermes/.env (Fallback, falls nicht in der Prozess-Env). Der MC2-Dienst erbt die Hermes-Secrets sonst nicht.""" @@ -97,7 +93,8 @@ HERMES_API_KEY = ( HERMES_API_MODEL = os.environ.get("HERMES_API_MODEL", "hermes") # --- Voice-Sidecar (STT faster-whisper + TTS Piper/Chatterbox) --------------- -# Eigenes Python-3.12-venv (~/.voice/venv), analog Mem0-Sidecar. MC2 proxyt nach außen. +# Eigenes Python-3.12-venv (~/.voice/venv), weil Parakeet/Piper nicht ins 3.14-Backend-venv +# passen. MC2 proxyt nach außen. VOICE_SERVICE_URL = os.environ.get("MC_VOICE_SERVICE_URL", "http://127.0.0.1:8650").rstrip("/") # Box-Konsole: ttyd-Web-Terminal (echte Login-Shell). Bindet NUR an Loopback # (127.0.0.1:7682, base-path /console) und wird von MC2 über den ohnehin offenen Port 9001 diff --git a/backend/routers/connect.py b/backend/routers/connect.py index eac9199..2844fda 100644 --- a/backend/routers/connect.py +++ b/backend/routers/connect.py @@ -1,4 +1,4 @@ -"""Connect-Endpoint: erzeugt IDE-/Agent-Snippets (auf den Gateway + Memory-MCP).""" +"""Connect-Endpoint: erzeugt IDE-/Agent-Snippets für den Gateway.""" from fastapi import APIRouter from services.connect import DEFAULT_HOST, build_snippets, check_health @@ -7,14 +7,11 @@ router = APIRouter(prefix="/api") @router.get("/connect") -def connect(host: str = DEFAULT_HOST, mcp_path: str | None = None) -> dict: - kwargs = {} - if mcp_path: - kwargs["mcp_script_path"] = mcp_path - return build_snippets(host=host, **kwargs) +def connect(host: str = DEFAULT_HOST) -> dict: + return build_snippets(host=host) @router.get("/connect/health") def connect_health() -> dict: - """Live-Status der zwei Leitungen (Gateway + Gedächtnis) für den Verbinden-Tab.""" + """Live-Status der drei Leitungen (Gateway, Gedächtnis, Desktop-Gateway) für den Verbinden-Tab.""" return check_health() diff --git a/backend/routers/gateway_proxy.py b/backend/routers/gateway_proxy.py index 77fea05..23b45b5 100644 --- a/backend/routers/gateway_proxy.py +++ b/backend/routers/gateway_proxy.py @@ -22,6 +22,13 @@ _LANG_DIRECTIVE = os.environ.get( "Quellcode, Bezeichner und Shell-Befehle bleiben unverändert.") +# Deckel für die Bild-Weiche. Ohne ihn wächst die Wartezeit linear mit der Bildzahl: +# je Bild bis zu 2 Versuche à _BILD_TIMEOUT_S, und der Client hängt so lange am offenen +# Request. Über _BILD_MAX Bilder wird gar nicht erst beschrieben — der Aufrufer fällt +# dann auf die normale Vision-Umleitung zurück (ehrlich langsam statt scheinbar hängend). +_BILD_TIMEOUT_S = float(os.environ.get("MC_CODER_IMAGE_TIMEOUT_S", "240")) +_BILD_MAX = int(os.environ.get("MC_CODER_IMAGE_MAX", "4")) + # Bild-Beschreibung für Coder-Ziele: Prompt bewusst auf wörtliche Wiedergabe von # Code/Fehlermeldungen getrimmt — der Coder arbeitet nur mit diesem Text weiter. _BILD_BESCHREIB_PROMPT = os.environ.get( @@ -85,6 +92,10 @@ async def _bilder_fuer_coder_beschreiben(body: dict, client, vision_alias: str) for i, part in enumerate(m["content"]): if isinstance(part, dict) and part.get("type") in IMAGE_PART_TYPES: fundstellen.append((m, i, part)) + if len(fundstellen) > _BILD_MAX: + log.warning("Bild-Weiche v2: %s Bilder (Deckel %s) — Request geht an das Vision-Modell " + "statt einzeln beschrieben zu werden", len(fundstellen), _BILD_MAX) + return False for nr, (msg, idx, part) in enumerate(fundstellen, start=1): frage = { "model": vision_alias, @@ -99,7 +110,7 @@ async def _bilder_fuer_coder_beschreiben(body: dict, client, vision_alias: str) text = "" for versuch in (1, 2): try: - async with httpx.AsyncClient(timeout=240.0) as c: + async with httpx.AsyncClient(timeout=_BILD_TIMEOUT_S) as c: r = await c.post(f"{LLAMA_SWAP_URL}/v1/chat/completions", json=frage) if r.status_code == 200: text = ((r.json().get("choices") or [{}])[0].get("message") or {}).get("content") or "" @@ -138,7 +149,15 @@ def _inject_language(body: dict, alias: str) -> None: async def models(request: Request): client = request.app.state.gw_client # geteilter Keep-Alive-Client (siehe app.py lifespan) r = await client.get(f"{LLAMA_SWAP_URL}/v1/models", timeout=10.0) - data = r.json() + try: + data = r.json() + except ValueError: + # Engine antwortet, aber nicht mit JSON (Startphase/Fehlerseite) — ehrlicher 502 + # statt eines 500ers aus dem Parser. + log.warning("/v1/models: Engine-Antwort ist kein JSON (HTTP %s): %.200s", r.status_code, r.text) + return JSONResponse( + {"error": {"message": "Engine lieferte keine gültige Modell-Liste.", + "type": "upstream_error"}}, status_code=502) # Aufgeräumt (07/2026): Die Router-Lanes (coding/chat) werden NICHT mehr als „Modell" # angeboten — sie verwirrten (coding vs. coder) und seit dem Zed-Aus wählt sie niemand # mehr. Das Routing bleibt erhalten (siehe _proxy), sie stehen nur nicht mehr in der Liste. @@ -187,7 +206,20 @@ async def models(request: Request): async def _proxy(path: str, request: Request): - body = await request.json() + # Ungültige Payloads gehören dem Client, nicht dem Server: ohne diese Prüfung wirft + # request.json() bzw. body.get(...) durch und der Aufrufer bekommt einen 500er + # (gemessen 27.08.2026: Rohtext, leerer Body, JSON-Liste, JSON-String und null — 5/5 mal 500). + try: + body = await request.json() + except Exception: + return JSONResponse( + {"error": {"message": "Ungültiger Request-Body: JSON erwartet.", + "type": "invalid_request_error"}}, status_code=400) + if not isinstance(body, dict): + return JSONResponse( + {"error": {"message": "Ungültiger Request-Body: JSON-Objekt erwartet, " + f"'{type(body).__name__}' bekommen.", + "type": "invalid_request_error"}}, status_code=400) _apply_no_think_marker(body) # Lucy-Voice-Schnellspur: Marker strippen + Thinking aus requested = str(body.get("model") or "auto") if requested.lower() in ("auto", "chat", "coding"): diff --git a/backend/routers/skills.py b/backend/routers/skills.py index 258f869..c3a7352 100644 --- a/backend/routers/skills.py +++ b/backend/routers/skills.py @@ -7,6 +7,20 @@ from pydantic import BaseModel router = APIRouter(prefix="/api") + +def _hermes_name(ordner: str) -> str: + """Repo-Ordnername -> Hermes-Skillname. + + deploy/deploy.sh kopiert `deploy/skills/` nach `~/.hermes/skills/` + (`tr '-' '_'`), weil Hermes keine Bindestriche in Skillnamen mag. Ohne dieselbe + Umschreibung hier bekam Hermes den Ordnernamen MIT Bindestrich und fand den Skill + nicht - betroffen waren 7 der 12 Skills (betrieb-playbook, konzept-fliessband, + llm-wiki, morning-report, pc-pfad-cache, projekt-start, trend-radar): der Startknopf + meldete Erfolg, ausgefuehrt wurde nichts. deploy.sh bleibt die Quelle der Wahrheit. + """ + return ordner.replace("-", "_") + + class RunSkillRequest(BaseModel): skill_name: str @@ -57,8 +71,11 @@ def list_skills(): skills.append({ "name": entry.name, + # Der Name, unter dem Hermes den Skill kennt - auch fuer den Laufend- + # Vergleich, weil im Prozess-cmdline genau dieser Name steht. + "hermes_name": _hermes_name(entry.name), "description": description or "Keine Beschreibung verfügbar.", - "running": entry.name in running_skills + "running": _hermes_name(entry.name) in running_skills }) return {"skills": skills} @@ -70,13 +87,15 @@ def run_skill(req: RunSkillRequest): # Fallback falls lokal (auf Windows) entwickelt wird return {"ok": False, "err": "Hermes CLI nicht gefunden (~/.local/bin/hermes fehlt). Bist du lokal unterwegs?"} - # Entspricht: hermes -z "Führe den 'X' Skill aus" chat - cmd = [hermes_bin, "-z", f"Führe den '{req.skill_name}' Skill aus", "chat"] + # Entspricht: hermes -z "Führe den 'X' Skill aus" chat - mit dem Namen, den Hermes + # nach dem Deploy-Sync wirklich kennt (Bindestriche -> Unterstriche, s. _hermes_name). + skill = _hermes_name(req.skill_name) + cmd = [hermes_bin, "-z", f"Führe den '{skill}' Skill aus", "chat"] try: - log_path = os.path.expanduser(f"~/.hermes/logs/skill_{req.skill_name.replace('/', '_')}.log") + log_path = os.path.expanduser(f"~/.hermes/logs/skill_{skill.replace('/', '_')}.log") os.makedirs(os.path.dirname(log_path), exist_ok=True) - with open(log_path, "a") as f: - f.write(f"\n--- Starting Skill: {req.skill_name} ---\n") + with open(log_path, "a", encoding="utf-8") as f: + f.write(f"\n--- Starting Skill: {skill} ---\n") subprocess.Popen(cmd, stdout=f, stderr=subprocess.STDOUT) return {"ok": True, "msg": f"Skill '{req.skill_name}' erfolgreich angestoßen."} except Exception as e: diff --git a/backend/routers/system.py b/backend/routers/system.py index 7ec3eeb..9f8e1f3 100644 --- a/backend/routers/system.py +++ b/backend/routers/system.py @@ -10,7 +10,7 @@ import os import subprocess import httpx -from config import GATEWAY_URL, HERMES_API_URL, LLAMA_SWAP_URL, MEM0_SERVICE_URL, V1_UPSTREAM, VOICE_SERVICE_URL +from config import GATEWAY_URL, HERMES_API_URL, LLAMA_SWAP_URL, V1_UPSTREAM, VOICE_SERVICE_URL from fastapi import APIRouter from pydantic import BaseModel from services import backup as backup_svc @@ -42,13 +42,6 @@ def history(minutes: int = 60) -> dict: return metrics_history.history(minutes) -def _mem0_reachable() -> bool: - try: - return httpx.get(f"{MEM0_SERVICE_URL}/health", timeout=2).status_code == 200 - except Exception: - return False - - def _voice_reachable() -> bool: try: return httpx.get(f"{VOICE_SERVICE_URL}/health", timeout=2).status_code == 200 diff --git a/backend/routers/voice.py b/backend/routers/voice.py index 5a5faa8..a86a8ea 100644 --- a/backend/routers/voice.py +++ b/backend/routers/voice.py @@ -3,7 +3,7 @@ Voice-Endpoints für „Mit Hermes reden" (Browser-Voice + 3D-Avatar). Dünner Layer: STT/TTS werden zum Voice-Sidecar (:8650) geproxyt; der Chat geht an den Hermes-`api_server` (:8642, OpenAI-kompatibel) — denselben vollen Agenten mit Tools + -geteiltem Mem0 wie CLI/Telegram. Mit stabilem `X-Hermes-Session-Id` hält die Plattform den +eigenem Gedächtnis wie CLI/Telegram. Mit stabilem `X-Hermes-Session-Id` hält die Plattform den Transcript server-seitig, daher schickt der Client je Turn nur die neue User-Nachricht. LAN-only (kein Token in der 2.0-Phase), wie die übrigen MC2-Endpoints. @@ -169,7 +169,7 @@ def voice_metrics() -> dict: @router.get("/voice/trace") def voice_trace(limit: int = 20) -> dict: """Per-Turn-Trace: die letzten `limit` Chat-Turns mit Stufen-Breakdown (STT · Vision · Hirn · - Generierung, Mem0 als Unter-Detail). Neueste zuerst. Für die Latenz-Ansicht im Cockpit — + Generierung). Neueste zuerst. Für die Latenz-Ansicht im Cockpit — damit man den EINEN langsamen Turn sieht, den ein Durchschnitt verschluckt.""" return {"turns": get_trace(limit)} @@ -289,8 +289,8 @@ async def voice_chat(body: ChatIn) -> StreamingResponse: headers["X-Hermes-Session-Key"] = body.session_key async def gen(): - # Per-Turn-Trace: sammelt STT (davor, geparkt) + Vision + Hirn-TTFT + Generierung + Mem0 - # (Rückruf während) zu EINEM Datensatz -> die Latenz-Ansicht zeigt den einzelnen Hänger. + # Per-Turn-Trace: sammelt STT (davor, geparkt) + Vision + Hirn-TTFT + Generierung zu EINEM + # Datensatz -> die Latenz-Ansicht zeigt den einzelnen Hänger. trace = TurnTrace(session_id=body.session_id, kind="voice") first = True first_content = True @@ -325,7 +325,7 @@ async def voice_chat(body: ChatIn) -> StreamingResponse: payload = {"model": body.model or HERMES_API_MODEL, "messages": messages, "stream": True} # Lucys Hirn (Qwen3.6) ist ein Thinking-Modell -> für die gesprochene Assistentin Thinking AUS, # sonst generiert es tausende Reasoning-Token VOR der kurzen Antwort (gemessen: 11k Token, ~30s TTFB). - # Gleiches Muster wie die fast-Spur im Gateway (gateway_proxy.py) und die Mem0-Extraktion. + # Gleiches Muster wie die fast-Spur im Gateway (gateway_proxy.py). if os.environ.get("MC_VOICE_NO_THINK", "1") not in ("0", "false", "False"): payload["chat_template_kwargs"] = {"enable_thinking": False} try: @@ -342,7 +342,7 @@ async def voice_chat(body: ChatIn) -> StreamingResponse: if first: # Time-To-First-Byte des Hermes-Streams (Verbindungs-Overhead) trace.note_ttfb() first = False - # Erster CONTENT-Delta = echte Hirn-Latenz (Agent-Overhead + Mem0 + LLM-TTFT) — + # Erster CONTENT-Delta = echte Hirn-Latenz (Agent-Overhead + Gedächtnis + LLM-TTFT) — # chat_ttfb misst nur den SSE-Start (~5 ms) und ist dafür blind. if first_content and b'"content"' in chunk: trace.note_first_content() diff --git a/backend/routers/zeitmaschine.py b/backend/routers/zeitmaschine.py index 5b5fe33..60b1021 100644 --- a/backend/routers/zeitmaschine.py +++ b/backend/routers/zeitmaschine.py @@ -33,7 +33,7 @@ def list_snapshots() -> dict: @router.get("/zeitmaschine/inhalt") def snapshot_contents(file: str) -> dict: - """Top-Level-Komponenten eines Snapshots (mem0, hermes, llama-swap, MANIFEST …).""" + """Top-Level-Komponenten eines Snapshots (hermes, llama-swap, MANIFEST …).""" if not _FILE_RX.match(file): raise HTTPException(400, "Ungültiger Snapshot-Name.") p = backup_svc.BACKUP_DIR / file diff --git a/backend/services/backup.py b/backend/services/backup.py index db42a1c..14120f3 100644 --- a/backend/services/backup.py +++ b/backend/services/backup.py @@ -1,5 +1,5 @@ """ -Voll-Zustands-Backup (mem0 + Hermes-Configs/Secrets + llama-swap config). +Voll-Zustands-Backup (Hermes-Configs/Secrets + llama-swap config). Delegiert an deploy/backup.sh (eine Quelle der Wahrheit, identisch zum systemd-Timer); Restore läuft bewusst nur per CLI (deploy/restore.sh) — siehe docs/BACKUP.md. """ diff --git a/backend/services/connect.py b/backend/services/connect.py index 0892729..4d821af 100644 --- a/backend/services/connect.py +++ b/backend/services/connect.py @@ -1,7 +1,13 @@ """ Connect: erzeugt saubere, getestete Konfig-Snippets für IDEs/Agenten auf dem LOKALEN PC (separate Maschine im LAN). Alle zeigen auf den **Gateway** der Box -(reale Modelle coder/heavy/vision, Cockpit-Port :9001/v1) + den **Shared-Memory-MCP** (MC :9001). +(reale Modelle coder/heavy/vision, Cockpit-Port :9001/v1). + +Gedächtnis ist hier bewusst KEINE eigene Leitung mehr: bis August 2026 gab es dafür einen +Memory-MCP-Server gegen MC2s /api/memory; seit dessen Ablösung (docs/wissen/VERDIKTE.md, +07.08.2026) führt Hermes sein Gedächtnis +selbst — es hängt am Agenten, nicht am Gateway. check_health() prüft es weiterhin (Leitung 2), +es ist nur nichts mehr zu konfigurieren. Wichtig: Host ist die LAN-IP der Box (NICHT eine Proxy-Domain) — das war in v1 die häufigste Fehlerquelle. Der Aufrufer übergibt den Host explizit. @@ -40,9 +46,7 @@ def _gw(host: str) -> str: return f"http://{host}:{PORT}/v1" -def build_snippets(host: str = DEFAULT_HOST, - mcp_script_path: str = r"F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py", - mcp_python: str = "python") -> dict: +def build_snippets(host: str = DEFAULT_HOST) -> dict: gw = _gw(host) mc_url = f"http://{host}:{PORT}" @@ -88,16 +92,6 @@ def build_snippets(host: str = DEFAULT_HOST, f'export ANTHROPIC_MODEL="coder"' ) - memory_mcp = json.dumps({ - "mcpServers": { - "mission-control-memory": { - "command": mcp_python, - "args": [mcp_script_path], - "env": {"MC_URL": mc_url}, - } - } - }, indent=2) - return { "host": host, "gateway_url": gw, @@ -116,11 +110,8 @@ def build_snippets(host: str = DEFAULT_HOST, "API-Profile je Modus: Code→coder · Architect/Orchestrator→heavy · " "Ask/Debug→Lane 'chat' (virtuelles Modell, wählt selbst fast oder heavy)."}, "claude_code": {"label": "Claude Code", "lang": "bash", "snippet": claude_code, - "note": "Für die starken Sessions. Lokal-Betrieb bräuchte einen Anthropic⇄OpenAI-Übersetzer vor dem Gateway; Gedächtnis-Anbindung via Memory-MCP unten."}, + "note": "Für die starken Sessions. Lokal-Betrieb bräuchte einen Anthropic⇄OpenAI-Übersetzer vor dem Gateway."}, }, - # Leitung 2 — das GEDÄCHTNIS. Separater MCP-Server, gilt zusätzlich zu jedem Tool oben. - "memory": {"label": "Shared Memory (MCP)", "lang": "json", "snippet": memory_mcp, - "note": "Eigene Leitung: MCP-Block für jedes MCP-fähige Tool. mcp_memory.py muss lokal liegen."}, } diff --git a/backend/services/sentry.py b/backend/services/sentry.py index 2b01be8..01945c6 100644 --- a/backend/services/sentry.py +++ b/backend/services/sentry.py @@ -1,7 +1,7 @@ """ Health-Wächter der Box (Lucy-Proaktivität, Faden A3). -Prüft periodisch die Kern-Dienste (Engine, Agent-Hirn, Hermes-Gateway, Mem0, +Prüft periodisch die Kern-Dienste (Engine, Agent-Hirn, Hermes-Gateway, Voice-Sidecar, Platte) und meldet ZUSTANDSWECHSEL in den Melde-Briefkasten (services/announce.py → Lucy spricht es) und via notify.sh (Telegram). diff --git a/backend/services/voice_metrics.py b/backend/services/voice_metrics.py index e31433c..76f9b72 100644 --- a/backend/services/voice_metrics.py +++ b/backend/services/voice_metrics.py @@ -11,14 +11,14 @@ Zwei Sichten auf dieselben Messungen: **Was MC2 messen kann — und was nicht:** MC2 proxyt den Chat nur an Hermes (:8642). Die Stufen STT, Vision, Hirn-TTFT (Zeit bis zum ersten Inhalts-Token) und Generierung sind hier direkt messbar. Der -**Mem0-Retrieve** läuft zwar in Hermes, ruft aber MC2s `/api/memory` per HTTP zurück → messbar und als -Unter-Detail INNERHALB der Hirn-Zeit ausgewiesen (kein Doppelzählen). Die **Tool-Runden** dagegen laufen -im Hermes-LLM-Loop ohne Callback an MC2 → für MC2 unsichtbar, sie stecken im „Generierung"-Bucket. +**Gedächtnis-Abruf** dagegen läuft seit der Ablösung des Sidecars (07.08.2026) Hermes-intern — es +gibt keinen Rückruf an MC2 mehr, also auch keine Messung; er steckt jetzt in der Hirn-Zeit. Ebenso die +**Tool-Runden**: im Hermes-LLM-Loop ohne Callback an MC2 → unsichtbar, im „Generierung"-Bucket. -STT (davor) und Mem0-Retrieve (währenddessen) sind separate HTTP-Requests ohne Turn-ID. Auf einem -EIN-Nutzer-Gerät genügt eine schlanke Best-Effort-Korrelation: die zuletzt gemessene STT-Dauer bzw. der -letzte Retrieve werden global „geparkt" und vom nächsten Chat-Turn eingesammelt (mit Frist-/Reihenfolge- -Check). Kein Turn-ID-Durchreichen durch den Lucy-Client nötig. +STT läuft als eigener HTTP-Request VOR dem Turn, ohne Turn-ID. Auf einem EIN-Nutzer-Gerät genügt eine +schlanke Best-Effort-Korrelation: die zuletzt gemessene STT-Dauer wird global „geparkt" und vom +nächsten Chat-Turn eingesammelt (mit Frist-Check). Kein Turn-ID-Durchreichen durch den Lucy-Client +nötig. In-Memory + thread-safe (keine Datei-I/O — Latenz-Telemetrie ist transient, Restart = Reset). """ @@ -34,11 +34,11 @@ _STAGES: dict[str, deque] = {} _TURNS: deque = deque(maxlen=60) # letzte N vollständige Chat-Turns (Per-Turn-Trace) # Bekannte Stufen (für stabile UI-Reihenfolge); unbekannte werden trotzdem erfasst. -STAGES = ("stt", "vision", "memory_retrieve", "chat_ttfb", "chat_first_content", "tts") +STAGES = ("stt", "vision", "chat_ttfb", "chat_first_content", "tts") -# Best-effort-Korrelation (Ein-Nutzer-Gerät): zuletzt gemessene STT-Dauer / Mem0-Retrieve, je -# (ms, perf_counter-Zeitstempel). Der nächste passende Chat-Turn sammelt sie ein und leert sie. -_PARKED: dict[str, tuple[float, float] | None] = {"stt": None, "retrieve": None} +# Best-effort-Korrelation (Ein-Nutzer-Gerät): zuletzt gemessene STT-Dauer als +# (ms, perf_counter-Zeitstempel). Der nächste Chat-Turn sammelt sie ein und leert sie. +_PARKED: dict[str, tuple[float, float] | None] = {"stt": None} def record_stage(stage: str, ms: float) -> None: @@ -53,8 +53,8 @@ def record_stage(stage: str, ms: float) -> None: def park(kind: str, ms: float) -> None: - """Eine Messung, die NICHT im Chat-Request selbst passiert (STT davor, Mem0-Retrieve als - Rückruf während), global parken, damit der nächste Chat-Turn sie einsammeln kann.""" + """Eine Messung, die NICHT im Chat-Request selbst passiert (STT läuft davor), global parken, + damit der nächste Chat-Turn sie einsammeln kann.""" if ms is None or ms < 0 or kind not in _PARKED: return with _LOCK: @@ -71,17 +71,6 @@ def _take_stt(max_age: float = 20.0) -> float | None: return None -def _take_retrieve(since_perf: float, max_age: float = 90.0) -> float | None: - """Geparkten Mem0-Retrieve einsammeln, wenn er NACH dem Turn-Start kam (Rückruf während des - Turns) und frisch ist.""" - with _LOCK: - v = _PARKED.get("retrieve") - if v and v[1] >= since_perf and (time.perf_counter() - v[1]) <= max_age: - _PARKED["retrieve"] = None - return round(v[0], 1) - return None - - class Timer: """Context-Manager: misst die verstrichene Zeit und verbucht sie auf `stage`. Funktioniert um `await`-Aufrufe herum (enter → await → exit).""" @@ -102,8 +91,7 @@ class TurnTrace: """Ein Per-Turn-Trace für den Voice/Lucy-Chatpfad. In `voice.py` über die Dauer eines Chat-Turns gehalten; `commit()` schreibt den Datensatz in den Ringpuffer UND speist die rollenden Stats. - Balken-Stufen (zeitlich DISJUNKT, ergeben zusammen den Turn): stt · vision · hirn · gen. - Unter-Detail: mem0 (Teil VON hirn, wird separat ausgewiesen, aber NICHT zum Balken addiert).""" + Balken-Stufen (zeitlich DISJUNKT, ergeben zusammen den Turn): stt · vision · hirn · gen.""" def __init__(self, session_id: str = "", kind: str = "voice") -> None: self.id = uuid.uuid4().hex[:8] @@ -113,7 +101,7 @@ class TurnTrace: self.session_id = (session_id or "")[:24] self.kind = kind self.vision_ms: float | None = None # Bildschirm-Beschreibung (falls Bilder) - self.hirn_ms: float | None = None # Zeit bis zum ersten Inhalts-Token (Agent + Mem0 + TTFT) + self.hirn_ms: float | None = None # Zeit bis zum ersten Inhalts-Token (Agent + Gedächtnis + TTFT) self.had_images = False self.error: str | None = None @@ -130,7 +118,7 @@ class TurnTrace: record_stage("chat_ttfb", (time.perf_counter() - self._brain0) * 1000.0) # SSE-Start (~5 ms), nur rollend def note_first_content(self) -> None: - """Erster Inhalts-Delta = echte Hirn-Latenz (Agent-Overhead + Mem0 + LLM-TTFT).""" + """Erster Inhalts-Delta = echte Hirn-Latenz (Agent-Overhead + Gedächtnis + LLM-TTFT).""" ms = (time.perf_counter() - self._brain0) * 1000.0 self.hirn_ms = round(ms, 1) record_stage("chat_first_content", ms) @@ -138,7 +126,6 @@ class TurnTrace: def commit(self) -> dict: total = (time.perf_counter() - self.perf0) * 1000.0 stt = _take_stt() # rollend bereits in /voice/stt erfasst - mem0 = _take_retrieve(self.perf0) # rollend bereits in /api/memory erfasst # Generierung = alles nach dem ersten Inhalts-Token bis Stream-Ende. gen = round(total - self.hirn_ms, 1) if self.hirn_ms is not None else None rec = { @@ -151,7 +138,6 @@ class TurnTrace: "vision_ms": self.vision_ms, "hirn_ms": self.hirn_ms, "gen_ms": gen if (gen is None or gen >= 0) else 0.0, - "mem0_ms": mem0, "total_ms": round(total, 1), "error": self.error, } diff --git a/backend/steward.py b/backend/steward.py index b77ab76..134c5fa 100644 --- a/backend/steward.py +++ b/backend/steward.py @@ -1,7 +1,7 @@ """ MC2-Steward — die Wächter-Loops als EIGENER Prozess (UMBAU v3, P2). -Bisher hingen Re-Warm-Wächter, Health-Wächter (sentry) und Mem0-Auto-Dedupe am +Bisher hingen Re-Warm-Wächter und Health-Wächter (sentry) am Lebenszyklus des Steuerpult-Webservers (app.py-Lifespan): jeder MC2-Neustart riss den Wächtern Timing und Flanken-Gedächtnis weg — und ein TOTES Steuerpult konnte sich prinzipbedingt nicht selbst melden. Hier laufen DIESELBEN Loops (unveränderte @@ -11,14 +11,16 @@ Module) als eigener Mini-Dienst (mc2-steward.service, Restart=always): In-Process-Nudge aus llamaswap.write_config) • sentry.sentry_loop — Health-Flanken → Briefkasten (HTTP an MC2) + Telegram; beobachtet im Steward-Modus AUCH MC2 selbst + mc2-gateway - • memory.auto_dedupe_loop — Gedächtnis-Dubletten (HTTP an den Mem0-Sidecar) + +Das dritte Loop (Gedächtnis-Dubletten gegen den Sidecar auf :8765) ist mit dessen Ablösung +am 07.08.2026 entfallen — Hermes führt sein Gedächtnis selbst (docs/wissen/VERDIKTE.md). BEWUSST NICHT hier: reminders_loop — der teilt sich Datei UND CRUD-Pfade mit dem /api/reminders-Router (Zwei-Schreiber-Risiko auf mc2-reminders.json); er bleibt im Steuerpult. Der Briefkasten-Store gehört weiter EXKLUSIV dem MC2-Prozess — dieser Prozess liefert Meldungen per HTTP ab (announce.py, MC_ANNOUNCE_HTTP). -Die Loop-Schalter (MC_REWARM_ENABLED / MC_SENTRY_ENABLED / MC_MEM_DEDUPE_ENABLED) +Die Loop-Schalter (MC_REWARM_ENABLED / MC_SENTRY_ENABLED) stehen in der MC2-Unit auf 0 und hier auf Default 1 — reiner Konfig-Split, kein Verhaltens-Code im Steuerpult angefasst. Zeilen dort entfernen = Rollback. """ @@ -28,7 +30,6 @@ import logging import os from config import CONFIG_PATH -from services import memory as memory_svc from services import sentry, warmer logging.basicConfig( @@ -66,10 +67,6 @@ async def main() -> None: warmer.INTERVAL, CONFIG_WATCH_S) if sentry.ENABLED: tasks.append(asyncio.create_task(sentry.sentry_loop())) - if memory_svc.AUTO_DEDUPE_ENABLED: - tasks.append(asyncio.create_task(memory_svc.auto_dedupe_loop())) - log.info("Mem0-Auto-Dedupe aktiv (alle %ss, Schwelle %s)", - memory_svc.AUTO_DEDUPE_INTERVAL, memory_svc.AUTO_DEDUPE_THRESHOLD) if not tasks: log.warning("steward: alle Loops per Env deaktiviert — nichts zu tun, Ende.") return diff --git a/deploy/agent-hooks/box-steckbrief-inject.sh b/deploy/agent-hooks/box-steckbrief-inject.sh index 7b02758..dc14b0f 100644 --- a/deploy/agent-hooks/box-steckbrief-inject.sh +++ b/deploy/agent-hooks/box-steckbrief-inject.sh @@ -28,7 +28,7 @@ hint="" # Stabile Anti-Flail-Orientierung: WER bin ich, WO laufen die Modelle, WAS ist tabu. ctx="$(cat <.tar.gz, behält die letzten N. # Läuft per systemd-Timer (täglich), manuell, oder über den UI-Snapshot-Button. # -# Inhalt: mem0 (Chroma + history.db) · ~/.hermes (config.yaml, .env, plugins/) · -# /etc/llama-swap/config.yaml · known-good/ (Versions-Manifest, s. u.) +# Inhalt: ~/.hermes (config.yaml, .env, plugins/) · /etc/llama-swap/config.yaml · +# known-good/ (Versions-Manifest, s. u.) +# Das abgeloeste Gedaechtnis-Sidecar (/srv/models, Port 8765) faellt seit 27.08.2026 weg — +# sein Datenverzeichnis existiert nicht mehr (Hintergrund: docs/wissen/VERDIKTE.md). # NICHT enthalten (bewusst): GGUF-Modelle (riesig, neu ladbar), MC2-Code (Git), venvs. # # ACHTUNG: das Tarball enthält ~/.hermes/.env (Secrets) → chmod 600, nicht in Git. @@ -20,16 +22,14 @@ RETAIN="${MC_BACKUP_RETAIN:-14}" # Off-Box-Ziel (leer = deaktiviert). Default: Proxmox-Host, eigener Key mit minimalem Recht. OFFSITE="${MC_BACKUP_OFFSITE:-root@192.168.178.108:/var/lib/vz/mc2-backups}" OFFSITE_KEY="${MC_BACKUP_OFFSITE_KEY:-$HOME/.ssh/mc2_offsite}" -MEM0_DIR="${MC_MEM0_DIR:-/srv/models/mem0}" LSWAP="${MC_CONFIG_PATH:-/etc/llama-swap/config.yaml}" HERMES="${HERMES_HOME:-$HOME/.hermes}" TS="$(date +%Y%m%d-%H%M%S)" STAGE="$(mktemp -d)" trap 'rm -rf "$STAGE"' EXIT -mkdir -p "$STAGE/mem0" "$STAGE/hermes" "$STAGE/llama-swap" +mkdir -p "$STAGE/hermes" "$STAGE/llama-swap" -[ -d "$MEM0_DIR" ] && cp -a "$MEM0_DIR/." "$STAGE/mem0/" || true [ -f "$HERMES/config.yaml" ] && cp -a "$HERMES/config.yaml" "$STAGE/hermes/" || true [ -f "$HERMES/.env" ] && cp -a "$HERMES/.env" "$STAGE/hermes/" || true [ -d "$HERMES/plugins" ] && cp -a "$HERMES/plugins" "$STAGE/hermes/plugins" || true @@ -60,7 +60,7 @@ SRC="${MC2_SRC:-$HOME/mission-control-v2}" HERMES_AGENT="${HERMES_AGENT_DIR:-$HOME/.hermes/hermes-agent}" UV="$(command -v uv || echo "$HOME/.local/bin/uv")" -# pip freeze je venv; mem0-venv ist uv-managed (kein pip-Modul) → uv als Fallback. +# pip freeze je venv; das voice-venv ist uv-managed (kein pip-Modul) → uv als Fallback. freeze_venv() { # $1 = python-Pfad, $2 = Zieldatei if [ ! -x "$1" ]; then echo "venv fehlt: $1" > "$2"; return 0; fi "$1" -m pip freeze > "$2" 2>/dev/null \ @@ -68,7 +68,6 @@ freeze_venv() { # $1 = python-Pfad, $2 = Zieldatei || echo "pip freeze fehlgeschlagen: $1" > "$2" } freeze_venv "$SRC/backend/.venv/bin/python" "$KG/pip-backend.txt" -freeze_venv "$HOME/.mem0/venv/bin/python" "$KG/pip-mem0.txt" freeze_venv "$HOME/.voice/venv/bin/python" "$KG/pip-voice.txt" { @@ -79,7 +78,7 @@ freeze_venv "$HOME/.voice/venv/bin/python" "$KG/pip-voice.txt" echo "llama.cpp : $(LD_LIBRARY_PATH=/opt/llamacpp-vulkan /usr/local/bin/llama-server --version 2>&1 | grep -m1 -o 'version: .*' || echo '?')" echo "llama-swap : $(/usr/local/bin/llama-swap --version 2>/dev/null | head -1 || echo '?')" echo "python-venvs :" - for P in "$SRC/backend/.venv/bin/python" "$HOME/.mem0/venv/bin/python" "$HOME/.voice/venv/bin/python"; do + for P in "$SRC/backend/.venv/bin/python" "$HOME/.voice/venv/bin/python"; do echo " $P → $("$P" --version 2>&1 || echo 'fehlt')" done } > "$KG/versions.txt" || true @@ -92,7 +91,7 @@ cat > "$STAGE/MANIFEST.txt" < Repo-Abzug):" + diff -u /etc/llama-swap/config.yaml deploy/llama-swap.config.yaml | head -40 || true + echo " Sichere die laufende Datei nach $SWAP_BAK" + # NOPASSWD für llama-swap Neustart ist vorausgesetzt (siehe AGENTS.md) + sudo cp /etc/llama-swap/config.yaml "$SWAP_BAK" + sudo cp deploy/llama-swap.config.yaml /etc/llama-swap/config.yaml + sudo systemctl restart llama-swap + echo " Rueckweg bei Verlust: sudo cp $SWAP_BAK /etc/llama-swap/config.yaml" + fi fi # 4. Systemd Units neu laden (falls sich .service Dateien geändert haben) @@ -35,7 +54,11 @@ for skill_dir in deploy/skills/*; do done # 5. Dienste neu starten +# ‼️ mc2-steward gehoert hier dazu: er laeuft aus DEMSELBEN Checkout (backend/steward.py). +# Ohne ihn lief der Waechter-Prozess nach jedem Deploy mit dem alten Code weiter — der +# Neustart wurde 27.08.2026 nachgetragen. `--user restart` auf einer nicht installierten +# Unit ist folgenlos, darum ohne Vorabpruefung. echo "Starte Backend neu..." -systemctl --user restart mc2-gateway.service mission-control-2.service +systemctl --user restart mc2-gateway.service mission-control-2.service mc2-steward.service echo "✅ Deployment erfolgreich abgeschlossen!" diff --git a/deploy/hermes-postcheck.sh b/deploy/hermes-postcheck.sh index 14e9117..09a8e8f 100644 --- a/deploy/hermes-postcheck.sh +++ b/deploy/hermes-postcheck.sh @@ -1,35 +1,22 @@ #!/usr/bin/env bash -# Post-Update-Check nach einem Hermes-Agent-Update: läuft unser geteiltes „Gehirn" -# (Mem0 + die mc2-memory-Integration) noch? Exit 0 = alles ok, sonst 1 → der Job wird -# im UI rot, damit ein kaputtes Gehirn sofort auffällt. +# Post-Update-Check nach einem Hermes-Agent-Update: laeuft unser "Gehirn" noch? +# Exit 0 = alles ok, sonst 1 -> der Job wird im UI rot, damit ein kaputtes Gehirn auffaellt. +# +# WICHTIG (27.08.2026) - VIER TOTE CHECKS ENTFERNT: bis hierher prueften die ersten Bloecke +# den abgeloesten Gedaechtnis-Sidecar (:8765), MC2s /api/memory und das zugehoerige +# Hermes-Plugin. Alle drei fielen am 07.08. weg (docs/wissen/VERDIKTE.md) - die Checks KONNTEN nicht +# mehr gruen werden. Folge: jedes Hermes-Update endete rot und wurde von autoupdate.sh +# zurueckgerollt. Kein Ersatz-Check auf Hermes native Gedaechtnis, weil es dafuer keinen +# nachgemessenen Endpunkt gibt - geraten waere eine Fassade. Der Tool-Smoke weiter unten +# laeuft ohnehin durch den ECHTEN Agenten und faengt ein kaputtes Gehirn. set -uo pipefail MC_URL="${MC_URL:-http://127.0.0.1:9001}" -MEM0_URL="${MEM0_SERVICE_URL:-http://127.0.0.1:8765}" HERMES="${HERMES_HOME:-$HOME/.hermes}" fail=0 echo "=== Hermes Post-Update: Gehirn-Check ===" -if curl -sf -m 5 "$MEM0_URL/health" >/dev/null 2>&1; then - echo "PASS · Mem0-Sidecar erreichbar" -else - echo "FAIL · Mem0-Sidecar NICHT erreichbar"; fail=1 -fi - -if curl -sf -m 8 "$MC_URL/api/memory" >/dev/null 2>&1; then - echo "PASS · /api/memory antwortet" -else - echo "FAIL · /api/memory antwortet nicht"; fail=1 -fi - -if grep -qE "^[[:space:]]*provider:[[:space:]]*'?mc2-memory'?" "$HERMES/config.yaml" 2>/dev/null \ - && grep -qE "memory_enabled:[[:space:]]*true" "$HERMES/config.yaml" 2>/dev/null; then - echo "PASS · memory.provider=mc2-memory aktiv" -else - echo "FAIL · memory.provider nicht mehr gesetzt (Config vom Update überschrieben?)"; fail=1 -fi - # --- Hermes-Runtime-Patch-Traeger (20.07.2026): ein Update setzt den Quellbaum --- # --- zurueck → unsere Fixes (needs_input-wartet, Startreife-Gate, Orphan-Guard, --- # --- Kontext-Vererbung, Etappen-Kette) hier RE-eintragen. Exit 10 = etwas neu --- @@ -49,14 +36,6 @@ else echo "WARN · hermes-patches/apply.py nicht gefunden ($PATCH_APPLY)" fi -if ( cd "$HERMES/hermes-agent" && HERMES_HOME="$HERMES" ./venv/bin/python -c \ - "import sys; sys.path.insert(0,'.'); from plugins.memory import load_memory_provider; p=load_memory_provider('mc2-memory'); assert p and p.name()=='mc2-memory'" \ - >/dev/null 2>&1 ); then - echo "PASS · mc2-memory-Plugin lädt unter dem neuen Hermes" -else - echo "FAIL · mc2-memory-Plugin lädt nicht (MemoryProvider-ABC geändert?)"; fail=1 -fi - # --- Config-Drift-Wächter (Lehre aus v0.18, 02.07.2026): Hermes fällt bei unbekannten --- # --- Config-Werten STILL auf Defaults zurück (approvals.mode 'auto' -> manual -> alle --- # --- Tools hingen in pending_approval). Solche Warnungen müssen den Job ROT machen. --- diff --git a/deploy/llama-swap.config.yaml b/deploy/llama-swap.config.yaml index b8c9ccc..d9b2422 100644 --- a/deploy/llama-swap.config.yaml +++ b/deploy/llama-swap.config.yaml @@ -4,7 +4,7 @@ globalTTL: 0 models: Qwen3.6-35B-A3B: - # parallel 2 + c 131072: 2 Slots à 65k (Slot 2 = Mem0-Lern-Extraktion, blockiert Voice-Turns + # parallel 2 + c 131072: 2 Slots à 65k (Slot 2 = Nebenlast/Hintergrund-Extraktion, blockiert Voice-Turns # nicht mehr); KV Q8_0 macht das speicherneutral zu vorher (65k f16). Bench 2026-07-02: # Q8_0 kostet 0 t/s, MTP n-max 3 = +26% vs. ohne Spec. (Q4_K-KV stand mal im Template, # lief aber NIE live — bewusst bei Q8_0 geblieben: Qualität vor ein paar GB, seit der @@ -78,7 +78,7 @@ models: out: [text] context: 32768 Qwen3-Reranker-0.6B: - # Gedächtnis-Zweitstufe (07.07., Rollen-Audit): ordnet Mem0-Suchtreffer nach echter + # Gedächtnis-Zweitstufe (07.07., Rollen-Audit): ordnet Gedächtnis-Suchtreffer nach echter # Relevanz (/v1/rerank, Mungert-GGUF — Community-Konvertierungen liefern oft Nullscores!). # Winzig (~0,7 GB) → in brains (verdrängungssicher); lädt in ~1-2 s, erste Anfrage wärmt. cmd: | diff --git a/deploy/mc2-backup.service b/deploy/mc2-backup.service index d82d5cd..18eedff 100644 --- a/deploy/mc2-backup.service +++ b/deploy/mc2-backup.service @@ -1,5 +1,5 @@ [Unit] -Description=MC2 Zustands-Backup (mem0 + Hermes-Configs/Secrets + llama-swap config) +Description=MC2 Zustands-Backup (Hermes-Configs/Secrets + llama-swap config) Documentation=file:%h/mission-control-v2/docs/BACKUP.md [Service] diff --git a/deploy/mc2-steward.service b/deploy/mc2-steward.service new file mode 100644 index 0000000..02a25a7 --- /dev/null +++ b/deploy/mc2-steward.service @@ -0,0 +1,37 @@ +# systemd-USER-Unit für den MC2-Steward — die Wächter-Loops als eigener Prozess (UMBAU v3 P2). +# Re-Warm-Wächter und Health-Sentry überleben damit jeden Steuerpult-Neustart, und der Sentry +# kann auch das Steuerpult SELBST + den mc2-gateway überwachen (MC_SENTRY_WATCH_MC2=1). +# Meldungen gehen per HTTP in den MC2-Briefkasten (MC_ANNOUNCE_HTTP); ist MC2 down, greift +# weiterhin der Telegram-Direktweg (notify.sh). +# Sudo-frei wie alle MC2-Units: ~/.config/systemd/user/ + systemctl --user. +# +# ‼️ NACHGETRAGEN 27.08.2026: Diese Unit lief auf der Box, fehlte aber im Repo — sie war weder +# versioniert noch vom Disaster-Recovery abgedeckt, obwohl backend/routers/system.py, +# services/maintenance.py (USER_SERVICES) und deploy/stack-postcheck.sh sie voraussetzen. +# Inhalt 1:1 von der laufenden Box übernommen (`systemctl --user cat mc2-steward`), nur die +# Description um den entfallenen Mem0-Dedupe-Loop gekürzt. Das Warm-Set-Drop-in liegt +# daneben in mc2-steward.service.d-warmset.conf — beim Ausrollen mitnehmen. +# +# Ablage: ~/.config/systemd/user/mc2-steward.service ; dann: +# systemctl --user daemon-reload && systemctl --user enable --now mc2-steward + +[Unit] +Description=MC2 Steward (Wächter: Re-Warm, Health-Sentry) +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +WorkingDirectory=%h/mission-control-v2/backend +ExecStart=%h/mission-control-v2/backend/.venv/bin/python steward.py +Environment=PYTHONPATH=%h/mission-control-v2 +Environment=MC_LLAMA_SWAP_URL=http://127.0.0.1:8080 +Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml +Environment=MC_MODELS_DIR=/srv/models +Environment=MC_ANNOUNCE_HTTP=http://127.0.0.1:9001 +Environment=MC_SENTRY_WATCH_MC2=1 +Restart=always +RestartSec=3 + +[Install] +WantedBy=default.target diff --git a/deploy/mc2-steward.service.d-warmset.conf b/deploy/mc2-steward.service.d-warmset.conf new file mode 100644 index 0000000..920fb25 --- /dev/null +++ b/deploy/mc2-steward.service.d-warmset.conf @@ -0,0 +1,11 @@ +# Drop-in für mc2-steward.service — Ablage auf der Box: +# ~/.config/systemd/user/mc2-steward.service.d/warmset.conf +# +# 26.07.2026 — Ko-Residenz ist nicht Warm-Pflicht. Die Gruppe `brains` enthaelt seit dem +# Umbau auch Modelle MIT TTL (Coder 90 min, Kritiker 30 min); ohne diese Liste hielte der +# Waechter sie faelschlich fuer dauerhaft faellig und arbeitete gegen die TTLs. +# ANFUEHRUNGSZEICHEN SIND PFLICHT: systemd trennt Environment= an Leerzeichen, ohne sie +# kommt nur das erste Modell an (live erlebt) — das Warm-Ziel waere still zu klein. +[Service] +Environment="MC_WARMSET=Qwen3-Embedding-0.6B Qwen3-Reranker-0.6B Qwen3.6-35B-A3B" +Environment=MC_WARMUP_RERANK=reranker diff --git a/deploy/mission-control-2.service b/deploy/mission-control-2.service index 15c8f90..ae33c78 100644 --- a/deploy/mission-control-2.service +++ b/deploy/mission-control-2.service @@ -19,19 +19,16 @@ Environment=MC_PORT=9001 Environment=MC_LLAMA_SWAP_URL=http://127.0.0.1:8080 Environment=MC_CONFIG_PATH=/etc/llama-swap/config.yaml Environment=MC_MODELS_DIR=/srv/models -# Geteiltes Gedächtnis = die bestehende v1-DB (Kontinuität bis/über Cutover). -Environment=MC_MEMORY_DB=/srv/models/mission-control-memory.db # Gateway-Auszug (UMBAU v3 P1): /v1 roh an den eigenständigen mc2-gateway-Prozess # durchreichen. Diese Zeile entfernen (+ daemon-reload + restart) = Rollback, MC2 # bedient /v1 wieder selbst. Environment=MC_V1_UPSTREAM=http://127.0.0.1:9010 -# Steward-Auszug (UMBAU v3 P2): Die Wächter-Loops (Re-Warm, Health-Sentry, Mem0-Dedupe) -# laufen jetzt im eigenen Dienst mc2-steward.service — hier deshalb AUS. Diese drei -# Zeilen entfernen (+ daemon-reload + restart) = Rollback (Loops wieder im Steuerpult). +# Steward-Auszug (UMBAU v3 P2): Die Wächter-Loops (Re-Warm, Health-Sentry) laufen jetzt im +# eigenen Dienst mc2-steward.service — hier deshalb AUS. Diese zwei Zeilen entfernen +# (+ daemon-reload + restart) = Rollback (Loops wieder im Steuerpult). # Der reminders_loop bleibt bewusst HIER (teilt Datei+CRUD mit /api/reminders). Environment=MC_REWARM_ENABLED=0 Environment=MC_SENTRY_ENABLED=0 -Environment=MC_MEM_DEDUPE_ENABLED=0 # KEIN MC_ENGINE_UPDATE_CMD-Override mehr: Das alte /usr/local/bin/update-llamacpp zog den # ROCm-Build nach /opt/llamacpp (totes Rollback-Dir) statt des aktiven Vulkan-Builds → Updates # liefen ins Leere ("DONE", aber nichts passierte). Ohne Override nutzt das Backend den Default diff --git a/deploy/restore.sh b/deploy/restore.sh index 7a839a5..2502f40 100644 --- a/deploy/restore.sh +++ b/deploy/restore.sh @@ -15,11 +15,13 @@ set -euo pipefail MODELS_DIR="${MC_MODELS_DIR:-/srv/models}" DEST_DIR="$MODELS_DIR/mc2-backups" -MEM0_DIR="${MC_MEM0_DIR:-/srv/models/mem0}" LSWAP="${MC_CONFIG_PATH:-/etc/llama-swap/config.yaml}" HERMES="${HERMES_HOME:-$HOME/.hermes}" SRC="${MC2_SRC:-$HOME/mission-control-v2}" -SERVICES="mem0-service mission-control-2 hermes-gateway" +# Alle User-Dienste, die von wiederhergestellter Config abhaengen. mc2-gateway (der +# /v1-Denkpfad) und mc2-steward (Waechter) fehlten hier bis 27.08.2026 — nach einem +# Restore liefen beide mit der ALTEN llama-swap-/Hermes-Config weiter. +SERVICES="mission-control-2 mc2-gateway mc2-steward hermes-gateway" OFFSITE="${MC_BACKUP_OFFSITE:-root@192.168.178.108:/var/lib/vz/mc2-backups}" OFFSITE_KEY="${MC_BACKUP_OFFSITE_KEY:-$HOME/.ssh/mc2_offsite}" OFFSITE_SSH="ssh -i $OFFSITE_KEY -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new" @@ -98,7 +100,6 @@ echo "--- Inhalt ---"; cat "$STAGE/MANIFEST.txt" 2>/dev/null || true; echo "---- if [ "$DRY" = 1 ]; then echo "[dry-run] würde zurücksetzen:" - [ -d "$STAGE/mem0" ] && echo " • mem0 → $MEM0_DIR (wird ersetzt)" [ -f "$STAGE/hermes/config.yaml" ] && echo " • $HERMES/config.yaml" [ -f "$STAGE/hermes/.env" ] && echo " • $HERMES/.env" [ -d "$STAGE/hermes/plugins" ] && echo " • $HERMES/plugins/" @@ -119,7 +120,8 @@ bash "$SRC/deploy/backup.sh" || echo " (Pre-Restore-Backup fehlgeschlagen — f echo "→ Dienste stoppen…" systemctl --user stop $SERVICES 2>/dev/null || true -if [ -d "$STAGE/mem0" ]; then rm -rf "$MEM0_DIR"; mkdir -p "$MEM0_DIR"; cp -a "$STAGE/mem0/." "$MEM0_DIR/"; fi +# Alte Snapshots (vor 27.08.2026) tragen noch ein Gedaechtnis-Verzeichnis mit — es wird +# bewusst NICHT mehr zurueckgespielt, der zugehoerige Dienst existiert nicht mehr. [ -f "$STAGE/hermes/config.yaml" ] && { mkdir -p "$HERMES"; cp -a "$STAGE/hermes/config.yaml" "$HERMES/"; } [ -f "$STAGE/hermes/.env" ] && cp -a "$STAGE/hermes/.env" "$HERMES/" [ -d "$STAGE/hermes/plugins" ] && { mkdir -p "$HERMES/plugins"; cp -a "$STAGE/hermes/plugins/." "$HERMES/plugins/"; } diff --git a/deploy/stack-postcheck.sh b/deploy/stack-postcheck.sh index 1d675e1..b5105d7 100644 --- a/deploy/stack-postcheck.sh +++ b/deploy/stack-postcheck.sh @@ -3,15 +3,14 @@ # dass der komplette Inferenz-Stack noch FUNKTIONIERT — nicht nur "Befehl lief durch". # Exit 0 = alles ok, sonst 1 → der jobengine-Job wird im UI ROT (state=failed). # -# Pendant zu hermes-postcheck.sh (prüft das Gehirn/Mem0); dieser prüft Router+Engine+MC2 +# Pendant zu hermes-postcheck.sh (prüft das Gehirn); dieser prüft Router+Engine+MC2 # inkl. einer ECHTEN 1-Token-Inferenz (beweist, dass ein Modell wirklich lädt & generiert). set -uo pipefail SWAP_URL="${MC_LLAMA_SWAP_URL:-http://127.0.0.1:8080}" MC_URL="${MC_URL:-http://127.0.0.1:9001}" -MEM0_URL="${MEM0_SERVICE_URL:-http://127.0.0.1:8765}" BRAIN="${MC_WARMUP_MODELS:-fast}"; BRAIN="${BRAIN%% *}" # erstes Modell, falls Liste -EMBED="${MC_WARMUP_EMBED:-embed}"; EMBED="${EMBED%% *}" # Embedding-Modell (Mem0/Gedächtnis) +EMBED="${MC_WARMUP_EMBED:-embed}"; EMBED="${EMBED%% *}" # Embedding-Modell (Reranker-Stufe) fail=0 echo "=== Stack Post-Update: Funktionsprüfung ===" @@ -48,14 +47,14 @@ else echo "FAIL · Inferenz auf '$BRAIN' fehlgeschlagen (Modell lädt/generiert nicht)"; fail=1 fi -# 3b. Embedding-Modell (für Mem0/Gedächtnis) lädt und liefert einen Vektor? +# 3b. Embedding-Modell lädt und liefert einen Vektor? eresp="$(curl -s -m 120 -X POST "$SWAP_URL/v1/embeddings" \ -H 'Content-Type: application/json' \ -d "{\"model\":\"$EMBED\",\"input\":\"ping\"}" 2>/dev/null)" if printf '%s' "$eresp" | grep -q '"embedding"'; then echo "PASS · Embedding-Modell '$EMBED' liefert Vektoren" else - echo "FAIL · Embedding-Modell '$EMBED' lädt/antwortet nicht (Mem0/Gedächtnis betroffen)"; fail=1 + echo "FAIL · Embedding-Modell '$EMBED' lädt/antwortet nicht"; fail=1 fi # 4. MC2 selbst gesund (Engine + Gateway erreichbar)? @@ -85,12 +84,8 @@ if systemctl --user is-enabled --quiet mc2-steward 2>/dev/null; then fi fi -# 5. Mem0-Sidecar (Gedächtnis) erreichbar? -if curl -sf -m 5 "$MEM0_URL/health" >/dev/null 2>&1; then - echo "PASS · Mem0-Sidecar erreichbar" -else - echo "FAIL · Mem0-Sidecar NICHT erreichbar"; fail=1 -fi +# (Schritt 5 „Gedächtnis-Sidecar erreichbar" entfiel am 27.08.2026: der Dienst auf :8765 ist +# seit der Ablösung im August tot, der Check konnte nur noch rot werden. docs/wissen/VERDIKTE.md) if [ "$fail" -eq 0 ]; then echo "=== STACK OK ✓ ===" diff --git a/deploy/venv-audit.sh b/deploy/venv-audit.sh index da484c6..45f81d6 100644 --- a/deploy/venv-audit.sh +++ b/deploy/venv-audit.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Venv-Audit (monatlich, 17.07.2026): die Python-Nebendienste (Mem0, Voice) altern +# Venv-Audit (monatlich, 17.07.2026): die Python-Nebendienste (Voice) altern # eingefroren — kein Auto-Update-Kanal deckt sie ab. Dieser Audit MELDET nur # (bewusst kein Auto-Update: Python-Deps brechen gern): # je venv: veraltete Pakete zählen (pip list --outdated) + bekannte @@ -9,7 +9,7 @@ # idempotent je Monat). Läuft als Hermes-Cron --no-agent (stdout = Telegram). set -uo pipefail -VENVS=("$HOME/.mem0/venv:mem0" "$HOME/.voice/venv:voice") +VENVS=("$HOME/.voice/venv:voice") AUDIT_VENV="$HOME/.venv-audit" HERMES="$HOME/.local/bin/hermes" MONAT="$(date '+%Y-%m')" diff --git a/deploy/voice-service.service b/deploy/voice-service.service new file mode 100644 index 0000000..94ed1e4 --- /dev/null +++ b/deploy/voice-service.service @@ -0,0 +1,33 @@ +# systemd-USER-Unit für den MC2 Voice-Sidecar — lokales STT + gestuftes TTS. +# +# ‼️ NACHGETRAGEN 27.08.2026: Diese Unit lief auf der Box, fehlte aber im Repo — weder +# versioniert noch vom Disaster-Recovery abgedeckt, obwohl services/maintenance.py +# (USER_SERVICES) und routers/system.py sie voraussetzen. Inhalt 1:1 von der laufenden Box +# übernommen (`systemctl --user cat voice-service`). +# +# Ablage: ~/.config/systemd/user/voice-service.service ; dann: +# systemctl --user daemon-reload && systemctl --user enable --now voice-service + +[Unit] +Description=MC2 Voice Sidecar — lokales STT (faster-whisper) + gestuftes TTS (Piper/Chatterbox) +After=network.target + +[Service] +# Eigenes Python-3.12-venv (~/.voice/venv) — torch/chatterbox/faster-whisper passen nicht ins +# 3.14-Backend-venv. Bind 127.0.0.1: nur lokal; MC2 proxyt nach außen (routers/voice.py). +Type=simple +WorkingDirectory=%h/mission-control-v2/voice_service +Environment=VOICE_PORT=8650 +Environment=VOICE_STT_MODEL=medium +Environment=VOICE_STT_LANG=de +Environment=VOICE_PIPER_DIR=%h/.voice/voices +Environment=VOICE_PIPER_DEFAULT=de_DE-thorsten-medium +Environment=VOICE_CHATTERBOX_DEVICE=cpu +Environment=VOICE_CHATTERBOX_LANG=de +Environment=TOKENIZERS_PARALLELISM=false +ExecStart=%h/.voice/venv/bin/python -m uvicorn app:app --host 127.0.0.1 --port 8650 +Restart=always +RestartSec=3 + +[Install] +WantedBy=default.target diff --git a/deploy/warmup.sh b/deploy/warmup.sh index 85bddf6..0e33415 100644 --- a/deploy/warmup.sh +++ b/deploy/warmup.sh @@ -4,7 +4,7 @@ # Eingehängt als ExecStartPost=-/usr/local/bin/llama-swap-warmup.sh in llama-swap. # # `fast` = das Agent-Hirn (Qwen3.6-35B-A3B), `embed` = das Embedding-Modell -# (Qwen3-Embedding-0.6B, für Mem0/Gedächtnis). Die Augen (vision/VL-30B) sind seit 07.07. +# (Qwen3-Embedding-0.6B). Die Augen (vision/VL-30B) sind seit 07.07. # ON-DEMAND (User-Entscheid) und gehören NICHT mehr ins Warm-Set — die Lucy-App wärmt sie # beim Start selbst an. Modelle werden NICHT automatisch zusammen geladen — jedes einzeln # anstoßen, sonst bleibt es kalt. diff --git a/docs/wissen/STACK.md b/docs/wissen/STACK.md index 46a6315..eb74bf2 100644 --- a/docs/wissen/STACK.md +++ b/docs/wissen/STACK.md @@ -66,7 +66,8 @@ Config: `/etc/llama-swap/config.yaml` (sudo zum Schreiben). - **v0.20.4** (git-Install `~/.hermes/hermes-agent`), Config `~/.hermes/config.yaml`, Persona `~/.hermes/SOUL.md` = **Lucy**. - **Bot Mode:** Unterstützt Multi-Bot-Roster (`Lucy` als Haupt-Agentin, `Coder` mit `Qwen3-Coder-Next`, `Debugger` mit `Muse-Glimmer-30B`). - `approvals.mode: smart`, `approvals.cron_mode: deny`. -- MCP-Server (aus `~/mission-control-v2/mcp/`): mission-control-memory, mission-control-stack, hermes-pc-control, hermes-web-fetch, mcp_voice. +- MCP-Server (aus `~/mission-control-v2/mcp/`): mission-control-stack, hermes-pc-control, hermes-web-fetch, mcp_voice. + (`mission-control-memory` ist am 27.08.2026 entfallen — Hermes führt sein Gedächtnis selbst.) ## Automatik-Fahrplan (was nachts von allein läuft) diff --git a/frontend/dist/assets/AgentView-C-rUOPjn.js b/frontend/dist/assets/AgentView-pp2NXhb4.js similarity index 99% rename from frontend/dist/assets/AgentView-C-rUOPjn.js rename to frontend/dist/assets/AgentView-pp2NXhb4.js index 250d2ac..aec87c1 100644 --- a/frontend/dist/assets/AgentView-C-rUOPjn.js +++ b/frontend/dist/assets/AgentView-pp2NXhb4.js @@ -1,4 +1,4 @@ -import{c as A,I as P,f as M,k as B,u as D,r as z,j as e,J as T,b as a,K as g,M as b,N as W,t as f,W as j,O as G,X as I,C as N,n as y,q as i}from"./index-CCbyojll.js";/** +import{c as A,I as P,f as M,k as B,u as D,r as z,j as e,J as T,b as a,K as g,M as b,N as W,t as f,W as j,O as G,X as I,C as N,n as y,q as i}from"./index-DNt66je4.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/AuftragsbuchView-BdYOUdf1.js b/frontend/dist/assets/AuftragsbuchView-CFtqxzIs.js similarity index 99% rename from frontend/dist/assets/AuftragsbuchView-BdYOUdf1.js rename to frontend/dist/assets/AuftragsbuchView-CFtqxzIs.js index 67ce208..ed24427 100644 --- a/frontend/dist/assets/AuftragsbuchView-BdYOUdf1.js +++ b/frontend/dist/assets/AuftragsbuchView-CFtqxzIs.js @@ -1,4 +1,4 @@ -import{c as W,a1 as H,a2 as F,u as G,k as T,r as b,j as e,R as _,b as y,L as m,C as E,_ as O,D as P,a0 as z,a3 as R,a4 as V,X as D,T as C,F as K,n as $,a5 as q,q as U}from"./index-CCbyojll.js";import{S,H as Q}from"./SectionLabel-BfFwUeZU.js";import{C as M}from"./chevron-down-SPeGIim5.js";/** +import{c as W,a1 as H,a2 as F,u as G,k as T,r as b,j as e,R as _,b as y,L as m,C as E,_ as O,D as P,a0 as z,a3 as R,a4 as V,X as D,T as C,F as K,n as $,a5 as q,q as U}from"./index-DNt66je4.js";import{S,H as Q}from"./SectionLabel-DKDWJ8hi.js";import{C as M}from"./chevron-down-BTSzJRag.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/ChronikView-BBdQX2_R.js b/frontend/dist/assets/ChronikView-BbW5EQy6.js similarity index 99% rename from frontend/dist/assets/ChronikView-BBdQX2_R.js rename to frontend/dist/assets/ChronikView-BbW5EQy6.js index fc8f99c..642c8fd 100644 --- a/frontend/dist/assets/ChronikView-BBdQX2_R.js +++ b/frontend/dist/assets/ChronikView-BbW5EQy6.js @@ -1,4 +1,4 @@ -import{c as d,aj as S,r as h,j as e,ak as M,L as p,a0 as z,a5 as C,al as D,am as A,b as B,an as Z,u as E,k as L,n as k,q}from"./index-CCbyojll.js";import{R as j}from"./rotate-ccw-DuKtbjZS.js";/** +import{c as d,aj as S,r as h,j as e,ak as M,L as p,a0 as z,a5 as C,al as D,am as A,b as B,an as Z,u as E,k as L,n as k,q}from"./index-DNt66je4.js";import{R as j}from"./rotate-ccw-CGv9dXzB.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/ConnectView-5DXpNBft.js b/frontend/dist/assets/ConnectView-5DXpNBft.js deleted file mode 100644 index 9281b71..0000000 --- a/frontend/dist/assets/ConnectView-5DXpNBft.js +++ /dev/null @@ -1,26 +0,0 @@ -import{c as x,r as c,z as D,A as I,j as e,D as f,t as z,B,F as H,b as M,L as E,G as T,C as F}from"./index-CCbyojll.js";import{C as K}from"./chevron-down-SPeGIim5.js";import{F as O}from"./folder-open-FZLk16T9.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const R=x("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const V=x("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const W=x("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const b=x("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const j=x("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]),L={hermes_desktop:"Hermes Desktop: Browser-Login",kilo:"Kilo: Einstellungen → API Provider",claude_code:"env / Übersetzer"};function N({line:s,loading:n}){return n||!s?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(E,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):s.ok?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-emerald-400",children:[e.jsx(T,{className:"h-3 w-3"})," ",s.detail]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-red-400",children:[e.jsx(R,{className:"h-3 w-3"})," ",s.detail]})}function v({tool:s,fileName:n,accent:o,copied:m,onCopy:d}){return e.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80"})]}),e.jsx("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:e.jsx("span",{children:n})}),e.jsxs("button",{onClick:d,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[m?e.jsx(F,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(V,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:m?"Kopiert":"Kopieren"})]})]}),e.jsx("pre",{className:M("p-5 overflow-x-auto text-xs font-mono whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",o==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:s.snippet})})]})}function X(){const s=window.location.hostname;return s&&s!=="localhost"&&s!=="127.0.0.1"?s:"192.168.178.151"}function J(){const[s,n]=c.useState(localStorage.getItem("mc_host")||X()),[o,m]=c.useState(localStorage.getItem("mc_mcp_path")||""),[d,P]=c.useState("kilo"),[y,G]=c.useState(!1),[u,w]=c.useState(null),k=new URLSearchParams({host:s});o&&k.set("mcp_path",o);const{data:r,error:C}=D(k.toString()),{data:a,isLoading:g}=I(),S=C?String(C):"";function _(t){n(t),t&&localStorage.setItem("mc_host",t)}function A(t){m(t),localStorage.setItem("mc_mcp_path",t)}const l=r==null?void 0:r.tools.hermes_desktop,i=r==null?void 0:r.tools[d];async function h(t,p){p&&(await navigator.clipboard.writeText(p),w(t),setTimeout(()=>w(null),1500))}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("span",{className:"text-foreground",children:"Hermes Desktop"})," ist die Tür zur Box — einmal verbinden, fertig. Für Spezialfälle gibt es darunter die rohen Leitungen (Gateway /v1 + Gedächtnis-MCP) für sonstige Tools."]})]}),e.jsxs("div",{className:"p-5 mc-card",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-[170px_1fr] items-center",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-background/40 p-4 text-center",children:[e.jsx(j,{className:"h-7 w-7 mx-auto text-muted-foreground"}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:"Dein lokaler Agent"}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:"Hermes Desktop · Kilo Code · Claude Code …"})]}),e.jsxs("div",{className:"flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-primary/25 bg-primary/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-primary",children:[e.jsx(z,{className:"h-3.5 w-3.5"})," Leitung 1 — Modell"]}),e.jsx(N,{line:a==null?void 0:a.gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-primary/80",children:"Gateway · :9001/v1 · Modelle coder / heavy / vision"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-violet-500/25 bg-violet-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-violet-300",children:[e.jsx(B,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(N,{line:a==null?void 0:a.memory,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-violet-300/80",children:"MCP · mcp_memory.py · separat"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(f,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-emerald-500/25 bg-emerald-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-emerald-300",children:[e.jsx(j,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(N,{line:a==null?void 0:a.desktop_gateway,loading:g})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-emerald-300/80",children:"Desktop-Gateway · :9119 · API-Status"})]})]})]})]}),e.jsxs("p",{className:"mt-3.5 text-[11px] text-muted-foreground leading-relaxed",children:["Der Gateway liefert ",e.jsx("span",{className:"text-foreground",children:"nur das LLM"}),". Das geteilte Gedächtnis läuft über einen",e.jsx("span",{className:"text-foreground",children:" eigenen MCP-Server"})," und das Desktop-Gateway bietet die Agenten-Schnittstelle — alle drei Leitungen werden unabhängig eingerichtet. IDEs wählen die ",e.jsx("span",{className:"text-foreground",children:"echten Modelle"})," ","(coder · heavy · vision); daneben gibt es die virtuellen Lanes ",e.jsx("span",{className:"text-foreground",children:"chat"})," und"," ",e.jsx("span",{className:"text-foreground",children:"coding"}),", die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools)."]})]}),e.jsx("div",{className:"p-5 mc-card",children:e.jsxs("div",{className:"space-y-1.5 max-w-md",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(W,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse",e.jsx("span",{className:"normal-case font-semibold tracking-normal text-muted-foreground/60",children:"— vorbefüllt aus der Adresse dieser Seite"})]}),e.jsx("input",{value:s,onChange:t=>_(t.target.value),"aria-label":"Box LAN IP-Adresse",spellCheck:!1,placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),e.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Wird in alle Snippets eingebacken. Ändern musst du sie nur, wenn die Box eine neue IP bekommt."})]})}),S&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",S]}),r&&e.jsxs("div",{className:"space-y-5",children:[l&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-emerald-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx(j,{className:"h-4 w-4 text-emerald-400"}),"Hermes Desktop anbinden",e.jsx("span",{className:"text-[10px] font-medium text-emerald-400/90 normal-case",children:"der Hauptweg"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Die Desktop-App dockt remote an die Box an — volle Agent-Oberfläche, Projekte, Review, Gedächtnis inklusive."})]}),l.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-emerald-500/5 border border-emerald-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(v,{tool:l,fileName:L.hermes_desktop,accent:"teal",copied:u==="desktop",onCopy:()=>h("desktop",l.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>G(t=>!t),className:"flex w-full items-center gap-2 p-4 text-sm font-space font-bold text-foreground cursor-pointer hover:text-primary transition-colors",children:[y?e.jsx(K,{className:"h-4 w-4"}):e.jsx(H,{className:"h-4 w-4"}),"Sonstige Tools (roher /v1-Zugang + Gedächtnis-MCP)",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"Kilo Code · Claude Code · Eigenbau"})]}),y&&e.jsxs("div",{className:"grid gap-5 lg:grid-cols-2 p-4 pt-0",children:[e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-primary/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-primary/15 text-primary text-[11px]",children:"1"}),"Modell anbinden"]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Wähle dein Tool — das Snippet zeigt auf den Gateway."})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(r.tools).filter(([t])=>t!=="hermes_desktop").map(([t,p])=>e.jsx("button",{onClick:()=>P(t),className:M("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",d===t?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:p.label},t))}),i&&e.jsxs(e.Fragment,{children:[i.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:i.note})]}),e.jsx(v,{tool:i,fileName:L[d]||"config.json",accent:"teal",copied:u==="model",onCopy:()=>h("model",i.snippet)})]})]}),e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-violet-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-violet-500/15 text-violet-300 text-[11px]",children:"2"}),"Gedächtnis anbinden",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"optional"})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:["Ein MCP-Block — gilt zusätzlich für ",e.jsx("em",{children:"jedes"})," Tool aus Schritt 1."]})]}),e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-violet-500/5 border border-violet-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(b,{className:"h-4 w-4 text-violet-400 shrink-0 mt-0.5"}),e.jsx("span",{children:r.memory.note})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(O,{className:"h-3.5 w-3.5 text-violet-400"})," Wo liegt mcp_memory.py auf DIESEM PC?"]}),e.jsx("input",{value:o,onChange:t=>A(t.target.value),"aria-label":"Lokaler MCP-Scriptpfad",spellCheck:!1,placeholder:"z.B. F:\\Coding Stuff\\mission-control-2\\mcp\\mcp_memory.py",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-violet-500/50 text-foreground"}),e.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Nur nötig, wenn du das Gedächtnis in einem PC-Tool anschließt — das Script läuft lokal und spricht mit der Box. Der Pfad landet direkt im Snippet unten."})]}),e.jsx(v,{tool:r.memory,fileName:"mcp.json",accent:"violet",copied:u==="memory",onCopy:()=>h("memory",r.memory.snippet)})]})]})]})]})]})}export{J as ConnectView}; diff --git a/frontend/dist/assets/ConnectView-Ibsr5kGX.js b/frontend/dist/assets/ConnectView-Ibsr5kGX.js new file mode 100644 index 0000000..c155762 --- /dev/null +++ b/frontend/dist/assets/ConnectView-Ibsr5kGX.js @@ -0,0 +1,26 @@ +import{c as i,r as p,z as G,A as H,j as e,D as u,t as z,B as I,F as M,b as S,L as B,G as _,C as E}from"./index-DNt66je4.js";import{C as P}from"./chevron-down-BTSzJRag.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 T=i("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K=i("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const F=i("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const w=i("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-react v0.460.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const g=i("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"}]]),k={hermes_desktop:"Hermes Desktop: Browser-Login",kilo:"Kilo: Einstellungen → API Provider",claude_code:"env / Übersetzer"};function f({line:t,loading:n}){return n||!t?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(B,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):t.ok?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-emerald-400",children:[e.jsx(_,{className:"h-3 w-3"})," ",t.detail]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-red-400",children:[e.jsx(T,{className:"h-3 w-3"})," ",t.detail]})}function C({tool:t,fileName:n,accent:o,copied:c,onCopy:x}){return e.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80"})]}),e.jsx("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:e.jsx("span",{children:n})}),e.jsxs("button",{onClick:x,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:[c?e.jsx(E,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(K,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:c?"Kopiert":"Kopieren"})]})]}),e.jsx("pre",{className:S("p-5 overflow-x-auto text-xs font-mono whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",o==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:t.snippet})})]})}function R(){const t=window.location.hostname;return t&&t!=="localhost"&&t!=="127.0.0.1"?t:"192.168.178.151"}function W(){const[t,n]=p.useState(localStorage.getItem("mc_host")||R()),[o,c]=p.useState("kilo"),[x,L]=p.useState(!1),[b,j]=p.useState(null),A=new URLSearchParams({host:t}),{data:a,error:N}=G(A.toString()),{data:r,isLoading:h}=H(),v=N?String(N):"";function D(s){n(s),s&&localStorage.setItem("mc_host",s)}const d=a==null?void 0:a.tools.hermes_desktop,l=a==null?void 0:a.tools[o];async function y(s,m){m&&(await navigator.clipboard.writeText(m),j(s),setTimeout(()=>j(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 den rohen Gateway-Zugang ( /v1) 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(g,{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(u,{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(z,{className:"h-3.5 w-3.5"})," Leitung 1 — Modell"]}),e.jsx(f,{line:r==null?void 0:r.gateway,loading:h})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-primary/80",children:"Gateway · :9001/v1 · Modelle coder / heavy / vision"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(u,{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(I,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(f,{line:r==null?void 0:r.memory,loading:h})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-violet-300/80",children:"Hermes-nativ · im Agenten · nichts einzurichten"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(u,{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(g,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(f,{line:r==null?void 0:r.desktop_gateway,loading:h})]}),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 Gedächtnis führt",e.jsx("span",{className:"text-foreground",children:" Hermes selbst"})," (nichts einzurichten — die Kachel zeigt nur, ob es lebt), und das Desktop-Gateway bietet die Agenten-Schnittstelle. IDEs wählen die ",e.jsx("span",{className:"text-foreground",children:"echten Modelle"})," ","(coder · heavy · vision); daneben gibt es die virtuellen Lanes ",e.jsx("span",{className:"text-foreground",children:"chat"})," und"," ",e.jsx("span",{className:"text-foreground",children:"coding"}),", die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools)."]})]}),e.jsx("div",{className:"p-5 mc-card",children:e.jsxs("div",{className:"space-y-1.5 max-w-md",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(F,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse",e.jsx("span",{className:"normal-case font-semibold tracking-normal text-muted-foreground/60",children:"— vorbefüllt aus der Adresse dieser Seite"})]}),e.jsx("input",{value:t,onChange:s=>D(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.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Wird in alle Snippets eingebacken. Ändern musst du sie nur, wenn die Box eine neue IP bekommt."})]})}),v&&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: ",v]}),a&&e.jsxs("div",{className:"space-y-5",children:[d&&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(g,{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."})]}),d.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(w,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:d.note})]}),e.jsx(C,{tool:d,fileName:k.hermes_desktop,accent:"teal",copied:b==="desktop",onCopy:()=>y("desktop",d.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>L(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:[x?e.jsx(P,{className:"h-4 w-4"}):e.jsx(M,{className:"h-4 w-4"}),"Sonstige Tools (roher /v1-Zugang)",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"Kilo Code · Claude Code · Eigenbau"})]}),x&&e.jsx("div",{className:"grid gap-5 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(a.tools).filter(([s])=>s!=="hermes_desktop").map(([s,m])=>e.jsx("button",{onClick:()=>c(s),className:S("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",o===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))}),l&&e.jsxs(e.Fragment,{children:[l.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(w,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(C,{tool:l,fileName:k[o]||"config.json",accent:"teal",copied:b==="model",onCopy:()=>y("model",l.snippet)})]})]})})]})]})]})}export{W as ConnectView}; diff --git a/frontend/dist/assets/GuideView-D6hHVfTx.js b/frontend/dist/assets/GuideView-DwZocTb3.js similarity index 64% rename from frontend/dist/assets/GuideView-D6hHVfTx.js rename to frontend/dist/assets/GuideView-DwZocTb3.js index 0a433da..281f080 100644 --- a/frontend/dist/assets/GuideView-D6hHVfTx.js +++ b/frontend/dist/assets/GuideView-DwZocTb3.js @@ -1,4 +1,4 @@ -import{c as u,j as e,r as M,t as C,V as z,Y as k,Z as y,M as v,_ as L,O as G,$ as T,W as D,b as f,a0 as B}from"./index-CCbyojll.js";import{a as w,L as P,C as E,Z as R}from"./zap-CRNNnxfs.js";import{L as I}from"./layers-Dpl2QlP2.js";/** +import{c as u,j as e,r as M,t as C,V as z,Y as k,Z as y,M as v,_ as L,O as G,$ as D,W as T,b as f,a0 as B}from"./index-DNt66je4.js";import{a as w,L as P,C as E,Z as R}from"./zap-cdYTHDpR.js";import{L as I}from"./layers-BakyhGhx.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -8,7 +8,7 @@ import{c as u,j as e,r as M,t as C,V as z,Y as k,Z as y,M as v,_ as L,O as G,$ a * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const N=u("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + */const S=u("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -28,9 +28,9 @@ import{c as u,j as e,r as M,t as C,V as z,Y as k,Z as y,M as v,_ as L,O as G,$ a * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const H=u("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),i={text:"hsl(var(--foreground))",mut:"hsl(var(--muted-foreground))",border:"hsl(var(--border))",card:"hsl(var(--card) / 0.9)",bg:"hsl(var(--background) / 0.4)",primary:"hsl(var(--primary))",teal:"#2dd4bf",sky:"#38bdf8",violet:"#a78bfa",rose:"#fb7185",amber:"#fbbf24",emerald:"#34d399",indigo:"#818cf8"};function o({x:n,y:r,w:t,h:c,color:h,title:g,sub:d,sub2:x,strong:p}){const b=n+t/2;return e.jsxs("g",{children:[e.jsx("rect",{x:n,y:r,width:t,height:c,rx:12,fill:i.card,stroke:h,strokeOpacity:p?.9:.45,strokeWidth:p?2:1.25}),e.jsx("rect",{x:n,y:r,width:t,height:3,rx:1.5,fill:h,opacity:.8}),e.jsx("text",{x:b,y:r+(d?24:c/2+4),textAnchor:"middle",fill:i.text,fontSize:12.5,fontWeight:700,children:g}),d&&e.jsx("text",{x:b,y:r+40,textAnchor:"middle",fill:i.mut,fontSize:10,children:d}),x&&e.jsx("text",{x:b,y:r+53,textAnchor:"middle",fill:i.mut,fontSize:10,children:x})]})}function j({from:n,to:r,color:t=i.border,dash:c}){const[h,g]=n,[d,x]=r,p=(h+d)/2;return e.jsxs("g",{stroke:t,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:c?"5 4":void 0,children:[e.jsx("path",{d:`M ${h} ${g} C ${p} ${g}, ${p} ${x}, ${d} ${x}`}),e.jsx("path",{d:`M ${d-6} ${x-4} L ${d} ${x} L ${d-6} ${x+4}`,fill:t,fillOpacity:.7,stroke:"none"})]})}function F(){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:"Natives Gedächtnis",sub:"Hermes v0.20 SQLite & Embed"}),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(F,{})})}),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 S=[{id:"system",label:"Dein System"},{id:"grundlagen",label:"Grundlagen"},{id:"moe",label:"MoE & Quant"},{id:"lokal",label:"Lokal betreiben"},{id:"modelle",label:"Modell-Landschaft"},{id:"gateway",label:"Gateway-Trick"},{id:"mcp",label:"MCP"},{id:"skills",label:"Skills"},{id:"memory",label:"Gedächtnis & RAG"},{id:"agents",label:"Agenten"},{id:"ide",label:"IDE anbinden"},{id:"tricks",label:"Tricks & Kniffe"},{id:"wartung",label:"Sicherheit & Wartung"},{id:"ressourcen",label:"Ressourcen"},{id:"troubleshooting",label:"Troubleshooting"}];function Q(n){var r;(r=document.getElementById(n))==null||r.scrollIntoView({behavior:"smooth",block:"start"})}function a({id:n,icon:r,color:t,title:c,kicker:h,children:g,wide:d}){return e.jsxs("section",{id:n,className:f("scroll-mt-20 mc-card p-6 space-y-3",d&&"md:col-span-2"),children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(r,{className:f("h-5 w-5 shrink-0",t)}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:c}),h&&e.jsx("span",{className:f("text-[9px] font-mono",t),children:h})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground space-y-2.5 leading-relaxed",children:g})]})}function m({children:n}){return e.jsxs("div",{className:"mt-1 rounded-xl border border-primary/25 bg-primary/[0.06] p-3 text-[11px] leading-relaxed",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-primary mb-1",children:[e.jsx(B,{className:"h-3 w-3"})," Bei dir konkret"]}),e.jsx("div",{className:"text-muted-foreground space-y-1",children:n})]})}function s({children:n}){return e.jsx("code",{className:"rounded bg-background/40 border border-border/30 px-1.5 py-0.5 font-mono text-[10px] text-foreground",children:n})}function l({href:n,name:r,note:t}){return e.jsxs("li",{className:"leading-relaxed",children:[e.jsxs("a",{href:n,target:"_blank",rel:"noopener",className:"text-primary hover:underline font-semibold inline-flex items-center gap-0.5",children:[r,e.jsx(K,{className:"h-3 w-3 opacity-60"})]}),e.jsxs("span",{className:"text-muted-foreground",children:[" — ",t]})]})}function q(){const[n,r]=M.useState(!1);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{className:"mc-card p-6 flex items-start gap-4",children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-primary/15 flex items-center justify-center shrink-0",children:e.jsx(N,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Die AI-Bibel"}),e.jsxs("p",{className:"text-sm text-muted-foreground leading-relaxed max-w-2xl",children:["Erst ",e.jsx("span",{className:"font-semibold text-foreground",children:"dein System auf einen Blick"}),", dann das allgemeine Nachschlagewerk für lokale & agentische AI — Konzepte, Tricks, Kniffe und kuratierte Quellen. ",e.jsx("span",{className:"font-semibold text-foreground",children:"Stand Juli 2026."})," ",e.jsx("span",{className:"text-primary font-semibold",children:'„Bei dir konkret"'}),"-Kästen zeigen, was dein Stack daraus macht."]})]})]}),e.jsx("div",{className:"sticky top-0 z-10 -mx-1 px-1",children:e.jsx("div",{className:"rounded-xl border border-border/50 bg-card/70 backdrop-blur-xl p-2 shadow-lg shadow-black/20",children:e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary ml-1 mr-0.5 shrink-0"}),(n?S:S.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(A,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"So funktioniert dein System"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Landkarte & Kreislauf — das große Bild"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed max-w-3xl",children:["Vier Türen führen zur selben Box: ",e.jsx("strong",{className:"text-foreground",children:"diese Oberfläche"})," zum Steuern und Abnicken, ",e.jsx("strong",{className:"text-foreground",children:"Lucy"})," für Zurufe per Stimme,",e.jsx("strong",{className:"text-foreground",children:" Hermes Desktop"})," für richtige Projekte und",e.jsx("strong",{className:"text-foreground",children:" Telegram"})," für unterwegs. In der Box denken die Modelle, das Gedächtnis lernt automatisch mit — und nachts arbeitet sie allein: Sie träumt, inventarisiert sich selbst, entwickelt Ideen zu fertigen Vorschlägen und legt sie dir als Karten ins Auftragsbuch.",e.jsx("strong",{className:"text-primary",children:" Nichts geht live ohne deinen Klick"})," — und wenn nach einer Annahme etwas rot wird, baut die Box es selbst zurück."]}),e.jsx(U,{})]}),e.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[e.jsxs(a,{id:"grundlagen",icon:C,color:"text-cyan-400",title:"1. Wie LLMs ticken",kicker:"Grundlagen",children:[e.jsxs("p",{children:["Ein LLM ist im Kern ein ",e.jsx("strong",{children:"Wahrscheinlichkeits-Rechner für das nächste Token"}),' (Wortteil). Es „weiß" nichts — es setzt fort, was statistisch am plausibelsten ist. Daraus folgt fast alles andere.']}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Tokens"})," sind die Einheit — ~¾ Wort. Ein- und Ausgabe werden in Tokens gezählt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontextfenster"}),' = wie viele Tokens das Modell gleichzeitig „sehen" kann (Prompt + Antwort). Voll = Anfang fällt raus.']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Parameter"})," = die trainierten Gewichte. Training ist einmalig, ",e.jsx("strong",{children:"Inferenz"})," ist jede Antwort."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Temperatur / Sampling"})," steuert Zufall: niedrig = deterministisch/präzise (Code), hoch = kreativ."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Halluzination"})," ist kein Bug, sondern die Kehrseite des Ratens. Gegenmittel: Grounding via Tools/RAG, Verifikation."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reasoning-/Thinking-Modelle"}),' „denken" in unsichtbaren Tokens vor der Antwort — besser bei Logik, langsamer/teurer.']})]})]}),e.jsxs(a,{id:"moe",icon:I,color:"text-violet-400",title:"2. MoE & Quantisierung",kicker:"Mehr Modell, weniger Last",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Mixture of Experts (MoE):"})," Statt für jedes Token das ganze Netz zu aktivieren, wählt ein",e.jsx("em",{children:" Router"})," nur ein paar spezialisierte ",e.jsx("em",{children:"Experts"}),' aus. So läuft ein 100B-Modell mit der aktiven Rechenlast eines viel kleineren (z.B. „122B total / 10B aktiv").']}),e.jsxs("p",{children:[e.jsx("strong",{children:"Quantisierung:"})," Gewichte von FP16 auf weniger Bits eindampfen — kleiner & schneller bei minimalem Qualitätsverlust. Faustregel:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx(s,{children:"Q8"})," nahezu verlustfrei, größter Footprint"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q6_K"})," sehr gut, guter Mittelweg"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q4_K_M"})," der Sweet-Spot für lokal — viel Modell pro GB"]})]}),e.jsxs(m,{children:["VRAM/RAM ist die harte Grenze — ",e.jsx("strong",{children:"darum"})," ist beides hier zentral: MoE lässt 100B+ überhaupt laufen, Quant entscheidet, was reinpasst. Dein Line-up fährt durchweg ",e.jsx(s,{children:"Q4_K_M"}),"/",e.jsx(s,{children:"Q6_K"}),"."]})]}),e.jsxs(a,{id:"lokal",icon:z,color:"text-emerald-400",title:"3. Lokal betreiben: Engines & Backends",kicker:"llama.cpp, vLLM & Co.",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Inference-Engines"})," — was die Modelle ausführt:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"llama.cpp / GGUF"})," — der De-facto-Standard für lokal, CPU+GPU, läuft überall."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ollama / LM Studio"})," — bequeme Wrapper mit One-Click-Downloads (LM Studio mit GUI)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"vLLM / TGI"})," — Server-Engines für maximalen Durchsatz auf dicken GPUs."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"llama-swap"})," — Proxy, der ",e.jsx("em",{children:"mehrere"})," Modelle hinter ",e.jsx("em",{children:"einem"})," Port hält und je nach Anfrage automatisch ein-/aussattelt."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"GPU-Backends"})," — wie gerechnet wird:"]}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx(s,{children:"CUDA"})," NVIDIA · ",e.jsx(s,{children:"ROCm"})," AMD · ",e.jsx(s,{children:"Vulkan"})," herstellerübergreifend · ",e.jsx(s,{children:"Metal"})," Apple"]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Begriffe, die immer wiederkommen:"})," Kontext (",e.jsx(s,{children:"-c"}),"), Slots/Parallel, KV-Cache, Modell-TTL/Swap, ",e.jsx("strong",{children:"Speculative Decoding"})," (kleines Draft-Modell rät voraus → schneller)."]})]})]}),e.jsxs(m,{children:["Deine Box hat eine AMD-APU (gfx1151). ",e.jsx("strong",{children:"Einschränkung & Trick:"})," dort schlägt ",e.jsx(s,{children:"Vulkan/RADV"})," das offizielle ",e.jsx(s,{children:"ROCm"})," bei Token-Generierung um ~12–22 % — darum läuft die Engine auf Vulkan.",e.jsx(s,{children:"llama-swap"})," hält die Alltags-Hirne dauerwarm; ",e.jsx(s,{children:"coder"})," nutzt Spec-Decoding."]})]}),e.jsxs(a,{id:"modelle",icon:k,color:"text-sky-400",title:"4. Modell-Landschaft",kicker:"Stand Juni 2026",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Open-Weight (lokal nutzbar):"})}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Qwen"})," (Alibaba) — starke Allrounder + Coder + Vision, viele Größen/MoE."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Llama"})," (Meta), ",e.jsx("strong",{children:"Gemma"})," (Google), ",e.jsx("strong",{children:"Phi"})," (Microsoft) — solide Open-Familien."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"DeepSeek"}),", ",e.jsx("strong",{children:"Mistral/Mixtral"})," — kräftige MoE-/Reasoning-Modelle."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Frontier (Cloud-API):"})}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx("strong",{children:"Claude"})," (Anthropic), ",e.jsx("strong",{children:"GPT"})," (OpenAI), ",e.jsx("strong",{children:"Gemini"})," (Google) — die stärksten Allrounder, aber nicht lokal."]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Modellwahl nach Aufgabe:"})," schnelles Alltags-Hirn · großes Logik-Hirn für harte Tasks · dediziertes Code-Modell · multimodal für Bilder · Embedding-Modell fürs Gedächtnis."]})]})]}),e.jsx("p",{className:"text-[11px] italic",children:'Leaderboards (HF, LMArena) sind grobe Orientierung — der einzige Benchmark, der zählt, ist deine eigene Aufgabe. Vorsicht vor „Benchmaxxing".'}),e.jsxs(m,{children:["Dein Line-up via llama-swap (Klartext-Rollen): ",e.jsx(s,{children:"Hirn"})," (Agent, dauerwarm) · ",e.jsx(s,{children:"Groß"})," (schwere Logik) · ",e.jsx(s,{children:"Coder"})," · ",e.jsx(s,{children:"Augen"})," (Bilder) · ",e.jsx(s,{children:"Späher"})," (schnelle Recherche) ·",e.jsx(s,{children:"Kritiker"})," (Fremdblick/Review) · ",e.jsx(s,{children:"Gedächtnis"})," + ",e.jsx(s,{children:"Sortierer"})," (Embedding & Reranking). Verwalten/tauschen im ",e.jsx("strong",{children:"Modelle"}),"-Tab."]})]}),e.jsxs(a,{id:"gateway",icon:A,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:H,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 H=u("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),i={text:"hsl(var(--foreground))",mut:"hsl(var(--muted-foreground))",border:"hsl(var(--border))",card:"hsl(var(--card) / 0.9)",bg:"hsl(var(--background) / 0.4)",primary:"hsl(var(--primary))",teal:"#2dd4bf",sky:"#38bdf8",violet:"#a78bfa",rose:"#fb7185",amber:"#fbbf24",emerald:"#34d399",indigo:"#818cf8"};function o({x:n,y:r,w:t,h:c,color:h,title:g,sub:d,sub2:x,strong:p}){const b=n+t/2;return e.jsxs("g",{children:[e.jsx("rect",{x:n,y:r,width:t,height:c,rx:12,fill:i.card,stroke:h,strokeOpacity:p?.9:.45,strokeWidth:p?2:1.25}),e.jsx("rect",{x:n,y:r,width:t,height:3,rx:1.5,fill:h,opacity:.8}),e.jsx("text",{x:b,y:r+(d?24:c/2+4),textAnchor:"middle",fill:i.text,fontSize:12.5,fontWeight:700,children:g}),d&&e.jsx("text",{x:b,y:r+40,textAnchor:"middle",fill:i.mut,fontSize:10,children:d}),x&&e.jsx("text",{x:b,y:r+53,textAnchor:"middle",fill:i.mut,fontSize:10,children:x})]})}function j({from:n,to:r,color:t=i.border,dash:c}){const[h,g]=n,[d,x]=r,p=(h+d)/2;return e.jsxs("g",{stroke:t,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:c?"5 4":void 0,children:[e.jsx("path",{d:`M ${h} ${g} C ${p} ${g}, ${p} ${x}, ${d} ${x}`}),e.jsx("path",{d:`M ${d-6} ${x-4} L ${d} ${x} L ${d-6} ${x+4}`,fill:t,fillOpacity:.7,stroke:"none"})]})}function F(){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:"Natives Gedächtnis",sub:"Hermes v0.20 SQLite & Embed"}),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(F,{})})}),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 N=[{id:"system",label:"Dein System"},{id:"grundlagen",label:"Grundlagen"},{id:"moe",label:"MoE & Quant"},{id:"lokal",label:"Lokal betreiben"},{id:"modelle",label:"Modell-Landschaft"},{id:"gateway",label:"Gateway-Trick"},{id:"mcp",label:"MCP"},{id:"skills",label:"Skills"},{id:"memory",label:"Gedächtnis & RAG"},{id:"agents",label:"Agenten"},{id:"ide",label:"IDE anbinden"},{id:"tricks",label:"Tricks & Kniffe"},{id:"wartung",label:"Sicherheit & Wartung"},{id:"ressourcen",label:"Ressourcen"},{id:"troubleshooting",label:"Troubleshooting"}];function Q(n){var r;(r=document.getElementById(n))==null||r.scrollIntoView({behavior:"smooth",block:"start"})}function a({id:n,icon:r,color:t,title:c,kicker:h,children:g,wide:d}){return e.jsxs("section",{id:n,className:f("scroll-mt-20 mc-card p-6 space-y-3",d&&"md:col-span-2"),children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(r,{className:f("h-5 w-5 shrink-0",t)}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:c}),h&&e.jsx("span",{className:f("text-[9px] font-mono",t),children:h})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground space-y-2.5 leading-relaxed",children:g})]})}function m({children:n}){return e.jsxs("div",{className:"mt-1 rounded-xl border border-primary/25 bg-primary/[0.06] p-3 text-[11px] leading-relaxed",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-primary mb-1",children:[e.jsx(B,{className:"h-3 w-3"})," Bei dir konkret"]}),e.jsx("div",{className:"text-muted-foreground space-y-1",children:n})]})}function s({children:n}){return e.jsx("code",{className:"rounded bg-background/40 border border-border/30 px-1.5 py-0.5 font-mono text-[10px] text-foreground",children:n})}function l({href:n,name:r,note:t}){return e.jsxs("li",{className:"leading-relaxed",children:[e.jsxs("a",{href:n,target:"_blank",rel:"noopener",className:"text-primary hover:underline font-semibold inline-flex items-center gap-0.5",children:[r,e.jsx(K,{className:"h-3 w-3 opacity-60"})]}),e.jsxs("span",{className:"text-muted-foreground",children:[" — ",t]})]})}function q(){const[n,r]=M.useState(!1);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{className:"mc-card p-6 flex items-start gap-4",children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-primary/15 flex items-center justify-center shrink-0",children:e.jsx(S,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Die AI-Bibel"}),e.jsxs("p",{className:"text-sm text-muted-foreground leading-relaxed max-w-2xl",children:["Erst ",e.jsx("span",{className:"font-semibold text-foreground",children:"dein System auf einen Blick"}),", dann das allgemeine Nachschlagewerk für lokale & agentische AI — Konzepte, Tricks, Kniffe und kuratierte Quellen. ",e.jsx("span",{className:"font-semibold text-foreground",children:"Stand Juli 2026."})," ",e.jsx("span",{className:"text-primary font-semibold",children:'„Bei dir konkret"'}),"-Kästen zeigen, was dein Stack daraus macht."]})]})]}),e.jsx("div",{className:"sticky top-0 z-10 -mx-1 px-1",children:e.jsx("div",{className:"rounded-xl border border-border/50 bg-card/70 backdrop-blur-xl p-2 shadow-lg shadow-black/20",children:e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary ml-1 mr-0.5 shrink-0"}),(n?N:N.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(A,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"So funktioniert dein System"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Landkarte & Kreislauf — das große Bild"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed max-w-3xl",children:["Vier Türen führen zur selben Box: ",e.jsx("strong",{className:"text-foreground",children:"diese Oberfläche"})," zum Steuern und Abnicken, ",e.jsx("strong",{className:"text-foreground",children:"Lucy"})," für Zurufe per Stimme,",e.jsx("strong",{className:"text-foreground",children:" Hermes Desktop"})," für richtige Projekte und",e.jsx("strong",{className:"text-foreground",children:" Telegram"})," für unterwegs. In der Box denken die Modelle, das Gedächtnis lernt automatisch mit — und nachts arbeitet sie allein: Sie träumt, inventarisiert sich selbst, entwickelt Ideen zu fertigen Vorschlägen und legt sie dir als Karten ins Auftragsbuch.",e.jsx("strong",{className:"text-primary",children:" Nichts geht live ohne deinen Klick"})," — und wenn nach einer Annahme etwas rot wird, baut die Box es selbst zurück."]}),e.jsx(U,{})]}),e.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[e.jsxs(a,{id:"grundlagen",icon:C,color:"text-cyan-400",title:"1. Wie LLMs ticken",kicker:"Grundlagen",children:[e.jsxs("p",{children:["Ein LLM ist im Kern ein ",e.jsx("strong",{children:"Wahrscheinlichkeits-Rechner für das nächste Token"}),' (Wortteil). Es „weiß" nichts — es setzt fort, was statistisch am plausibelsten ist. Daraus folgt fast alles andere.']}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Tokens"})," sind die Einheit — ~¾ Wort. Ein- und Ausgabe werden in Tokens gezählt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontextfenster"}),' = wie viele Tokens das Modell gleichzeitig „sehen" kann (Prompt + Antwort). Voll = Anfang fällt raus.']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Parameter"})," = die trainierten Gewichte. Training ist einmalig, ",e.jsx("strong",{children:"Inferenz"})," ist jede Antwort."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Temperatur / Sampling"})," steuert Zufall: niedrig = deterministisch/präzise (Code), hoch = kreativ."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Halluzination"})," ist kein Bug, sondern die Kehrseite des Ratens. Gegenmittel: Grounding via Tools/RAG, Verifikation."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reasoning-/Thinking-Modelle"}),' „denken" in unsichtbaren Tokens vor der Antwort — besser bei Logik, langsamer/teurer.']})]})]}),e.jsxs(a,{id:"moe",icon:I,color:"text-violet-400",title:"2. MoE & Quantisierung",kicker:"Mehr Modell, weniger Last",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Mixture of Experts (MoE):"})," Statt für jedes Token das ganze Netz zu aktivieren, wählt ein",e.jsx("em",{children:" Router"})," nur ein paar spezialisierte ",e.jsx("em",{children:"Experts"}),' aus. So läuft ein 100B-Modell mit der aktiven Rechenlast eines viel kleineren (z.B. „122B total / 10B aktiv").']}),e.jsxs("p",{children:[e.jsx("strong",{children:"Quantisierung:"})," Gewichte von FP16 auf weniger Bits eindampfen — kleiner & schneller bei minimalem Qualitätsverlust. Faustregel:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx(s,{children:"Q8"})," nahezu verlustfrei, größter Footprint"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q6_K"})," sehr gut, guter Mittelweg"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q4_K_M"})," der Sweet-Spot für lokal — viel Modell pro GB"]})]}),e.jsxs(m,{children:["VRAM/RAM ist die harte Grenze — ",e.jsx("strong",{children:"darum"})," ist beides hier zentral: MoE lässt 100B+ überhaupt laufen, Quant entscheidet, was reinpasst. Dein Line-up fährt durchweg ",e.jsx(s,{children:"Q4_K_M"}),"/",e.jsx(s,{children:"Q6_K"}),"."]})]}),e.jsxs(a,{id:"lokal",icon:z,color:"text-emerald-400",title:"3. Lokal betreiben: Engines & Backends",kicker:"llama.cpp, vLLM & Co.",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Inference-Engines"})," — was die Modelle ausführt:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"llama.cpp / GGUF"})," — der De-facto-Standard für lokal, CPU+GPU, läuft überall."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ollama / LM Studio"})," — bequeme Wrapper mit One-Click-Downloads (LM Studio mit GUI)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"vLLM / TGI"})," — Server-Engines für maximalen Durchsatz auf dicken GPUs."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"llama-swap"})," — Proxy, der ",e.jsx("em",{children:"mehrere"})," Modelle hinter ",e.jsx("em",{children:"einem"})," Port hält und je nach Anfrage automatisch ein-/aussattelt."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"GPU-Backends"})," — wie gerechnet wird:"]}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx(s,{children:"CUDA"})," NVIDIA · ",e.jsx(s,{children:"ROCm"})," AMD · ",e.jsx(s,{children:"Vulkan"})," herstellerübergreifend · ",e.jsx(s,{children:"Metal"})," Apple"]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Begriffe, die immer wiederkommen:"})," Kontext (",e.jsx(s,{children:"-c"}),"), Slots/Parallel, KV-Cache, Modell-TTL/Swap, ",e.jsx("strong",{children:"Speculative Decoding"})," (kleines Draft-Modell rät voraus → schneller)."]})]})]}),e.jsxs(m,{children:["Deine Box hat eine AMD-APU (gfx1151). ",e.jsx("strong",{children:"Einschränkung & Trick:"})," dort schlägt ",e.jsx(s,{children:"Vulkan/RADV"})," das offizielle ",e.jsx(s,{children:"ROCm"})," bei Token-Generierung um ~12–22 % — darum läuft die Engine auf Vulkan.",e.jsx(s,{children:"llama-swap"})," hält die Alltags-Hirne dauerwarm; ",e.jsx(s,{children:"coder"})," nutzt Spec-Decoding."]})]}),e.jsxs(a,{id:"modelle",icon:k,color:"text-sky-400",title:"4. Modell-Landschaft",kicker:"Stand Juni 2026",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Open-Weight (lokal nutzbar):"})}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Qwen"})," (Alibaba) — starke Allrounder + Coder + Vision, viele Größen/MoE."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Llama"})," (Meta), ",e.jsx("strong",{children:"Gemma"})," (Google), ",e.jsx("strong",{children:"Phi"})," (Microsoft) — solide Open-Familien."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"DeepSeek"}),", ",e.jsx("strong",{children:"Mistral/Mixtral"})," — kräftige MoE-/Reasoning-Modelle."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Frontier (Cloud-API):"})}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx("strong",{children:"Claude"})," (Anthropic), ",e.jsx("strong",{children:"GPT"})," (OpenAI), ",e.jsx("strong",{children:"Gemini"})," (Google) — die stärksten Allrounder, aber nicht lokal."]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Modellwahl nach Aufgabe:"})," schnelles Alltags-Hirn · großes Logik-Hirn für harte Tasks · dediziertes Code-Modell · multimodal für Bilder · Embedding-Modell fürs Gedächtnis."]})]})]}),e.jsx("p",{className:"text-[11px] italic",children:'Leaderboards (HF, LMArena) sind grobe Orientierung — der einzige Benchmark, der zählt, ist deine eigene Aufgabe. Vorsicht vor „Benchmaxxing".'}),e.jsxs(m,{children:["Dein Line-up via llama-swap (Klartext-Rollen): ",e.jsx(s,{children:"Hirn"})," (Agent, dauerwarm) · ",e.jsx(s,{children:"Groß"})," (schwere Logik) · ",e.jsx(s,{children:"Coder"})," · ",e.jsx(s,{children:"Augen"})," (Bilder) · ",e.jsx(s,{children:"Späher"})," (schnelle Recherche) ·",e.jsx(s,{children:"Kritiker"})," (Fremdblick/Review) · ",e.jsx(s,{children:"Gedächtnis"})," + ",e.jsx(s,{children:"Sortierer"})," (Embedding & Reranking). Verwalten/tauschen im ",e.jsx("strong",{children:"Modelle"}),"-Tab."]})]}),e.jsxs(a,{id:"gateway",icon:A,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:H,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:V,color:"text-indigo-400",title:"8. Gedächtnis & RAG",kicker:"Modelle vergessen — du nicht",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["LLMs sind ",e.jsx("strong",{children:"zustandslos"}),": ohne Hilfe weiß das Modell beim nächsten Turn nichts mehr. Gedächtnis lebt extern."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Embeddings"})," wandeln Text in Vektoren; ein ",e.jsx("strong",{children:"Vektor-Store"})," (Chroma, …) findet semantisch Ähnliches."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"RAG"})," = relevante Fakten vor dem Turn heraussuchen und einblenden statt alles im Prompt zu halten."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Long-Context vs. RAG:"}),' riesige Fenster sind bequem, aber teuer & „lost in the middle" — gezieltes Abrufen skaliert besser.']})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Auto-lernendes Gedächtnis"})," ist die nächste Stufe:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:["extrahiert Fakten ",e.jsx("em",{children:"selbst"})," aus Gesprächen, statt nur abzuspeichern"]}),e.jsx("li",{children:"dedupliziert semantisch (kein 10× derselbe Fakt)"}),e.jsxs("li",{children:[e.jsx("strong",{children:"Graph-Sicht"})," = Fakten ",e.jsx("em",{children:"plus"})," ihre Beziehungen, nicht nur eine flache Liste"]})]})]})]}),e.jsxs(m,{children:["Dein Gedächtnis (Tab ",e.jsx("strong",{children:"Gedächtnis"}),") ist ",e.jsx("strong",{children:"Mem0"}),"-basiert: auto-lernend & semantisch, ",e.jsx("strong",{children:"graph-first"})," dargestellt, mit 4-Typen-Taxonomie (",e.jsx(s,{children:"Identität"})," · ",e.jsx(s,{children:"Wissen"})," · ",e.jsx(s,{children:"Regeln"})," · ",e.jsx(s,{children:"Ereignisse"}),"). Der Agent lernt im Hintergrund nach jedem Turn — egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst.",e.jsx("br",{}),e.jsx("strong",{children:"Gotcha:"})," ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion)."]})]}),e.jsxs(a,{id:"agents",icon:v,color:"text-rose-400",title:"9. Autonome Agenten betreiben",kicker:"LLM in der Schleife",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Agent"})," ist ein LLM in einer Schleife mit Tools:",e.jsx("em",{children:" denken → Tool aufrufen → Ergebnis beobachten → weiter"}),", bis das Ziel erreicht ist."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Guardrails"})," (Hard-Stop, Tool-Limits) verhindern Endlos-Loops, wenn ein Tool fehlt oder hängt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontext-Hygiene"})," ist die wichtigste Disziplin: frische Sessions starten — vollgemüllte Historien werden langsam, driften und halluzinieren."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kanäle:"})," CLI/Terminal, Chat-UI, Messaging (z.B. Telegram), reine API."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Least Privilege:"})," gib einem Agenten nur die Tools, die er wirklich braucht. Kritische Aktionen (Shell auf dem Host, Löschen, Geld/Deploys) hinter menschliche Freigabe."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Was sich vollautomatisch lohnt:"})," Modell-Routing, Hintergrund-Gedächtnis, Recherche. ",e.jsx("strong",{children:"Was Freigabe braucht:"})," Systembefehle, Updates/Reboots, permanentes Löschen."]})]})]}),e.jsxs(m,{children:[e.jsx("strong",{children:"Hermes"})," ist dein Box-Agent mit eigenem Agent-Hirn (Rolle ",e.jsx(s,{children:"Hirn"}),", dauerwarm). Reden tust du mit ihm über ",e.jsx("strong",{children:"Hermes Desktop"})," (am PC, remote via ",e.jsx(s,{children:"/hermes-ui"}),"), die ",e.jsx("strong",{children:"Konsole"})," (Box-Shell im Browser), ",e.jsx("strong",{children:"Telegram"})," — oder per Stimme über",e.jsx("strong",{children:" Lucy"}),". Er hat MCP-Server für Gedächtnis, Stack-Steuerung, Web-Fetch und",e.jsx("strong",{children:" PC-Steuerung"})," (Executor auf deinem Windows-PC). Nachts betreibt er Werkstatt & Radar-Crons — alles Gebaute landet als Karte im ",e.jsx("strong",{children:"Auftragsbuch"}),". Status & Verdrahtung im ",e.jsx("strong",{children:"Hermes"}),"-Tab."]})]}),e.jsxs(a,{id:"ide",icon:E,color:"text-cyan-400",title:"10. IDE / Editor anbinden",kicker:"Vibe-Coding lokal",children:[e.jsxs("p",{children:["Jede ",e.jsx("strong",{children:"OpenAI-kompatible"})," IDE oder Extension lässt sich auf einen lokalen Server umbiegen — Base-URL + Model eintragen, fertig:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Cline"})," & ",e.jsx("strong",{children:"Roo Code"})," (VS-Code-Extensions, voller Agent + MCP)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cursor"})," (VS-Code-Fork mit Top-Autocomplete)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Continue"}),", ",e.jsx("strong",{children:"aider"})," (CLI), ",e.jsx("strong",{children:"OpenCode"})," (Desktop)"]})]}),e.jsxs(m,{children:["Deine Haupt-IDE ist inzwischen ",e.jsx("strong",{children:"Hermes Desktop"})," — sie ist ab Werk mit Box, Gedächtnis und Skills verdrahtet, da ist nichts zu konfigurieren. Für alles andere gilt: Tipp den Kram nicht ab — der",e.jsx("strong",{children:" Verbinden"}),"-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. Essenz: Base ",e.jsx(s,{children:"…:9001/v1"}),", Model ",e.jsx(s,{children:"coder"})," (bauen) / ",e.jsx(s,{children:"heavy"})," (denken) /"," ",e.jsx(s,{children:"vision"})," (Bilder); für simple Chat-Tools tut es die Lane ",e.jsx(s,{children:"chat"}),". Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:L,color:"text-amber-400",title:"11. Tricks & Kniffe",kicker:"Was im Alltag wirklich spart",wide:!0,children:e.jsx("div",{className:"grid md:grid-cols-3 gap-3",children:[["Kontext sauber halten","Neue Session statt Mega-Historie. Drift, Tempo und Halluzination hängen direkt am Kontext-Müll."],["Plan-then-Act","Erst Plan/Vorgehen bestätigen lassen, dann ausführen. Spart teure Holzwege."],["Gezielte Edits","Nie ganze Dateien überschreiben für eine Zeile — Such-/Ersetz-Tools nutzen. Weniger Tokens, weniger Fehler."],["Non-interaktive Befehle","Keine interaktiven Prompts im Agent-Terminal; lange Tasks als Background-Job. Sonst hängt der Loop."],["DevTools koppeln","Browser-/Konsolen-Zugriff geben — der Agent liest echte Fehler statt blind zu raten."],["Richtige Modellwahl","Schnelles Hirn für Alltag, großes für harte Logik, Coder fürs Coden. Nicht alles mit der Kanone."],["Akzeptanzkriterien","Sag konkret, woran „fertig“ erkennbar ist. Vage Prompts → vage Ergebnisse."],["Verifizieren statt vertrauen","Tests/Live-Check fordern. „Sollte funktionieren“ ist kein Beweis."],["Regeln ins Gedächtnis","Wiederkehrende Vorlieben/Konventionen einmal ablegen — der Agent zieht sie selbst."]].map(([t,c])=>e.jsxs("div",{className:"space-y-1 p-3 bg-background/10 rounded-xl border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-foreground text-[11px]",children:[e.jsx(R,{className:"h-3 w-3 text-amber-400"})," ",t]}),e.jsx("p",{className:"text-[11px]",children:c})]},t))})}),e.jsx(a,{id:"wartung",icon:G,color:"text-emerald-400",title:"12. Sicherheit & Wartung",kicker:"Damit's auch morgen noch läuft",wide:!0,children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(T,{className:"h-3.5 w-3.5 text-emerald-400"})," Goldene Regeln"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Ein ungetesteter Restore ist kein Backup."})," Wiederherstellung mindestens einmal echt durchspielen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates können Dinge still zerschießen"})," — gerade bei AI-Stacks (Embeddings, Provider-Interna). Versionen pinnen, Smoke-Test, Post-Check."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Least Privilege"})," für Agenten, MCP-Server und PC-Zugriff. Kritisches hinter Freigabe."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(D,{className:"h-3.5 w-3.5 text-emerald-400"})," Bei dir im SystemDrawer"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Backup:"})," PBS-Backup-Zentrum (Sicherung auf den Proxmox-Server) + tägliche Tarball-Sicherung; Restore echt durchgespielt (",e.jsx(s,{children:"restore.sh"}),", Doku in ",e.jsx(s,{children:"docs/BACKUP.md"}),")."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates:"})," git-basierter Update-Check; ",e.jsx("strong",{children:"Update-Buttons"})," mit anschließendem ",e.jsx("strong",{children:"Gehirn-Check"})," (rot, falls ein Update das Gedächtnis zerschießt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Annahme-Sicherheit:"})," jede Auftragsbuch-Annahme läuft mit Health-Check — wird's rot, baut die Box automatisch zurück (Auto-Revert)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dienste & Gefahrenzone:"})," Restart/Logs pro Dienst, kritische Eingriffe getrennt."]})]}),e.jsx("p",{className:"text-[10px] italic",children:'Erreichbar über das System-Icon → Tab „Wartung".'})]})]})}),e.jsxs("section",{id:"ressourcen",className:"scroll-mt-20 md:col-span-2 mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(w,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"13. Kuratierte Ressourcen & Links"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Sauber geordnet — die guten Quellen"})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-5 text-xs",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(k,{className:"h-3.5 w-3.5 text-sky-400"})," Modelle & Engines"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://huggingface.co/models",name:"Hugging Face",note:"das Repository für offene Modelle (GGUF, Embeddings, Datasets)."}),e.jsx(l,{href:"https://github.com/ggml-org/llama.cpp",name:"llama.cpp",note:"die Referenz-Engine für lokale Inferenz."}),e.jsx(l,{href:"https://github.com/mostlygeek/llama-swap",name:"llama-swap",note:"mehrere Modelle hinter einem Port, Auto-Swap."}),e.jsx(l,{href:"https://ollama.com",name:"Ollama",note:"einfachster Einstieg, One-Command-Modelle."}),e.jsx(l,{href:"https://lmstudio.ai",name:"LM Studio",note:"lokale GUI zum Stöbern, Laden & Chatten."}),e.jsx(l,{href:"https://github.com/vllm-project/vllm",name:"vLLM",note:"Hochdurchsatz-Serving auf dicken GPUs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(y,{className:"h-3.5 w-3.5 text-violet-400"})," MCP & Skills"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://modelcontextprotocol.io",name:"MCP — offizielle Doku",note:"Spezifikation & Einstieg."}),e.jsx(l,{href:"https://github.com/modelcontextprotocol/servers",name:"Offizielle MCP-Server",note:"filesystem, git, postgres, fetch & mehr."}),e.jsx(l,{href:"https://smithery.ai",name:"Smithery",note:"Registry zum Suchen & Auto-Installieren von MCP-Servern."}),e.jsx(l,{href:"https://glama.ai/mcp/servers",name:"Glama MCP Registry",note:"kuratierte Community-Datenbank."}),e.jsx(l,{href:"https://skills.sh",name:"skills.sh",note:"Registry & CLI für Agent-Skills."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(v,{className:"h-3.5 w-3.5 text-rose-400"})," Agenten & Frameworks"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://github.com/NousResearch/hermes-agent",name:"Hermes Agent (Nous)",note:"der Agent, der auf deiner Box läuft."}),e.jsx(l,{href:"https://docs.claude.com",name:"Anthropic / Claude Docs",note:"API, Tool-Use, Agent SDK, MCP."}),e.jsx(l,{href:"https://github.com/cline/cline",name:"Cline",note:"autonomer Coding-Agent für VS Code."}),e.jsx(l,{href:"https://aider.chat",name:"aider",note:"AI-Pair-Programming im Terminal, git-nativ."}),e.jsx(l,{href:"https://continue.dev",name:"Continue",note:"Open-Source-Autopilot für IDEs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(N,{className:"h-3.5 w-3.5 text-amber-400"})," Lernen & Community"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview",name:"Prompt-Engineering (Anthropic)",note:"die beste praktische Anleitung."}),e.jsx(l,{href:"https://github.com/anthropics/anthropic-cookbook",name:"Anthropic Cookbook",note:"lauffähige Rezepte für Tools, RAG, Agenten."}),e.jsx(l,{href:"https://www.promptingguide.ai",name:"Prompt Engineering Guide",note:"herstellerneutrales Nachschlagewerk."}),e.jsx(l,{href:"https://hermes-agent.nousresearch.com",name:"Hermes Agent",note:"die autonome Open-Source Agenten-Plattform unserer Box."}),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:W,color:"text-rose-400",title:"14. Troubleshooting",kicker:"Wenn's hakt",wide:!0,children:e.jsxs("ul",{className:"space-y-2 list-disc pl-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Keine Verbindung?"})," Selbes LAN wie die Box? IP/Port stimmen (",e.jsx(s,{children:":9001"}),")? Backend-Status im ",e.jsx("strong",{children:"Cockpit"})," prüfen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Modell antwortet nicht / langsam?"})," Im ",e.jsx("strong",{children:"Cockpit → Dienste"})," schauen, ob ",e.jsx(s,{children:"llama-swap"})," grün ist; sonst Restart. Erstes Token nach Swap dauert (Modell lädt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent dreht durch / halluziniert?"})," Frische Session starten (Hermes Desktop oder ",e.jsx("strong",{children:"Konsole"}),") — meist ist es vollgemüllter Kontext."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Gedächtnis findet nichts?"})," Embedding-Dienst online? Semantisch suchen (Sinn statt exaktem Wort)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Angenommene Karte hat etwas zerschossen?"})," Meist fängt es der Auto-Revert; sonst ",e.jsx("strong",{children:"Chronik → Zeitmaschine"})," (Stand von gestern) oder Backup & ",e.jsx(s,{children:"restore.sh"}),"."]})]})})]}),e.jsx("p",{className:"text-center text-[10px] text-muted-foreground/50 pt-2",children:"Mission Control 2 · AI-Bibel · Stand Juli 2026 — lebendes Dokument, wächst mit dem Stack."})]})}export{q as GuideView}; +...`}),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:V,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 führt ",e.jsx("strong",{children:"Hermes"})," selbst — auto-lernend und semantisch. Der Agent lernt im Hintergrund nach jedem Turn, egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst.",e.jsx("br",{}),"Deshalb hat das Steuerpult ",e.jsx("strong",{children:"keinen eigenen Gedächtnis-Tab"}),": bis August 2026 lag das Gedächtnis in einem MC2-Sidecar, seit dessen Ablösung ist Hermes die einzige Quelle — angesehen und gepflegt wird es dort, nicht hier. Unter ",e.jsx("strong",{children:"Wissen"})," findest du weiterhin die Graph-Sicht auf Lucys Wissens-Vault.",e.jsx("br",{}),e.jsx("strong",{children:"Gotcha:"})," ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion)."]})]}),e.jsxs(a,{id:"agents",icon:v,color:"text-rose-400",title:"9. Autonome Agenten betreiben",kicker:"LLM in der Schleife",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Agent"})," ist ein LLM in einer Schleife mit Tools:",e.jsx("em",{children:" denken → Tool aufrufen → Ergebnis beobachten → weiter"}),", bis das Ziel erreicht ist."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Guardrails"})," (Hard-Stop, Tool-Limits) verhindern Endlos-Loops, wenn ein Tool fehlt oder hängt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontext-Hygiene"})," ist die wichtigste Disziplin: frische Sessions starten — vollgemüllte Historien werden langsam, driften und halluzinieren."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kanäle:"})," CLI/Terminal, Chat-UI, Messaging (z.B. Telegram), reine API."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Least Privilege:"})," gib einem Agenten nur die Tools, die er wirklich braucht. Kritische Aktionen (Shell auf dem Host, Löschen, Geld/Deploys) hinter menschliche Freigabe."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Was sich vollautomatisch lohnt:"})," Modell-Routing, Hintergrund-Gedächtnis, Recherche. ",e.jsx("strong",{children:"Was Freigabe braucht:"})," Systembefehle, Updates/Reboots, permanentes Löschen."]})]})]}),e.jsxs(m,{children:[e.jsx("strong",{children:"Hermes"})," ist dein Box-Agent mit eigenem Agent-Hirn (Rolle ",e.jsx(s,{children:"Hirn"}),", dauerwarm). Reden tust du mit ihm über ",e.jsx("strong",{children:"Hermes Desktop"})," (am PC, remote via ",e.jsx(s,{children:"/hermes-ui"}),"), die ",e.jsx("strong",{children:"Konsole"})," (Box-Shell im Browser), ",e.jsx("strong",{children:"Telegram"})," — oder per Stimme über",e.jsx("strong",{children:" Lucy"}),". Er hat MCP-Server für Gedächtnis, Stack-Steuerung, Web-Fetch und",e.jsx("strong",{children:" PC-Steuerung"})," (Executor auf deinem Windows-PC). Nachts betreibt er Werkstatt & Radar-Crons — alles Gebaute landet als Karte im ",e.jsx("strong",{children:"Auftragsbuch"}),". Status & Verdrahtung im ",e.jsx("strong",{children:"Hermes"}),"-Tab."]})]}),e.jsxs(a,{id:"ide",icon:E,color:"text-cyan-400",title:"10. IDE / Editor anbinden",kicker:"Vibe-Coding lokal",children:[e.jsxs("p",{children:["Jede ",e.jsx("strong",{children:"OpenAI-kompatible"})," IDE oder Extension lässt sich auf einen lokalen Server umbiegen — Base-URL + Model eintragen, fertig:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Cline"})," & ",e.jsx("strong",{children:"Roo Code"})," (VS-Code-Extensions, voller Agent + MCP)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cursor"})," (VS-Code-Fork mit Top-Autocomplete)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Continue"}),", ",e.jsx("strong",{children:"aider"})," (CLI), ",e.jsx("strong",{children:"OpenCode"})," (Desktop)"]})]}),e.jsxs(m,{children:["Deine Haupt-IDE ist inzwischen ",e.jsx("strong",{children:"Hermes Desktop"})," — sie ist ab Werk mit Box, Gedächtnis und Skills verdrahtet, da ist nichts zu konfigurieren. Für alles andere gilt: Tipp den Kram nicht ab — der",e.jsx("strong",{children:" Verbinden"}),"-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. Essenz: Base ",e.jsx(s,{children:"…:9001/v1"}),", Model ",e.jsx(s,{children:"coder"})," (bauen) / ",e.jsx(s,{children:"heavy"})," (denken) /"," ",e.jsx(s,{children:"vision"})," (Bilder); für simple Chat-Tools tut es die Lane ",e.jsx(s,{children:"chat"}),". Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:L,color:"text-amber-400",title:"11. Tricks & Kniffe",kicker:"Was im Alltag wirklich spart",wide:!0,children:e.jsx("div",{className:"grid md:grid-cols-3 gap-3",children:[["Kontext sauber halten","Neue Session statt Mega-Historie. Drift, Tempo und Halluzination hängen direkt am Kontext-Müll."],["Plan-then-Act","Erst Plan/Vorgehen bestätigen lassen, dann ausführen. Spart teure Holzwege."],["Gezielte Edits","Nie ganze Dateien überschreiben für eine Zeile — Such-/Ersetz-Tools nutzen. Weniger Tokens, weniger Fehler."],["Non-interaktive Befehle","Keine interaktiven Prompts im Agent-Terminal; lange Tasks als Background-Job. Sonst hängt der Loop."],["DevTools koppeln","Browser-/Konsolen-Zugriff geben — der Agent liest echte Fehler statt blind zu raten."],["Richtige Modellwahl","Schnelles Hirn für Alltag, großes für harte Logik, Coder fürs Coden. Nicht alles mit der Kanone."],["Akzeptanzkriterien","Sag konkret, woran „fertig“ erkennbar ist. Vage Prompts → vage Ergebnisse."],["Verifizieren statt vertrauen","Tests/Live-Check fordern. „Sollte funktionieren“ ist kein Beweis."],["Regeln ins Gedächtnis","Wiederkehrende Vorlieben/Konventionen einmal ablegen — der Agent zieht sie selbst."]].map(([t,c])=>e.jsxs("div",{className:"space-y-1 p-3 bg-background/10 rounded-xl border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-foreground text-[11px]",children:[e.jsx(R,{className:"h-3 w-3 text-amber-400"})," ",t]}),e.jsx("p",{className:"text-[11px]",children:c})]},t))})}),e.jsx(a,{id:"wartung",icon:G,color:"text-emerald-400",title:"12. Sicherheit & Wartung",kicker:"Damit's auch morgen noch läuft",wide:!0,children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(D,{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(w,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"13. Kuratierte Ressourcen & Links"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Sauber geordnet — die guten Quellen"})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-5 text-xs",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(k,{className:"h-3.5 w-3.5 text-sky-400"})," Modelle & Engines"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://huggingface.co/models",name:"Hugging Face",note:"das Repository für offene Modelle (GGUF, Embeddings, Datasets)."}),e.jsx(l,{href:"https://github.com/ggml-org/llama.cpp",name:"llama.cpp",note:"die Referenz-Engine für lokale Inferenz."}),e.jsx(l,{href:"https://github.com/mostlygeek/llama-swap",name:"llama-swap",note:"mehrere Modelle hinter einem Port, Auto-Swap."}),e.jsx(l,{href:"https://ollama.com",name:"Ollama",note:"einfachster Einstieg, One-Command-Modelle."}),e.jsx(l,{href:"https://lmstudio.ai",name:"LM Studio",note:"lokale GUI zum Stöbern, Laden & Chatten."}),e.jsx(l,{href:"https://github.com/vllm-project/vllm",name:"vLLM",note:"Hochdurchsatz-Serving auf dicken GPUs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(y,{className:"h-3.5 w-3.5 text-violet-400"})," MCP & Skills"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://modelcontextprotocol.io",name:"MCP — offizielle Doku",note:"Spezifikation & Einstieg."}),e.jsx(l,{href:"https://github.com/modelcontextprotocol/servers",name:"Offizielle MCP-Server",note:"filesystem, git, postgres, fetch & mehr."}),e.jsx(l,{href:"https://smithery.ai",name:"Smithery",note:"Registry zum Suchen & Auto-Installieren von MCP-Servern."}),e.jsx(l,{href:"https://glama.ai/mcp/servers",name:"Glama MCP Registry",note:"kuratierte Community-Datenbank."}),e.jsx(l,{href:"https://skills.sh",name:"skills.sh",note:"Registry & CLI für Agent-Skills."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(v,{className:"h-3.5 w-3.5 text-rose-400"})," Agenten & Frameworks"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://github.com/NousResearch/hermes-agent",name:"Hermes Agent (Nous)",note:"der Agent, der auf deiner Box läuft."}),e.jsx(l,{href:"https://docs.claude.com",name:"Anthropic / Claude Docs",note:"API, Tool-Use, Agent SDK, MCP."}),e.jsx(l,{href:"https://github.com/cline/cline",name:"Cline",note:"autonomer Coding-Agent für VS Code."}),e.jsx(l,{href:"https://aider.chat",name:"aider",note:"AI-Pair-Programming im Terminal, git-nativ."}),e.jsx(l,{href:"https://continue.dev",name:"Continue",note:"Open-Source-Autopilot für IDEs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(S,{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://hermes-agent.nousresearch.com",name:"Hermes Agent",note:"die autonome Open-Source Agenten-Plattform unserer Box."}),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:W,color:"text-rose-400",title:"14. Troubleshooting",kicker:"Wenn's hakt",wide:!0,children:e.jsxs("ul",{className:"space-y-2 list-disc pl-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Keine Verbindung?"})," Selbes LAN wie die Box? IP/Port stimmen (",e.jsx(s,{children:":9001"}),")? Backend-Status im ",e.jsx("strong",{children:"Cockpit"})," prüfen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Modell antwortet nicht / langsam?"})," Im ",e.jsx("strong",{children:"Cockpit → Dienste"})," schauen, ob ",e.jsx(s,{children:"llama-swap"})," grün ist; sonst Restart. Erstes Token nach Swap dauert (Modell lädt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent dreht durch / halluziniert?"})," Frische Session starten (Hermes Desktop oder ",e.jsx("strong",{children:"Konsole"}),") — meist ist es vollgemüllter Kontext."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Gedächtnis findet nichts?"})," Embedding-Dienst online? Semantisch suchen (Sinn statt exaktem Wort)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Angenommene Karte hat etwas zerschossen?"})," Meist fängt es der Auto-Revert; sonst ",e.jsx("strong",{children:"Chronik → Zeitmaschine"})," (Stand von gestern) oder Backup & ",e.jsx(s,{children:"restore.sh"}),"."]})]})})]}),e.jsx("p",{className:"text-center text-[10px] text-muted-foreground/50 pt-2",children:"Mission Control 2 · AI-Bibel · Stand Juli 2026 — lebendes Dokument, wächst mit dem Stack."})]})}export{q as GuideView}; diff --git a/frontend/dist/assets/IdeenView-DcsN5ZLB.js b/frontend/dist/assets/IdeenView-J4hS7xB2.js similarity index 99% rename from frontend/dist/assets/IdeenView-DcsN5ZLB.js rename to frontend/dist/assets/IdeenView-J4hS7xB2.js index cdf2d46..cc9c2fe 100644 --- a/frontend/dist/assets/IdeenView-DcsN5ZLB.js +++ b/frontend/dist/assets/IdeenView-J4hS7xB2.js @@ -1,4 +1,4 @@ -import{c as $,j as e,b as S,a2 as ve,u as Se,k as De,r as d,n as z,a6 as Ke,_ as O,L as D,X as Q,a7 as xe,F as T,a3 as he,C as Ce,T as ze,a4 as Ee,a8 as pe,q as Ae,R as fe}from"./index-CCbyojll.js";import{S as Le,H as X}from"./SectionLabel-BfFwUeZU.js";import{C as ee}from"./code-xml-AZtn6xxf.js";import{L as Pe}from"./layers-Dpl2QlP2.js";import{C as U}from"./chevron-down-SPeGIim5.js";import{R as We}from"./rotate-ccw-DuKtbjZS.js";/** +import{c as $,j as e,b as S,a2 as ve,u as Se,k as De,r as d,n as z,a6 as Ke,_ as O,L as D,X as Q,a7 as xe,F as T,a3 as he,C as Ce,T as ze,a4 as Ee,a8 as pe,q as Ae,R as fe}from"./index-DNt66je4.js";import{S as Le,H as X}from"./SectionLabel-DKDWJ8hi.js";import{C as ee}from"./code-xml-BiSOeCkP.js";import{L as Pe}from"./layers-BakyhGhx.js";import{C as U}from"./chevron-down-BTSzJRag.js";import{R as We}from"./rotate-ccw-CGv9dXzB.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/JobsBar-Ckecoyqy.js b/frontend/dist/assets/JobsBar-DG8VDiAV.js similarity index 96% rename from frontend/dist/assets/JobsBar-Ckecoyqy.js rename to frontend/dist/assets/JobsBar-DG8VDiAV.js index a6bc3c4..d23d0ea 100644 --- a/frontend/dist/assets/JobsBar-Ckecoyqy.js +++ b/frontend/dist/assets/JobsBar-DG8VDiAV.js @@ -1 +1 @@ -import{u,ah as m,k as x,j as s,y as n,ai as b,b as p,n as f,q as h}from"./index-CCbyojll.js";function y(){const d=u(),{data:t=[]}=m(),{showAlert:l,dialogElement:o}=x();async function i(e){try{await f(`/api/jobs/${e}/cancel`,{method:"POST"}),d.invalidateQueries({queryKey:h.jobs})}catch(c){l("Fehler",c.message)}}const a=t.filter(e=>e.state==="running"||e.state==="queued"),r=t.filter(e=>e.state!=="running"&&e.state!=="queued").slice(-3);return a.length===0&&r.length===0?null:s.jsxs("div",{className:"space-y-3 mc-card p-4",children:[s.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),a.map(e=>s.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[s.jsxs("div",{className:"flex justify-between items-center text-xs",children:[s.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:e.label}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("span",{className:"text-muted-foreground font-mono",children:[e.progress??0,"% • ",n(e.done_bytes),"/",n(e.total_bytes),e.eta_s?` • ETA ${b(e.eta_s)}`:""]}),s.jsx("button",{onClick:()=>i(e.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"})]})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:s.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${e.progress??0}%`}})})]},e.id)),r.map(e=>s.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[s.jsx("span",{className:"truncate",children:e.label}),s.jsx("span",{className:p("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",e.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:e.state})]},e.id)),o]})}export{y as J}; +import{u,ah as m,k as x,j as s,y as n,ai as b,b as p,n as f,q as h}from"./index-DNt66je4.js";function y(){const d=u(),{data:t=[]}=m(),{showAlert:l,dialogElement:o}=x();async function i(e){try{await f(`/api/jobs/${e}/cancel`,{method:"POST"}),d.invalidateQueries({queryKey:h.jobs})}catch(c){l("Fehler",c.message)}}const a=t.filter(e=>e.state==="running"||e.state==="queued"),r=t.filter(e=>e.state!=="running"&&e.state!=="queued").slice(-3);return a.length===0&&r.length===0?null:s.jsxs("div",{className:"space-y-3 mc-card p-4",children:[s.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),a.map(e=>s.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[s.jsxs("div",{className:"flex justify-between items-center text-xs",children:[s.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:e.label}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("span",{className:"text-muted-foreground font-mono",children:[e.progress??0,"% • ",n(e.done_bytes),"/",n(e.total_bytes),e.eta_s?` • ETA ${b(e.eta_s)}`:""]}),s.jsx("button",{onClick:()=>i(e.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"})]})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:s.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${e.progress??0}%`}})})]},e.id)),r.map(e=>s.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[s.jsx("span",{className:"truncate",children:e.label}),s.jsx("span",{className:p("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",e.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:e.state})]},e.id)),o]})}export{y as J}; diff --git a/frontend/dist/assets/KonsoleView-Bdk_kJ2m.js b/frontend/dist/assets/KonsoleView-BDDotueL.js similarity index 98% rename from frontend/dist/assets/KonsoleView-Bdk_kJ2m.js rename to frontend/dist/assets/KonsoleView-BDDotueL.js index 81de75f..3307a95 100644 --- a/frontend/dist/assets/KonsoleView-Bdk_kJ2m.js +++ b/frontend/dist/assets/KonsoleView-BDDotueL.js @@ -1 +1 @@ -import{I as b,u as f,K as h,r as d,j as e,b as c,J as g,T as p,R as j,Q as N,n as v,U as w,q as x}from"./index-CCbyojll.js";function y(){const{data:s}=b(),m=f(),r=s!=null&&s.box_console_url?h(s.box_console_url):void 0,a=s==null?void 0:s.box_console_reachable,[l,o]=d.useState(!1),[i,n]=d.useState("");async function u(){o(!0),n("");try{const t=await v("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:"box-console"})});n(t.ok?"Neu gestartet — einen Moment, dann lädt das Terminal.":`Fehlgeschlagen: ${t.err||"Unbekannter Fehler"}`),w(m,x.agentStatus,x.services)}catch(t){n(`Fehlgeschlagen: ${(t==null?void 0:t.message)||t}`)}finally{o(!1)}}return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Konsole"}),e.jsx("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:"Direkte Shell auf der Box — wie ein SSH-Fenster, mitten im Browser."})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground",children:[e.jsx("span",{className:c("h-2 w-2 rounded-full",a?"bg-emerald-500 animate-pulse":"bg-amber-500")}),a?"online":"offline"]}),r&&e.jsxs("a",{href:r,target:"_blank",rel:"noopener",className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-background/20 px-3 text-xs font-semibold text-muted-foreground transition-all hover:border-primary/50 hover:text-foreground",children:[e.jsx(g,{className:"h-3.5 w-3.5"})," In neuem Tab"]})]})]}),r?e.jsxs("div",{className:"relative min-h-[58vh] flex-1 overflow-hidden rounded-2xl border border-border/60 bg-black/50 shadow-lg shadow-black/25",children:[a===!1&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-black/70 text-center",children:[e.jsx(p,{className:"h-8 w-8 text-amber-400"}),e.jsx("div",{className:"text-sm font-semibold text-amber-300",children:"Konsole nicht erreichbar"}),e.jsxs("p",{className:"max-w-sm text-[11px] leading-normal text-muted-foreground",children:["Der Terminal-Dienst (",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),") läuft gerade nicht."]}),e.jsxs("button",{onClick:u,disabled:l,className:"flex h-9 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-4 text-[11px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[e.jsx(j,{className:c("h-3.5 w-3.5",l&&"animate-spin")})," Dienst neu starten"]}),i&&e.jsx("p",{className:"max-w-sm text-[11px] text-muted-foreground",children:i})]}),e.jsx("iframe",{src:r,title:"Box-Konsole",className:"h-full w-full border-0",style:{minHeight:"58vh"}})]}):e.jsxs("div",{className:"flex min-h-[58vh] flex-1 items-center justify-center rounded-2xl border border-border/60 bg-background/20 text-xs text-muted-foreground",children:[e.jsx(N,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{y as KonsoleView}; +import{I as b,u as f,K as h,r as d,j as e,b as c,J as g,T as p,R as j,Q as N,n as v,U as w,q as x}from"./index-DNt66je4.js";function y(){const{data:s}=b(),m=f(),r=s!=null&&s.box_console_url?h(s.box_console_url):void 0,a=s==null?void 0:s.box_console_reachable,[l,o]=d.useState(!1),[i,n]=d.useState("");async function u(){o(!0),n("");try{const t=await v("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:"box-console"})});n(t.ok?"Neu gestartet — einen Moment, dann lädt das Terminal.":`Fehlgeschlagen: ${t.err||"Unbekannter Fehler"}`),w(m,x.agentStatus,x.services)}catch(t){n(`Fehlgeschlagen: ${(t==null?void 0:t.message)||t}`)}finally{o(!1)}}return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Konsole"}),e.jsx("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:"Direkte Shell auf der Box — wie ein SSH-Fenster, mitten im Browser."})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground",children:[e.jsx("span",{className:c("h-2 w-2 rounded-full",a?"bg-emerald-500 animate-pulse":"bg-amber-500")}),a?"online":"offline"]}),r&&e.jsxs("a",{href:r,target:"_blank",rel:"noopener",className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-background/20 px-3 text-xs font-semibold text-muted-foreground transition-all hover:border-primary/50 hover:text-foreground",children:[e.jsx(g,{className:"h-3.5 w-3.5"})," In neuem Tab"]})]})]}),r?e.jsxs("div",{className:"relative min-h-[58vh] flex-1 overflow-hidden rounded-2xl border border-border/60 bg-black/50 shadow-lg shadow-black/25",children:[a===!1&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-black/70 text-center",children:[e.jsx(p,{className:"h-8 w-8 text-amber-400"}),e.jsx("div",{className:"text-sm font-semibold text-amber-300",children:"Konsole nicht erreichbar"}),e.jsxs("p",{className:"max-w-sm text-[11px] leading-normal text-muted-foreground",children:["Der Terminal-Dienst (",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),") läuft gerade nicht."]}),e.jsxs("button",{onClick:u,disabled:l,className:"flex h-9 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-4 text-[11px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[e.jsx(j,{className:c("h-3.5 w-3.5",l&&"animate-spin")})," Dienst neu starten"]}),i&&e.jsx("p",{className:"max-w-sm text-[11px] text-muted-foreground",children:i})]}),e.jsx("iframe",{src:r,title:"Box-Konsole",className:"h-full w-full border-0",style:{minHeight:"58vh"}})]}):e.jsxs("div",{className:"flex min-h-[58vh] flex-1 items-center justify-center rounded-2xl border border-border/60 bg-background/20 text-xs text-muted-foreground",children:[e.jsx(N,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{y as KonsoleView}; diff --git a/frontend/dist/assets/ModelsView-aEV2pe9C.js b/frontend/dist/assets/ModelsView-DIBx0djl.js similarity index 99% rename from frontend/dist/assets/ModelsView-aEV2pe9C.js rename to frontend/dist/assets/ModelsView-DIBx0djl.js index 520063f..576e28e 100644 --- a/frontend/dist/assets/ModelsView-aEV2pe9C.js +++ b/frontend/dist/assets/ModelsView-DIBx0djl.js @@ -1,4 +1,4 @@ -import{c as E,u as he,a as qe,r as j,j as e,C as Y,L as Fe,b as k,d as Re,q as V,B as re,e as Ie,E as ze,f as le,g as Be,h as Ae,i as Pe,k as Ge,l as ee,X as me,H as be,T as se,s as Oe,m as Te,n as q,o as U,p as He,S as ge,t as Qe,P as Ue,v as Ve,w as We,x as Ze,y as Je}from"./index-CCbyojll.js";import{J as Xe}from"./JobsBar-Ckecoyqy.js";import{C as Ye}from"./code-xml-AZtn6xxf.js";import{R as et}from"./rotate-ccw-DuKtbjZS.js";import{C as ue,Z as ie,L as tt,a as rt}from"./zap-CRNNnxfs.js";import{C as De}from"./chevron-down-SPeGIim5.js";import{L as st}from"./layers-Dpl2QlP2.js";/** +import{c as E,u as he,a as qe,r as j,j as e,C as Y,L as Fe,b as k,d as Re,q as V,B as re,e as Ie,E as ze,f as le,g as Be,h as Ae,i as Pe,k as Ge,l as ee,X as me,H as be,T as se,s as Oe,m as Te,n as q,o as U,p as He,S as ge,t as Qe,P as Ue,v as Ve,w as We,x as Ze,y as Je}from"./index-DNt66je4.js";import{J as Xe}from"./JobsBar-DG8VDiAV.js";import{C as Ye}from"./code-xml-BiSOeCkP.js";import{R as et}from"./rotate-ccw-CGv9dXzB.js";import{C as ue,Z as ie,L as tt,a as rt}from"./zap-cdYTHDpR.js";import{C as De}from"./chevron-down-BTSzJRag.js";import{L as st}from"./layers-BakyhGhx.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/SectionLabel-BfFwUeZU.js b/frontend/dist/assets/SectionLabel-DKDWJ8hi.js similarity index 93% rename from frontend/dist/assets/SectionLabel-BfFwUeZU.js rename to frontend/dist/assets/SectionLabel-DKDWJ8hi.js index 7de42bc..fd82ff2 100644 --- a/frontend/dist/assets/SectionLabel-BfFwUeZU.js +++ b/frontend/dist/assets/SectionLabel-DKDWJ8hi.js @@ -1,4 +1,4 @@ -import{c as s,j as e}from"./index-CCbyojll.js";/** +import{c as s,j as e}from"./index-DNt66je4.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/SkillsView-C5D9xEVH.js b/frontend/dist/assets/SkillsView-XWoP6WFO.js similarity index 98% rename from frontend/dist/assets/SkillsView-C5D9xEVH.js rename to frontend/dist/assets/SkillsView-XWoP6WFO.js index ccf7c7e..c15a3f7 100644 --- a/frontend/dist/assets/SkillsView-C5D9xEVH.js +++ b/frontend/dist/assets/SkillsView-XWoP6WFO.js @@ -1,4 +1,4 @@ -var M=r=>{throw TypeError(r)};var O=(r,e,t)=>e.has(r)||M("Cannot "+t);var a=(r,e,t)=>(O(r,e,"read from private field"),t?t.call(r):e.get(r)),y=(r,e,t)=>e.has(r)?M("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),v=(r,e,t,n)=>(O(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t),j=(r,e,t)=>(O(r,e,"access private method"),t);import{a9 as B,aa as F,ab as E,ac as I,ad as P,u as A,r as f,ae as J,af as Q,c as T,ag as U,j as s,G as D,T as H,b as K,L,M as G,q as V,n as R}from"./index-CCbyojll.js";import{J as _}from"./JobsBar-Ckecoyqy.js";var c,g,o,h,m,w,C,q,z=(q=class extends B{constructor(e,t){super();y(this,m);y(this,c);y(this,g);y(this,o);y(this,h);v(this,c,e),this.setOptions(t),this.bindMethods(),j(this,m,w).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){var n;const t=this.options;this.options=a(this,c).defaultMutationOptions(e),F(this.options,t)||a(this,c).getMutationCache().notify({type:"observerOptionsUpdated",mutation:a(this,o),observer:this}),t!=null&&t.mutationKey&&this.options.mutationKey&&E(t.mutationKey)!==E(this.options.mutationKey)?this.reset():((n=a(this,o))==null?void 0:n.state.status)==="pending"&&a(this,o).setOptions(this.options)}onUnsubscribe(){var e;this.hasListeners()||(e=a(this,o))==null||e.removeObserver(this)}onMutationUpdate(e){j(this,m,w).call(this),j(this,m,C).call(this,e)}getCurrentResult(){return a(this,g)}reset(){var e;(e=a(this,o))==null||e.removeObserver(this),v(this,o,void 0),j(this,m,w).call(this),j(this,m,C).call(this)}mutate(e,t){var n;return v(this,h,t),(n=a(this,o))==null||n.removeObserver(this),v(this,o,a(this,c).getMutationCache().build(a(this,c),this.options)),a(this,o).addObserver(this),a(this,o).execute(e)}},c=new WeakMap,g=new WeakMap,o=new WeakMap,h=new WeakMap,m=new WeakSet,w=function(){var t;const e=((t=a(this,o))==null?void 0:t.state)??I();v(this,g,{...e,isPending:e.status==="pending",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset})},C=function(e){P.batch(()=>{var t,n,l,x,d,p,k,i;if(a(this,h)&&this.hasListeners()){const u=a(this,g).variables,N=a(this,g).context,S={client:a(this,c),meta:this.options.meta,mutationKey:this.options.mutationKey};if((e==null?void 0:e.type)==="success"){try{(n=(t=a(this,h)).onSuccess)==null||n.call(t,e.data,u,N,S)}catch(b){Promise.reject(b)}try{(x=(l=a(this,h)).onSettled)==null||x.call(l,e.data,null,u,N,S)}catch(b){Promise.reject(b)}}else if((e==null?void 0:e.type)==="error"){try{(p=(d=a(this,h)).onError)==null||p.call(d,e.error,u,N,S)}catch(b){Promise.reject(b)}try{(i=(k=a(this,h)).onSettled)==null||i.call(k,void 0,e.error,u,N,S)}catch(b){Promise.reject(b)}}}this.listeners.forEach(u=>{u(a(this,g))})})},q);function W(r,e){const t=A(),[n]=f.useState(()=>new z(t,r));f.useEffect(()=>{n.setOptions(r)},[n,r]);const l=f.useSyncExternalStore(f.useCallback(d=>n.subscribe(P.batchCalls(d)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),x=f.useCallback((d,p)=>{n.mutate(d,p).catch(J)},[n]);if(l.error&&Q(n.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:x,mutateAsync:l.mutate}}/** +var M=r=>{throw TypeError(r)};var O=(r,e,t)=>e.has(r)||M("Cannot "+t);var a=(r,e,t)=>(O(r,e,"read from private field"),t?t.call(r):e.get(r)),y=(r,e,t)=>e.has(r)?M("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),v=(r,e,t,n)=>(O(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t),j=(r,e,t)=>(O(r,e,"access private method"),t);import{a9 as B,aa as F,ab as E,ac as I,ad as P,u as A,r as f,ae as J,af as Q,c as T,ag as U,j as s,G as D,T as H,b as K,L,M as G,q as V,n as R}from"./index-DNt66je4.js";import{J as _}from"./JobsBar-DG8VDiAV.js";var c,g,o,h,m,w,C,q,z=(q=class extends B{constructor(e,t){super();y(this,m);y(this,c);y(this,g);y(this,o);y(this,h);v(this,c,e),this.setOptions(t),this.bindMethods(),j(this,m,w).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){var n;const t=this.options;this.options=a(this,c).defaultMutationOptions(e),F(this.options,t)||a(this,c).getMutationCache().notify({type:"observerOptionsUpdated",mutation:a(this,o),observer:this}),t!=null&&t.mutationKey&&this.options.mutationKey&&E(t.mutationKey)!==E(this.options.mutationKey)?this.reset():((n=a(this,o))==null?void 0:n.state.status)==="pending"&&a(this,o).setOptions(this.options)}onUnsubscribe(){var e;this.hasListeners()||(e=a(this,o))==null||e.removeObserver(this)}onMutationUpdate(e){j(this,m,w).call(this),j(this,m,C).call(this,e)}getCurrentResult(){return a(this,g)}reset(){var e;(e=a(this,o))==null||e.removeObserver(this),v(this,o,void 0),j(this,m,w).call(this),j(this,m,C).call(this)}mutate(e,t){var n;return v(this,h,t),(n=a(this,o))==null||n.removeObserver(this),v(this,o,a(this,c).getMutationCache().build(a(this,c),this.options)),a(this,o).addObserver(this),a(this,o).execute(e)}},c=new WeakMap,g=new WeakMap,o=new WeakMap,h=new WeakMap,m=new WeakSet,w=function(){var t;const e=((t=a(this,o))==null?void 0:t.state)??I();v(this,g,{...e,isPending:e.status==="pending",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset})},C=function(e){P.batch(()=>{var t,n,l,x,d,p,k,i;if(a(this,h)&&this.hasListeners()){const u=a(this,g).variables,N=a(this,g).context,S={client:a(this,c),meta:this.options.meta,mutationKey:this.options.mutationKey};if((e==null?void 0:e.type)==="success"){try{(n=(t=a(this,h)).onSuccess)==null||n.call(t,e.data,u,N,S)}catch(b){Promise.reject(b)}try{(x=(l=a(this,h)).onSettled)==null||x.call(l,e.data,null,u,N,S)}catch(b){Promise.reject(b)}}else if((e==null?void 0:e.type)==="error"){try{(p=(d=a(this,h)).onError)==null||p.call(d,e.error,u,N,S)}catch(b){Promise.reject(b)}try{(i=(k=a(this,h)).onSettled)==null||i.call(k,void 0,e.error,u,N,S)}catch(b){Promise.reject(b)}}}this.listeners.forEach(u=>{u(a(this,g))})})},q);function W(r,e){const t=A(),[n]=f.useState(()=>new z(t,r));f.useEffect(()=>{n.setOptions(r)},[n,r]);const l=f.useSyncExternalStore(f.useCallback(d=>n.subscribe(P.batchCalls(d)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),x=f.useCallback((d,p)=>{n.mutate(d,p).catch(J)},[n]);if(l.error&&Q(n.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:x,mutateAsync:l.mutate}}/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/WissenView-DpReQzIY.js b/frontend/dist/assets/WissenView-DgvIyHvX.js similarity index 81% rename from frontend/dist/assets/WissenView-DpReQzIY.js rename to frontend/dist/assets/WissenView-DgvIyHvX.js index 66010ba..73e59fb 100644 --- a/frontend/dist/assets/WissenView-DpReQzIY.js +++ b/frontend/dist/assets/WissenView-DgvIyHvX.js @@ -1,9 +1,14 @@ -var to=Object.defineProperty;var eo=(e,n,r)=>n in e?to(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var Bn=(e,n,r)=>eo(e,typeof n!="symbol"?n+"":n,r);import{ao as Ft,r as W,ap as no,aq as Xn,ar as Yn,as as ro,at as io,au as Zn,av as Kn,aw as oo,j as $,R as ao,ax as so,ay as uo,n as lo,b as Ae,L as Ke,S as co,a8 as fo,a0 as ho,az as po}from"./index-CCbyojll.js";import{F as go}from"./folder-open-FZLk16T9.js";function yo(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var Qn=180/Math.PI,fn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yr(e,n,r,i,o,a){var s,u,c;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(c=e*r+n*i)&&(r-=e*c,i-=n*c),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,c/=u),e*i180?f+=360:f-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Ft(l,f)})):f&&h.push(o(h)+"rotate("+f+i)}function u(l,f,h,d){l!==f?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Ft(l,f)}):f&&h.push(o(h)+"skewX("+f+i)}function c(l,f,h,d,p,y){if(l!==h||f!==d){var x=p.push(o(p)+"scale(",null,",",null,")");y.push({i:x-4,x:Ft(l,h)},{i:x-2,x:Ft(f,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,f){var h=[],d=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,h,d),s(l.rotate,f.rotate,h,d),u(l.skewX,f.skewX,h,d),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,h,d),l=f=null,function(p){for(var y=-1,x=d.length,m;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);ra,methodNames:i=[],initPropNames:o=[]}={}){return W.forwardRef((a,s)=>{const u=W.useRef(),c=W.useMemo(()=>{const h=Object.fromEntries(o.filter(d=>a.hasOwnProperty(d)).map(d=>[d,a[d]]));return e(h)},[]);er(()=>{c(r(u.current))},W.useLayoutEffect),er(()=>c._destructor instanceof Function?c._destructor:void 0);const l=W.useCallback((h,...d)=>c[h]instanceof Function?c[h](...d):void 0,[c]),f=W.useRef({});return Object.keys(jo(a,[...i,...o])).filter(h=>f.current[h]!==a[h]).forEach(h=>l(h,a[h])),f.current=a,W.useImperativeHandle(s,()=>Object.fromEntries(i.map(h=>[h,(...d)=>l(h,...d)])),[l]),no.createElement(n,{ref:u})})}function er(e,n=W.useEffect){const r=W.useRef(),i=W.useRef(!1),o=W.useRef(!1),[a,s]=W.useState(0);i.current&&(o.current=!0),n(()=>(i.current||(r.current=e(),i.current=!0),s(u=>u+1),()=>{o.current&&(r.current&&r.current(),r.current=void 0,i.current=!1,o.current=!1)}),[])}var dn="http://www.w3.org/1999/xhtml";const nr={svg:"http://www.w3.org/2000/svg",xhtml:dn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function We(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nr.hasOwnProperty(n)?{space:nr[n],local:e}:e}function Io(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===dn&&n.documentElement.namespaceURI===dn?n.createElement(e):n.createElementNS(r,e)}}function $o(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Qr(e){var n=We(e);return(n.local?$o:Io)(n)}function Lo(){}function Tn(e){return e==null?Lo:function(){return this.querySelector(e)}}function Fo(e){typeof e!="function"&&(e=Tn(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o=w&&(w=k+1);!(v=m[w])&&++w=0;)(s=i[o])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function fa(e){e||(e=ha);function n(h,d){return h&&d?e(h.__data__,d.__data__):!h-!d}for(var r=this._groups,i=r.length,o=new Array(i),a=0;an?1:e>=n?0:NaN}function da(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function pa(){return Array.from(this)}function ga(){for(var e=this._groups,n=0,r=e.length;n1?this.each((n==null?Sa:typeof n=="function"?Ta:Ma)(e,n,r??"")):Bt(this.node(),e)}function Bt(e,n){return e.style.getPropertyValue(n)||ri(e).getComputedStyle(e,null).getPropertyValue(n)}function Oa(e){return function(){delete this[e]}}function Ea(e,n){return function(){this[e]=n}}function za(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function Na(e,n){return arguments.length>1?this.each((n==null?Oa:typeof n=="function"?za:Ea)(e,n)):this.node()[e]}function ii(e){return e.trim().split(/^|\s+/)}function Pn(e){return e.classList||new oi(e)}function oi(e){this._node=e,this._names=ii(e.getAttribute("class")||"")}oi.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ai(e,n){for(var r=Pn(e),i=-1,o=n.length;++i=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function ss(e){return function(){var n=this.__on;if(n){for(var r=0,i=-1,o=n.length,a;r{}};function ve(){for(var e=0,n=arguments.length,r={},i;e=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}Se.prototype=ve.prototype={constructor:Se,on:function(e,n){var r=this._,i=_s(e+"",r),o,a=-1,s=i.length;if(arguments.length<2){for(;++a0)for(var r=new Array(o),i=0,o,a;i()=>e;function pn(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:a,x:s,y:u,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xs(e){return!e.ctrlKey&&!e.button}function bs(){return this.parentNode}function ws(e,n){return n??{x:e.x,y:e.y}}function ks(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cs(){var e=xs,n=bs,r=ws,i=ks,o={},a=ve("start","drag","end"),s=0,u,c,l,f,h=0;function d(_){_.on("mousedown.drag",p).filter(i).on("touchstart.drag",m).on("touchmove.drag",g,ms).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(_,v){if(!(f||!e.call(this,_,v))){var A=w(this,n.call(this,_,v),_,v,"mouse");A&&(pt(_.view).on("mousemove.drag",y,pe).on("mouseup.drag",x,pe),ci(_.view),Qe(_),l=!1,u=_.clientX,c=_.clientY,A("start",_))}}function y(_){if(Vt(_),!l){var v=_.clientX-u,A=_.clientY-c;l=v*v+A*A>h}o.mouse("drag",_)}function x(_){pt(_.view).on("mousemove.drag mouseup.drag",null),fi(_.view,l),Vt(_),o.mouse("end",_)}function m(_,v){if(e.call(this,_,v)){var A=_.changedTouches,M=n.call(this,_,v),T=A.length,R,P;for(R=0;R=0&&e._call.call(void 0,n),e=e._next;--Xt}function ir(){Ht=(Re=ge.now())+Ge,Xt=ae=0;try{Ss()}finally{Xt=0,Ts(),Ht=0}}function Ms(){var e=ge.now(),n=e-Re;n>hi&&(Ge-=n,Re=e)}function Ts(){for(var e,n=Ne,r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Ne=r);se=e,gn(i)}function gn(e){if(!Xt){ae&&(ae=clearTimeout(ae));var n=e-Ht;n>24?(e<1/0&&(ae=setTimeout(ir,e-ge.now()-Ge)),Qt&&(Qt=clearInterval(Qt))):(Qt||(Re=ge.now(),Qt=setInterval(Ms,hi)),Xt=1,di(ir))}}function or(e,n,r){var i=new je;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var Ps=ve("start","end","cancel","interrupt"),Os=[],pi=0,ar=1,yn=2,Me=3,sr=4,_n=5,Te=6;function Ve(e,n,r,i,o,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;Es(e,r,{name:n,index:i,group:o,on:Ps,tween:Os,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:pi})}function zn(e,n){var r=vt(e,n);if(r.state>pi)throw new Error("too late; already scheduled");return r}function Ct(e,n){var r=vt(e,n);if(r.state>Me)throw new Error("too late; already running");return r}function vt(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function Es(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=En(a,0,r.time);function a(l){r.state=ar,r.timer.restart(s,r.delay,r.time),r.delay<=l&&s(l-r.delay)}function s(l){var f,h,d,p;if(r.state!==ar)return c();for(f in i)if(p=i[f],p.name===r.name){if(p.state===Me)return or(s);p.state===sr?(p.state=Te,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete i[f]):+fyn&&i.state<_n,i.state=Te,i.timer.stop(),i.on.call(o?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[s]}a&&delete e.__transition}}function zs(e){return this.each(function(){Pe(this,e)})}function Ns(e,n){var r,i;return function(){var o=Ct(this,e),a=o.tween;if(a!==r){i=r=a;for(var s=0,u=i.length;s=0&&(n=n.slice(0,r)),!n||n==="start"})}function su(e,n,r){var i,o,a=au(n)?zn:Ct;return function(){var s=a(this,e),u=s.on;u!==i&&(o=(i=u).copy()).on(n,r),s.on=o}}function uu(e,n){var r=this._id;return arguments.length<2?vt(this.node(),r).on.on(e):this.each(su(r,e,n))}function lu(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function cu(){return this.on("end.remove",lu(this._id))}function fu(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Tn(e));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s()=>e;function Du(e,{sourceEvent:n,target:r,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Et(e,n,r){this.k=e,this.x=n,this.y=r}Et.prototype={constructor:Et,scale:function(e){return e===1?this:new Et(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Et(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Rn=new Et(1,0,0);mt.prototype=Et.prototype;function mt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Rn;return e.__zoom}function Je(e){e.stopImmediatePropagation()}function Jt(e){e.preventDefault(),e.stopImmediatePropagation()}function Iu(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function $u(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ur(){return this.__zoom||Rn}function Lu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Fu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Uu(e,n,r){var i=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],a=e.invertY(n[0][1])-r[0][1],s=e.invertY(n[1][1])-r[1][1];return e.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s))}function Hu(){var e=Iu,n=$u,r=Uu,i=Lu,o=Fu,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,c=Co,l=ve("start","zoom","end"),f,h,d,p=500,y=150,x=0,m=10;function g(S){S.property("__zoom",ur).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",N).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(S,j,E,C){var O=S.selection?S.selection():S;O.property("__zoom",ur),S!==O?v(S,j,E,C):O.interrupt().each(function(){A(this,arguments).event(C).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},g.scaleBy=function(S,j,E,C){g.scaleTo(S,function(){var O=this.__zoom.k,I=typeof j=="function"?j.apply(this,arguments):j;return O*I},E,C)},g.scaleTo=function(S,j,E,C){g.transform(S,function(){var O=n.apply(this,arguments),I=this.__zoom,L=E==null?_(O):typeof E=="function"?E.apply(this,arguments):E,H=I.invert(L),F=typeof j=="function"?j.apply(this,arguments):j;return r(w(k(I,F),L,H),O,s)},E,C)},g.translateBy=function(S,j,E,C){g.transform(S,function(){return r(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof E=="function"?E.apply(this,arguments):E),n.apply(this,arguments),s)},null,C)},g.translateTo=function(S,j,E,C,O){g.transform(S,function(){var I=n.apply(this,arguments),L=this.__zoom,H=C==null?_(I):typeof C=="function"?C.apply(this,arguments):C;return r(Rn.translate(H[0],H[1]).scale(L.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof E=="function"?-E.apply(this,arguments):-E),I,s)},C,O)};function k(S,j){return j=Math.max(a[0],Math.min(a[1],j)),j===S.k?S:new Et(j,S.x,S.y)}function w(S,j,E){var C=j[0]-E[0]*S.k,O=j[1]-E[1]*S.k;return C===S.x&&O===S.y?S:new Et(S.k,C,O)}function _(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function v(S,j,E,C){S.on("start.zoom",function(){A(this,arguments).event(C).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(C).end()}).tween("zoom",function(){var O=this,I=arguments,L=A(O,I).event(C),H=n.apply(O,I),F=E==null?_(H):typeof E=="function"?E.apply(O,I):E,G=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=O.__zoom,X=typeof j=="function"?j.apply(O,I):j,tt=c(V.invert(F).concat(G/V.k),X.invert(F).concat(G/X.k));return function(Z){if(Z===1)Z=X;else{var st=tt(Z),et=G/st[2];Z=new Et(et,F[0]-st[0]*et,F[1]-st[1]*et)}L.zoom(null,Z)}})}function A(S,j,E){return!E&&S.__zooming||new M(S,j)}function M(S,j){this.that=S,this.args=j,this.active=0,this.sourceEvent=null,this.extent=n.apply(S,j),this.taps=0}M.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,j){return this.mouse&&S!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var j=pt(this.that).datum();l.call(S,this.that,new Du(S,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:l}),j)}};function T(S,...j){if(!e.apply(this,arguments))return;var E=A(this,j).event(S),C=this.__zoom,O=Math.max(a[0],Math.min(a[1],C.k*Math.pow(2,i.apply(this,arguments)))),I=xt(S);if(E.wheel)(E.mouse[0][0]!==I[0]||E.mouse[0][1]!==I[1])&&(E.mouse[1]=C.invert(E.mouse[0]=I)),clearTimeout(E.wheel);else{if(C.k===O)return;E.mouse=[I,C.invert(I)],Pe(this),E.start()}Jt(S),E.wheel=setTimeout(L,y),E.zoom("mouse",r(w(k(C,O),E.mouse[0],E.mouse[1]),E.extent,s));function L(){E.wheel=null,E.end()}}function R(S,...j){if(d||!e.apply(this,arguments))return;var E=S.currentTarget,C=A(this,j,!0).event(S),O=pt(S.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",G,!0),I=xt(S,E),L=S.clientX,H=S.clientY;ci(S.view),Je(S),C.mouse=[I,this.__zoom.invert(I)],Pe(this),C.start();function F(V){if(Jt(V),!C.moved){var X=V.clientX-L,tt=V.clientY-H;C.moved=X*X+tt*tt>x}C.event(V).zoom("mouse",r(w(C.that.__zoom,C.mouse[0]=xt(V,E),C.mouse[1]),C.extent,s))}function G(V){O.on("mousemove.zoom mouseup.zoom",null),fi(V.view,C.moved),Jt(V),C.event(V).end()}}function P(S,...j){if(e.apply(this,arguments)){var E=this.__zoom,C=xt(S.changedTouches?S.changedTouches[0]:S,this),O=E.invert(C),I=E.k*(S.shiftKey?.5:2),L=r(w(k(E,I),C,O),n.apply(this,j),s);Jt(S),u>0?pt(this).transition().duration(u).call(v,L,C,S):pt(this).call(g.transform,L,C,S)}}function N(S,...j){if(e.apply(this,arguments)){var E=S.touches,C=E.length,O=A(this,j,S.changedTouches.length===C).event(S),I,L,H,F;for(Je(S),L=0;L=n||M<0||h&&T>=a}function g(){var A=tn();if(m(A))return k(A);u=setTimeout(g,x(A))}function k(A){return u=void 0,d&&i?p(A):(i=o=void 0,s)}function w(){u!==void 0&&clearTimeout(u),l=0,i=c=o=u=void 0}function _(){return u===void 0?s:k(tn())}function v(){var A=tn(),M=m(A);if(i=arguments,o=this,c=A,M){if(u===void 0)return y(c);if(h)return clearTimeout(u),u=setTimeout(g,n),p(c)}return u===void 0&&(u=setTimeout(g,n)),s}return v.cancel=w,v.flush=_,v}var pl="Expected a function";function gl(e,n,r){var i=!0,o=!0;if(typeof e!="function")throw new TypeError(pl);return Ie(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),xi(e,n,{leading:i,maxWait:n,trailing:o})}var Ut=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Ut.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Ut.Bounce.In(e*2)*.5:Ut.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),ue=function(){return performance.now()},bi=(function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,r){n===void 0&&(n=ue()),r===void 0&&(r=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?a(e[r],e[r-1],r-i):a(e[o],e[o+1>r?r:o+1],i-o)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},wi=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),mn=new bi,hr=(function(){function e(n,r){r===void 0&&(r=mn),this._object=n,this._group=r,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ut.Linear.None,this._interpolationFunction=vn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=wi.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=ue()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var a in this._valuesEnd)o[a]=this._valuesEnd[a];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,i,o,a){for(var s in i){var u=n[s],c=Array.isArray(u),l=c?"array":typeof u,f=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(f){var h=i[s];if(h.length===0)continue;for(var d=[u],p=0,y=h.length;p"u"||a)&&(r[s]=u),c||(r[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=ue()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=ue()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;ns)return!1;r&&this.start(n,!0)}if(this._goToEnd=!1,nl)return 1;var m=Math.trunc(u/c),g=u-m*c,k=Math.min(g/i._duration,1);return k===0&&u===i._duration?1:k},h=f(),d=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||u>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((u-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var y=0,x=this._chainedTweens.length;ye.length)&&(n=e.length);for(var r=0,i=Array(n);r=0,a=!r&&o&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(i=this.toRgbString()),n==="prgb"&&(i=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(i=this.toHexString()),n==="hex3"&&(i=this.toHexString(!0)),n==="hex4"&&(i=this.toHex8String(!0)),n==="hex8"&&(i=this.toHex8String()),n==="name"&&(i=this.toName()),n==="hsl"&&(i=this.toHslString()),n==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return q(this.toString())},_applyModification:function(n,r){var i=n.apply(null,[this].concat([].slice.call(r)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(Rl,arguments)},brighten:function(){return this._applyModification(jl,arguments)},darken:function(){return this._applyModification(Dl,arguments)},desaturate:function(){return this._applyModification(El,arguments)},saturate:function(){return this._applyModification(zl,arguments)},greyscale:function(){return this._applyModification(Nl,arguments)},spin:function(){return this._applyModification(Il,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Fl,arguments)},complement:function(){return this._applyCombination($l,arguments)},monochromatic:function(){return this._applyCombination(Ul,arguments)},splitcomplement:function(){return this._applyCombination(Ll,arguments)},triad:function(){return this._applyCombination(vr,[3])},tetrad:function(){return this._applyCombination(vr,[4])}};q.fromRatio=function(e,n){if($e(e)=="object"){var r={};for(var i in e)e.hasOwnProperty(i)&&(i==="a"?r[i]=e[i]:r[i]=le(e[i]));e=r}return q(e,n)};function Sl(e){var n={r:0,g:0,b:0},r=1,i=null,o=null,a=null,s=!1,u=!1;return typeof e=="string"&&(e=Vl(e)),$e(e)=="object"&&(Mt(e.r)&&Mt(e.g)&&Mt(e.b)?(n=Ml(e.r,e.g,e.b),s=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Mt(e.h)&&Mt(e.s)&&Mt(e.v)?(i=le(e.s),o=le(e.v),n=Pl(e.h,i,o),s=!0,u="hsv"):Mt(e.h)&&Mt(e.s)&&Mt(e.l)&&(i=le(e.s),a=le(e.l),n=Tl(e.h,i,a),s=!0,u="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ki(r),{ok:s,format:e.format||u,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function Ml(e,n,r){return{r:Q(e,255)*255,g:Q(n,255)*255,b:Q(r,255)*255}}function pr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=(i+o)/2;if(i==o)a=s=0;else{var c=i-o;switch(s=u>.5?c/(2-i-o):c/(i+o),i){case e:a=(n-r)/c+(n1&&(h-=1),h<1/6?l+(f-l)*6*h:h<1/2?f:h<2/3?l+(f-l)*(2/3-h)*6:l}if(n===0)i=o=a=r;else{var u=r<.5?r*(1+n):r+n-r*n,c=2*r-u;i=s(c,u,e+1/3),o=s(c,u,e),a=s(c,u,e-1/3)}return{r:i*255,g:o*255,b:a*255}}function gr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=i,c=i-o;if(s=i===0?0:c/i,i==o)a=0;else{switch(i){case e:a=(n-r)/c+(n>1)+720)%360;--n;)i.h=(i.h+o)%360,a.push(q(i));return a}function Ul(e,n){n=n||6;for(var r=q(e).toHsv(),i=r.h,o=r.s,a=r.v,s=[],u=1/n;n--;)s.push(q({h:i,s:o,v:a})),a=(a+u)%1;return s}q.mix=function(e,n,r){r=r===0?0:r||50;var i=q(e).toRgb(),o=q(n).toRgb(),a=r/100,s={r:(o.r-i.r)*a+i.r,g:(o.g-i.g)*a+i.g,b:(o.b-i.b)*a+i.b,a:(o.a-i.a)*a+i.a};return q(s)};q.readability=function(e,n){var r=q(e),i=q(n);return(Math.max(r.getLuminance(),i.getLuminance())+.05)/(Math.min(r.getLuminance(),i.getLuminance())+.05)};q.isReadable=function(e,n,r){var i=q.readability(e,n),o,a;switch(a=!1,o=Bl(r),o.level+o.size){case"AAsmall":case"AAAlarge":a=i>=4.5;break;case"AAlarge":a=i>=3;break;case"AAAsmall":a=i>=7;break}return a};q.mostReadable=function(e,n,r){var i=null,o=0,a,s,u,c;r=r||{},s=r.includeFallbackColors,u=r.level,c=r.size;for(var l=0;lo&&(o=a,i=q(n[l]));return q.isReadable(e,i,{level:u,size:c})||!s?i:(r.includeFallbackColors=!1,q.mostReadable(e,["#fff","#000"],r))};var xn=q.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Hl=q.hexNames=ql(xn);function ql(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ki(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Q(e,n){Wl(e)&&(e="100%");var r=Gl(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Be(e){return Math.min(1,Math.max(0,e))}function ct(e){return parseInt(e,16)}function Wl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Gl(e){return typeof e=="string"&&e.indexOf("%")!=-1}function _t(e){return e.length==1?"0"+e:""+e}function le(e){return e<=1&&(e=e*100+"%"),e}function Ci(e){return Math.round(parseFloat(e)*255).toString(16)}function mr(e){return ct(e)/255}var yt=(function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Mt(e){return!!yt.CSS_UNIT.exec(e)}function Vl(e){e=e.replace(Cl,"").replace(Al,"").toLowerCase();var n=!1;if(xn[e])e=xn[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=yt.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=yt.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=yt.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=yt.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=yt.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=yt.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=yt.hex8.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),a:mr(r[4]),format:n?"name":"hex8"}:(r=yt.hex6.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),format:n?"name":"hex"}:(r=yt.hex4.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),a:mr(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=yt.hex3.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function Bl(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function bn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:6;Zl(this,e),xr(this,Lt,void 0),xr(this,Tt,void 0),br(Tt,this,n),this.reset()}return Ql(e,[{key:"reset",value:function(){br(Lt,this,["__reserved for background__"])}},{key:"register",value:function(r){if(ht(Lt,this).length>=Math.pow(2,24-ht(Tt,this)))return null;var i=ht(Lt,this).length,o=wr(i,ht(Tt,this)),a=ac(i+(o<<24-ht(Tt,this)));return ht(Lt,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var i=typeof r=="string"?sc(r):Si.apply(void 0,ec(r));if(!i)return null;var o=i&Math.pow(2,24-ht(Tt,this))-1,a=i>>24-ht(Tt,this)&Math.pow(2,ht(Tt,this))-1;return wr(o,ht(Tt,this))!==a||o>=ht(Lt,this).length?null:ht(Lt,this)[o]}}])})(),me,J,Mi,Ti,$t,kr,Pi,Oi,en,Oe,ce,Ei,Dn,wn,kn,Le={},Fe=[],lc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Xe=Array.isArray;function bt(e,n){for(var r in n)e[r]=n[r];return e}function In(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function cc(e,n,r){var i,o,a,s={};for(a in n)a=="key"?i=n[a]:a=="ref"?o=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?me.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return fe(e,s,i,o,null)}function fe(e,n,r,i,o){var a={type:e,props:n,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++Mi,__i:-1,__u:0};return o==null&&J.vnode!=null&&J.vnode(a),a}function Ye(e){return e.children}function Ee(e,n){this.props=e,this.context=n}function Yt(e,n){if(n==null)return e.__?Yt(e.__,e.__i+1):null;for(var r;nn&&$t.sort(Oi),e=$t.shift(),n=$t.length,fc(e)}finally{$t.length=Ue.__r=0}}function Ni(e,n,r,i,o,a,s,u,c,l,f){var h,d,p,y,x,m,g,k=i&&i.__k||Fe,w=n.length;for(c=hc(r,n,k,c,w),h=0;h0?s=e.__k[a]=fe(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,c=a+d,s.__=e,s.__b=e.__b+1,u=null,(l=s.__i=dc(s,r,c,h))!=-1&&(h--,(u=r[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(o>f?d--:oc?d--:d++,s.__u|=4))):e.__k[a]=null;if(h)for(a=0;a(f?1:0)){for(o=r-1,a=r+1;o>=0||a=0?o--:a++])!=null&&(2&l.__u)==0&&u==l.key&&c==l.type)return s}return-1}function Ar(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||lc.test(n)?r:r+"px"}function ke(e,n,r,i,o){var a,s;t:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(n in i)r&&n in r||Ar(e.style,n,"");if(r)for(n in r)i&&r[n]==i[n]||Ar(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Ei,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?i?r[ce]=i[ce]:(r[ce]=Dn,e.addEventListener(n,a?kn:wn,a)):e.removeEventListener(n,a?kn:wn,a);else{if(o=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break t}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function Sr(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[Oe]==null)n[Oe]=Dn++;else if(n[Oe]0?e:Xe(e)?e.map(Ii):e.constructor!==void 0?null:bt({},e)}function pc(e,n,r,i,o,a,s,u,c){var l,f,h,d,p,y,x,m=r.props||Le,g=n.props,k=n.type;if(k=="svg"?o="http://www.w3.org/2000/svg":k=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l2&&(u.children=arguments.length>3?me.call(arguments,2):r),fe(e.type,u,i||e.key,o||e.ref,null)}me=Fe.slice,J={__e:function(e,n,r,i){for(var o,a,s;n=n.__;)if((o=n.__c)&&!o.__)try{if((a=o.constructor)&&a.getDerivedStateFromError!=null&&(o.setState(a.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,i||{}),s=o.__d),s)return o.__E=o}catch(u){e=u}throw e}},Mi=0,Ti=function(e){return e!=null&&e.constructor===void 0},Ee.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=bt({},this.state),typeof e=="function"&&(e=e(bt({},r),this.props)),e&&bt(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),Cr(this))},Ee.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Cr(this))},Ee.prototype.render=Ye,$t=[],Pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Oi=function(e,n){return e.__v.__b-n.__v.__b},Ue.__r=0,en=Math.random().toString(8),Oe="__d"+en,ce="__a"+en,Ei=/(PointerCapture)$|Capture$/i,Dn=0,wn=Sr(!1),kn=Sr(!0);function Mr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Pc=`.float-tooltip-kap { +var to=Object.defineProperty;var eo=(e,n,r)=>n in e?to(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var Bn=(e,n,r)=>eo(e,typeof n!="symbol"?n+"":n,r);import{c as no,ao as Ft,r as W,ap as ro,aq as Xn,ar as Yn,as as io,at as oo,au as Zn,av as Kn,aw as ao,j as $,R as so,ax as uo,ay as lo,n as co,b as Ae,L as Ke,S as fo,a8 as ho,a0 as po,az as go}from"./index-DNt66je4.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 yo=no("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);function _o(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var Qn=180/Math.PI,fn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yr(e,n,r,i,o,a){var s,u,c;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(c=e*r+n*i)&&(r-=e*c,i-=n*c),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,c/=u),e*i180?f+=360:f-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Ft(l,f)})):f&&h.push(o(h)+"rotate("+f+i)}function u(l,f,h,d){l!==f?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Ft(l,f)}):f&&h.push(o(h)+"skewX("+f+i)}function c(l,f,h,d,p,y){if(l!==h||f!==d){var x=p.push(o(p)+"scale(",null,",",null,")");y.push({i:x-4,x:Ft(l,h)},{i:x-2,x:Ft(f,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,f){var h=[],d=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,h,d),s(l.rotate,f.rotate,h,d),u(l.skewX,f.skewX,h,d),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,h,d),l=f=null,function(p){for(var y=-1,x=d.length,m;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);ra,methodNames:i=[],initPropNames:o=[]}={}){return W.forwardRef((a,s)=>{const u=W.useRef(),c=W.useMemo(()=>{const h=Object.fromEntries(o.filter(d=>a.hasOwnProperty(d)).map(d=>[d,a[d]]));return e(h)},[]);er(()=>{c(r(u.current))},W.useLayoutEffect),er(()=>c._destructor instanceof Function?c._destructor:void 0);const l=W.useCallback((h,...d)=>c[h]instanceof Function?c[h](...d):void 0,[c]),f=W.useRef({});return Object.keys(Do(a,[...i,...o])).filter(h=>f.current[h]!==a[h]).forEach(h=>l(h,a[h])),f.current=a,W.useImperativeHandle(s,()=>Object.fromEntries(i.map(h=>[h,(...d)=>l(h,...d)])),[l]),ro.createElement(n,{ref:u})})}function er(e,n=W.useEffect){const r=W.useRef(),i=W.useRef(!1),o=W.useRef(!1),[a,s]=W.useState(0);i.current&&(o.current=!0),n(()=>(i.current||(r.current=e(),i.current=!0),s(u=>u+1),()=>{o.current&&(r.current&&r.current(),r.current=void 0,i.current=!1,o.current=!1)}),[])}var dn="http://www.w3.org/1999/xhtml";const nr={svg:"http://www.w3.org/2000/svg",xhtml:dn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function We(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nr.hasOwnProperty(n)?{space:nr[n],local:e}:e}function $o(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===dn&&n.documentElement.namespaceURI===dn?n.createElement(e):n.createElementNS(r,e)}}function Lo(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Qr(e){var n=We(e);return(n.local?Lo:$o)(n)}function Fo(){}function Tn(e){return e==null?Fo:function(){return this.querySelector(e)}}function Uo(e){typeof e!="function"&&(e=Tn(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o=w&&(w=k+1);!(v=m[w])&&++w=0;)(s=i[o])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function ha(e){e||(e=da);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 pa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ga(){return Array.from(this)}function ya(){for(var e=this._groups,n=0,r=e.length;n1?this.each((n==null?Ma:typeof n=="function"?Pa:Ta)(e,n,r??"")):Bt(this.node(),e)}function Bt(e,n){return e.style.getPropertyValue(n)||ri(e).getComputedStyle(e,null).getPropertyValue(n)}function Ea(e){return function(){delete this[e]}}function za(e,n){return function(){this[e]=n}}function Na(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function Ra(e,n){return arguments.length>1?this.each((n==null?Ea:typeof n=="function"?Na:za)(e,n)):this.node()[e]}function ii(e){return e.trim().split(/^|\s+/)}function Pn(e){return e.classList||new oi(e)}function oi(e){this._node=e,this._names=ii(e.getAttribute("class")||"")}oi.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ai(e,n){for(var r=Pn(e),i=-1,o=n.length;++i=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function us(e){return function(){var n=this.__on;if(n){for(var r=0,i=-1,o=n.length,a;r{}};function ve(){for(var e=0,n=arguments.length,r={},i;e=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}Se.prototype=ve.prototype={constructor:Se,on:function(e,n){var r=this._,i=vs(e+"",r),o,a=-1,s=i.length;if(arguments.length<2){for(;++a0)for(var r=new Array(o),i=0,o,a;i()=>e;function pn(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:a,x:s,y:u,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function bs(e){return!e.ctrlKey&&!e.button}function ws(){return this.parentNode}function ks(e,n){return n??{x:e.x,y:e.y}}function Cs(){return navigator.maxTouchPoints||"ontouchstart"in this}function As(){var e=bs,n=ws,r=ks,i=Cs,o={},a=ve("start","drag","end"),s=0,u,c,l,f,h=0;function d(_){_.on("mousedown.drag",p).filter(i).on("touchstart.drag",m).on("touchmove.drag",g,xs).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(_,v){if(!(f||!e.call(this,_,v))){var A=w(this,n.call(this,_,v),_,v,"mouse");A&&(pt(_.view).on("mousemove.drag",y,pe).on("mouseup.drag",x,pe),ci(_.view),Qe(_),l=!1,u=_.clientX,c=_.clientY,A("start",_))}}function y(_){if(Vt(_),!l){var v=_.clientX-u,A=_.clientY-c;l=v*v+A*A>h}o.mouse("drag",_)}function x(_){pt(_.view).on("mousemove.drag mouseup.drag",null),fi(_.view,l),Vt(_),o.mouse("end",_)}function m(_,v){if(e.call(this,_,v)){var A=_.changedTouches,M=n.call(this,_,v),T=A.length,R,P;for(R=0;R=0&&e._call.call(void 0,n),e=e._next;--Xt}function ir(){Ht=(Re=ge.now())+Ge,Xt=ae=0;try{Ms()}finally{Xt=0,Ps(),Ht=0}}function Ts(){var e=ge.now(),n=e-Re;n>hi&&(Ge-=n,Re=e)}function Ps(){for(var e,n=Ne,r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Ne=r);se=e,gn(i)}function gn(e){if(!Xt){ae&&(ae=clearTimeout(ae));var n=e-Ht;n>24?(e<1/0&&(ae=setTimeout(ir,e-ge.now()-Ge)),Qt&&(Qt=clearInterval(Qt))):(Qt||(Re=ge.now(),Qt=setInterval(Ts,hi)),Xt=1,di(ir))}}function or(e,n,r){var i=new je;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var Os=ve("start","end","cancel","interrupt"),Es=[],pi=0,ar=1,yn=2,Me=3,sr=4,_n=5,Te=6;function Ve(e,n,r,i,o,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;zs(e,r,{name:n,index:i,group:o,on:Os,tween:Es,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:pi})}function zn(e,n){var r=vt(e,n);if(r.state>pi)throw new Error("too late; already scheduled");return r}function Ct(e,n){var r=vt(e,n);if(r.state>Me)throw new Error("too late; already running");return r}function vt(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function zs(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=En(a,0,r.time);function a(l){r.state=ar,r.timer.restart(s,r.delay,r.time),r.delay<=l&&s(l-r.delay)}function s(l){var f,h,d,p;if(r.state!==ar)return c();for(f in i)if(p=i[f],p.name===r.name){if(p.state===Me)return or(s);p.state===sr?(p.state=Te,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete i[f]):+fyn&&i.state<_n,i.state=Te,i.timer.stop(),i.on.call(o?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[s]}a&&delete e.__transition}}function Ns(e){return this.each(function(){Pe(this,e)})}function Rs(e,n){var r,i;return function(){var o=Ct(this,e),a=o.tween;if(a!==r){i=r=a;for(var s=0,u=i.length;s=0&&(n=n.slice(0,r)),!n||n==="start"})}function uu(e,n,r){var i,o,a=su(n)?zn:Ct;return function(){var s=a(this,e),u=s.on;u!==i&&(o=(i=u).copy()).on(n,r),s.on=o}}function lu(e,n){var r=this._id;return arguments.length<2?vt(this.node(),r).on.on(e):this.each(uu(r,e,n))}function cu(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function fu(){return this.on("end.remove",cu(this._id))}function hu(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Tn(e));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s()=>e;function Iu(e,{sourceEvent:n,target:r,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Et(e,n,r){this.k=e,this.x=n,this.y=r}Et.prototype={constructor:Et,scale:function(e){return e===1?this:new Et(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Et(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Rn=new Et(1,0,0);mt.prototype=Et.prototype;function mt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Rn;return e.__zoom}function Je(e){e.stopImmediatePropagation()}function Jt(e){e.preventDefault(),e.stopImmediatePropagation()}function $u(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Lu(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ur(){return this.__zoom||Rn}function Fu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Uu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Hu(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 qu(){var e=$u,n=Lu,r=Hu,i=Fu,o=Uu,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,c=Ao,l=ve("start","zoom","end"),f,h,d,p=500,y=150,x=0,m=10;function g(S){S.property("__zoom",ur).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",N).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(S,j,E,C){var O=S.selection?S.selection():S;O.property("__zoom",ur),S!==O?v(S,j,E,C):O.interrupt().each(function(){A(this,arguments).event(C).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},g.scaleBy=function(S,j,E,C){g.scaleTo(S,function(){var O=this.__zoom.k,I=typeof j=="function"?j.apply(this,arguments):j;return O*I},E,C)},g.scaleTo=function(S,j,E,C){g.transform(S,function(){var O=n.apply(this,arguments),I=this.__zoom,L=E==null?_(O):typeof E=="function"?E.apply(this,arguments):E,H=I.invert(L),F=typeof j=="function"?j.apply(this,arguments):j;return r(w(k(I,F),L,H),O,s)},E,C)},g.translateBy=function(S,j,E,C){g.transform(S,function(){return r(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof E=="function"?E.apply(this,arguments):E),n.apply(this,arguments),s)},null,C)},g.translateTo=function(S,j,E,C,O){g.transform(S,function(){var I=n.apply(this,arguments),L=this.__zoom,H=C==null?_(I):typeof C=="function"?C.apply(this,arguments):C;return r(Rn.translate(H[0],H[1]).scale(L.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof E=="function"?-E.apply(this,arguments):-E),I,s)},C,O)};function k(S,j){return j=Math.max(a[0],Math.min(a[1],j)),j===S.k?S:new Et(j,S.x,S.y)}function w(S,j,E){var C=j[0]-E[0]*S.k,O=j[1]-E[1]*S.k;return C===S.x&&O===S.y?S:new Et(S.k,C,O)}function _(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function v(S,j,E,C){S.on("start.zoom",function(){A(this,arguments).event(C).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(C).end()}).tween("zoom",function(){var O=this,I=arguments,L=A(O,I).event(C),H=n.apply(O,I),F=E==null?_(H):typeof E=="function"?E.apply(O,I):E,G=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=O.__zoom,X=typeof j=="function"?j.apply(O,I):j,tt=c(V.invert(F).concat(G/V.k),X.invert(F).concat(G/X.k));return function(Z){if(Z===1)Z=X;else{var st=tt(Z),et=G/st[2];Z=new Et(et,F[0]-st[0]*et,F[1]-st[1]*et)}L.zoom(null,Z)}})}function A(S,j,E){return!E&&S.__zooming||new M(S,j)}function M(S,j){this.that=S,this.args=j,this.active=0,this.sourceEvent=null,this.extent=n.apply(S,j),this.taps=0}M.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,j){return this.mouse&&S!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var j=pt(this.that).datum();l.call(S,this.that,new Iu(S,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:l}),j)}};function T(S,...j){if(!e.apply(this,arguments))return;var E=A(this,j).event(S),C=this.__zoom,O=Math.max(a[0],Math.min(a[1],C.k*Math.pow(2,i.apply(this,arguments)))),I=xt(S);if(E.wheel)(E.mouse[0][0]!==I[0]||E.mouse[0][1]!==I[1])&&(E.mouse[1]=C.invert(E.mouse[0]=I)),clearTimeout(E.wheel);else{if(C.k===O)return;E.mouse=[I,C.invert(I)],Pe(this),E.start()}Jt(S),E.wheel=setTimeout(L,y),E.zoom("mouse",r(w(k(C,O),E.mouse[0],E.mouse[1]),E.extent,s));function L(){E.wheel=null,E.end()}}function R(S,...j){if(d||!e.apply(this,arguments))return;var E=S.currentTarget,C=A(this,j,!0).event(S),O=pt(S.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",G,!0),I=xt(S,E),L=S.clientX,H=S.clientY;ci(S.view),Je(S),C.mouse=[I,this.__zoom.invert(I)],Pe(this),C.start();function F(V){if(Jt(V),!C.moved){var X=V.clientX-L,tt=V.clientY-H;C.moved=X*X+tt*tt>x}C.event(V).zoom("mouse",r(w(C.that.__zoom,C.mouse[0]=xt(V,E),C.mouse[1]),C.extent,s))}function G(V){O.on("mousemove.zoom mouseup.zoom",null),fi(V.view,C.moved),Jt(V),C.event(V).end()}}function P(S,...j){if(e.apply(this,arguments)){var E=this.__zoom,C=xt(S.changedTouches?S.changedTouches[0]:S,this),O=E.invert(C),I=E.k*(S.shiftKey?.5:2),L=r(w(k(E,I),C,O),n.apply(this,j),s);Jt(S),u>0?pt(this).transition().duration(u).call(v,L,C,S):pt(this).call(g.transform,L,C,S)}}function N(S,...j){if(e.apply(this,arguments)){var E=S.touches,C=E.length,O=A(this,j,S.changedTouches.length===C).event(S),I,L,H,F;for(Je(S),L=0;L=n||M<0||h&&T>=a}function g(){var A=tn();if(m(A))return k(A);u=setTimeout(g,x(A))}function k(A){return u=void 0,d&&i?p(A):(i=o=void 0,s)}function w(){u!==void 0&&clearTimeout(u),l=0,i=c=o=u=void 0}function _(){return u===void 0?s:k(tn())}function v(){var A=tn(),M=m(A);if(i=arguments,o=this,c=A,M){if(u===void 0)return y(c);if(h)return clearTimeout(u),u=setTimeout(g,n),p(c)}return u===void 0&&(u=setTimeout(g,n)),s}return v.cancel=w,v.flush=_,v}var gl="Expected a function";function yl(e,n,r){var i=!0,o=!0;if(typeof e!="function")throw new TypeError(gl);return Ie(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),xi(e,n,{leading:i,maxWait:n,trailing:o})}var Ut=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Ut.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Ut.Bounce.In(e*2)*.5:Ut.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),ue=function(){return performance.now()},bi=(function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,r){n===void 0&&(n=ue()),r===void 0&&(r=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?a(e[r],e[r-1],r-i):a(e[o],e[o+1>r?r:o+1],i-o)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},wi=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),mn=new bi,hr=(function(){function e(n,r){r===void 0&&(r=mn),this._object=n,this._group=r,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ut.Linear.None,this._interpolationFunction=vn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=wi.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=ue()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var a in this._valuesEnd)o[a]=this._valuesEnd[a];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,i,o,a){for(var s in i){var u=n[s],c=Array.isArray(u),l=c?"array":typeof u,f=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(f){var h=i[s];if(h.length===0)continue;for(var d=[u],p=0,y=h.length;p"u"||a)&&(r[s]=u),c||(r[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=ue()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=ue()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;ns)return!1;r&&this.start(n,!0)}if(this._goToEnd=!1,nl)return 1;var m=Math.trunc(u/c),g=u-m*c,k=Math.min(g/i._duration,1);return k===0&&u===i._duration?1:k},h=f(),d=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||u>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((u-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var y=0,x=this._chainedTweens.length;ye.length)&&(n=e.length);for(var r=0,i=Array(n);r=0,a=!r&&o&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(i=this.toRgbString()),n==="prgb"&&(i=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(i=this.toHexString()),n==="hex3"&&(i=this.toHexString(!0)),n==="hex4"&&(i=this.toHex8String(!0)),n==="hex8"&&(i=this.toHex8String()),n==="name"&&(i=this.toName()),n==="hsl"&&(i=this.toHslString()),n==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return q(this.toString())},_applyModification:function(n,r){var i=n.apply(null,[this].concat([].slice.call(r)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(jl,arguments)},brighten:function(){return this._applyModification(Dl,arguments)},darken:function(){return this._applyModification(Il,arguments)},desaturate:function(){return this._applyModification(zl,arguments)},saturate:function(){return this._applyModification(Nl,arguments)},greyscale:function(){return this._applyModification(Rl,arguments)},spin:function(){return this._applyModification($l,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Ul,arguments)},complement:function(){return this._applyCombination(Ll,arguments)},monochromatic:function(){return this._applyCombination(Hl,arguments)},splitcomplement:function(){return this._applyCombination(Fl,arguments)},triad:function(){return this._applyCombination(vr,[3])},tetrad:function(){return this._applyCombination(vr,[4])}};q.fromRatio=function(e,n){if($e(e)=="object"){var r={};for(var i in e)e.hasOwnProperty(i)&&(i==="a"?r[i]=e[i]:r[i]=le(e[i]));e=r}return q(e,n)};function Ml(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=Bl(e)),$e(e)=="object"&&(Mt(e.r)&&Mt(e.g)&&Mt(e.b)?(n=Tl(e.r,e.g,e.b),s=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Mt(e.h)&&Mt(e.s)&&Mt(e.v)?(i=le(e.s),o=le(e.v),n=Ol(e.h,i,o),s=!0,u="hsv"):Mt(e.h)&&Mt(e.s)&&Mt(e.l)&&(i=le(e.s),a=le(e.l),n=Pl(e.h,i,a),s=!0,u="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ki(r),{ok:s,format:e.format||u,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function Tl(e,n,r){return{r:Q(e,255)*255,g:Q(n,255)*255,b:Q(r,255)*255}}function pr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=(i+o)/2;if(i==o)a=s=0;else{var c=i-o;switch(s=u>.5?c/(2-i-o):c/(i+o),i){case e:a=(n-r)/c+(n1&&(h-=1),h<1/6?l+(f-l)*6*h:h<1/2?f:h<2/3?l+(f-l)*(2/3-h)*6:l}if(n===0)i=o=a=r;else{var u=r<.5?r*(1+n):r+n-r*n,c=2*r-u;i=s(c,u,e+1/3),o=s(c,u,e),a=s(c,u,e-1/3)}return{r:i*255,g:o*255,b:a*255}}function gr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=i,c=i-o;if(s=i===0?0:c/i,i==o)a=0;else{switch(i){case e:a=(n-r)/c+(n>1)+720)%360;--n;)i.h=(i.h+o)%360,a.push(q(i));return a}function Hl(e,n){n=n||6;for(var r=q(e).toHsv(),i=r.h,o=r.s,a=r.v,s=[],u=1/n;n--;)s.push(q({h:i,s:o,v:a})),a=(a+u)%1;return s}q.mix=function(e,n,r){r=r===0?0:r||50;var i=q(e).toRgb(),o=q(n).toRgb(),a=r/100,s={r:(o.r-i.r)*a+i.r,g:(o.g-i.g)*a+i.g,b:(o.b-i.b)*a+i.b,a:(o.a-i.a)*a+i.a};return q(s)};q.readability=function(e,n){var r=q(e),i=q(n);return(Math.max(r.getLuminance(),i.getLuminance())+.05)/(Math.min(r.getLuminance(),i.getLuminance())+.05)};q.isReadable=function(e,n,r){var i=q.readability(e,n),o,a;switch(a=!1,o=Xl(r),o.level+o.size){case"AAsmall":case"AAAlarge":a=i>=4.5;break;case"AAlarge":a=i>=3;break;case"AAAsmall":a=i>=7;break}return a};q.mostReadable=function(e,n,r){var i=null,o=0,a,s,u,c;r=r||{},s=r.includeFallbackColors,u=r.level,c=r.size;for(var l=0;lo&&(o=a,i=q(n[l]));return q.isReadable(e,i,{level:u,size:c})||!s?i:(r.includeFallbackColors=!1,q.mostReadable(e,["#fff","#000"],r))};var xn=q.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},ql=q.hexNames=Wl(xn);function Wl(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ki(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Q(e,n){Gl(e)&&(e="100%");var r=Vl(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Be(e){return Math.min(1,Math.max(0,e))}function ct(e){return parseInt(e,16)}function Gl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Vl(e){return typeof e=="string"&&e.indexOf("%")!=-1}function _t(e){return e.length==1?"0"+e:""+e}function le(e){return e<=1&&(e=e*100+"%"),e}function Ci(e){return Math.round(parseFloat(e)*255).toString(16)}function mr(e){return ct(e)/255}var yt=(function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Mt(e){return!!yt.CSS_UNIT.exec(e)}function Bl(e){e=e.replace(Al,"").replace(Sl,"").toLowerCase();var n=!1;if(xn[e])e=xn[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=yt.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=yt.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=yt.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=yt.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=yt.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=yt.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=yt.hex8.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),a:mr(r[4]),format:n?"name":"hex8"}:(r=yt.hex6.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),format:n?"name":"hex"}:(r=yt.hex4.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),a:mr(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=yt.hex3.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function Xl(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function bn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:6;Kl(this,e),xr(this,Lt,void 0),xr(this,Tt,void 0),br(Tt,this,n),this.reset()}return Jl(e,[{key:"reset",value:function(){br(Lt,this,["__reserved for background__"])}},{key:"register",value:function(r){if(ht(Lt,this).length>=Math.pow(2,24-ht(Tt,this)))return null;var i=ht(Lt,this).length,o=wr(i,ht(Tt,this)),a=sc(i+(o<<24-ht(Tt,this)));return ht(Lt,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var i=typeof r=="string"?uc(r):Si.apply(void 0,nc(r));if(!i)return null;var o=i&Math.pow(2,24-ht(Tt,this))-1,a=i>>24-ht(Tt,this)&Math.pow(2,ht(Tt,this))-1;return wr(o,ht(Tt,this))!==a||o>=ht(Lt,this).length?null:ht(Lt,this)[o]}}])})(),me,J,Mi,Ti,$t,kr,Pi,Oi,en,Oe,ce,Ei,Dn,wn,kn,Le={},Fe=[],cc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Xe=Array.isArray;function bt(e,n){for(var r in n)e[r]=n[r];return e}function In(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function fc(e,n,r){var i,o,a,s={};for(a in n)a=="key"?i=n[a]:a=="ref"?o=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?me.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return fe(e,s,i,o,null)}function fe(e,n,r,i,o){var a={type:e,props:n,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++Mi,__i:-1,__u:0};return o==null&&J.vnode!=null&&J.vnode(a),a}function Ye(e){return e.children}function Ee(e,n){this.props=e,this.context=n}function Yt(e,n){if(n==null)return e.__?Yt(e.__,e.__i+1):null;for(var r;nn&&$t.sort(Oi),e=$t.shift(),n=$t.length,hc(e)}finally{$t.length=Ue.__r=0}}function Ni(e,n,r,i,o,a,s,u,c,l,f){var h,d,p,y,x,m,g,k=i&&i.__k||Fe,w=n.length;for(c=dc(r,n,k,c,w),h=0;h0?s=e.__k[a]=fe(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,c=a+d,s.__=e,s.__b=e.__b+1,u=null,(l=s.__i=pc(s,r,c,h))!=-1&&(h--,(u=r[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(o>f?d--:oc?d--:d++,s.__u|=4))):e.__k[a]=null;if(h)for(a=0;a(f?1:0)){for(o=r-1,a=r+1;o>=0||a=0?o--:a++])!=null&&(2&l.__u)==0&&u==l.key&&c==l.type)return s}return-1}function Ar(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||cc.test(n)?r:r+"px"}function ke(e,n,r,i,o){var a,s;t:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(n in i)r&&n in r||Ar(e.style,n,"");if(r)for(n in r)i&&r[n]==i[n]||Ar(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Ei,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?i?r[ce]=i[ce]:(r[ce]=Dn,e.addEventListener(n,a?kn:wn,a)):e.removeEventListener(n,a?kn:wn,a);else{if(o=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break t}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function Sr(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[Oe]==null)n[Oe]=Dn++;else if(n[Oe]0?e:Xe(e)?e.map(Ii):e.constructor!==void 0?null:bt({},e)}function gc(e,n,r,i,o,a,s,u,c){var l,f,h,d,p,y,x,m=r.props||Le,g=n.props,k=n.type;if(k=="svg"?o="http://www.w3.org/2000/svg":k=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l2&&(u.children=arguments.length>3?me.call(arguments,2):r),fe(e.type,u,i||e.key,o||e.ref,null)}me=Fe.slice,J={__e:function(e,n,r,i){for(var o,a,s;n=n.__;)if((o=n.__c)&&!o.__)try{if((a=o.constructor)&&a.getDerivedStateFromError!=null&&(o.setState(a.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,i||{}),s=o.__d),s)return o.__E=o}catch(u){e=u}throw e}},Mi=0,Ti=function(e){return e!=null&&e.constructor===void 0},Ee.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=bt({},this.state),typeof e=="function"&&(e=e(bt({},r),this.props)),e&&bt(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),Cr(this))},Ee.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Cr(this))},Ee.prototype.render=Ye,$t=[],Pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Oi=function(e,n){return e.__v.__b-n.__v.__b},Ue.__r=0,en=Math.random().toString(8),Oe="__d"+en,ce="__a"+en,Ei=/(PointerCapture)$|Capture$/i,Dn=0,wn=Sr(!1),kn=Sr(!0);function Mr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Oc=`.float-tooltip-kap { position: absolute; width: max-content; /* prevent shrinking near right edge */ max-width: max(50%, 150px); @@ -14,9 +19,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho background: rgba(0,0,0,0.6); pointer-events: none; } -`;Tc(Pc);var Oc=jn({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.style,a=o===void 0?{}:o,s=!!n&&He(n)==="object"&&!!n.node&&typeof n.node=="function",u=pt(s?n.node():n);u.style("position")==="static"&&u.style("position","relative"),r.tooltipEl=u.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(l){var f=wc(l,2),h=f[0],d=f[1];return r.tooltipEl.style(h,d)}),r.tooltipEl.style("left","-10000px").style("display","none");var c="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,u.on("mousemove.".concat(c),function(l){r.mouseInside=!0;var f=xt(l),h=u.node(),d=h.offsetWidth,p=h.offsetHeight,y=[r.offsetX===null||r.offsetX===void 0?"-".concat(f[0]/d*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-f[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",f[0]+"px").style("top",f[1]+"px").style("transform","translate(".concat(y.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseover.".concat(c),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseout.".concat(c),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):Sc(n.content)?(n.tooltipEl.text(""),Mc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function Ec(e,n,r){var i,o=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,u=i.length,c,l=0,f=0,h=0;for(s=0;s=(c=(s+u)/2))?s=c:u=c,i=o,!(o=o[h=+f]))return i[h]=a,e;if(l=+e._x.call(null,o.data),n===l)return a.next=o,i?i[h]=a:e._root=a,e;do i=i?i[h]=new Array(2):e._root=new Array(2),(f=n>=(c=(s+u)/2))?s=c:u=c;while((h=+f)==(d=+(l>=c)));return i[d]=o,i[h]=a,e}function Nc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let i=1/0,o=-1/0;for(let a=0,s;ao&&(o=s));if(i>o)return this;this.cover(i).cover(o);for(let a=0;ae||e>=r;)switch(s=+(es||(a=l.x1)=h))&&(l=u[u.length-1],u[u.length-1]=u[u.length-1-f],u[u.length-1-f]=l)}else{var d=Math.abs(e-+this._x.call(null,c.data));d=(l=(s+u)/2))?s=l:u=l,n=r,!(r=r[h=+f]))return this;if(!r.length)break;n[h+1&1]&&(i=n,d=h)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[h]=a:delete n[h],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(i?i[d]=r:this._root=r),this):(this._root=a,this)}function Lc(e){for(var n=0,r=e.length;n=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d,o=a,!(a=a[g=m<<1|x]))return o[g]=s,e;if(p=+e._x.call(null,a.data),y=+e._y.call(null,a.data),n===p&&r===y)return s.next=a,o?o[g]=s:e._root=s,e;do o=o?o[g]=new Array(4):e._root=new Array(4),(x=n>=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d;while((g=m<<1|x)===(k=(y>=d)<<1|p>=h));return o[k]=a,o[g]=s,e}function Bc(e){var n,r,i=e.length,o,a,s=new Array(i),u=new Array(i),c=1/0,l=1/0,f=-1/0,h=-1/0;for(r=0;rf&&(f=o),ah&&(h=a));if(c>f||l>h)return this;for(this.cover(c,l).cover(f,h),r=0;re||e>=o||i>n||n>=a;)switch(l=(nf||(u=y.y0)>h||(c=y.x1)=g)<<1|e>=m)&&(y=d[d.length-1],d[d.length-1]=d[d.length-1-x],d[d.length-1-x]=y)}else{var k=e-+this._x.call(null,p.data),w=n-+this._y.call(null,p.data),_=k*k+w*w;if(_=(d=(s+c)/2))?s=d:c=d,(x=h>=(p=(u+l)/2))?u=p:l=p,n=r,!(r=r[m=x<<1|y]))return this;if(!r.length)break;(n[m+1&3]||n[m+2&3]||n[m+3&3])&&(i=n,g=m)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[m]=a:delete n[m],(r=n[0]||n[1]||n[2]||n[3])&&r===(n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[g]=r:this._root=r),this):(this._root=a,this)}function Jc(e){for(var n=0,r=e.length;n=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m,a=s,!(s=s[M=A<<2|v<<1|_]))return a[M]=u,e;if(g=+e._x.call(null,s.data),k=+e._y.call(null,s.data),w=+e._z.call(null,s.data),n===g&&r===k&&i===w)return u.next=s,a?a[M]=u:e._root=u,e;do a=a?a[M]=new Array(8):e._root=new Array(8),(_=n>=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m;while((M=A<<2|v<<1|_)===(T=(w>=m)<<2|(k>=x)<<1|g>=y));return a[T]=s,a[M]=u,e}function cf(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),i=new Float64Array(n),o=new Float64Array(n);let a=1/0,s=1/0,u=1/0,c=-1/0,l=-1/0,f=-1/0;for(let h=0,d,p,y,x;hc&&(c=p),yl&&(l=y),xf&&(f=x));if(a>c||s>l||u>f)return this;this.cover(a,s,u).cover(c,l,f);for(let h=0;he||e>=s||o>n||n>=u||a>r||r>=c;)switch(d=(ry||(l=w.y0)>x||(f=w.z0)>m||(h=w.x1)=M)<<2|(n>=A)<<1|e>=v)&&(w=g[g.length-1],g[g.length-1]=g[g.length-1-_],g[g.length-1-_]=w)}else{var T=e-+this._x.call(null,k.data),R=n-+this._y.call(null,k.data),P=r-+this._z.call(null,k.data),N=T*T+R*R+P*P;if(NMath.sqrt((e-i)**2+(n-o)**2+(r-a)**2);function yf(e,n,r,i){const o=[],a=e-i,s=n-i,u=r-i,c=e+i,l=n+i,f=r+i;return this.visit((h,d,p,y,x,m,g)=>{if(!h.length)do{const k=h.data;gf(e,n,r,this._x(k),this._y(k),this._z(k))<=i&&o.push(k)}while(h=h.next);return d>c||p>l||y>f||x=(x=(s+l)/2))?s=x:l=x,(w=p>=(m=(u+f)/2))?u=m:f=m,(_=y>=(g=(c+h)/2))?c=g:h=g,n=r,!(r=r[v=_<<2|w<<1|k]))return this;if(!r.length)break;(n[v+1&7]||n[v+2&7]||n[v+3&7]||n[v+4&7]||n[v+5&7]||n[v+6&7]||n[v+7&7])&&(i=n,A=v)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[v]=a:delete n[v],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[A]=r:this._root=r),this):(this._root=a,this)}function vf(e){for(var n=0,r=e.length;n1&&(R=M.y+M.vy-A.y-A.vy||Ot(f)),u>2&&(P=M.z+M.vz-A.z-A.vz||Ot(f)),N=Math.sqrt(T*T+R*R+P*P),N=(N-a[_])/N*g*i[_],T*=N,R*=N,P*=N,M.vx-=T*(D=l[_]),u>1&&(M.vy-=R*D),u>2&&(M.vz-=P*D),A.vx+=T*(D=1-D),u>1&&(A.vy+=R*D),u>2&&(A.vz+=P*D)}function y(){if(s){var g,k=s.length,w=e.length,_=new Map(s.map((A,M)=>[n(A,M,s),A])),v;for(g=0,c=new Array(k);gtypeof w=="function")||Math.random,u=k.find(w=>[1,2,3].includes(w))||2,y()},p.links=function(g){return arguments.length?(e=g,y(),p):e},p.id=function(g){return arguments.length?(n=g,p):n},p.iterations=function(g){return arguments.length?(h=+g,p):h},p.strength=function(g){return arguments.length?(r=typeof g=="function"?g:zt(+g),x(),p):r},p.distance=function(g){return arguments.length?(o=typeof g=="function"?g:zt(+g),m(),p):o},p}const Ef=1664525,zf=1013904223,Nr=4294967296;function Nf(){let e=1;return()=>(e=(Ef*e+zf)%Nr)/Nr}var Rr=3;function nn(e){return e.x}function jr(e){return e.y}function Rf(e){return e.z}var jf=10,Df=Math.PI*(3-Math.sqrt(5)),If=Math.PI*20/(9+Math.sqrt(221));function $f(e,n){n=n||2;var r=Math.min(Rr,Math.max(1,Math.round(n))),i,o=1,a=.001,s=1-Math.pow(a,1/300),u=0,c=.6,l=new Map,f=En(p),h=ve("tick","end"),d=Nf();e==null&&(e=[]);function p(){y(),h.call("tick",i),o1&&(_.fy==null?_.y+=_.vy*=c:(_.y=_.fy,_.vy=0)),r>2&&(_.fz==null?_.z+=_.vz*=c:(_.z=_.fz,_.vz=0));return i}function x(){for(var g=0,k=e.length,w;g1&&isNaN(w.y)||r>2&&isNaN(w.z)){var _=jf*(r>2?Math.cbrt(.5+g):r>1?Math.sqrt(.5+g):g),v=g*Df,A=g*If;r===1?w.x=_:r===2?(w.x=_*Math.cos(v),w.y=_*Math.sin(v)):(w.x=_*Math.sin(v)*Math.cos(A),w.y=_*Math.cos(v),w.z=_*Math.sin(v)*Math.sin(A))}(isNaN(w.vx)||r>1&&isNaN(w.vy)||r>2&&isNaN(w.vz))&&(w.vx=0,r>1&&(w.vy=0),r>2&&(w.vz=0))}}function m(g){return g.initialize&&g.initialize(e,d,r),g}return x(),i={tick:y,restart:function(){return f.restart(p),i},stop:function(){return f.stop(),i},numDimensions:function(g){return arguments.length?(r=Math.min(Rr,Math.max(1,Math.round(g))),l.forEach(m),i):r},nodes:function(g){return arguments.length?(e=g,x(),l.forEach(m),i):e},alpha:function(g){return arguments.length?(o=+g,i):o},alphaMin:function(g){return arguments.length?(a=+g,i):a},alphaDecay:function(g){return arguments.length?(s=+g,i):+s},alphaTarget:function(g){return arguments.length?(u=+g,i):u},velocityDecay:function(g){return arguments.length?(c=1-g,i):1-c},randomSource:function(g){return arguments.length?(d=g,l.forEach(m),i):d},force:function(g,k){return arguments.length>1?(k==null?l.delete(g):l.set(g,m(k)),i):l.get(g)},find:function(){var g=Array.prototype.slice.call(arguments),k=g.shift()||0,w=(r>1?g.shift():null)||0,_=(r>2?g.shift():null)||0,v=g.shift()||1/0,A=0,M=e.length,T,R,P,N,D,U;for(v*=v,A=0;A1?(h.on(g,k),i):h.on(g)}}}function Lf(){var e,n,r,i,o,a=zt(-30),s,u=1,c=1/0,l=.81;function f(y){var x,m=e.length,g=(n===1?Ui(e,nn):n===2?Un(e,nn,jr):n===3?Wi(e,nn,jr,Rf):null).visitAfter(d);for(o=y,x=0;x1&&(y.y=_/k),n>2&&(y.z=v/k)}else{m=y,m.x=m.data.x,n>1&&(m.y=m.data.y),n>2&&(m.z=m.data.z);do x+=s[m.data.index];while(m=m.next)}y.value=x}function p(y,x,m,g,k){if(!y.value)return!0;var w=[m,g,k][n-1],_=y.x-r.x,v=n>1?y.y-r.y:0,A=n>2?y.z-r.z:0,M=w-x,T=_*_+v*v+A*A;if(M*M/l1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*y.value*o/T),n>2&&(r.vz+=A*y.value*o/T)),!0;if(y.length||T>=c)return;(y.data!==r||y.next)&&(_===0&&(_=Ot(i),T+=_*_),n>1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*M),n>2&&(r.vz+=A*M));while(y=y.next)}return f.initialize=function(y,...x){e=y,i=x.find(m=>typeof m=="function")||Math.random,n=x.find(m=>[1,2,3].includes(m))||2,h()},f.strength=function(y){return arguments.length?(a=typeof y=="function"?y:zt(+y),h(),f):a},f.distanceMin=function(y){return arguments.length?(u=y*y,f):Math.sqrt(u)},f.distanceMax=function(y){return arguments.length?(c=y*y,f):Math.sqrt(c)},f.theta=function(y){return arguments.length?(l=y*y,f):Math.sqrt(l)},f}function Ff(e,n,r,i){var o,a,s=zt(.1),u,c;typeof e!="function"&&(e=zt(+e)),n==null&&(n=0),r==null&&(r=0),i==null&&(i=0);function l(h){for(var d=0,p=o.length;d1&&(y.vy+=m*w),a>2&&(y.vz+=g*w)}}function f(){if(o){var h,d=o.length;for(u=new Array(d),c=new Array(d),h=0;h[1,2,3].includes(p))||2,f()},l.strength=function(h){return arguments.length?(s=typeof h=="function"?h:zt(+h),f(),l):s},l.radius=function(h){return arguments.length?(e=typeof h=="function"?h:zt(+h),f(),l):e},l.x=function(h){return arguments.length?(n=+h,l):n},l.y=function(h){return arguments.length?(r=+h,l):r},l.z=function(h){return arguments.length?(i=+h,l):i},l}const{abs:ee,cos:Pt,sin:Wt,acos:Uf,atan2:ne,sqrt:Dt,pow:dt}=Math;function re(e){return e<0?-dt(-e,1/3):dt(e,1/3)}const Gi=Math.PI,Ce=2*Gi,It=Gi/2,Hf=1e-6,rn=Number.MAX_SAFE_INTEGER||9007199254740991,on=Number.MIN_SAFE_INTEGER||-9007199254740991,qf={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let i=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(i+=r.z*r.z),Dt(i)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const i=n.length-1;if(e===1)return n[i].t=1,n[i];const o=1-e;let a=n;if(i===0)return n[0].t=e,n[0];if(i===1){const u={x:o*a[0].x+e*a[1].x,y:o*a[0].y+e*a[1].y,t:e};return r&&(u.z=o*a[0].z+e*a[1].z),u}if(i<4){let u=o*o,c=e*e,l,f,h,d=0;i===2?(a=[a[0],a[1],a[2],qf],l=u,f=o*e*2,h=c):i===3&&(l=u*o,f=u*e*3,h=o*c*3,d=e*c);const p={x:l*a[0].x+f*a[1].x+h*a[2].x+d*a[3].x,y:l*a[0].y+f*a[1].y+h*a[2].y+d*a[3].y,t:e};return r&&(p.z=l*a[0].z+f*a[1].z+h*a[2].z+d*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let u=0;u1;o--,a--){const s=[];for(let u=0,c;u"u")e=.5;else if(e===0||e===1)return e;const r=dt(e,n)+dt(1-e,n),i=r-1;return ee(i/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=dt(1-e,n),i=dt(e,n)+r;return r/i},lli8:function(e,n,r,i,o,a,s,u){const c=(e*i-n*r)*(o-s)-(e-r)*(o*u-a*s),l=(e*i-n*r)*(a-u)-(n-i)*(o*u-a*s),f=(e-r)*(a-u)-(n-i)*(o-s);return f==0?!1:{x:c/f,y:l/f}},lli4:function(e,n,r,i){const o=e.x,a=e.y,s=n.x,u=n.y,c=r.x,l=r.y,f=i.x,h=i.y;return z.lli8(o,a,s,u,c,l,f,h)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new K(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=rn,r=rn,i=on,o=on;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),i0&&(f.c1=c,f.c2=l,f.s1=e,f.s2=r,a.push(f))})}),a},makeshape:function(e,n,r){const i=n.points.length,o=e.points.length,a=z.makeline(n.points[i-1],e.points[0]),s=z.makeline(e.points[o-1],n.points[0]),u={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return u.intersections=function(c){return z.shapeintersections(u,u.bbox,c,c.bbox,r)},u},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let i=rn,o=on,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let u=0,c=r.length;uo&&(o=s[n]);return{min:i,mid:(i+o)/2,max:o,size:o-i}},align:function(e,n){const r=n.p1.x,i=n.p1.y,o=-ne(n.p2.y-i,n.p2.x-r),a=function(s){return{x:(s.x-r)*Pt(o)-(s.y-i)*Wt(o),y:(s.x-r)*Wt(o)+(s.y-i)*Pt(o)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,i=z.align(e,n),o=function(M){return 0<=M&&M<=1};if(r===2){const M=i[0].y,T=i[1].y,R=i[2].y,P=M-2*T+R;if(P!==0){const N=-Dt(T*T-M*R),D=-M+T,U=-(N+D)/P,S=-(-N+D)/P;return[U,S].filter(o)}else if(T!==R&&P===0)return[(2*T-R)/(2*T-2*R)].filter(o);return[]}const a=i[0].y,s=i[1].y,u=i[2].y,c=i[3].y;let l=-a+3*s-3*u+c,f=3*a-6*s+3*u,h=-3*a+3*s,d=a;if(z.approximately(l,0)){if(z.approximately(f,0))return z.approximately(h,0)?[]:[-d/h].filter(o);const M=Dt(h*h-4*f*d),T=2*f;return[(M-h)/T,(-h-M)/T].filter(o)}f/=l,h/=l,d/=l;const p=(3*h-f*f)/3,y=p/3,x=(2*f*f*f-9*f*h+27*d)/27,m=x/2,g=m*m+y*y*y;let k,w,_,v,A;if(g<0){const M=-p/3,T=M*M*M,R=Dt(T),P=-x/(2*R),N=P<-1?-1:P>1?1:P,D=Uf(N),U=re(R),S=2*U;return _=S*Pt(D/3)-f/3,v=S*Pt((D+Ce)/3)-f/3,A=S*Pt((D+2*Ce)/3)-f/3,[_,v,A].filter(o)}else{if(g===0)return k=m<0?re(-m):-re(m),_=2*k-f/3,v=-k-f/3,[_,v].filter(o);{const M=Dt(g);return k=re(-m+M),w=re(m+M),[k-w-f/3].filter(o)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],i=e[2],o=n-2*r+i;if(o!==0){const a=-Dt(r*r-n*i),s=-n+r,u=-(a+s)/o,c=-(-a+s)/o;return[u,c]}else if(r!==i&&o===0)return[(2*r-i)/(2*(r-i))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,i,o){let a,s,u,c,l=0,f=0;const h=z.compute(e,n),d=z.compute(e,r),p=h.x*h.x+h.y*h.y;if(i?(a=Dt(dt(h.y*d.z-d.y*h.z,2)+dt(h.z*d.x-d.z*h.x,2)+dt(h.x*d.y-d.x*h.y,2)),s=dt(p+h.z*h.z,3/2)):(a=h.x*d.y-h.y*d.x,s=dt(p,3/2)),a===0||s===0)return{k:0,r:0};if(l=a/s,f=s/a,!o){const y=z.curvature(e-.001,n,r,i,!0).k,x=z.curvature(e+.001,n,r,i,!0).k;c=(x-l+(l-y))/2,u=(ee(x-l)+ee(l-y))/2}return{k:l,r:f,dk:c,adk:u}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,i=n[3].x*n[1].y,o=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*i+3*o-a),u=18*(3*r-i-3*o),c=18*(o-r);if(z.approximately(s,0)){if(!z.approximately(u,0)){let d=-c/u;if(0<=d&&d<=1)return[d]}return[]}const l=2*s;if(z.approximately(l,0))return[];const f=u*u-4*s*c;if(f<0)return[];const h=Math.sqrt(f);return[(h-u)/l,-(u+h)/l].filter(function(d){return 0<=d&&d<=1})},bboxoverlap:function(e,n){const r=["x","y"],i=r.length;for(let o=0,a,s,u,c;o=c)return!1;return!0},expandbox:function(e,n){n.x.mine.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const i=e.bbox(),o=n.bbox(),a=1e5,s=r||.5;if(i.x.size+i.y.sizeA||A>M)&&(v+=Ce),v>M&&(T=M,M=v,v=T)):M4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");o=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!o&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",u=this.points=[];for(let p=0,y=s?3:2;pp+ie(y.y),0)"u"&&(o=.5),o===0)return new K(r,r,i);if(o===1)return new K(n,r,r);const a=K.getABC(2,n,r,i,o);return new K(n,a.A,i)}static cubicFromPoints(n,r,i,o,a){typeof o>"u"&&(o=.5);const s=K.getABC(3,n,r,i,o);typeof a>"u"&&(a=z.dist(r,s.C));const u=a*(1-o)/o,c=z.dist(n,i),l=(i.x-n.x)/c,f=(i.y-n.y)/c,h=a*l,d=a*f,p=u*l,y=u*f,x={x:r.x-h,y:r.y-d},m={x:r.x+p,y:r.y+y},g=s.A,k={x:g.x+(x.x-g.x)/(1-o),y:g.y+(x.y-g.y)/(1-o)},w={x:g.x+(m.x-g.x)/o,y:g.y+(m.y-g.y)/o},_={x:n.x+(k.x-n.x)/o,y:n.y+(k.y-n.y)/o},v={x:i.x+(w.x-i.x)/(1-o),y:i.y+(w.y-i.y)/(1-o)};return new K(n,_,v,i)}static getUtils(){return z}getUtils(){return K.getUtils()}static get PolyBezier(){return he}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,i=n[0].y,o=["M",r,i,this.order===2?"Q":"C"];for(let a=1,s=n.length;a0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,i,o,a=.5){const s=z.projectionratio(a,n),u=1-s,c={x:s*r.x+u*o.x,y:s*r.y+u*o.y},l=z.abcratio(a,n);return{A:{x:i.x+(i.x-c.x)/l,y:i.y+(i.y-c.y)/l},B:i,C:c,S:r,E:o}}getABC(n,r){r=r||this.get(n);let i=this.points[0],o=this.points[this.order];return K.getABC(this.order,i,r,o,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,i,o;r1?1:h,d=this.compute(h),d.t=h,d.d=l,d}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],i=n.length;for(let o=1,a,s;o1;){i=[];for(let s=0,u,c=r.length-1;s=0&&s<=1}),r=r.concat(n[i].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(i,o){return r.indexOf(i)===o}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(i){r[i]=z.getminmax(this,i,n[i])}).bind(this)),r}overlaps(n){const r=this.bbox(),i=n.bbox();return z.bboxoverlap(r,i)}offset(n,r){if(typeof r<"u"){const i=this.get(n),o=this.normal(n),a={c:i,n:o,x:i.x+o.x*r,y:i.y+o.y*r};return this._3d&&(a.z=i.z+o.z*r),a}if(this._linear){const i=this.normal(0),o=this.points.map(function(a){const s={x:a.x+n*i.x,y:a.y+n*i.y};return a.z&&i.z&&(s.z=a.z+n*i.z),s});return[new K(o)]}return this.reduce().map(function(i){return i._linear?i.offset(n)[0]:i.scale(n)})}simple(){if(this.order===3){const o=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(o>0&&a<0||o<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let i=n.x*r.x+n.y*r.y;return this._3d&&(i+=n.z*r.z),ie(Vf(i))(1-u/o)*r+u/o*i);return new K(this.points.map((s,u)=>({x:s.x+n.x*a[u],y:s.y+n.y*a[u]})))}scale(n){const r=this.order;let i=!1;if(typeof n=="function"&&(i=n),i&&r===2)return this.raise().scale(i);const o=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):n,i?i(1):n);const s=i?i(0):n,u=i?i(1):n,c=[this.offset(0,10),this.offset(1,10)],l=[],f=z.lli4(c[0],c[0].c,c[1],c[1].c);if(!f)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(h){const d=l[h*r]=z.copy(a[h*r]);d.x+=(h?u:s)*c[h].n.x,d.y+=(h?u:s)*c[h].n.y}),i?([0,1].forEach(function(h){if(!(r===2&&h)){var d=a[h+1],p={x:d.x-f.x,y:d.y-f.y},y=i?i((h+1)/r):n;i&&!o&&(y=-y);var x=oe(p.x*p.x+p.y*p.y);p.x/=x,p.y/=x,l[h+1]={x:d.x+y*p.x,y:d.y+y*p.y}}}),new K(l)):([0,1].forEach(h=>{if(r===2&&h)return;const d=l[h*r],p=this.derivative(h),y={x:d.x+p.x,y:d.y+p.y};l[h+1]=z.lli4(d,y,f,a[h+1])}),new K(l))}outline(n,r,i,o){if(r=r===void 0?n:r,this._linear){const v=this.normal(0),A=this.points[0],M=this.points[this.points.length-1];let T,R,P;i===void 0&&(i=n,o=r),T={x:A.x+v.x*n,y:A.y+v.y*n},P={x:M.x+v.x*i,y:M.y+v.y*i},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const N=[T,R,P];T={x:A.x-v.x*r,y:A.y-v.y*r},P={x:M.x-v.x*o,y:M.y-v.y*o},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const D=[P,R,T],U=z.makeline(D[2],N[0]),S=z.makeline(N[2],D[0]),j=[U,new K(N),S,new K(D)];return new he(j)}const a=this.reduce(),s=a.length,u=[];let c=[],l,f=0,h=this.length();const d=typeof i<"u"&&typeof o<"u";function p(v,A,M,T,R){return function(P){const N=T/M,D=(T+R)/M,U=A-v;return z.map(P,0,1,v+N*U,v+D*U)}}a.forEach(function(v){const A=v.length();d?(u.push(v.scale(p(n,i,h,f,A))),c.push(v.scale(p(-r,-o,h,f,A)))):(u.push(v.scale(n)),c.push(v.scale(-r))),f+=A}),c=c.map(function(v){return l=v.points,l[3]?v.points=[l[3],l[2],l[1],l[0]]:v.points=[l[2],l[1],l[0]],v}).reverse();const y=u[0].points[0],x=u[s-1].points[u[s-1].points.length-1],m=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],k=z.makeline(m,y),w=z.makeline(x,g),_=[k].concat(u).concat([w]).concat(c);return new he(_)}outlineshapes(n,r,i){r=r||n;const o=this.outline(n,r).curves,a=[];for(let s=1,u=o.length;s1,c.endcap.virtual=s{var u=this.get(s);return z.between(u.x,r,o)&&z.between(u.y,i,a)})}selfintersects(n){const r=this.reduce(),i=r.length-2,o=[];for(let a=0,s,u,c;a0&&(a=a.concat(u))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,i,o){const a=(o-i)/4,s=this.get(i+a),u=this.get(o-a),c=z.dist(n,r),l=z.dist(n,s),f=z.dist(n,u);return ie(l-c)+ie(f-c)}_iterate(n,r){let i=0,o=1,a;do{a=0,o=1;let s=this.get(i),u,c,l,f,h=!1,d=!1,p,y=o,x=1;do if(d=h,f=l,y=(i+o)/2,u=this.get(y),c=this.get(o),l=z.getccenter(s,u,c),l.interval={start:i,end:o},h=this._error(l,s,i,o)<=n,p=d&&!h,p||(x=o),h){if(o>=1){if(l.interval.end=x=1,f=l,o>1){let g={x:l.x+l.r*Wf(l.e),y:l.y+l.r*Gf(l.e)};l.e+=z.angle({x:l.x,y:l.y},g,this.get(1))}break}o=o+(o-i)/2}else o=y;while(!p&&a++<100);if(a>=100)break;f=f||l,r.push(f),i=x}while(o<1);return r}}function An(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(u){return{keyAccessor:u,isProp:!(u instanceof Function)}}),a=e.reduce(function(u,c){var l=u,f=c;return o.forEach(function(h,d){var p=h.keyAccessor,y=h.isProp,x;if(y){var m=f,g=m[p],k=th(m,[p].map(oh));x=g,f=k}else x=p(f,d);d+11&&arguments[1]!==void 0?arguments[1]:1;l===o.length?Object.keys(c).forEach(function(f){return c[f]=r(c[f])}):Object.values(c).forEach(function(f){return u(f,l+1)})})(a);var s=a;return i&&(s=[],(function u(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];l.length===o.length?s.push({keys:l,vals:c}):Object.entries(c).forEach(function(f){var h=nh(f,2),d=h[0],p=h[1];return u(p,[].concat(rh(l),[d]))})})(a),n instanceof Array&&n.length===0&&s.length===1&&(s[0].keys=[])),s});function sh(e){for(var n=e.length/6|0,r=new Array(n),i=0;i"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var ch=`.force-graph-container canvas { +`;Pc(Oc);var Ec=jn({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.style,a=o===void 0?{}:o,s=!!n&&He(n)==="object"&&!!n.node&&typeof n.node=="function",u=pt(s?n.node():n);u.style("position")==="static"&&u.style("position","relative"),r.tooltipEl=u.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(l){var f=kc(l,2),h=f[0],d=f[1];return r.tooltipEl.style(h,d)}),r.tooltipEl.style("left","-10000px").style("display","none");var c="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,u.on("mousemove.".concat(c),function(l){r.mouseInside=!0;var f=xt(l),h=u.node(),d=h.offsetWidth,p=h.offsetHeight,y=[r.offsetX===null||r.offsetX===void 0?"-".concat(f[0]/d*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-f[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",f[0]+"px").style("top",f[1]+"px").style("transform","translate(".concat(y.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseover.".concat(c),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseout.".concat(c),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):Mc(n.content)?(n.tooltipEl.text(""),Tc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function zc(e,n,r){var i,o=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,u=i.length,c,l=0,f=0,h=0;for(s=0;s=(c=(s+u)/2))?s=c:u=c,i=o,!(o=o[h=+f]))return i[h]=a,e;if(l=+e._x.call(null,o.data),n===l)return a.next=o,i?i[h]=a:e._root=a,e;do i=i?i[h]=new Array(2):e._root=new Array(2),(f=n>=(c=(s+u)/2))?s=c:u=c;while((h=+f)==(d=+(l>=c)));return i[d]=o,i[h]=a,e}function Rc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let i=1/0,o=-1/0;for(let a=0,s;ao&&(o=s));if(i>o)return this;this.cover(i).cover(o);for(let a=0;ae||e>=r;)switch(s=+(es||(a=l.x1)=h))&&(l=u[u.length-1],u[u.length-1]=u[u.length-1-f],u[u.length-1-f]=l)}else{var d=Math.abs(e-+this._x.call(null,c.data));d=(l=(s+u)/2))?s=l:u=l,n=r,!(r=r[h=+f]))return this;if(!r.length)break;n[h+1&1]&&(i=n,d=h)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[h]=a:delete n[h],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(i?i[d]=r:this._root=r),this):(this._root=a,this)}function Fc(e){for(var n=0,r=e.length;n=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d,o=a,!(a=a[g=m<<1|x]))return o[g]=s,e;if(p=+e._x.call(null,a.data),y=+e._y.call(null,a.data),n===p&&r===y)return s.next=a,o?o[g]=s:e._root=s,e;do o=o?o[g]=new Array(4):e._root=new Array(4),(x=n>=(h=(u+l)/2))?u=h:l=h,(m=r>=(d=(c+f)/2))?c=d:f=d;while((g=m<<1|x)===(k=(y>=d)<<1|p>=h));return o[k]=a,o[g]=s,e}function Xc(e){var n,r,i=e.length,o,a,s=new Array(i),u=new Array(i),c=1/0,l=1/0,f=-1/0,h=-1/0;for(r=0;rf&&(f=o),ah&&(h=a));if(c>f||l>h)return this;for(this.cover(c,l).cover(f,h),r=0;re||e>=o||i>n||n>=a;)switch(l=(nf||(u=y.y0)>h||(c=y.x1)=g)<<1|e>=m)&&(y=d[d.length-1],d[d.length-1]=d[d.length-1-x],d[d.length-1-x]=y)}else{var k=e-+this._x.call(null,p.data),w=n-+this._y.call(null,p.data),_=k*k+w*w;if(_=(d=(s+c)/2))?s=d:c=d,(x=h>=(p=(u+l)/2))?u=p:l=p,n=r,!(r=r[m=x<<1|y]))return this;if(!r.length)break;(n[m+1&3]||n[m+2&3]||n[m+3&3])&&(i=n,g=m)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[m]=a:delete n[m],(r=n[0]||n[1]||n[2]||n[3])&&r===(n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[g]=r:this._root=r),this):(this._root=a,this)}function tf(e){for(var n=0,r=e.length;n=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m,a=s,!(s=s[M=A<<2|v<<1|_]))return a[M]=u,e;if(g=+e._x.call(null,s.data),k=+e._y.call(null,s.data),w=+e._z.call(null,s.data),n===g&&r===k&&i===w)return u.next=s,a?a[M]=u:e._root=u,e;do a=a?a[M]=new Array(8):e._root=new Array(8),(_=n>=(y=(c+h)/2))?c=y:h=y,(v=r>=(x=(l+d)/2))?l=x:d=x,(A=i>=(m=(f+p)/2))?f=m:p=m;while((M=A<<2|v<<1|_)===(T=(w>=m)<<2|(k>=x)<<1|g>=y));return a[T]=s,a[M]=u,e}function ff(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),i=new Float64Array(n),o=new Float64Array(n);let a=1/0,s=1/0,u=1/0,c=-1/0,l=-1/0,f=-1/0;for(let h=0,d,p,y,x;hc&&(c=p),yl&&(l=y),xf&&(f=x));if(a>c||s>l||u>f)return this;this.cover(a,s,u).cover(c,l,f);for(let h=0;he||e>=s||o>n||n>=u||a>r||r>=c;)switch(d=(ry||(l=w.y0)>x||(f=w.z0)>m||(h=w.x1)=M)<<2|(n>=A)<<1|e>=v)&&(w=g[g.length-1],g[g.length-1]=g[g.length-1-_],g[g.length-1-_]=w)}else{var T=e-+this._x.call(null,k.data),R=n-+this._y.call(null,k.data),P=r-+this._z.call(null,k.data),N=T*T+R*R+P*P;if(NMath.sqrt((e-i)**2+(n-o)**2+(r-a)**2);function _f(e,n,r,i){const o=[],a=e-i,s=n-i,u=r-i,c=e+i,l=n+i,f=r+i;return this.visit((h,d,p,y,x,m,g)=>{if(!h.length)do{const k=h.data;yf(e,n,r,this._x(k),this._y(k),this._z(k))<=i&&o.push(k)}while(h=h.next);return d>c||p>l||y>f||x=(x=(s+l)/2))?s=x:l=x,(w=p>=(m=(u+f)/2))?u=m:f=m,(_=y>=(g=(c+h)/2))?c=g:h=g,n=r,!(r=r[v=_<<2|w<<1|k]))return this;if(!r.length)break;(n[v+1&7]||n[v+2&7]||n[v+3&7]||n[v+4&7]||n[v+5&7]||n[v+6&7]||n[v+7&7])&&(i=n,A=v)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[v]=a:delete n[v],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[A]=r:this._root=r),this):(this._root=a,this)}function mf(e){for(var n=0,r=e.length;n1&&(R=M.y+M.vy-A.y-A.vy||Ot(f)),u>2&&(P=M.z+M.vz-A.z-A.vz||Ot(f)),N=Math.sqrt(T*T+R*R+P*P),N=(N-a[_])/N*g*i[_],T*=N,R*=N,P*=N,M.vx-=T*(D=l[_]),u>1&&(M.vy-=R*D),u>2&&(M.vz-=P*D),A.vx+=T*(D=1-D),u>1&&(A.vy+=R*D),u>2&&(A.vz+=P*D)}function y(){if(s){var g,k=s.length,w=e.length,_=new Map(s.map((A,M)=>[n(A,M,s),A])),v;for(g=0,c=new Array(k);gtypeof w=="function")||Math.random,u=k.find(w=>[1,2,3].includes(w))||2,y()},p.links=function(g){return arguments.length?(e=g,y(),p):e},p.id=function(g){return arguments.length?(n=g,p):n},p.iterations=function(g){return arguments.length?(h=+g,p):h},p.strength=function(g){return arguments.length?(r=typeof g=="function"?g:zt(+g),x(),p):r},p.distance=function(g){return arguments.length?(o=typeof g=="function"?g:zt(+g),m(),p):o},p}const zf=1664525,Nf=1013904223,Nr=4294967296;function Rf(){let e=1;return()=>(e=(zf*e+Nf)%Nr)/Nr}var Rr=3;function nn(e){return e.x}function jr(e){return e.y}function jf(e){return e.z}var Df=10,If=Math.PI*(3-Math.sqrt(5)),$f=Math.PI*20/(9+Math.sqrt(221));function Lf(e,n){n=n||2;var r=Math.min(Rr,Math.max(1,Math.round(n))),i,o=1,a=.001,s=1-Math.pow(a,1/300),u=0,c=.6,l=new Map,f=En(p),h=ve("tick","end"),d=Rf();e==null&&(e=[]);function p(){y(),h.call("tick",i),o1&&(_.fy==null?_.y+=_.vy*=c:(_.y=_.fy,_.vy=0)),r>2&&(_.fz==null?_.z+=_.vz*=c:(_.z=_.fz,_.vz=0));return i}function x(){for(var g=0,k=e.length,w;g1&&isNaN(w.y)||r>2&&isNaN(w.z)){var _=Df*(r>2?Math.cbrt(.5+g):r>1?Math.sqrt(.5+g):g),v=g*If,A=g*$f;r===1?w.x=_:r===2?(w.x=_*Math.cos(v),w.y=_*Math.sin(v)):(w.x=_*Math.sin(v)*Math.cos(A),w.y=_*Math.cos(v),w.z=_*Math.sin(v)*Math.sin(A))}(isNaN(w.vx)||r>1&&isNaN(w.vy)||r>2&&isNaN(w.vz))&&(w.vx=0,r>1&&(w.vy=0),r>2&&(w.vz=0))}}function m(g){return g.initialize&&g.initialize(e,d,r),g}return x(),i={tick:y,restart:function(){return f.restart(p),i},stop:function(){return f.stop(),i},numDimensions:function(g){return arguments.length?(r=Math.min(Rr,Math.max(1,Math.round(g))),l.forEach(m),i):r},nodes:function(g){return arguments.length?(e=g,x(),l.forEach(m),i):e},alpha:function(g){return arguments.length?(o=+g,i):o},alphaMin:function(g){return arguments.length?(a=+g,i):a},alphaDecay:function(g){return arguments.length?(s=+g,i):+s},alphaTarget:function(g){return arguments.length?(u=+g,i):u},velocityDecay:function(g){return arguments.length?(c=1-g,i):1-c},randomSource:function(g){return arguments.length?(d=g,l.forEach(m),i):d},force:function(g,k){return arguments.length>1?(k==null?l.delete(g):l.set(g,m(k)),i):l.get(g)},find:function(){var g=Array.prototype.slice.call(arguments),k=g.shift()||0,w=(r>1?g.shift():null)||0,_=(r>2?g.shift():null)||0,v=g.shift()||1/0,A=0,M=e.length,T,R,P,N,D,U;for(v*=v,A=0;A1?(h.on(g,k),i):h.on(g)}}}function Ff(){var e,n,r,i,o,a=zt(-30),s,u=1,c=1/0,l=.81;function f(y){var x,m=e.length,g=(n===1?Ui(e,nn):n===2?Un(e,nn,jr):n===3?Wi(e,nn,jr,jf):null).visitAfter(d);for(o=y,x=0;x1&&(y.y=_/k),n>2&&(y.z=v/k)}else{m=y,m.x=m.data.x,n>1&&(m.y=m.data.y),n>2&&(m.z=m.data.z);do x+=s[m.data.index];while(m=m.next)}y.value=x}function p(y,x,m,g,k){if(!y.value)return!0;var w=[m,g,k][n-1],_=y.x-r.x,v=n>1?y.y-r.y:0,A=n>2?y.z-r.z:0,M=w-x,T=_*_+v*v+A*A;if(M*M/l1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*y.value*o/T),n>2&&(r.vz+=A*y.value*o/T)),!0;if(y.length||T>=c)return;(y.data!==r||y.next)&&(_===0&&(_=Ot(i),T+=_*_),n>1&&v===0&&(v=Ot(i),T+=v*v),n>2&&A===0&&(A=Ot(i),T+=A*A),T1&&(r.vy+=v*M),n>2&&(r.vz+=A*M));while(y=y.next)}return f.initialize=function(y,...x){e=y,i=x.find(m=>typeof m=="function")||Math.random,n=x.find(m=>[1,2,3].includes(m))||2,h()},f.strength=function(y){return arguments.length?(a=typeof y=="function"?y:zt(+y),h(),f):a},f.distanceMin=function(y){return arguments.length?(u=y*y,f):Math.sqrt(u)},f.distanceMax=function(y){return arguments.length?(c=y*y,f):Math.sqrt(c)},f.theta=function(y){return arguments.length?(l=y*y,f):Math.sqrt(l)},f}function Uf(e,n,r,i){var o,a,s=zt(.1),u,c;typeof e!="function"&&(e=zt(+e)),n==null&&(n=0),r==null&&(r=0),i==null&&(i=0);function l(h){for(var d=0,p=o.length;d1&&(y.vy+=m*w),a>2&&(y.vz+=g*w)}}function f(){if(o){var h,d=o.length;for(u=new Array(d),c=new Array(d),h=0;h[1,2,3].includes(p))||2,f()},l.strength=function(h){return arguments.length?(s=typeof h=="function"?h:zt(+h),f(),l):s},l.radius=function(h){return arguments.length?(e=typeof h=="function"?h:zt(+h),f(),l):e},l.x=function(h){return arguments.length?(n=+h,l):n},l.y=function(h){return arguments.length?(r=+h,l):r},l.z=function(h){return arguments.length?(i=+h,l):i},l}const{abs:ee,cos:Pt,sin:Wt,acos:Hf,atan2:ne,sqrt:Dt,pow:dt}=Math;function re(e){return e<0?-dt(-e,1/3):dt(e,1/3)}const Gi=Math.PI,Ce=2*Gi,It=Gi/2,qf=1e-6,rn=Number.MAX_SAFE_INTEGER||9007199254740991,on=Number.MIN_SAFE_INTEGER||-9007199254740991,Wf={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let i=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(i+=r.z*r.z),Dt(i)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const i=n.length-1;if(e===1)return n[i].t=1,n[i];const o=1-e;let a=n;if(i===0)return n[0].t=e,n[0];if(i===1){const u={x:o*a[0].x+e*a[1].x,y:o*a[0].y+e*a[1].y,t:e};return r&&(u.z=o*a[0].z+e*a[1].z),u}if(i<4){let u=o*o,c=e*e,l,f,h,d=0;i===2?(a=[a[0],a[1],a[2],Wf],l=u,f=o*e*2,h=c):i===3&&(l=u*o,f=u*e*3,h=o*c*3,d=e*c);const p={x:l*a[0].x+f*a[1].x+h*a[2].x+d*a[3].x,y:l*a[0].y+f*a[1].y+h*a[2].y+d*a[3].y,t:e};return r&&(p.z=l*a[0].z+f*a[1].z+h*a[2].z+d*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let u=0;u1;o--,a--){const s=[];for(let u=0,c;u"u")e=.5;else if(e===0||e===1)return e;const r=dt(e,n)+dt(1-e,n),i=r-1;return ee(i/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=dt(1-e,n),i=dt(e,n)+r;return r/i},lli8:function(e,n,r,i,o,a,s,u){const c=(e*i-n*r)*(o-s)-(e-r)*(o*u-a*s),l=(e*i-n*r)*(a-u)-(n-i)*(o*u-a*s),f=(e-r)*(a-u)-(n-i)*(o-s);return f==0?!1:{x:c/f,y:l/f}},lli4:function(e,n,r,i){const o=e.x,a=e.y,s=n.x,u=n.y,c=r.x,l=r.y,f=i.x,h=i.y;return z.lli8(o,a,s,u,c,l,f,h)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new K(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=rn,r=rn,i=on,o=on;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),i0&&(f.c1=c,f.c2=l,f.s1=e,f.s2=r,a.push(f))})}),a},makeshape:function(e,n,r){const i=n.points.length,o=e.points.length,a=z.makeline(n.points[i-1],e.points[0]),s=z.makeline(e.points[o-1],n.points[0]),u={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return u.intersections=function(c){return z.shapeintersections(u,u.bbox,c,c.bbox,r)},u},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let i=rn,o=on,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let u=0,c=r.length;uo&&(o=s[n]);return{min:i,mid:(i+o)/2,max:o,size:o-i}},align:function(e,n){const r=n.p1.x,i=n.p1.y,o=-ne(n.p2.y-i,n.p2.x-r),a=function(s){return{x:(s.x-r)*Pt(o)-(s.y-i)*Wt(o),y:(s.x-r)*Wt(o)+(s.y-i)*Pt(o)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,i=z.align(e,n),o=function(M){return 0<=M&&M<=1};if(r===2){const M=i[0].y,T=i[1].y,R=i[2].y,P=M-2*T+R;if(P!==0){const N=-Dt(T*T-M*R),D=-M+T,U=-(N+D)/P,S=-(-N+D)/P;return[U,S].filter(o)}else if(T!==R&&P===0)return[(2*T-R)/(2*T-2*R)].filter(o);return[]}const a=i[0].y,s=i[1].y,u=i[2].y,c=i[3].y;let l=-a+3*s-3*u+c,f=3*a-6*s+3*u,h=-3*a+3*s,d=a;if(z.approximately(l,0)){if(z.approximately(f,0))return z.approximately(h,0)?[]:[-d/h].filter(o);const M=Dt(h*h-4*f*d),T=2*f;return[(M-h)/T,(-h-M)/T].filter(o)}f/=l,h/=l,d/=l;const p=(3*h-f*f)/3,y=p/3,x=(2*f*f*f-9*f*h+27*d)/27,m=x/2,g=m*m+y*y*y;let k,w,_,v,A;if(g<0){const M=-p/3,T=M*M*M,R=Dt(T),P=-x/(2*R),N=P<-1?-1:P>1?1:P,D=Hf(N),U=re(R),S=2*U;return _=S*Pt(D/3)-f/3,v=S*Pt((D+Ce)/3)-f/3,A=S*Pt((D+2*Ce)/3)-f/3,[_,v,A].filter(o)}else{if(g===0)return k=m<0?re(-m):-re(m),_=2*k-f/3,v=-k-f/3,[_,v].filter(o);{const M=Dt(g);return k=re(-m+M),w=re(m+M),[k-w-f/3].filter(o)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],i=e[2],o=n-2*r+i;if(o!==0){const a=-Dt(r*r-n*i),s=-n+r,u=-(a+s)/o,c=-(-a+s)/o;return[u,c]}else if(r!==i&&o===0)return[(2*r-i)/(2*(r-i))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,i,o){let a,s,u,c,l=0,f=0;const h=z.compute(e,n),d=z.compute(e,r),p=h.x*h.x+h.y*h.y;if(i?(a=Dt(dt(h.y*d.z-d.y*h.z,2)+dt(h.z*d.x-d.z*h.x,2)+dt(h.x*d.y-d.x*h.y,2)),s=dt(p+h.z*h.z,3/2)):(a=h.x*d.y-h.y*d.x,s=dt(p,3/2)),a===0||s===0)return{k:0,r:0};if(l=a/s,f=s/a,!o){const y=z.curvature(e-.001,n,r,i,!0).k,x=z.curvature(e+.001,n,r,i,!0).k;c=(x-l+(l-y))/2,u=(ee(x-l)+ee(l-y))/2}return{k:l,r:f,dk:c,adk:u}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,i=n[3].x*n[1].y,o=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*i+3*o-a),u=18*(3*r-i-3*o),c=18*(o-r);if(z.approximately(s,0)){if(!z.approximately(u,0)){let d=-c/u;if(0<=d&&d<=1)return[d]}return[]}const l=2*s;if(z.approximately(l,0))return[];const f=u*u-4*s*c;if(f<0)return[];const h=Math.sqrt(f);return[(h-u)/l,-(u+h)/l].filter(function(d){return 0<=d&&d<=1})},bboxoverlap:function(e,n){const r=["x","y"],i=r.length;for(let o=0,a,s,u,c;o=c)return!1;return!0},expandbox:function(e,n){n.x.mine.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const i=e.bbox(),o=n.bbox(),a=1e5,s=r||.5;if(i.x.size+i.y.sizeA||A>M)&&(v+=Ce),v>M&&(T=M,M=v,v=T)):M4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");o=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!o&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",u=this.points=[];for(let p=0,y=s?3:2;pp+ie(y.y),0)"u"&&(o=.5),o===0)return new K(r,r,i);if(o===1)return new K(n,r,r);const a=K.getABC(2,n,r,i,o);return new K(n,a.A,i)}static cubicFromPoints(n,r,i,o,a){typeof o>"u"&&(o=.5);const s=K.getABC(3,n,r,i,o);typeof a>"u"&&(a=z.dist(r,s.C));const u=a*(1-o)/o,c=z.dist(n,i),l=(i.x-n.x)/c,f=(i.y-n.y)/c,h=a*l,d=a*f,p=u*l,y=u*f,x={x:r.x-h,y:r.y-d},m={x:r.x+p,y:r.y+y},g=s.A,k={x:g.x+(x.x-g.x)/(1-o),y:g.y+(x.y-g.y)/(1-o)},w={x:g.x+(m.x-g.x)/o,y:g.y+(m.y-g.y)/o},_={x:n.x+(k.x-n.x)/o,y:n.y+(k.y-n.y)/o},v={x:i.x+(w.x-i.x)/(1-o),y:i.y+(w.y-i.y)/(1-o)};return new K(n,_,v,i)}static getUtils(){return z}getUtils(){return K.getUtils()}static get PolyBezier(){return he}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,i=n[0].y,o=["M",r,i,this.order===2?"Q":"C"];for(let a=1,s=n.length;a0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,i,o,a=.5){const s=z.projectionratio(a,n),u=1-s,c={x:s*r.x+u*o.x,y:s*r.y+u*o.y},l=z.abcratio(a,n);return{A:{x:i.x+(i.x-c.x)/l,y:i.y+(i.y-c.y)/l},B:i,C:c,S:r,E:o}}getABC(n,r){r=r||this.get(n);let i=this.points[0],o=this.points[this.order];return K.getABC(this.order,i,r,o,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,i,o;r1?1:h,d=this.compute(h),d.t=h,d.d=l,d}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],i=n.length;for(let o=1,a,s;o1;){i=[];for(let s=0,u,c=r.length-1;s=0&&s<=1}),r=r.concat(n[i].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(i,o){return r.indexOf(i)===o}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(i){r[i]=z.getminmax(this,i,n[i])}).bind(this)),r}overlaps(n){const r=this.bbox(),i=n.bbox();return z.bboxoverlap(r,i)}offset(n,r){if(typeof r<"u"){const i=this.get(n),o=this.normal(n),a={c:i,n:o,x:i.x+o.x*r,y:i.y+o.y*r};return this._3d&&(a.z=i.z+o.z*r),a}if(this._linear){const i=this.normal(0),o=this.points.map(function(a){const s={x:a.x+n*i.x,y:a.y+n*i.y};return a.z&&i.z&&(s.z=a.z+n*i.z),s});return[new K(o)]}return this.reduce().map(function(i){return i._linear?i.offset(n)[0]:i.scale(n)})}simple(){if(this.order===3){const o=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(o>0&&a<0||o<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let i=n.x*r.x+n.y*r.y;return this._3d&&(i+=n.z*r.z),ie(Bf(i))(1-u/o)*r+u/o*i);return new K(this.points.map((s,u)=>({x:s.x+n.x*a[u],y:s.y+n.y*a[u]})))}scale(n){const r=this.order;let i=!1;if(typeof n=="function"&&(i=n),i&&r===2)return this.raise().scale(i);const o=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):n,i?i(1):n);const s=i?i(0):n,u=i?i(1):n,c=[this.offset(0,10),this.offset(1,10)],l=[],f=z.lli4(c[0],c[0].c,c[1],c[1].c);if(!f)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(h){const d=l[h*r]=z.copy(a[h*r]);d.x+=(h?u:s)*c[h].n.x,d.y+=(h?u:s)*c[h].n.y}),i?([0,1].forEach(function(h){if(!(r===2&&h)){var d=a[h+1],p={x:d.x-f.x,y:d.y-f.y},y=i?i((h+1)/r):n;i&&!o&&(y=-y);var x=oe(p.x*p.x+p.y*p.y);p.x/=x,p.y/=x,l[h+1]={x:d.x+y*p.x,y:d.y+y*p.y}}}),new K(l)):([0,1].forEach(h=>{if(r===2&&h)return;const d=l[h*r],p=this.derivative(h),y={x:d.x+p.x,y:d.y+p.y};l[h+1]=z.lli4(d,y,f,a[h+1])}),new K(l))}outline(n,r,i,o){if(r=r===void 0?n:r,this._linear){const v=this.normal(0),A=this.points[0],M=this.points[this.points.length-1];let T,R,P;i===void 0&&(i=n,o=r),T={x:A.x+v.x*n,y:A.y+v.y*n},P={x:M.x+v.x*i,y:M.y+v.y*i},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const N=[T,R,P];T={x:A.x-v.x*r,y:A.y-v.y*r},P={x:M.x-v.x*o,y:M.y-v.y*o},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const D=[P,R,T],U=z.makeline(D[2],N[0]),S=z.makeline(N[2],D[0]),j=[U,new K(N),S,new K(D)];return new he(j)}const a=this.reduce(),s=a.length,u=[];let c=[],l,f=0,h=this.length();const d=typeof i<"u"&&typeof o<"u";function p(v,A,M,T,R){return function(P){const N=T/M,D=(T+R)/M,U=A-v;return z.map(P,0,1,v+N*U,v+D*U)}}a.forEach(function(v){const A=v.length();d?(u.push(v.scale(p(n,i,h,f,A))),c.push(v.scale(p(-r,-o,h,f,A)))):(u.push(v.scale(n)),c.push(v.scale(-r))),f+=A}),c=c.map(function(v){return l=v.points,l[3]?v.points=[l[3],l[2],l[1],l[0]]:v.points=[l[2],l[1],l[0]],v}).reverse();const y=u[0].points[0],x=u[s-1].points[u[s-1].points.length-1],m=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],k=z.makeline(m,y),w=z.makeline(x,g),_=[k].concat(u).concat([w]).concat(c);return new he(_)}outlineshapes(n,r,i){r=r||n;const o=this.outline(n,r).curves,a=[];for(let s=1,u=o.length;s1,c.endcap.virtual=s{var u=this.get(s);return z.between(u.x,r,o)&&z.between(u.y,i,a)})}selfintersects(n){const r=this.reduce(),i=r.length-2,o=[];for(let a=0,s,u,c;a0&&(a=a.concat(u))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,i,o){const a=(o-i)/4,s=this.get(i+a),u=this.get(o-a),c=z.dist(n,r),l=z.dist(n,s),f=z.dist(n,u);return ie(l-c)+ie(f-c)}_iterate(n,r){let i=0,o=1,a;do{a=0,o=1;let s=this.get(i),u,c,l,f,h=!1,d=!1,p,y=o,x=1;do if(d=h,f=l,y=(i+o)/2,u=this.get(y),c=this.get(o),l=z.getccenter(s,u,c),l.interval={start:i,end:o},h=this._error(l,s,i,o)<=n,p=d&&!h,p||(x=o),h){if(o>=1){if(l.interval.end=x=1,f=l,o>1){let g={x:l.x+l.r*Gf(l.e),y:l.y+l.r*Vf(l.e)};l.e+=z.angle({x:l.x,y:l.y},g,this.get(1))}break}o=o+(o-i)/2}else o=y;while(!p&&a++<100);if(a>=100)break;f=f||l,r.push(f),i=x}while(o<1);return r}}function An(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(u){return{keyAccessor:u,isProp:!(u instanceof Function)}}),a=e.reduce(function(u,c){var l=u,f=c;return o.forEach(function(h,d){var p=h.keyAccessor,y=h.isProp,x;if(y){var m=f,g=m[p],k=eh(m,[p].map(ah));x=g,f=k}else x=p(f,d);d+11&&arguments[1]!==void 0?arguments[1]:1;l===o.length?Object.keys(c).forEach(function(f){return c[f]=r(c[f])}):Object.values(c).forEach(function(f){return u(f,l+1)})})(a);var s=a;return i&&(s=[],(function u(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];l.length===o.length?s.push({keys:l,vals:c}):Object.entries(c).forEach(function(f){var h=rh(f,2),d=h[0],p=h[1];return u(p,[].concat(ih(l),[d]))})})(a),n instanceof Array&&n.length===0&&s.length===1&&(s[0].keys=[])),s});function uh(e){for(var n=e.length/6|0,r=new Array(n),i=0;i"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var fh=`.force-graph-container canvas { display: block; user-select: none; outline: none; @@ -39,9 +44,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho cursor: -moz-grabbing; cursor: -webkit-grabbing; } -`;lh(ch);function Sn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,c=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,l={};r.forEach(function(p){return l[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,x=p.target,m=_(y),g=_(x);if(!l.hasOwnProperty(m))throw"Missing source node with id: ".concat(m);if(!l.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var k=l[m],w=l[g];k.out.push(w);function _(v){return Mn(v)==="object"?n(v):v}});var f=[];d(Object.values(l));var h=Object.assign.apply(Object,[{}].concat(gt(Object.entries(l).filter(function(p){var y=de(p,2),x=y[1];return!x.skip}).map(function(p){var y=de(p,2),x=y[0],m=y[1];return ye({},x,m.depth)}))));return h;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,m=function(){var _=p[g];if(y.indexOf(_)!==-1){var v=[].concat(gt(y.slice(y.indexOf(_))),[_]).map(function(A){return n(A.data)});return f.some(function(A){return A.length===v.length&&A.every(function(M,T){return M===v[T]})})||(f.push(v),c(v)),1}x>_.depth&&(_.depth=x,d(_.out,[].concat(gt(y),[_]),x+(_.skip?0:1)))},g=0,k=p.length;gn.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()0){var D=Math.atan2(P.y-R.y,P.x-R.x),U=N*T,S={x:(R.x+P.x)/2+U*Math.cos(D-Math.PI/2),y:(R.y+P.y)/2+U*Math.sin(D-Math.PI/2)};M.__controlPoints=[S.x,S.y]}else{var j=T*70;M.__controlPoints=[P.x,P.y-j,P.x+j,P.y]}}}}function a(){var u=1.6,c=.2,l=B(n.linkDirectionalArrowLength),f=B(n.linkDirectionalArrowRelPos),h=B(n.linkVisibility),d=B(n.linkDirectionalArrowColor||n.linkColor),p=B(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(h).forEach(function(x){var m=l(x);if(!(!m||m<0)){var g=x.source,k=x.target;if(!(!g||!k||!g.hasOwnProperty("x")||!k.hasOwnProperty("x"))){var w=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,_=Math.sqrt(Math.max(0,p(k)||1))*n.nodeRelSize,v=Math.min(1,Math.max(0,f(x))),A=d(x)||"rgba(0,0,0,0.28)",M=m/u/2,T=x.__controlPoints&&$r(K,[g.x,g.y].concat(gt(x.__controlPoints),[k.x,k.y])),R=T?function(E){return T.get(E)}:function(E){return{x:g.x+(k.x-g.x)*E||0,y:g.y+(k.y-g.y)*E||0}},P=T?T.length():Math.sqrt(Math.pow(k.x-g.x,2)+Math.pow(k.y-g.y,2)),N=w+m+(P-w-_-m)*v,D=R(N/P),U=R((N-m)/P),S=R((N-m*(1-c))/P),j=Math.atan2(D.y-U.y,D.x-U.x)-Math.PI/2;y.beginPath(),y.moveTo(D.x,D.y),y.lineTo(U.x+M*Math.cos(j),U.y+M*Math.sin(j)),y.lineTo(S.x,S.y),y.lineTo(U.x-M*Math.cos(j),U.y-M*Math.sin(j)),y.fillStyle=A,y.fill()}}}),y.restore()}function s(){var u=B(n.linkDirectionalParticles),c=B(n.linkDirectionalParticleSpeed),l=B(n.linkDirectionalParticleOffset),f=B(n.linkDirectionalParticleWidth),h=B(n.linkVisibility),d=B(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(h).forEach(function(y){var x=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var m=y.source,g=y.target;if(!(!m||!g||!m.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var k=c(y),w=Math.abs(l(y)),_=y.__photons||[],v=Math.max(0,f(y)/2)/Math.sqrt(n.globalScale),A=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=A;var M=y.__controlPoints?$r(K,[m.x,m.y].concat(gt(y.__controlPoints),[g.x,g.y])):null,T=0,R=!1;_.forEach(function(P){var N=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=N?k<0?1:0:(T+w)/x),!N&&T++,P.__progressRatio+=k,P.__progressRatio>=1||P.__progressRatio<0)if(!N)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{R=!0;return}var D=P.__progressRatio,U=M?M.get(D):{x:m.x+(g.x-m.x)*D||0,y:m.y+(g.y-m.y)*D||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(U.x,U.y,y,p,n.globalScale):(p.beginPath(),p.arc(U.x,U.y,v,0,2*Math.PI,!1),p.fill())}),R&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:$f().force("link",Of()).force("charge",Lf()).force("center",Ec()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fr(n.graphData.nodes,B(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fr(n.graphData.links,B(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&xh(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,gt(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*bh*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var c=["rl","bu"].includes(n.dagMode),l=function(p){return(o[p[n.nodeId]]-a/2)*s*(c?-1:1)},f=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[f]=l(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?Ff(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var h=0;h0&&n.forceLayout.alpha()1?u-1:0),l=1;l1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=B(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Zn(a,function(s){return s.x-s.r}),Kn(a,function(s){return s.x+s.r})],y:[Zn(a,function(s){return s.y-s.r}),Kn(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Mh),stateInit:function(){return{lastSetZoom:1,zoom:Hu(),forceGraph:new qe,shadowGraph:new qe().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new uc,tweenGroup:new bi}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},c=function(){var h=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(h=r.colorTracker.lookup(p.data)),h};pt(r.canvas).call(Cs().subject(function(){if(!r.enableNodeDrag)return null;var f=c();return f&&f.type==="Node"?f.d:null}).on("start",function(f){var h=f.subject;h.__initialDragPos={x:h.x,y:h.y,fx:h.fx,fy:h.fy},f.active||(h.fx=h.x,h.fy=h.y),r.canvas.classList.add("grabbable")}).on("drag",function(f){var h=f.subject,d=h.__initialDragPos,p=f,y=mt(r.canvas).k,x={x:d.x+(p.x-d.x)/y-h.x,y:d.y+(p.y-d.y)/y-h.y};["x","y"].forEach(function(m){return h["f".concat(m)]=h[m]=d[m]+(p[m]-d[m])/y}),!(!h.__dragged&&Ch>=Math.sqrt(yo(["x","y"].map(function(m){return Math.pow(f[m]-d[m],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,h.__dragged=!0,r.onNodeDrag(h,x))}).on("end",function(f){var h=f.subject,d=h.__initialDragPos,p={x:h.x-d.x,y:h.y-d.y};d.fx===void 0&&(h.fx=void 0),d.fy===void 0&&(h.fy=void 0),delete h.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,h.__dragged&&(delete h.__dragged,r.onNodeDragEnd(h,p))})),r.zoom(r.zoom.__baseElem=pt(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(f){return!f.button&&r.enableZoomPanInteraction&&(f.type!=="wheel"||B(r.enableZoomInteraction)(f))&&(f.type==="wheel"||B(r.enablePanInteraction)(f))}).on("zoom",function(f){var h=f.transform;[a,s].forEach(function(d){Ki(d),d.translate(h.x,h.y),d.scale(h.k,h.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Gt(Gt({},h),i.centerAt())),r.needsRedraw=!0}).on("end",function(f){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Gt(Gt({},f.transform),i.centerAt()))}),an(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){mt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=kh/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new Oc(o),["pointermove","pointerdown"].forEach(function(f){return o.addEventListener(f,function(h){f==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=h),!r.isPointerDragging&&h.type==="pointermove"&&r.onBackgroundClick&&(h.pressure>0||r.isPointerPressed)&&(h.pointerType==="mouse"||h.movementX===void 0||[h.movementX,h.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=h.pageX-d.left,u.y=h.pageY-d.top;function p(y){var x=y.getBoundingClientRect(),m=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:x.top+g,left:x.left+m}}},{passive:!0})}),o.addEventListener("pointerup",function(f){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var h=[f,r.pointerDownEvent];requestAnimationFrame(function(){if(f.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,h);if(f.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,h)})}},{passive:!0}),o.addEventListener("contextmenu",function(f){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(f.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var l=gl(function(){Hr(s,r.width,r.height),r.shadowGraph.linkWidth(function(h){return B(r.linkWidth)(h)+r.linkHoverPrecision});var f=mt(r.canvas);r.shadowGraph.globalScale(f.k).tickFrame()},wh);r.flushShadowCanvas=l.flush,(this._animationCycle=function f(){var h=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(w){return w.__photons&&w.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:c();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,x=d?d.type:null;if(y&&y!==x){var m=r["on".concat(y,"Hover")];m&&m(null,p.d)}if(x){var g=r["on".concat(x,"Hover")];g&&g(d.d,y===x?p.d:null)}r.tooltip.content(d&&B(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(x,"Click")]||!d&&r.onBackgroundClick)&&B(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}h&&l()}if(h){Hr(a,r.width,r.height);var k=mt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,k),r.forceGraph.globalScale(k).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,k)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(f)})()},update:function(n){}}),sn={exports:{}},un,qr;function Ph(){if(qr)return un;qr=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return un=e,un}var ln,Wr;function Oh(){if(Wr)return ln;Wr=1;var e=Ph();function n(){}function r(){}return r.resetWarningCache=n,ln=function(){function i(s,u,c,l,f,h){if(h!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},ln}var Gr;function Eh(){return Gr||(Gr=1,sn.exports=Oh()()),sn.exports}var zh=Eh();const b=oo(zh),Ze={width:b.number,height:b.number,graphData:b.shape({nodes:b.arrayOf(b.object).isRequired,links:b.arrayOf(b.object).isRequired}),backgroundColor:b.string,nodeRelSize:b.number,nodeId:b.string,nodeLabel:b.oneOfType([b.string,b.func]),nodeVal:b.oneOfType([b.number,b.string,b.func]),nodeVisibility:b.oneOfType([b.bool,b.string,b.func]),nodeColor:b.oneOfType([b.string,b.func]),nodeAutoColorBy:b.oneOfType([b.string,b.func]),onNodeHover:b.func,onNodeClick:b.func,linkSource:b.string,linkTarget:b.string,linkLabel:b.oneOfType([b.string,b.func]),linkVisibility:b.oneOfType([b.bool,b.string,b.func]),linkColor:b.oneOfType([b.string,b.func]),linkAutoColorBy:b.oneOfType([b.string,b.func]),linkWidth:b.oneOfType([b.number,b.string,b.func]),linkCurvature:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowLength:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowColor:b.oneOfType([b.string,b.func]),linkDirectionalArrowRelPos:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticles:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleSpeed:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleOffset:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleWidth:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleColor:b.oneOfType([b.string,b.func]),onLinkHover:b.func,onLinkClick:b.func,dagMode:b.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:b.number,dagNodeFilter:b.func,onDagError:b.func,d3AlphaMin:b.number,d3AlphaDecay:b.number,d3VelocityDecay:b.number,warmupTicks:b.number,cooldownTicks:b.number,cooldownTime:b.number,onEngineTick:b.func,onEngineStop:b.func,getGraphBbox:b.func},Qi={zoomToFit:b.func,onNodeRightClick:b.func,onNodeDrag:b.func,onNodeDragEnd:b.func,onLinkRightClick:b.func,linkHoverPrecision:b.number,onBackgroundClick:b.func,onBackgroundRightClick:b.func,showPointerCursor:b.oneOfType([b.bool,b.func]),enablePointerInteraction:b.bool,enableNodeDrag:b.bool},Wn={showNavInfo:b.bool,nodeOpacity:b.number,nodeResolution:b.number,nodeThreeObject:b.oneOfType([b.object,b.string,b.func]),nodeThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),nodePositionUpdate:b.func,linkOpacity:b.number,linkResolution:b.number,linkCurveRotation:b.oneOfType([b.number,b.string,b.func]),linkMaterial:b.oneOfType([b.object,b.string,b.func]),linkThreeObject:b.oneOfType([b.object,b.string,b.func]),linkThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),linkPositionUpdate:b.func,linkDirectionalArrowResolution:b.number,linkDirectionalParticleResolution:b.number,linkDirectionalParticleThreeObject:b.oneOfType([b.object,b.string,b.func]),forceEngine:b.oneOf(["d3","ngraph"]),ngraphPhysics:b.object,numDimensions:b.oneOf([1,2,3])},Nh=Object.assign({},Ze,Qi,{linkLineDash:b.oneOfType([b.arrayOf(b.number),b.string,b.func]),nodeCanvasObjectMode:b.oneOfType([b.string,b.func]),nodeCanvasObject:b.func,nodePointerAreaPaint:b.func,linkCanvasObjectMode:b.oneOfType([b.string,b.func]),linkCanvasObject:b.func,linkPointerAreaPaint:b.func,linkDirectionalParticleCanvasObject:b.func,autoPauseRedraw:b.bool,minZoom:b.number,maxZoom:b.number,enableZoomInteraction:b.oneOfType([b.bool,b.func]),enablePanInteraction:b.oneOfType([b.bool,b.func]),onZoom:b.func,onZoomEnd:b.func,onRenderFramePre:b.func,onRenderFramePost:b.func});Object.assign({},Ze,Qi,Wn,{enableNavigationControls:b.bool,controlType:b.oneOf(["trackball","orbit","fly"]),rendererConfig:b.object,extraRenderers:b.arrayOf(b.shape({render:b.func.isRequired}))});Object.assign({},Ze,Wn,{nodeDesc:b.oneOfType([b.string,b.func]),linkDesc:b.oneOfType([b.string,b.func])});Object.assign({},Ze,Wn,{markerAttrs:b.object,yOffset:b.number,glScale:b.number});const Gn=Do(Th,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Gn.displayName="ForceGraph2D";Gn.propTypes=Nh;function wt(e){return function(){return e}}function Vr(e){return(e()-.5)*1e-6}function Rh(e){return e.x+e.vx}function jh(e){return e.y+e.vy}function Dh(e){var n,r,i,o=1,a=1;typeof e!="function"&&(e=wt(e==null?1:+e));function s(){for(var l,f=n.length,h,d,p,y,x,m,g=0;gd.index){var N=p-T.x-T.vx,D=y-T.y-T.vy,U=N*N+D*D;Up+P||Ay+P||Ml.r&&(l.r=l[f].r)}function c(){if(n){var l,f=n.length,h;for(r=new Array(f),l=0;la[0]-s[0]||a[1]-s[1]),r=(a,s,u)=>(s[0]-a[0])*(u[1]-a[1])-(s[1]-a[1])*(u[0]-a[0]),i=[];for(const a of n){for(;i.length>=2&&r(i[i.length-2],i[i.length-1],a)<=0;)i.pop();i.push(a)}const o=[];for(let a=n.length-1;a>=0;a--){const s=n[a];for(;o.length>=2&&r(o[o.length-2],o[o.length-1],s)<=0;)o.pop();o.push(s)}return i.pop(),o.pop(),i.concat(o)}function Bh({data:e,selectedNodeId:n,onNodeSelect:r}){const[i,o]=W.useState(null),[a,s]=W.useState(.75),u=W.useRef(null),c=W.useRef(null),[l,f]=W.useState({width:500,height:560});W.useEffect(()=>{if(!u.current)return;const C=new ResizeObserver(O=>{for(let I of O)I.contentRect.width>0&&I.contentRect.height>0&&f({width:Math.floor(I.contentRect.width),height:Math.floor(I.contentRect.height)})});return C.observe(u.current),()=>C.disconnect()},[]);const h=W.useRef(new Map),d=W.useMemo(()=>{const C=h.current,O=new Set,I=e.nodes.map(F=>{O.add(F.id);let G=C.get(F.id);return G?(G.content!==F.content||G.category!==F.category)&&(G.content=F.content,G.category=F.category,G.__baseTextWidth=void 0):(G={...F},C.set(F.id,G)),G});for(const F of Array.from(C.keys()))O.has(F)||C.delete(F);const L=new Map(e.nodes.map(F=>[F.id,F.category])),H=e.edges.map(F=>({source:F.source,target:F.target,weight:F.weight||0,__sid:F.source,__tid:F.target,__sameCat:L.get(F.source)===L.get(F.target),__restColor:Uh[L.get(F.source)??""]??Fh}));return{nodes:I,links:H}},[e]),p=W.useMemo(()=>{const C={};return e.edges.forEach(O=>{C[O.source]=(C[O.source]||0)+1,C[O.target]=(C[O.target]||0)+1}),C},[e]),y=C=>({identity:-240,knowledge:240,rules:-240,events:240})[C]||0,x=C=>({identity:-240,knowledge:-240,rules:240,events:240})[C]||0,m=W.useMemo(()=>`${e.nodes.map(C=>C.id).sort().join(",")}#${e.edges.length}`,[e]);W.useEffect(()=>{const C=c.current;if(!C)return;C.d3Force("center",null),C.d3Force("x",Ih().x(L=>y(L.category)).strength(.1)),C.d3Force("y",$h().y(L=>x(L.category)).strength(.1));const O=C.d3Force("charge");O&&O.strength(-380),C.d3Force("collide",Dh().radius(28).iterations(2));const I=C.d3Force("link");I&&I.distance(L=>L.__sameCat?70:200).strength(L=>L.__sameCat?.3*(L.weight||.6):.01),C.d3ReheatSimulation()},[m]);const g=i||n,k=W.useMemo(()=>d.links.filter(C=>C.__sameCat&&(C.weight||0)>=a).length,[d,a]),w=()=>{c.current&&c.current.zoomToFit(400,40)},_=W.useMemo(()=>{if(!g)return new Set;const C=new Set;return e.edges.forEach(O=>{O.source===g&&C.add(O.target),O.target===g&&C.add(O.source)}),C},[g,e]),v=W.useCallback(C=>g?C.__sid===g||C.__tid===g:C.__sameCat&&(C.weight||0)>=a,[g,a]),A=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?Lh:C.__restColor,[g]),M=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?2.5:1.4,[g]),T=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?4:0,[g]),R=W.useCallback((C,O)=>{const I=c.current,L=u.current;if(!I||!L)return null;const H=L.getBoundingClientRect(),{x:F,y:G}=I.screen2GraphCoords(C-H.left,O-H.top),V=Math.max(I.zoom()||1,.01);let X=null,tt=1/0;for(const Z of d.nodes){if(Z.x==null||Z.y==null)continue;const st=6+Math.min(p[Z.id]||0,15)*.8,et=Math.max(st+3,16/V),qt=Z.x-F,At=Z.y-G,nt=qt*qt+At*At;nt<=et*et&&nt{const O=C.target instanceof HTMLCanvasElement?R(C.clientX,C.clientY):null;o(O?O.id:null),u.current&&(u.current.style.cursor=O?"pointer":"default")},[R]),N=W.useCallback(()=>{o(null),u.current&&(u.current.style.cursor="default")},[]),D=W.useRef(null),U=W.useCallback(C=>{D.current={x:C.clientX,y:C.clientY}},[]),S=W.useCallback(C=>{if(!(C.target instanceof HTMLCanvasElement))return;const O=D.current;if(O&&Math.hypot(C.clientX-O.x,C.clientY-O.y)>6)return;const I=R(C.clientX,C.clientY);r(I?I.id:null)},[R,r]),j=W.useCallback((C,O)=>{var L;const I={};for(const H of d.nodes)H.x==null||H.y==null||(I[L=H.category]??(I[L]=[])).push([H.x,H.y]);for(const[H,F]of Object.entries(I)){const G=qh[H];if(!G||F.length===0)continue;const V=Vh(F);let X=0,tt=0;V.forEach(et=>{X+=et[0],tt+=et[1]}),X/=V.length,tt/=V.length;const Z=34;if(C.beginPath(),V.length<3)C.arc(X,tt,Z+16,0,2*Math.PI);else{const et=V.map(([nt,lt])=>{const jt=nt-X,Zt=lt-tt,Kt=Math.hypot(jt,Zt)||1;return[nt+jt/Kt*Z,lt+Zt/Kt*Z]}),qt=(nt,lt)=>[(nt[0]+lt[0])/2,(nt[1]+lt[1])/2],At=qt(et[et.length-1],et[0]);C.moveTo(At[0],At[1]);for(let nt=0;ntet[1]));C.font='600 26px "Space Grotesk", sans-serif',C.textAlign="center",C.textBaseline="bottom",C.fillStyle=Gh[H],C.fillText(Xr[H]||H,X,st-Z-8)}},[d]),E=W.useCallback((C,O,I)=>{const L=C.x??0,H=C.y??0,F=6+Math.min(p[C.id]||0,15)*.8,G=Br[C.category]||"#64748b",V=C.id===i,X=C.id===n,tt=g&&C.id!==g&&!_.has(C.id),Z=tt?"#1e293b":G;if(tt||(O.beginPath(),O.arc(L,H,F*1.9,0,2*Math.PI,!1),O.fillStyle=Hh[C.category]||"rgba(100, 116, 139, 0.14)",O.fill()),(V||X)&&(O.shadowColor=G,O.shadowBlur=15),O.beginPath(),O.arc(L,H,F,0,2*Math.PI,!1),O.fillStyle=Z,O.fill(),O.shadowBlur=0,(V||X)&&(O.beginPath(),O.arc(L,H,F+2.5,0,2*Math.PI,!1),O.strokeStyle=X?"#ffffff":"rgba(255, 255, 255, 0.7)",O.lineWidth=1.5,O.stroke()),V||X||g&&_.has(C.id)){const et=C.content.length>35?C.content.slice(0,34)+"…":C.content;if(C.__baseTextWidth===void 0){const Ji=O.font;O.font='500 10px "Space Grotesk", sans-serif',C.__baseTextWidth=O.measureText(et).width,O.font=Ji}const At=(V||X?10.5:9.5)/Math.max(.5,I);O.font=`${V||X?"bold":"500"} ${At}px "Space Grotesk", sans-serif`;const nt=C.__baseTextWidth*(At/10),lt=4.5/Math.max(.5,I),jt=L-nt/2-lt,Zt=H+F+6/Math.max(.5,I),Kt=nt+lt*2,Vn=At+lt*1.6;O.fillStyle=tt?"rgba(10, 15, 25, 0.45)":"rgba(8, 12, 20, 0.88)",O.fillRect(jt,Zt,Kt,Vn),O.strokeStyle=V||X?"rgba(255, 255, 255, 0.2)":"rgba(255, 255, 255, 0.08)",O.lineWidth=.6/Math.max(.5,I),O.strokeRect(jt,Zt,Kt,Vn),O.textAlign="center",O.textBaseline="top",O.fillStyle=tt?"#475569":V||X?"#ffffff":"#cbd5e1",O.fillText(et,L,H+F+7/Math.max(.5,I))}},[p,i,n,g,_]);return $.jsxs("div",{className:"absolute inset-0",ref:u,onPointerMove:P,onPointerLeave:N,onPointerDown:U,onClick:S,style:{background:"radial-gradient(circle at center, rgba(59, 130, 246, 0.08) 0%, #030712 100%)"},children:[$.jsx(Gn,{ref:c,width:l.width,height:l.height,graphData:d,backgroundColor:"rgba(0,0,0,0)",cooldownTicks:120,enablePointerInteraction:!1,enableNodeDrag:!1,onRenderFramePre:j,linkVisibility:v,linkColor:A,linkWidth:M,linkDirectionalParticles:T,linkDirectionalParticleWidth:2.2,linkDirectionalParticleSpeed:.006,nodeCanvasObject:E}),$.jsxs("button",{onClick:w,title:"Zentrieren",className:"absolute right-3 top-3 z-10 flex items-center gap-1.5 rounded-lg border border-border/60 bg-background/50 px-2.5 py-1.5 text-[11px] text-muted-foreground hover:text-foreground backdrop-blur-sm transition-colors cursor-pointer",children:[$.jsx(ao,{className:"h-3.5 w-3.5"})," Zentrieren"]}),$.jsxs("div",{className:"absolute left-3 bottom-3 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-background/40 px-2.5 py-1.5 backdrop-blur-sm",children:[Object.entries(Xr).map(([C,O])=>$.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[$.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:Br[C]}}),O]},C)),$.jsxs("label",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground border-l border-border/40 pl-3",children:[$.jsx("span",{children:"Verbindungen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"alle"}),$.jsx("input",{type:"range",min:.45,max:.95,step:.05,value:a,onChange:C=>s(Number(C.target.value)),className:"w-20 accent-primary cursor-pointer",title:"Nur Verbindungen ab dieser Stärke zeigen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"stark"}),$.jsx("span",{className:"font-mono text-[9px] text-muted-foreground/80 min-w-[3ch] text-right",children:k})]})]})]})}class Xh extends W.Component{constructor(){super(...arguments);Bn(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}render(){return this.state.error?$.jsxs("div",{className:"h-[480px] rounded-2xl border border-red-500/20 bg-red-500/5 p-6 text-xs text-red-400 overflow-auto",children:[$.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),$.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const Yh={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function td(){const{data:e,isLoading:n}=so(),[r,i]=W.useState(null),[o,a]=W.useState(null),[s,u]=W.useState(!1),[c,l]=W.useState(""),[f,h]=W.useState(!1),{data:d,isLoading:p}=uo(f),y=W.useMemo(()=>(e==null?void 0:e.files)??[],[e]),x=W.useMemo(()=>{const w=new Map;for(const _ of y)w.set(_.name.toLowerCase(),_.path);return w},[y]),m=W.useMemo(()=>{if(!c.trim())return y;const w=c.toLowerCase();return y.filter(_=>_.title.toLowerCase().includes(w)||_.path.toLowerCase().includes(w))},[y,c]),g=W.useMemo(()=>{const w=[];for(const _ of m){const v=w.find(A=>A.dir===_.dir);v?v.files.push(_):w.push({dir:_.dir,files:[_]})}return w.sort((_,v)=>_.dir===""?-1:v.dir===""?1:_.dir.localeCompare(v.dir))},[m]);W.useEffect(()=>{if(!r&&y.length){const w=y.find(_=>_.path.toLowerCase()==="index.md");i((w==null?void 0:w.path)??y[0].path)}},[y,r]),W.useEffect(()=>{r&&(u(!0),lo(`/api/wissen/datei?pfad=${encodeURIComponent(r)}`).then(a).catch(()=>a({path:r,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>u(!1)))},[r]);const k=w=>{const _=x.get(w.toLowerCase());_&&i(_)};return $.jsxs("div",{className:"space-y-5",children:[$.jsxs("div",{className:"flex items-center justify-between",children:[$.jsxs("div",{children:[$.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Wissen"}),$.jsx("p",{className:"text-sm text-muted-foreground",children:"Was sich die Box nachts erschließt — Traum-Notizen, Muster und Skill-Ideen aus dem Wissens-Vault, verlinkt wie ein Wiki."})]}),y.length>0&&$.jsxs("div",{className:"flex rounded-lg border border-border/60 bg-card p-1",children:[$.jsx("button",{onClick:()=>h(!1),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"text-muted-foreground hover:bg-muted":"bg-primary text-primary-foreground shadow"),children:"Liste"}),$.jsx("button",{onClick:()=>h(!0),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:bg-muted"),children:"Graph"})]})]}),e&&!e.available&&$.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Der Wissens-Vault liegt auf der Box (~/wissens-vault) — im lokalen Dev-Modus nicht verfügbar."}),n&&$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(e==null?void 0:e.available)&&y.length===0&&$.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:"Noch keine Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),f?$.jsxs("div",{className:"mc-card flex h-[70vh] flex-col overflow-hidden p-0 relative",children:[p&&$.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Graph wird berechnet …"]})}),$.jsx(Xh,{children:d&&$.jsx(Bh,{data:d,selectedNodeId:r,onNodeSelect:w=>{w&&(i(w),h(!1))}})})]}):y.length>0&&$.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[$.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[$.jsxs("div",{className:"relative",children:[$.jsx("input",{value:c,onChange:w=>l(w.target.value),type:"search",placeholder:"Notizen durchsuchen…","aria-label":"Notizen durchsuchen",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 pl-8 pr-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),$.jsx(co,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),$.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:g.map(({dir:w,files:_})=>$.jsxs("div",{children:[$.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[$.jsx(go,{className:"h-3 w-3"})," ",Yh[w]??w]}),$.jsx("div",{className:"space-y-0.5",children:_.map(v=>$.jsxs("button",{onClick:()=>i(v.path),className:Ae("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",r===v.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[$.jsx(fo,{className:"h-3.5 w-3.5 shrink-0"}),$.jsx("span",{className:"truncate",title:v.title,children:v.name}),v.neu&&$.jsxs("span",{className:"ml-auto flex items-center gap-0.5 rounded bg-violet-500/15 px-1 py-0.5 text-[8px] font-bold uppercase text-violet-300",children:[$.jsx(ho,{className:"h-2.5 w-2.5"}),"neu"]})]},v.path))})]},w||"__root"))})]}),$.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:s?$.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):o?$.jsxs($.Fragment,{children:[$.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[$.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[$.jsx(po,{className:"h-3.5 w-3.5"})," ",o.path]}),o.mtime>0&&$.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(o.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),$.jsx(Zh,{text:o.content,onWikiLink:k,known:x})]}):null})]})]})}function Zh({text:e,onWikiLink:n,known:r}){const i=e.split(` +`;ch(fh);function Sn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,c=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,l={};r.forEach(function(p){return l[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,x=p.target,m=_(y),g=_(x);if(!l.hasOwnProperty(m))throw"Missing source node with id: ".concat(m);if(!l.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var k=l[m],w=l[g];k.out.push(w);function _(v){return Mn(v)==="object"?n(v):v}});var f=[];d(Object.values(l));var h=Object.assign.apply(Object,[{}].concat(gt(Object.entries(l).filter(function(p){var y=de(p,2),x=y[1];return!x.skip}).map(function(p){var y=de(p,2),x=y[0],m=y[1];return ye({},x,m.depth)}))));return h;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,m=function(){var _=p[g];if(y.indexOf(_)!==-1){var v=[].concat(gt(y.slice(y.indexOf(_))),[_]).map(function(A){return n(A.data)});return f.some(function(A){return A.length===v.length&&A.every(function(M,T){return M===v[T]})})||(f.push(v),c(v)),1}x>_.depth&&(_.depth=x,d(_.out,[].concat(gt(y),[_]),x+(_.skip?0:1)))},g=0,k=p.length;gn.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()0){var D=Math.atan2(P.y-R.y,P.x-R.x),U=N*T,S={x:(R.x+P.x)/2+U*Math.cos(D-Math.PI/2),y:(R.y+P.y)/2+U*Math.sin(D-Math.PI/2)};M.__controlPoints=[S.x,S.y]}else{var j=T*70;M.__controlPoints=[P.x,P.y-j,P.x+j,P.y]}}}}function a(){var u=1.6,c=.2,l=B(n.linkDirectionalArrowLength),f=B(n.linkDirectionalArrowRelPos),h=B(n.linkVisibility),d=B(n.linkDirectionalArrowColor||n.linkColor),p=B(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(h).forEach(function(x){var m=l(x);if(!(!m||m<0)){var g=x.source,k=x.target;if(!(!g||!k||!g.hasOwnProperty("x")||!k.hasOwnProperty("x"))){var w=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,_=Math.sqrt(Math.max(0,p(k)||1))*n.nodeRelSize,v=Math.min(1,Math.max(0,f(x))),A=d(x)||"rgba(0,0,0,0.28)",M=m/u/2,T=x.__controlPoints&&$r(K,[g.x,g.y].concat(gt(x.__controlPoints),[k.x,k.y])),R=T?function(E){return T.get(E)}:function(E){return{x:g.x+(k.x-g.x)*E||0,y:g.y+(k.y-g.y)*E||0}},P=T?T.length():Math.sqrt(Math.pow(k.x-g.x,2)+Math.pow(k.y-g.y,2)),N=w+m+(P-w-_-m)*v,D=R(N/P),U=R((N-m)/P),S=R((N-m*(1-c))/P),j=Math.atan2(D.y-U.y,D.x-U.x)-Math.PI/2;y.beginPath(),y.moveTo(D.x,D.y),y.lineTo(U.x+M*Math.cos(j),U.y+M*Math.sin(j)),y.lineTo(S.x,S.y),y.lineTo(U.x-M*Math.cos(j),U.y-M*Math.sin(j)),y.fillStyle=A,y.fill()}}}),y.restore()}function s(){var u=B(n.linkDirectionalParticles),c=B(n.linkDirectionalParticleSpeed),l=B(n.linkDirectionalParticleOffset),f=B(n.linkDirectionalParticleWidth),h=B(n.linkVisibility),d=B(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(h).forEach(function(y){var x=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var m=y.source,g=y.target;if(!(!m||!g||!m.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var k=c(y),w=Math.abs(l(y)),_=y.__photons||[],v=Math.max(0,f(y)/2)/Math.sqrt(n.globalScale),A=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=A;var M=y.__controlPoints?$r(K,[m.x,m.y].concat(gt(y.__controlPoints),[g.x,g.y])):null,T=0,R=!1;_.forEach(function(P){var N=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=N?k<0?1:0:(T+w)/x),!N&&T++,P.__progressRatio+=k,P.__progressRatio>=1||P.__progressRatio<0)if(!N)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{R=!0;return}var D=P.__progressRatio,U=M?M.get(D):{x:m.x+(g.x-m.x)*D||0,y:m.y+(g.y-m.y)*D||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(U.x,U.y,y,p,n.globalScale):(p.beginPath(),p.arc(U.x,U.y,v,0,2*Math.PI,!1),p.fill())}),R&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:Lf().force("link",Ef()).force("charge",Ff()).force("center",zc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fr(n.graphData.nodes,B(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fr(n.graphData.links,B(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&bh(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,gt(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*wh*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var c=["rl","bu"].includes(n.dagMode),l=function(p){return(o[p[n.nodeId]]-a/2)*s*(c?-1:1)},f=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[f]=l(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?Uf(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var h=0;h0&&n.forceLayout.alpha()1?u-1:0),l=1;l1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=B(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Zn(a,function(s){return s.x-s.r}),Kn(a,function(s){return s.x+s.r})],y:[Zn(a,function(s){return s.y-s.r}),Kn(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Th),stateInit:function(){return{lastSetZoom:1,zoom:qu(),forceGraph:new qe,shadowGraph:new qe().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new lc,tweenGroup:new bi}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},c=function(){var h=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(h=r.colorTracker.lookup(p.data)),h};pt(r.canvas).call(As().subject(function(){if(!r.enableNodeDrag)return null;var f=c();return f&&f.type==="Node"?f.d:null}).on("start",function(f){var h=f.subject;h.__initialDragPos={x:h.x,y:h.y,fx:h.fx,fy:h.fy},f.active||(h.fx=h.x,h.fy=h.y),r.canvas.classList.add("grabbable")}).on("drag",function(f){var h=f.subject,d=h.__initialDragPos,p=f,y=mt(r.canvas).k,x={x:d.x+(p.x-d.x)/y-h.x,y:d.y+(p.y-d.y)/y-h.y};["x","y"].forEach(function(m){return h["f".concat(m)]=h[m]=d[m]+(p[m]-d[m])/y}),!(!h.__dragged&&Ah>=Math.sqrt(_o(["x","y"].map(function(m){return Math.pow(f[m]-d[m],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,h.__dragged=!0,r.onNodeDrag(h,x))}).on("end",function(f){var h=f.subject,d=h.__initialDragPos,p={x:h.x-d.x,y:h.y-d.y};d.fx===void 0&&(h.fx=void 0),d.fy===void 0&&(h.fy=void 0),delete h.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,h.__dragged&&(delete h.__dragged,r.onNodeDragEnd(h,p))})),r.zoom(r.zoom.__baseElem=pt(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(f){return!f.button&&r.enableZoomPanInteraction&&(f.type!=="wheel"||B(r.enableZoomInteraction)(f))&&(f.type==="wheel"||B(r.enablePanInteraction)(f))}).on("zoom",function(f){var h=f.transform;[a,s].forEach(function(d){Ki(d),d.translate(h.x,h.y),d.scale(h.k,h.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Gt(Gt({},h),i.centerAt())),r.needsRedraw=!0}).on("end",function(f){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Gt(Gt({},f.transform),i.centerAt()))}),an(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){mt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Ch/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new Ec(o),["pointermove","pointerdown"].forEach(function(f){return o.addEventListener(f,function(h){f==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=h),!r.isPointerDragging&&h.type==="pointermove"&&r.onBackgroundClick&&(h.pressure>0||r.isPointerPressed)&&(h.pointerType==="mouse"||h.movementX===void 0||[h.movementX,h.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=h.pageX-d.left,u.y=h.pageY-d.top;function p(y){var x=y.getBoundingClientRect(),m=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:x.top+g,left:x.left+m}}},{passive:!0})}),o.addEventListener("pointerup",function(f){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var h=[f,r.pointerDownEvent];requestAnimationFrame(function(){if(f.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,h);if(f.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,h)})}},{passive:!0}),o.addEventListener("contextmenu",function(f){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(f.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var l=yl(function(){Hr(s,r.width,r.height),r.shadowGraph.linkWidth(function(h){return B(r.linkWidth)(h)+r.linkHoverPrecision});var f=mt(r.canvas);r.shadowGraph.globalScale(f.k).tickFrame()},kh);r.flushShadowCanvas=l.flush,(this._animationCycle=function f(){var h=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(w){return w.__photons&&w.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:c();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,x=d?d.type:null;if(y&&y!==x){var m=r["on".concat(y,"Hover")];m&&m(null,p.d)}if(x){var g=r["on".concat(x,"Hover")];g&&g(d.d,y===x?p.d:null)}r.tooltip.content(d&&B(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(x,"Click")]||!d&&r.onBackgroundClick)&&B(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}h&&l()}if(h){Hr(a,r.width,r.height);var k=mt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,k),r.forceGraph.globalScale(k).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,k)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(f)})()},update:function(n){}}),sn={exports:{}},un,qr;function Oh(){if(qr)return un;qr=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return un=e,un}var ln,Wr;function Eh(){if(Wr)return ln;Wr=1;var e=Oh();function n(){}function r(){}return r.resetWarningCache=n,ln=function(){function i(s,u,c,l,f,h){if(h!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},ln}var Gr;function zh(){return Gr||(Gr=1,sn.exports=Eh()()),sn.exports}var Nh=zh();const b=ao(Nh),Ze={width:b.number,height:b.number,graphData:b.shape({nodes:b.arrayOf(b.object).isRequired,links:b.arrayOf(b.object).isRequired}),backgroundColor:b.string,nodeRelSize:b.number,nodeId:b.string,nodeLabel:b.oneOfType([b.string,b.func]),nodeVal:b.oneOfType([b.number,b.string,b.func]),nodeVisibility:b.oneOfType([b.bool,b.string,b.func]),nodeColor:b.oneOfType([b.string,b.func]),nodeAutoColorBy:b.oneOfType([b.string,b.func]),onNodeHover:b.func,onNodeClick:b.func,linkSource:b.string,linkTarget:b.string,linkLabel:b.oneOfType([b.string,b.func]),linkVisibility:b.oneOfType([b.bool,b.string,b.func]),linkColor:b.oneOfType([b.string,b.func]),linkAutoColorBy:b.oneOfType([b.string,b.func]),linkWidth:b.oneOfType([b.number,b.string,b.func]),linkCurvature:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowLength:b.oneOfType([b.number,b.string,b.func]),linkDirectionalArrowColor:b.oneOfType([b.string,b.func]),linkDirectionalArrowRelPos:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticles:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleSpeed:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleOffset:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleWidth:b.oneOfType([b.number,b.string,b.func]),linkDirectionalParticleColor:b.oneOfType([b.string,b.func]),onLinkHover:b.func,onLinkClick:b.func,dagMode:b.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:b.number,dagNodeFilter:b.func,onDagError:b.func,d3AlphaMin:b.number,d3AlphaDecay:b.number,d3VelocityDecay:b.number,warmupTicks:b.number,cooldownTicks:b.number,cooldownTime:b.number,onEngineTick:b.func,onEngineStop:b.func,getGraphBbox:b.func},Qi={zoomToFit:b.func,onNodeRightClick:b.func,onNodeDrag:b.func,onNodeDragEnd:b.func,onLinkRightClick:b.func,linkHoverPrecision:b.number,onBackgroundClick:b.func,onBackgroundRightClick:b.func,showPointerCursor:b.oneOfType([b.bool,b.func]),enablePointerInteraction:b.bool,enableNodeDrag:b.bool},Wn={showNavInfo:b.bool,nodeOpacity:b.number,nodeResolution:b.number,nodeThreeObject:b.oneOfType([b.object,b.string,b.func]),nodeThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),nodePositionUpdate:b.func,linkOpacity:b.number,linkResolution:b.number,linkCurveRotation:b.oneOfType([b.number,b.string,b.func]),linkMaterial:b.oneOfType([b.object,b.string,b.func]),linkThreeObject:b.oneOfType([b.object,b.string,b.func]),linkThreeObjectExtend:b.oneOfType([b.bool,b.string,b.func]),linkPositionUpdate:b.func,linkDirectionalArrowResolution:b.number,linkDirectionalParticleResolution:b.number,linkDirectionalParticleThreeObject:b.oneOfType([b.object,b.string,b.func]),forceEngine:b.oneOf(["d3","ngraph"]),ngraphPhysics:b.object,numDimensions:b.oneOf([1,2,3])},Rh=Object.assign({},Ze,Qi,{linkLineDash:b.oneOfType([b.arrayOf(b.number),b.string,b.func]),nodeCanvasObjectMode:b.oneOfType([b.string,b.func]),nodeCanvasObject:b.func,nodePointerAreaPaint:b.func,linkCanvasObjectMode:b.oneOfType([b.string,b.func]),linkCanvasObject:b.func,linkPointerAreaPaint:b.func,linkDirectionalParticleCanvasObject:b.func,autoPauseRedraw:b.bool,minZoom:b.number,maxZoom:b.number,enableZoomInteraction:b.oneOfType([b.bool,b.func]),enablePanInteraction:b.oneOfType([b.bool,b.func]),onZoom:b.func,onZoomEnd:b.func,onRenderFramePre:b.func,onRenderFramePost:b.func});Object.assign({},Ze,Qi,Wn,{enableNavigationControls:b.bool,controlType:b.oneOf(["trackball","orbit","fly"]),rendererConfig:b.object,extraRenderers:b.arrayOf(b.shape({render:b.func.isRequired}))});Object.assign({},Ze,Wn,{nodeDesc:b.oneOfType([b.string,b.func]),linkDesc:b.oneOfType([b.string,b.func])});Object.assign({},Ze,Wn,{markerAttrs:b.object,yOffset:b.number,glScale:b.number});const Gn=Io(Ph,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Gn.displayName="ForceGraph2D";Gn.propTypes=Rh;function wt(e){return function(){return e}}function Vr(e){return(e()-.5)*1e-6}function jh(e){return e.x+e.vx}function Dh(e){return e.y+e.vy}function Ih(e){var n,r,i,o=1,a=1;typeof e!="function"&&(e=wt(e==null?1:+e));function s(){for(var l,f=n.length,h,d,p,y,x,m,g=0;gd.index){var N=p-T.x-T.vx,D=y-T.y-T.vy,U=N*N+D*D;Up+P||Ay+P||Ml.r&&(l.r=l[f].r)}function c(){if(n){var l,f=n.length,h;for(r=new Array(f),l=0;la[0]-s[0]||a[1]-s[1]),r=(a,s,u)=>(s[0]-a[0])*(u[1]-a[1])-(s[1]-a[1])*(u[0]-a[0]),i=[];for(const a of n){for(;i.length>=2&&r(i[i.length-2],i[i.length-1],a)<=0;)i.pop();i.push(a)}const o=[];for(let a=n.length-1;a>=0;a--){const s=n[a];for(;o.length>=2&&r(o[o.length-2],o[o.length-1],s)<=0;)o.pop();o.push(s)}return i.pop(),o.pop(),i.concat(o)}function Xh({data:e,selectedNodeId:n,onNodeSelect:r}){const[i,o]=W.useState(null),[a,s]=W.useState(.75),u=W.useRef(null),c=W.useRef(null),[l,f]=W.useState({width:500,height:560});W.useEffect(()=>{if(!u.current)return;const C=new ResizeObserver(O=>{for(let I of O)I.contentRect.width>0&&I.contentRect.height>0&&f({width:Math.floor(I.contentRect.width),height:Math.floor(I.contentRect.height)})});return C.observe(u.current),()=>C.disconnect()},[]);const h=W.useRef(new Map),d=W.useMemo(()=>{const C=h.current,O=new Set,I=e.nodes.map(F=>{O.add(F.id);let G=C.get(F.id);return G?(G.content!==F.content||G.category!==F.category)&&(G.content=F.content,G.category=F.category,G.__baseTextWidth=void 0):(G={...F},C.set(F.id,G)),G});for(const F of Array.from(C.keys()))O.has(F)||C.delete(F);const L=new Map(e.nodes.map(F=>[F.id,F.category])),H=e.edges.map(F=>({source:F.source,target:F.target,weight:F.weight||0,__sid:F.source,__tid:F.target,__sameCat:L.get(F.source)===L.get(F.target),__restColor:Hh[L.get(F.source)??""]??Uh}));return{nodes:I,links:H}},[e]),p=W.useMemo(()=>{const C={};return e.edges.forEach(O=>{C[O.source]=(C[O.source]||0)+1,C[O.target]=(C[O.target]||0)+1}),C},[e]),y=C=>({identity:-240,knowledge:240,rules:-240,events:240})[C]||0,x=C=>({identity:-240,knowledge:-240,rules:240,events:240})[C]||0,m=W.useMemo(()=>`${e.nodes.map(C=>C.id).sort().join(",")}#${e.edges.length}`,[e]);W.useEffect(()=>{const C=c.current;if(!C)return;C.d3Force("center",null),C.d3Force("x",$h().x(L=>y(L.category)).strength(.1)),C.d3Force("y",Lh().y(L=>x(L.category)).strength(.1));const O=C.d3Force("charge");O&&O.strength(-380),C.d3Force("collide",Ih().radius(28).iterations(2));const I=C.d3Force("link");I&&I.distance(L=>L.__sameCat?70:200).strength(L=>L.__sameCat?.3*(L.weight||.6):.01),C.d3ReheatSimulation()},[m]);const g=i||n,k=W.useMemo(()=>d.links.filter(C=>C.__sameCat&&(C.weight||0)>=a).length,[d,a]),w=()=>{c.current&&c.current.zoomToFit(400,40)},_=W.useMemo(()=>{if(!g)return new Set;const C=new Set;return e.edges.forEach(O=>{O.source===g&&C.add(O.target),O.target===g&&C.add(O.source)}),C},[g,e]),v=W.useCallback(C=>g?C.__sid===g||C.__tid===g:C.__sameCat&&(C.weight||0)>=a,[g,a]),A=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?Fh:C.__restColor,[g]),M=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?2.5:1.4,[g]),T=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?4:0,[g]),R=W.useCallback((C,O)=>{const I=c.current,L=u.current;if(!I||!L)return null;const H=L.getBoundingClientRect(),{x:F,y:G}=I.screen2GraphCoords(C-H.left,O-H.top),V=Math.max(I.zoom()||1,.01);let X=null,tt=1/0;for(const Z of d.nodes){if(Z.x==null||Z.y==null)continue;const st=6+Math.min(p[Z.id]||0,15)*.8,et=Math.max(st+3,16/V),qt=Z.x-F,At=Z.y-G,nt=qt*qt+At*At;nt<=et*et&&nt{const O=C.target instanceof HTMLCanvasElement?R(C.clientX,C.clientY):null;o(O?O.id:null),u.current&&(u.current.style.cursor=O?"pointer":"default")},[R]),N=W.useCallback(()=>{o(null),u.current&&(u.current.style.cursor="default")},[]),D=W.useRef(null),U=W.useCallback(C=>{D.current={x:C.clientX,y:C.clientY}},[]),S=W.useCallback(C=>{if(!(C.target instanceof HTMLCanvasElement))return;const O=D.current;if(O&&Math.hypot(C.clientX-O.x,C.clientY-O.y)>6)return;const I=R(C.clientX,C.clientY);r(I?I.id:null)},[R,r]),j=W.useCallback((C,O)=>{var L;const I={};for(const H of d.nodes)H.x==null||H.y==null||(I[L=H.category]??(I[L]=[])).push([H.x,H.y]);for(const[H,F]of Object.entries(I)){const G=Wh[H];if(!G||F.length===0)continue;const V=Bh(F);let X=0,tt=0;V.forEach(et=>{X+=et[0],tt+=et[1]}),X/=V.length,tt/=V.length;const Z=34;if(C.beginPath(),V.length<3)C.arc(X,tt,Z+16,0,2*Math.PI);else{const et=V.map(([nt,lt])=>{const jt=nt-X,Zt=lt-tt,Kt=Math.hypot(jt,Zt)||1;return[nt+jt/Kt*Z,lt+Zt/Kt*Z]}),qt=(nt,lt)=>[(nt[0]+lt[0])/2,(nt[1]+lt[1])/2],At=qt(et[et.length-1],et[0]);C.moveTo(At[0],At[1]);for(let nt=0;ntet[1]));C.font='600 26px "Space Grotesk", sans-serif',C.textAlign="center",C.textBaseline="bottom",C.fillStyle=Vh[H],C.fillText(Xr[H]||H,X,st-Z-8)}},[d]),E=W.useCallback((C,O,I)=>{const L=C.x??0,H=C.y??0,F=6+Math.min(p[C.id]||0,15)*.8,G=Br[C.category]||"#64748b",V=C.id===i,X=C.id===n,tt=g&&C.id!==g&&!_.has(C.id),Z=tt?"#1e293b":G;if(tt||(O.beginPath(),O.arc(L,H,F*1.9,0,2*Math.PI,!1),O.fillStyle=qh[C.category]||"rgba(100, 116, 139, 0.14)",O.fill()),(V||X)&&(O.shadowColor=G,O.shadowBlur=15),O.beginPath(),O.arc(L,H,F,0,2*Math.PI,!1),O.fillStyle=Z,O.fill(),O.shadowBlur=0,(V||X)&&(O.beginPath(),O.arc(L,H,F+2.5,0,2*Math.PI,!1),O.strokeStyle=X?"#ffffff":"rgba(255, 255, 255, 0.7)",O.lineWidth=1.5,O.stroke()),V||X||g&&_.has(C.id)){const et=C.content.length>35?C.content.slice(0,34)+"…":C.content;if(C.__baseTextWidth===void 0){const Ji=O.font;O.font='500 10px "Space Grotesk", sans-serif',C.__baseTextWidth=O.measureText(et).width,O.font=Ji}const At=(V||X?10.5:9.5)/Math.max(.5,I);O.font=`${V||X?"bold":"500"} ${At}px "Space Grotesk", sans-serif`;const nt=C.__baseTextWidth*(At/10),lt=4.5/Math.max(.5,I),jt=L-nt/2-lt,Zt=H+F+6/Math.max(.5,I),Kt=nt+lt*2,Vn=At+lt*1.6;O.fillStyle=tt?"rgba(10, 15, 25, 0.45)":"rgba(8, 12, 20, 0.88)",O.fillRect(jt,Zt,Kt,Vn),O.strokeStyle=V||X?"rgba(255, 255, 255, 0.2)":"rgba(255, 255, 255, 0.08)",O.lineWidth=.6/Math.max(.5,I),O.strokeRect(jt,Zt,Kt,Vn),O.textAlign="center",O.textBaseline="top",O.fillStyle=tt?"#475569":V||X?"#ffffff":"#cbd5e1",O.fillText(et,L,H+F+7/Math.max(.5,I))}},[p,i,n,g,_]);return $.jsxs("div",{className:"absolute inset-0",ref:u,onPointerMove:P,onPointerLeave:N,onPointerDown:U,onClick:S,style:{background:"radial-gradient(circle at center, rgba(59, 130, 246, 0.08) 0%, #030712 100%)"},children:[$.jsx(Gn,{ref:c,width:l.width,height:l.height,graphData:d,backgroundColor:"rgba(0,0,0,0)",cooldownTicks:120,enablePointerInteraction:!1,enableNodeDrag:!1,onRenderFramePre:j,linkVisibility:v,linkColor:A,linkWidth:M,linkDirectionalParticles:T,linkDirectionalParticleWidth:2.2,linkDirectionalParticleSpeed:.006,nodeCanvasObject:E}),$.jsxs("button",{onClick:w,title:"Zentrieren",className:"absolute right-3 top-3 z-10 flex items-center gap-1.5 rounded-lg border border-border/60 bg-background/50 px-2.5 py-1.5 text-[11px] text-muted-foreground hover:text-foreground backdrop-blur-sm transition-colors cursor-pointer",children:[$.jsx(so,{className:"h-3.5 w-3.5"})," Zentrieren"]}),$.jsxs("div",{className:"absolute left-3 bottom-3 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-background/40 px-2.5 py-1.5 backdrop-blur-sm",children:[Object.entries(Xr).map(([C,O])=>$.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[$.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:Br[C]}}),O]},C)),$.jsxs("label",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground border-l border-border/40 pl-3",children:[$.jsx("span",{children:"Verbindungen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"alle"}),$.jsx("input",{type:"range",min:.45,max:.95,step:.05,value:a,onChange:C=>s(Number(C.target.value)),className:"w-20 accent-primary cursor-pointer",title:"Nur Verbindungen ab dieser Stärke zeigen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"stark"}),$.jsx("span",{className:"font-mono text-[9px] text-muted-foreground/80 min-w-[3ch] text-right",children:k})]})]})]})}class Yh extends W.Component{constructor(){super(...arguments);Bn(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}render(){return this.state.error?$.jsxs("div",{className:"h-[480px] rounded-2xl border border-red-500/20 bg-red-500/5 p-6 text-xs text-red-400 overflow-auto",children:[$.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),$.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const Zh={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function td(){const{data:e,isLoading:n}=uo(),[r,i]=W.useState(null),[o,a]=W.useState(null),[s,u]=W.useState(!1),[c,l]=W.useState(""),[f,h]=W.useState(!1),{data:d,isLoading:p}=lo(f),y=W.useMemo(()=>(e==null?void 0:e.files)??[],[e]),x=W.useMemo(()=>{const w=new Map;for(const _ of y)w.set(_.name.toLowerCase(),_.path);return w},[y]),m=W.useMemo(()=>{if(!c.trim())return y;const w=c.toLowerCase();return y.filter(_=>_.title.toLowerCase().includes(w)||_.path.toLowerCase().includes(w))},[y,c]),g=W.useMemo(()=>{const w=[];for(const _ of m){const v=w.find(A=>A.dir===_.dir);v?v.files.push(_):w.push({dir:_.dir,files:[_]})}return w.sort((_,v)=>_.dir===""?-1:v.dir===""?1:_.dir.localeCompare(v.dir))},[m]);W.useEffect(()=>{if(!r&&y.length){const w=y.find(_=>_.path.toLowerCase()==="index.md");i((w==null?void 0:w.path)??y[0].path)}},[y,r]),W.useEffect(()=>{r&&(u(!0),co(`/api/wissen/datei?pfad=${encodeURIComponent(r)}`).then(a).catch(()=>a({path:r,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>u(!1)))},[r]);const k=w=>{const _=x.get(w.toLowerCase());_&&i(_)};return $.jsxs("div",{className:"space-y-5",children:[$.jsxs("div",{className:"flex items-center justify-between",children:[$.jsxs("div",{children:[$.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Wissen"}),$.jsx("p",{className:"text-sm text-muted-foreground",children:"Was sich die Box nachts erschließt — Traum-Notizen, Muster und Skill-Ideen aus dem Wissens-Vault, verlinkt wie ein Wiki."})]}),y.length>0&&$.jsxs("div",{className:"flex rounded-lg border border-border/60 bg-card p-1",children:[$.jsx("button",{onClick:()=>h(!1),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"text-muted-foreground hover:bg-muted":"bg-primary text-primary-foreground shadow"),children:"Liste"}),$.jsx("button",{onClick:()=>h(!0),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",f?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:bg-muted"),children:"Graph"})]})]}),e&&!e.available&&$.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Der Wissens-Vault liegt auf der Box (~/wissens-vault) — im lokalen Dev-Modus nicht verfügbar."}),n&&$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(e==null?void 0:e.available)&&y.length===0&&$.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:"Noch keine Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),f?$.jsxs("div",{className:"mc-card flex h-[70vh] flex-col overflow-hidden p-0 relative",children:[p&&$.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Graph wird berechnet …"]})}),$.jsx(Yh,{children:d&&$.jsx(Xh,{data:d,selectedNodeId:r,onNodeSelect:w=>{w&&(i(w),h(!1))}})})]}):y.length>0&&$.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[$.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[$.jsxs("div",{className:"relative",children:[$.jsx("input",{value:c,onChange:w=>l(w.target.value),type:"search",placeholder:"Notizen durchsuchen…","aria-label":"Notizen durchsuchen",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 pl-8 pr-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),$.jsx(fo,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),$.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:g.map(({dir:w,files:_})=>$.jsxs("div",{children:[$.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[$.jsx(yo,{className:"h-3 w-3"})," ",Zh[w]??w]}),$.jsx("div",{className:"space-y-0.5",children:_.map(v=>$.jsxs("button",{onClick:()=>i(v.path),className:Ae("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",r===v.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[$.jsx(ho,{className:"h-3.5 w-3.5 shrink-0"}),$.jsx("span",{className:"truncate",title:v.title,children:v.name}),v.neu&&$.jsxs("span",{className:"ml-auto flex items-center gap-0.5 rounded bg-violet-500/15 px-1 py-0.5 text-[8px] font-bold uppercase text-violet-300",children:[$.jsx(po,{className:"h-2.5 w-2.5"}),"neu"]})]},v.path))})]},w||"__root"))})]}),$.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:s?$.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):o?$.jsxs($.Fragment,{children:[$.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[$.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[$.jsx(go,{className:"h-3.5 w-3.5"})," ",o.path]}),o.mtime>0&&$.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(o.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),$.jsx(Kh,{text:o.content,onWikiLink:k,known:x})]}):null})]})]})}function Kh({text:e,onWikiLink:n,known:r}){const i=e.split(` `),o=[];let a=[],s=null;const u=c=>{a.length&&(o.push($.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:a},c)),a=[])};return i.forEach((c,l)=>{const f=`l${l}`;if(s!==null){c.trimEnd()==="```"?(o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px] leading-relaxed text-foreground/85",children:s.join(` `)},f)),s=null):s.push(c);return}if(c.trimStart().startsWith("```")){u(f),s=[];return}const h=c.trimEnd();if(!h.trim()){u(f);return}const d=h.match(/^(#{1,4})\s+(.*)$/);if(d){u(f);const y=d[1].length,x=y===1?"text-lg font-bold mt-1 mb-3":y===2?"text-base font-bold mt-4 mb-2":"text-sm font-bold mt-3 mb-1.5";o.push($.jsx("p",{className:Ae(x,"font-space text-foreground"),children:cn(d[2],n,r,f)},f));return}const p=h.match(/^\s*[-*•]\s+(.*)$/);if(p){a.push($.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:cn(p[1],n,r,f)},f));return}u(f),o.push($.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:cn(h,n,r,f)},f))}),u("end"),s!==null&&o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px]",children:s.join(` `)},"code-end")),$.jsx("div",{className:"max-w-3xl",children:o})}function cn(e,n,r,i){return e.split(/(\[\[[^\]]+\]\]|\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((a,s)=>{const u=`${i}-${s}`,c=a.match(/^\[\[([^\]|]+)(?:\|([^\]]+))?\]\]$/);if(c){const l=c[1].trim(),f=(c[2]??c[1]).trim();return r.has(l.toLowerCase())?$.jsx("button",{onClick:()=>n(l),className:"rounded bg-primary/10 px-1 text-primary underline decoration-primary/40 underline-offset-2 hover:bg-primary/20 cursor-pointer",children:f},u):$.jsx("span",{className:"rounded bg-background/40 px-1 text-muted-foreground",title:"Notiz existiert (noch) nicht",children:f},u)}return a.startsWith("**")&&a.endsWith("**")?$.jsx("b",{className:"font-semibold text-foreground",children:a.slice(2,-2)},u):a.startsWith("*")&&a.endsWith("*")&&a.length>2?$.jsx("i",{children:a.slice(1,-1)},u):a.startsWith("`")&&a.endsWith("`")?$.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-teal-300",children:a.slice(1,-1)},u):$.jsx("span",{children:a},u)})}export{td as WissenView}; diff --git a/frontend/dist/assets/chevron-down-SPeGIim5.js b/frontend/dist/assets/chevron-down-BTSzJRag.js similarity index 85% rename from frontend/dist/assets/chevron-down-SPeGIim5.js rename to frontend/dist/assets/chevron-down-BTSzJRag.js index 3810e19..8478937 100644 --- a/frontend/dist/assets/chevron-down-SPeGIim5.js +++ b/frontend/dist/assets/chevron-down-BTSzJRag.js @@ -1,4 +1,4 @@ -import{c as o}from"./index-CCbyojll.js";/** +import{c as o}from"./index-DNt66je4.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/code-xml-AZtn6xxf.js b/frontend/dist/assets/code-xml-BiSOeCkP.js similarity index 88% rename from frontend/dist/assets/code-xml-AZtn6xxf.js rename to frontend/dist/assets/code-xml-BiSOeCkP.js index 1048eb4..4dc8a4a 100644 --- a/frontend/dist/assets/code-xml-AZtn6xxf.js +++ b/frontend/dist/assets/code-xml-BiSOeCkP.js @@ -1,4 +1,4 @@ -import{c as e}from"./index-CCbyojll.js";/** +import{c as e}from"./index-DNt66je4.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-FZLk16T9.js b/frontend/dist/assets/folder-open-FZLk16T9.js deleted file mode 100644 index 089d177..0000000 --- a/frontend/dist/assets/folder-open-FZLk16T9.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as a}from"./index-CCbyojll.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const o=a("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);export{o as F}; diff --git a/frontend/dist/assets/index-CCbyojll.js b/frontend/dist/assets/index-DNt66je4.js similarity index 87% rename from frontend/dist/assets/index-CCbyojll.js rename to frontend/dist/assets/index-DNt66je4.js index 43e77a9..3ee6d24 100644 --- a/frontend/dist/assets/index-CCbyojll.js +++ b/frontend/dist/assets/index-DNt66je4.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelsView-aEV2pe9C.js","assets/JobsBar-Ckecoyqy.js","assets/code-xml-AZtn6xxf.js","assets/rotate-ccw-DuKtbjZS.js","assets/zap-CRNNnxfs.js","assets/chevron-down-SPeGIim5.js","assets/layers-Dpl2QlP2.js","assets/ConnectView-5DXpNBft.js","assets/folder-open-FZLk16T9.js","assets/GuideView-D6hHVfTx.js","assets/AuftragsbuchView-BdYOUdf1.js","assets/SectionLabel-BfFwUeZU.js","assets/IdeenView-DcsN5ZLB.js","assets/SkillsView-C5D9xEVH.js","assets/ChronikView-BBdQX2_R.js","assets/WissenView-DpReQzIY.js"])))=>i.map(i=>d[i]); -var KI=Object.defineProperty;var b1=e=>{throw TypeError(e)};var VI=(e,t,r)=>t in e?KI(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var xs=(e,t,r)=>VI(e,typeof t!="symbol"?t+"":t,r),mm=(e,t,r)=>t.has(e)||b1("Cannot "+r);var $=(e,t,r)=>(mm(e,t,"read from private field"),r?r.call(e):t.get(e)),Ce=(e,t,r)=>t.has(e)?b1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),pe=(e,t,r,n)=>(mm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Le=(e,t,r)=>(mm(e,t,"access private method"),r);var Kc=(e,t,r,n)=>({set _(i){pe(e,t,i,r)},get _(){return $(e,t,n)}});function qI(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();function Ty(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vm={exports:{}},bs={},ym={exports:{}},$e={};/** +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelsView-DIBx0djl.js","assets/JobsBar-DG8VDiAV.js","assets/code-xml-BiSOeCkP.js","assets/rotate-ccw-CGv9dXzB.js","assets/zap-cdYTHDpR.js","assets/chevron-down-BTSzJRag.js","assets/layers-BakyhGhx.js","assets/ConnectView-Ibsr5kGX.js","assets/GuideView-DwZocTb3.js","assets/AuftragsbuchView-CFtqxzIs.js","assets/SectionLabel-DKDWJ8hi.js","assets/IdeenView-J4hS7xB2.js","assets/SkillsView-XWoP6WFO.js","assets/ChronikView-BbW5EQy6.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 gs=(e,t,r)=>VI(e,typeof t!="symbol"?t+"":t,r),mm=(e,t,r)=>t.has(e)||b1("Cannot "+r);var $=(e,t,r)=>(mm(e,t,"read from private field"),r?r.call(e):t.get(e)),Ce=(e,t,r)=>t.has(e)?b1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),pe=(e,t,r,n)=>(mm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Le=(e,t,r)=>(mm(e,t,"access private method"),r);var Kc=(e,t,r,n)=>({set _(i){pe(e,t,i,r)},get _(){return $(e,t,n)}});function qI(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();function Ty(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vm={exports:{}},xs={},ym={exports:{}},$e={};/** * @license React * react.production.min.js * @@ -7,7 +7,7 @@ var KI=Object.defineProperty;var b1=e=>{throw TypeError(e)};var VI=(e,t,r)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var w1;function GI(){if(w1)return $e;w1=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.iterator;function v(R){return R===null||typeof R!="object"?null:(R=m&&R[m]||R["@@iterator"],typeof R=="function"?R:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,S={};function E(R,M,J){this.props=R,this.context=M,this.refs=S,this.updater=J||x}E.prototype.isReactComponent={},E.prototype.setState=function(R,M){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,M,"setState")},E.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function P(){}P.prototype=E.prototype;function O(R,M,J){this.props=R,this.context=M,this.refs=S,this.updater=J||x}var j=O.prototype=new P;j.constructor=O,k(j,E.prototype),j.isPureReactComponent=!0;var _=Array.isArray,N=Object.prototype.hasOwnProperty,C={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function F(R,M,J){var se,te={},ce=null,ye=null;if(M!=null)for(se in M.ref!==void 0&&(ye=M.ref),M.key!==void 0&&(ce=""+M.key),M)N.call(M,se)&&!D.hasOwnProperty(se)&&(te[se]=M[se]);var _e=arguments.length-2;if(_e===1)te.children=J;else if(1<_e){for(var Z=Array(_e),we=0;we<_e;we++)Z[we]=arguments[we+2];te.children=Z}if(R&&R.defaultProps)for(se in _e=R.defaultProps,_e)te[se]===void 0&&(te[se]=_e[se]);return{$$typeof:e,type:R,key:ce,ref:ye,props:te,_owner:C.current}}function z(R,M){return{$$typeof:e,type:R.type,key:M,ref:R.ref,props:R.props,_owner:R._owner}}function q(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function X(R){var M={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(J){return M[J]})}var B=/\/+/g;function ue(R,M){return typeof R=="object"&&R!==null&&R.key!=null?X(""+R.key):M.toString(36)}function Y(R,M,J,se,te){var ce=typeof R;(ce==="undefined"||ce==="boolean")&&(R=null);var ye=!1;if(R===null)ye=!0;else switch(ce){case"string":case"number":ye=!0;break;case"object":switch(R.$$typeof){case e:case t:ye=!0}}if(ye)return ye=R,te=te(ye),R=se===""?"."+ue(ye,0):se,_(te)?(J="",R!=null&&(J=R.replace(B,"$&/")+"/"),Y(te,M,J,"",function(we){return we})):te!=null&&(q(te)&&(te=z(te,J+(!te.key||ye&&ye.key===te.key?"":(""+te.key).replace(B,"$&/")+"/")+R)),M.push(te)),1;if(ye=0,se=se===""?".":se+":",_(R))for(var _e=0;_e{throw TypeError(e)};var VI=(e,t,r)=>t in * * 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 YI(){if(k1)return bs;k1=1;var e=wl(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(u,d,f){var h,m={},v=null,x=null;f!==void 0&&(v=""+f),d.key!==void 0&&(v=""+d.key),d.ref!==void 0&&(x=d.ref);for(h in d)n.call(d,h)&&!o.hasOwnProperty(h)&&(m[h]=d[h]);if(u&&u.defaultProps)for(h in d=u.defaultProps,d)m[h]===void 0&&(m[h]=d[h]);return{$$typeof:t,type:u,key:v,ref:x,props:m,_owner:i.current}}return bs.Fragment=r,bs.jsx=s,bs.jsxs=s,bs}var E1;function QI(){return E1||(E1=1,vm.exports=YI()),vm.exports}var w=QI(),g=wl();const Dy=Ty(g),Pf=qI({__proto__:null,default:Dy},[g]);var Vc={},gm={exports:{}},fr={},xm={exports:{}},bm={};/** + */var k1;function YI(){if(k1)return xs;k1=1;var e=bl(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(u,d,f){var h,m={},v=null,x=null;f!==void 0&&(v=""+f),d.key!==void 0&&(v=""+d.key),d.ref!==void 0&&(x=d.ref);for(h in d)n.call(d,h)&&!o.hasOwnProperty(h)&&(m[h]=d[h]);if(u&&u.defaultProps)for(h in d=u.defaultProps,d)m[h]===void 0&&(m[h]=d[h]);return{$$typeof:t,type:u,key:v,ref:x,props:m,_owner:i.current}}return xs.Fragment=r,xs.jsx=s,xs.jsxs=s,xs}var E1;function QI(){return E1||(E1=1,vm.exports=YI()),vm.exports}var w=QI(),g=bl();const Dy=Ty(g),Pf=qI({__proto__:null,default:Dy},[g]);var Vc={},gm={exports:{}},fr={},xm={exports:{}},bm={};/** * @license React * scheduler.production.min.js * @@ -31,14 +31,14 @@ var KI=Object.defineProperty;var b1=e=>{throw TypeError(e)};var VI=(e,t,r)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var O1;function JI(){if(O1)return fr;O1=1;var e=wl(),t=ZI();function r(a){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,h={},m={};function v(a){return d.call(m,a)?!0:d.call(h,a)?!1:f.test(a)?m[a]=!0:(h[a]=!0,!1)}function x(a,l,c,p){if(c!==null&&c.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return p?!1:c!==null?!c.acceptsBooleans:(a=a.toLowerCase().slice(0,5),a!=="data-"&&a!=="aria-");default:return!1}}function k(a,l,c,p){if(l===null||typeof l>"u"||x(a,l,c,p))return!0;if(p)return!1;if(c!==null)switch(c.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function S(a,l,c,p,y,b,A){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=p,this.attributeNamespace=y,this.mustUseProperty=c,this.propertyName=a,this.type=l,this.sanitizeURL=b,this.removeEmptyString=A}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){E[a]=new S(a,0,!1,a,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var l=a[0];E[l]=new S(l,1,!1,a[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){E[a]=new S(a,2,!1,a.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){E[a]=new S(a,2,!1,a,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){E[a]=new S(a,3,!1,a.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(a){E[a]=new S(a,3,!0,a,null,!1,!1)}),["capture","download"].forEach(function(a){E[a]=new S(a,4,!1,a,null,!1,!1)}),["cols","rows","size","span"].forEach(function(a){E[a]=new S(a,6,!1,a,null,!1,!1)}),["rowSpan","start"].forEach(function(a){E[a]=new S(a,5,!1,a.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function O(a){return a[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!1,!1)}),E.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!0,!0)});function j(a,l,c,p){var y=E.hasOwnProperty(l)?E[l]:null;(y!==null?y.type!==0:p||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,h={},m={};function v(a){return d.call(m,a)?!0:d.call(h,a)?!1:f.test(a)?m[a]=!0:(h[a]=!0,!1)}function x(a,l,c,p){if(c!==null&&c.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return p?!1:c!==null?!c.acceptsBooleans:(a=a.toLowerCase().slice(0,5),a!=="data-"&&a!=="aria-");default:return!1}}function k(a,l,c,p){if(l===null||typeof l>"u"||x(a,l,c,p))return!0;if(p)return!1;if(c!==null)switch(c.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function S(a,l,c,p,y,b,A){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=p,this.attributeNamespace=y,this.mustUseProperty=c,this.propertyName=a,this.type=l,this.sanitizeURL=b,this.removeEmptyString=A}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){E[a]=new S(a,0,!1,a,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var l=a[0];E[l]=new S(l,1,!1,a[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){E[a]=new S(a,2,!1,a.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){E[a]=new S(a,2,!1,a,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){E[a]=new S(a,3,!1,a.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(a){E[a]=new S(a,3,!0,a,null,!1,!1)}),["capture","download"].forEach(function(a){E[a]=new S(a,4,!1,a,null,!1,!1)}),["cols","rows","size","span"].forEach(function(a){E[a]=new S(a,6,!1,a,null,!1,!1)}),["rowSpan","start"].forEach(function(a){E[a]=new S(a,5,!1,a.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function O(a){return a[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(a){var l=a.replace(P,O);E[l]=new S(l,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!1,!1)}),E.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(a){E[a]=new S(a,1,!1,a.toLowerCase(),null,!0,!0)});function j(a,l,c,p){var y=E.hasOwnProperty(l)?E[l]:null;(y!==null?y.type!==0:p||!(2I||y[A]!==b[I]){var T=` -`+y[A].replace(" at new "," at ");return a.displayName&&T.includes("")&&(T=T.replace("",a.displayName)),T}while(1<=A&&0<=I);break}}}finally{J=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?M(a):""}function te(a){switch(a.tag){case 5:return M(a.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return a=se(a.type,!1),a;case 11:return a=se(a.type.render,!1),a;case 1:return a=se(a.type,!0),a;default:return""}}function ce(a){if(a==null)return null;if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case D:return"Fragment";case C:return"Portal";case z:return"Profiler";case F:return"StrictMode";case ue:return"Suspense";case Y:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case X:return(a.displayName||"Context")+".Consumer";case q:return(a._context.displayName||"Context")+".Provider";case B:var l=a.render;return a=a.displayName,a||(a=l.displayName||l.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case le:return l=a.displayName||null,l!==null?l:ce(a.type)||"Memo";case fe:l=a._payload,a=a._init;try{return ce(a(l))}catch{}}return null}function ye(a){var l=a.type;switch(a.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=l.render,a=a.displayName||a.name||"",l.displayName||(a!==""?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ce(l);case 8:return l===F?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function _e(a){switch(typeof a){case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function Z(a){var l=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function we(a){var l=Z(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,l),p=""+a[l];if(!a.hasOwnProperty(l)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var y=c.get,b=c.set;return Object.defineProperty(a,l,{configurable:!0,get:function(){return y.call(this)},set:function(A){p=""+A,b.call(this,A)}}),Object.defineProperty(a,l,{enumerable:c.enumerable}),{getValue:function(){return p},setValue:function(A){p=""+A},stopTracking:function(){a._valueTracker=null,delete a[l]}}}}function Pe(a){a._valueTracker||(a._valueTracker=we(a))}function ne(a){if(!a)return!1;var l=a._valueTracker;if(!l)return!0;var c=l.getValue(),p="";return a&&(p=Z(a)?a.checked?"true":"false":a.value),a=p,a!==c?(l.setValue(a),!0):!1}function lt(a){if(a=a||(typeof document<"u"?document:void 0),typeof a>"u")return null;try{return a.activeElement||a.body}catch{return a.body}}function Re(a,l){var c=l.checked;return Q({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??a._wrapperState.initialChecked})}function Ee(a,l){var c=l.defaultValue==null?"":l.defaultValue,p=l.checked!=null?l.checked:l.defaultChecked;c=_e(l.value!=null?l.value:c),a._wrapperState={initialChecked:p,initialValue:c,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function vt(a,l){l=l.checked,l!=null&&j(a,"checked",l,!1)}function or(a,l){vt(a,l);var c=_e(l.value),p=l.type;if(c!=null)p==="number"?(c===0&&a.value===""||a.value!=c)&&(a.value=""+c):a.value!==""+c&&(a.value=""+c);else if(p==="submit"||p==="reset"){a.removeAttribute("value");return}l.hasOwnProperty("value")?G(a,l.type,c):l.hasOwnProperty("defaultValue")&&G(a,l.type,_e(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(a.defaultChecked=!!l.defaultChecked)}function fi(a,l,c){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var p=l.type;if(!(p!=="submit"&&p!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+a._wrapperState.initialValue,c||l===a.value||(a.value=l),a.defaultValue=l}c=a.name,c!==""&&(a.name=""),a.defaultChecked=!!a._wrapperState.initialChecked,c!==""&&(a.name=c)}function G(a,l,c){(l!=="number"||lt(a.ownerDocument)!==a)&&(c==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c))}var Ie=Array.isArray;function Xe(a,l,c,p){if(a=a.options,l){l={};for(var y=0;y"+l.valueOf().toString()+"",l=$u.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}});function Dl(a,l){if(l){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=l;return}}a.textContent=l}var Rl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Yj=["Webkit","ms","Moz","O"];Object.keys(Rl).forEach(function(a){Yj.forEach(function(l){l=l+a.charAt(0).toUpperCase()+a.substring(1),Rl[l]=Rl[a]})});function D0(a,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Rl.hasOwnProperty(a)&&Rl[a]?(""+l).trim():l+"px"}function R0(a,l){a=a.style;for(var c in l)if(l.hasOwnProperty(c)){var p=c.indexOf("--")===0,y=D0(c,l[c],p);c==="float"&&(c="cssFloat"),p?a.setProperty(c,y):a[c]=y}}var Qj=Q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oh(a,l){if(l){if(Qj[a]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(r(137,a));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(r(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(r(61))}if(l.style!=null&&typeof l.style!="object")throw Error(r(62))}}function Ch(a,l){if(a.indexOf("-")===-1)return typeof l.is=="string";switch(a){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var _h=null;function jh(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var Nh=null,ro=null,no=null;function $0(a){if(a=is(a)){if(typeof Nh!="function")throw Error(r(280));var l=a.stateNode;l&&(l=oc(l),Nh(a.stateNode,a.type,l))}}function L0(a){ro?no?no.push(a):no=[a]:ro=a}function z0(){if(ro){var a=ro,l=no;if(no=ro=null,$0(a),l)for(a=0;a>>=0,a===0?32:31-(lN(a)/sN|0)|0}var Uu=64,Wu=4194304;function Fl(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return a}}function Hu(a,l){var c=a.pendingLanes;if(c===0)return 0;var p=0,y=a.suspendedLanes,b=a.pingedLanes,A=c&268435455;if(A!==0){var I=A&~y;I!==0?p=Fl(I):(b&=A,b!==0&&(p=Fl(b)))}else A=c&~y,A!==0?p=Fl(A):b!==0&&(p=Fl(b));if(p===0)return 0;if(l!==0&&l!==p&&(l&y)===0&&(y=p&-p,b=l&-l,y>=b||y===16&&(b&4194240)!==0))return l;if((p&4)!==0&&(p|=c&16),l=a.entangledLanes,l!==0)for(a=a.entanglements,l&=p;0c;c++)l.push(a);return l}function Bl(a,l,c){a.pendingLanes|=l,l!==536870912&&(a.suspendedLanes=0,a.pingedLanes=0),a=a.eventTimes,l=31-qr(l),a[l]=c}function fN(a,l){var c=a.pendingLanes&~l;a.pendingLanes=l,a.suspendedLanes=0,a.pingedLanes=0,a.expiredLanes&=l,a.mutableReadLanes&=l,a.entangledLanes&=l,l=a.entanglements;var p=a.eventTimes;for(a=a.expirationTimes;0=Yl),hx=" ",px=!1;function mx(a,l){switch(a){case"keyup":return FN.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vx(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var oo=!1;function UN(a,l){switch(a){case"compositionend":return vx(l);case"keypress":return l.which!==32?null:(px=!0,hx);case"textInput":return a=l.data,a===hx&&px?null:a;default:return null}}function WN(a,l){if(oo)return a==="compositionend"||!Yh&&mx(a,l)?(a=lx(),Yu=Wh=yi=null,oo=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:c,offset:l-a};a=p}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=kx(c)}}function Px(a,l){return a&&l?a===l?!0:a&&a.nodeType===3?!1:l&&l.nodeType===3?Px(a,l.parentNode):"contains"in a?a.contains(l):a.compareDocumentPosition?!!(a.compareDocumentPosition(l)&16):!1:!1}function Ax(){for(var a=window,l=lt();l instanceof a.HTMLIFrameElement;){try{var c=typeof l.contentWindow.location.href=="string"}catch{c=!1}if(c)a=l.contentWindow;else break;l=lt(a.document)}return l}function Zh(a){var l=a&&a.nodeName&&a.nodeName.toLowerCase();return l&&(l==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||l==="textarea"||a.contentEditable==="true")}function ZN(a){var l=Ax(),c=a.focusedElem,p=a.selectionRange;if(l!==c&&c&&c.ownerDocument&&Px(c.ownerDocument.documentElement,c)){if(p!==null&&Zh(c)){if(l=p.start,a=p.end,a===void 0&&(a=l),"selectionStart"in c)c.selectionStart=l,c.selectionEnd=Math.min(a,c.value.length);else if(a=(l=c.ownerDocument||document)&&l.defaultView||window,a.getSelection){a=a.getSelection();var y=c.textContent.length,b=Math.min(p.start,y);p=p.end===void 0?b:Math.min(p.end,y),!a.extend&&b>p&&(y=p,p=b,b=y),y=Ex(c,b);var A=Ex(c,p);y&&A&&(a.rangeCount!==1||a.anchorNode!==y.node||a.anchorOffset!==y.offset||a.focusNode!==A.node||a.focusOffset!==A.offset)&&(l=l.createRange(),l.setStart(y.node,y.offset),a.removeAllRanges(),b>p?(a.addRange(l),a.extend(A.node,A.offset)):(l.setEnd(A.node,A.offset),a.addRange(l)))}}for(l=[],a=c;a=a.parentNode;)a.nodeType===1&&l.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c=document.documentMode,lo=null,Jh=null,Jl=null,ep=!1;function Ox(a,l,c){var p=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;ep||lo==null||lo!==lt(p)||(p=lo,"selectionStart"in p&&Zh(p)?p={start:p.selectionStart,end:p.selectionEnd}:(p=(p.ownerDocument&&p.ownerDocument.defaultView||window).getSelection(),p={anchorNode:p.anchorNode,anchorOffset:p.anchorOffset,focusNode:p.focusNode,focusOffset:p.focusOffset}),Jl&&Zl(Jl,p)||(Jl=p,p=nc(Jh,"onSelect"),0ho||(a.current=fp[ho],fp[ho]=null,ho--)}function Ye(a,l){ho++,fp[ho]=a.current,a.current=l}var wi={},Kt=bi(wi),lr=bi(!1),aa=wi;function po(a,l){var c=a.type.contextTypes;if(!c)return wi;var p=a.stateNode;if(p&&p.__reactInternalMemoizedUnmaskedChildContext===l)return p.__reactInternalMemoizedMaskedChildContext;var y={},b;for(b in c)y[b]=l[b];return p&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=l,a.__reactInternalMemoizedMaskedChildContext=y),y}function sr(a){return a=a.childContextTypes,a!=null}function lc(){Je(lr),Je(Kt)}function Ux(a,l,c){if(Kt.current!==wi)throw Error(r(168));Ye(Kt,l),Ye(lr,c)}function Wx(a,l,c){var p=a.stateNode;if(l=l.childContextTypes,typeof p.getChildContext!="function")return c;p=p.getChildContext();for(var y in p)if(!(y in l))throw Error(r(108,ye(a)||"Unknown",y));return Q({},c,p)}function sc(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||wi,aa=Kt.current,Ye(Kt,a),Ye(lr,lr.current),!0}function Hx(a,l,c){var p=a.stateNode;if(!p)throw Error(r(169));c?(a=Wx(a,l,aa),p.__reactInternalMemoizedMergedChildContext=a,Je(lr),Je(Kt),Ye(Kt,a)):Je(lr),Ye(lr,c)}var Rn=null,uc=!1,hp=!1;function Kx(a){Rn===null?Rn=[a]:Rn.push(a)}function cI(a){uc=!0,Kx(a)}function Si(){if(!hp&&Rn!==null){hp=!0;var a=0,l=qe;try{var c=Rn;for(qe=1;a>=A,y-=A,$n=1<<32-qr(l)+y|c<Ne?(Ct=Oe,Oe=null):Ct=Oe.sibling;var He=ee(U,Oe,W[Ne],oe);if(He===null){Oe===null&&(Oe=Ct);break}a&&Oe&&He.alternate===null&&l(U,Oe),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He,Oe=Ct}if(Ne===W.length)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;NeNe?(Ct=Oe,Oe=null):Ct=Oe.sibling;var Ni=ee(U,Oe,He.value,oe);if(Ni===null){Oe===null&&(Oe=Ct);break}a&&Oe&&Ni.alternate===null&&l(U,Oe),L=b(Ni,L,Ne),Ae===null?Se=Ni:Ae.sibling=Ni,Ae=Ni,Oe=Ct}if(He.done)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;!He.done;Ne++,He=W.next())He=ae(U,He.value,oe),He!==null&&(L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return nt&&la(U,Ne),Se}for(Oe=p(U,Oe);!He.done;Ne++,He=W.next())He=he(Oe,U,Ne,He.value,oe),He!==null&&(a&&He.alternate!==null&&Oe.delete(He.key===null?Ne:He.key),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return a&&Oe.forEach(function(HI){return l(U,HI)}),nt&&la(U,Ne),Se}function mt(U,L,W,oe){if(typeof W=="object"&&W!==null&&W.type===D&&W.key===null&&(W=W.props.children),typeof W=="object"&&W!==null){switch(W.$$typeof){case N:e:{for(var Se=W.key,Ae=L;Ae!==null;){if(Ae.key===Se){if(Se=W.type,Se===D){if(Ae.tag===7){c(U,Ae.sibling),L=y(Ae,W.props.children),L.return=U,U=L;break e}}else if(Ae.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===fe&&Xx(Se)===Ae.type){c(U,Ae.sibling),L=y(Ae,W.props),L.ref=as(U,Ae,W),L.return=U,U=L;break e}c(U,Ae);break}else l(U,Ae);Ae=Ae.sibling}W.type===D?(L=ma(W.props.children,U.mode,oe,W.key),L.return=U,U=L):(oe=$c(W.type,W.key,W.props,null,U.mode,oe),oe.ref=as(U,L,W),oe.return=U,U=oe)}return A(U);case C:e:{for(Ae=W.key;L!==null;){if(L.key===Ae)if(L.tag===4&&L.stateNode.containerInfo===W.containerInfo&&L.stateNode.implementation===W.implementation){c(U,L.sibling),L=y(L,W.children||[]),L.return=U,U=L;break e}else{c(U,L);break}else l(U,L);L=L.sibling}L=cm(W,U.mode,oe),L.return=U,U=L}return A(U);case fe:return Ae=W._init,mt(U,L,Ae(W._payload),oe)}if(Ie(W))return ge(U,L,W,oe);if(ie(W))return xe(U,L,W,oe);hc(U,W)}return typeof W=="string"&&W!==""||typeof W=="number"?(W=""+W,L!==null&&L.tag===6?(c(U,L.sibling),L=y(L,W),L.return=U,U=L):(c(U,L),L=um(W,U.mode,oe),L.return=U,U=L),A(U)):c(U,L)}return mt}var go=Zx(!0),Jx=Zx(!1),pc=bi(null),mc=null,xo=null,xp=null;function bp(){xp=xo=mc=null}function wp(a){var l=pc.current;Je(pc),a._currentValue=l}function Sp(a,l,c){for(;a!==null;){var p=a.alternate;if((a.childLanes&l)!==l?(a.childLanes|=l,p!==null&&(p.childLanes|=l)):p!==null&&(p.childLanes&l)!==l&&(p.childLanes|=l),a===c)break;a=a.return}}function bo(a,l){mc=a,xp=xo=null,a=a.dependencies,a!==null&&a.firstContext!==null&&((a.lanes&l)!==0&&(ur=!0),a.firstContext=null)}function Ir(a){var l=a._currentValue;if(xp!==a)if(a={context:a,memoizedValue:l,next:null},xo===null){if(mc===null)throw Error(r(308));xo=a,mc.dependencies={lanes:0,firstContext:a}}else xo=xo.next=a;return l}var sa=null;function kp(a){sa===null?sa=[a]:sa.push(a)}function eb(a,l,c,p){var y=l.interleaved;return y===null?(c.next=c,kp(l)):(c.next=y.next,y.next=c),l.interleaved=c,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 Ep(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function tb(a,l){a=a.updateQueue,l.updateQueue===a&&(l.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function 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 y=p.pending;return y===null?l.next=l:(l.next=y.next,y.next=l),p.pending=l,zn(a,c)}return y=p.interleaved,y===null?(l.next=l,kp(p)):(l.next=y.next,y.next=l),p.interleaved=l,zn(a,c)}function vc(a,l,c){if(l=l.updateQueue,l!==null&&(l=l.shared,(c&4194240)!==0)){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}function rb(a,l){var c=a.updateQueue,p=a.alternate;if(p!==null&&(p=p.updateQueue,c===p)){var y=null,b=null;if(c=c.firstBaseUpdate,c!==null){do{var A={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};b===null?y=b=A:b=b.next=A,c=c.next}while(c!==null);b===null?y=b=l:b=b.next=l}else y=b=l;c={baseState:p.baseState,firstBaseUpdate:y,lastBaseUpdate:b,shared:p.shared,effects:p.effects},a.updateQueue=c;return}a=c.lastBaseUpdate,a===null?c.firstBaseUpdate=l:a.next=l,c.lastBaseUpdate=l}function yc(a,l,c,p){var y=a.updateQueue;ki=!1;var b=y.firstBaseUpdate,A=y.lastBaseUpdate,I=y.shared.pending;if(I!==null){y.shared.pending=null;var T=I,V=T.next;T.next=null,A===null?b=V:A.next=V,A=T;var re=a.alternate;re!==null&&(re=re.updateQueue,I=re.lastBaseUpdate,I!==A&&(I===null?re.firstBaseUpdate=V:I.next=V,re.lastBaseUpdate=T))}if(b!==null){var ae=y.baseState;A=0,re=V=T=null,I=b;do{var ee=I.lane,he=I.eventTime;if((p&ee)===ee){re!==null&&(re=re.next={eventTime:he,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var ge=a,xe=I;switch(ee=l,he=c,xe.tag){case 1:if(ge=xe.payload,typeof ge=="function"){ae=ge.call(he,ae,ee);break e}ae=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=xe.payload,ee=typeof ge=="function"?ge.call(he,ae,ee):ge,ee==null)break e;ae=Q({},ae,ee);break e;case 2:ki=!0}}I.callback!==null&&I.lane!==0&&(a.flags|=64,ee=y.effects,ee===null?y.effects=[I]:ee.push(I))}else he={eventTime:he,lane:ee,tag:I.tag,payload:I.payload,callback:I.callback,next:null},re===null?(V=re=he,T=ae):re=re.next=he,A|=ee;if(I=I.next,I===null){if(I=y.shared.pending,I===null)break;ee=I,I=ee.next,ee.next=null,y.lastBaseUpdate=ee,y.shared.pending=null}}while(!0);if(re===null&&(T=ae),y.baseState=T,y.firstBaseUpdate=V,y.lastBaseUpdate=re,l=y.shared.interleaved,l!==null){y=l;do A|=y.lane,y=y.next;while(y!==l)}else b===null&&(y.shared.lanes=0);da|=A,a.lanes=A,a.memoizedState=ae}}function nb(a,l,c){if(a=l.effects,l.effects=null,a!==null)for(l=0;lc?c:4,a(!0);var p=_p.transition;_p.transition={};try{a(!1),l()}finally{qe=c,_p.transition=p}}function Sb(){return Mr().memoizedState}function pI(a,l,c){var p=Ci(a);if(c={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null},kb(a))Eb(l,c);else if(c=eb(a,l,c,p),c!==null){var y=er();Jr(c,a,p,y),Pb(c,l,p)}}function mI(a,l,c){var p=Ci(a),y={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null};if(kb(a))Eb(l,y);else{var b=a.alternate;if(a.lanes===0&&(b===null||b.lanes===0)&&(b=l.lastRenderedReducer,b!==null))try{var A=l.lastRenderedState,I=b(A,c);if(y.hasEagerState=!0,y.eagerState=I,Gr(I,A)){var T=l.interleaved;T===null?(y.next=y,kp(l)):(y.next=T.next,T.next=y),l.interleaved=y;return}}catch{}finally{}c=eb(a,l,y,p),c!==null&&(y=er(),Jr(c,a,p,y),Pb(c,l,p))}}function kb(a){var l=a.alternate;return a===ut||l!==null&&l===ut}function Eb(a,l){us=bc=!0;var c=a.pending;c===null?l.next=l:(l.next=c.next,c.next=l),a.pending=l}function Pb(a,l,c){if((c&4194240)!==0){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}var kc={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,wc(4194308,4,yb.bind(null,l,a),c)},useLayoutEffect:function(a,l){return wc(4194308,4,a,l)},useInsertionEffect:function(a,l){return wc(4,2,a,l)},useMemo:function(a,l){var c=hn();return l=l===void 0?null:l,a=a(),c.memoizedState=[a,l],a},useReducer:function(a,l,c){var p=hn();return l=c!==void 0?c(l):l,p.memoizedState=p.baseState=l,a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:l},p.queue=a,a=a.dispatch=pI.bind(null,ut,a),[p.memoizedState,a]},useRef:function(a){var l=hn();return a={current:a},l.memoizedState=a},useState:fb,useDebugValue:Rp,useDeferredValue:function(a){return hn().memoizedState=a},useTransition:function(){var a=fb(!1),l=a[0];return a=hI.bind(null,a[1]),hn().memoizedState=a,[l,a]},useMutableSource:function(){},useSyncExternalStore:function(a,l,c){var p=ut,y=hn();if(nt){if(c===void 0)throw Error(r(407));c=c()}else{if(c=l(),Ot===null)throw Error(r(349));(ca&30)!==0||lb(p,l,c)}y.memoizedState=c;var b={value:c,getSnapshot:l};return y.queue=b,pb(ub.bind(null,p,b,a),[a]),p.flags|=2048,fs(9,sb.bind(null,p,b,c,l),void 0,null),c},useId:function(){var a=hn(),l=Ot.identifierPrefix;if(nt){var c=Ln,p=$n;c=(p&~(1<<32-qr(p)-1)).toString(32)+c,l=":"+l+"R"+c,c=cs++,0")&&(T=T.replace("",a.displayName)),T}while(1<=A&&0<=I);break}}}finally{J=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?M(a):""}function te(a){switch(a.tag){case 5:return M(a.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return a=se(a.type,!1),a;case 11:return a=se(a.type.render,!1),a;case 1:return a=se(a.type,!0),a;default:return""}}function ce(a){if(a==null)return null;if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case D:return"Fragment";case C:return"Portal";case z:return"Profiler";case F:return"StrictMode";case ue:return"Suspense";case Y:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case X:return(a.displayName||"Context")+".Consumer";case q:return(a._context.displayName||"Context")+".Provider";case B:var l=a.render;return a=a.displayName,a||(a=l.displayName||l.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case le:return l=a.displayName||null,l!==null?l:ce(a.type)||"Memo";case fe:l=a._payload,a=a._init;try{return ce(a(l))}catch{}}return null}function ye(a){var l=a.type;switch(a.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=l.render,a=a.displayName||a.name||"",l.displayName||(a!==""?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ce(l);case 8:return l===F?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function _e(a){switch(typeof a){case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function Z(a){var l=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function we(a){var l=Z(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,l),p=""+a[l];if(!a.hasOwnProperty(l)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var y=c.get,b=c.set;return Object.defineProperty(a,l,{configurable:!0,get:function(){return y.call(this)},set:function(A){p=""+A,b.call(this,A)}}),Object.defineProperty(a,l,{enumerable:c.enumerable}),{getValue:function(){return p},setValue:function(A){p=""+A},stopTracking:function(){a._valueTracker=null,delete a[l]}}}}function Pe(a){a._valueTracker||(a._valueTracker=we(a))}function ne(a){if(!a)return!1;var l=a._valueTracker;if(!l)return!0;var c=l.getValue(),p="";return a&&(p=Z(a)?a.checked?"true":"false":a.value),a=p,a!==c?(l.setValue(a),!0):!1}function lt(a){if(a=a||(typeof document<"u"?document:void 0),typeof a>"u")return null;try{return a.activeElement||a.body}catch{return a.body}}function Re(a,l){var c=l.checked;return Q({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??a._wrapperState.initialChecked})}function Ee(a,l){var c=l.defaultValue==null?"":l.defaultValue,p=l.checked!=null?l.checked:l.defaultChecked;c=_e(l.value!=null?l.value:c),a._wrapperState={initialChecked:p,initialValue:c,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function vt(a,l){l=l.checked,l!=null&&j(a,"checked",l,!1)}function or(a,l){vt(a,l);var c=_e(l.value),p=l.type;if(c!=null)p==="number"?(c===0&&a.value===""||a.value!=c)&&(a.value=""+c):a.value!==""+c&&(a.value=""+c);else if(p==="submit"||p==="reset"){a.removeAttribute("value");return}l.hasOwnProperty("value")?G(a,l.type,c):l.hasOwnProperty("defaultValue")&&G(a,l.type,_e(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(a.defaultChecked=!!l.defaultChecked)}function fi(a,l,c){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var p=l.type;if(!(p!=="submit"&&p!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+a._wrapperState.initialValue,c||l===a.value||(a.value=l),a.defaultValue=l}c=a.name,c!==""&&(a.name=""),a.defaultChecked=!!a._wrapperState.initialChecked,c!==""&&(a.name=c)}function G(a,l,c){(l!=="number"||lt(a.ownerDocument)!==a)&&(c==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c))}var Ie=Array.isArray;function Xe(a,l,c,p){if(a=a.options,l){l={};for(var y=0;y"+l.valueOf().toString()+"",l=$u.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}});function Tl(a,l){if(l){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=l;return}}a.textContent=l}var Dl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Yj=["Webkit","ms","Moz","O"];Object.keys(Dl).forEach(function(a){Yj.forEach(function(l){l=l+a.charAt(0).toUpperCase()+a.substring(1),Dl[l]=Dl[a]})});function D0(a,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Dl.hasOwnProperty(a)&&Dl[a]?(""+l).trim():l+"px"}function R0(a,l){a=a.style;for(var c in l)if(l.hasOwnProperty(c)){var p=c.indexOf("--")===0,y=D0(c,l[c],p);c==="float"&&(c="cssFloat"),p?a.setProperty(c,y):a[c]=y}}var Qj=Q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oh(a,l){if(l){if(Qj[a]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(r(137,a));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(r(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(r(61))}if(l.style!=null&&typeof l.style!="object")throw Error(r(62))}}function Ch(a,l){if(a.indexOf("-")===-1)return typeof l.is=="string";switch(a){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var _h=null;function jh(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var Nh=null,to=null,ro=null;function $0(a){if(a=ns(a)){if(typeof Nh!="function")throw Error(r(280));var l=a.stateNode;l&&(l=oc(l),Nh(a.stateNode,a.type,l))}}function L0(a){to?ro?ro.push(a):ro=[a]:to=a}function z0(){if(to){var a=to,l=ro;if(ro=to=null,$0(a),l)for(a=0;a>>=0,a===0?32:31-(lN(a)/sN|0)|0}var Uu=64,Wu=4194304;function zl(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 Hu(a,l){var c=a.pendingLanes;if(c===0)return 0;var p=0,y=a.suspendedLanes,b=a.pingedLanes,A=c&268435455;if(A!==0){var I=A&~y;I!==0?p=zl(I):(b&=A,b!==0&&(p=zl(b)))}else A=c&~y,A!==0?p=zl(A):b!==0&&(p=zl(b));if(p===0)return 0;if(l!==0&&l!==p&&(l&y)===0&&(y=p&-p,b=l&-l,y>=b||y===16&&(b&4194240)!==0))return l;if((p&4)!==0&&(p|=c&16),l=a.entangledLanes,l!==0)for(a=a.entanglements,l&=p;0c;c++)l.push(a);return l}function Fl(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=Gl),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 ao=!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(ao)return a==="compositionend"||!Yh&&mx(a,l)?(a=lx(),Yu=Wh=yi=null,ao=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:c,offset:l-a};a=p}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=kx(c)}}function Px(a,l){return a&&l?a===l?!0:a&&a.nodeType===3?!1:l&&l.nodeType===3?Px(a,l.parentNode):"contains"in a?a.contains(l):a.compareDocumentPosition?!!(a.compareDocumentPosition(l)&16):!1:!1}function Ax(){for(var a=window,l=lt();l instanceof a.HTMLIFrameElement;){try{var c=typeof l.contentWindow.location.href=="string"}catch{c=!1}if(c)a=l.contentWindow;else break;l=lt(a.document)}return l}function Zh(a){var l=a&&a.nodeName&&a.nodeName.toLowerCase();return l&&(l==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||l==="textarea"||a.contentEditable==="true")}function ZN(a){var l=Ax(),c=a.focusedElem,p=a.selectionRange;if(l!==c&&c&&c.ownerDocument&&Px(c.ownerDocument.documentElement,c)){if(p!==null&&Zh(c)){if(l=p.start,a=p.end,a===void 0&&(a=l),"selectionStart"in c)c.selectionStart=l,c.selectionEnd=Math.min(a,c.value.length);else if(a=(l=c.ownerDocument||document)&&l.defaultView||window,a.getSelection){a=a.getSelection();var y=c.textContent.length,b=Math.min(p.start,y);p=p.end===void 0?b:Math.min(p.end,y),!a.extend&&b>p&&(y=p,p=b,b=y),y=Ex(c,b);var A=Ex(c,p);y&&A&&(a.rangeCount!==1||a.anchorNode!==y.node||a.anchorOffset!==y.offset||a.focusNode!==A.node||a.focusOffset!==A.offset)&&(l=l.createRange(),l.setStart(y.node,y.offset),a.removeAllRanges(),b>p?(a.addRange(l),a.extend(A.node,A.offset)):(l.setEnd(A.node,A.offset),a.addRange(l)))}}for(l=[],a=c;a=a.parentNode;)a.nodeType===1&&l.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c=document.documentMode,oo=null,Jh=null,Zl=null,ep=!1;function Ox(a,l,c){var p=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;ep||oo==null||oo!==lt(p)||(p=oo,"selectionStart"in p&&Zh(p)?p={start:p.selectionStart,end:p.selectionEnd}:(p=(p.ownerDocument&&p.ownerDocument.defaultView||window).getSelection(),p={anchorNode:p.anchorNode,anchorOffset:p.anchorOffset,focusNode:p.focusNode,focusOffset:p.focusOffset}),Zl&&Xl(Zl,p)||(Zl=p,p=nc(Jh,"onSelect"),0fo||(a.current=fp[fo],fp[fo]=null,fo--)}function Ye(a,l){fo++,fp[fo]=a.current,a.current=l}var wi={},Kt=bi(wi),lr=bi(!1),aa=wi;function ho(a,l){var c=a.type.contextTypes;if(!c)return wi;var p=a.stateNode;if(p&&p.__reactInternalMemoizedUnmaskedChildContext===l)return p.__reactInternalMemoizedMaskedChildContext;var y={},b;for(b in c)y[b]=l[b];return p&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=l,a.__reactInternalMemoizedMaskedChildContext=y),y}function sr(a){return a=a.childContextTypes,a!=null}function lc(){Je(lr),Je(Kt)}function Ux(a,l,c){if(Kt.current!==wi)throw Error(r(168));Ye(Kt,l),Ye(lr,c)}function Wx(a,l,c){var p=a.stateNode;if(l=l.childContextTypes,typeof p.getChildContext!="function")return c;p=p.getChildContext();for(var y in p)if(!(y in l))throw Error(r(108,ye(a)||"Unknown",y));return Q({},c,p)}function sc(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||wi,aa=Kt.current,Ye(Kt,a),Ye(lr,lr.current),!0}function Hx(a,l,c){var p=a.stateNode;if(!p)throw Error(r(169));c?(a=Wx(a,l,aa),p.__reactInternalMemoizedMergedChildContext=a,Je(lr),Je(Kt),Ye(Kt,a)):Je(lr),Ye(lr,c)}var Rn=null,uc=!1,hp=!1;function Kx(a){Rn===null?Rn=[a]:Rn.push(a)}function cI(a){uc=!0,Kx(a)}function Si(){if(!hp&&Rn!==null){hp=!0;var a=0,l=qe;try{var c=Rn;for(qe=1;a>=A,y-=A,$n=1<<32-qr(l)+y|c<Ne?(Ct=Oe,Oe=null):Ct=Oe.sibling;var He=ee(U,Oe,W[Ne],oe);if(He===null){Oe===null&&(Oe=Ct);break}a&&Oe&&He.alternate===null&&l(U,Oe),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He,Oe=Ct}if(Ne===W.length)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;NeNe?(Ct=Oe,Oe=null):Ct=Oe.sibling;var Ni=ee(U,Oe,He.value,oe);if(Ni===null){Oe===null&&(Oe=Ct);break}a&&Oe&&Ni.alternate===null&&l(U,Oe),L=b(Ni,L,Ne),Ae===null?Se=Ni:Ae.sibling=Ni,Ae=Ni,Oe=Ct}if(He.done)return c(U,Oe),nt&&la(U,Ne),Se;if(Oe===null){for(;!He.done;Ne++,He=W.next())He=ae(U,He.value,oe),He!==null&&(L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return nt&&la(U,Ne),Se}for(Oe=p(U,Oe);!He.done;Ne++,He=W.next())He=he(Oe,U,Ne,He.value,oe),He!==null&&(a&&He.alternate!==null&&Oe.delete(He.key===null?Ne:He.key),L=b(He,L,Ne),Ae===null?Se=He:Ae.sibling=He,Ae=He);return a&&Oe.forEach(function(HI){return l(U,HI)}),nt&&la(U,Ne),Se}function mt(U,L,W,oe){if(typeof W=="object"&&W!==null&&W.type===D&&W.key===null&&(W=W.props.children),typeof W=="object"&&W!==null){switch(W.$$typeof){case N:e:{for(var Se=W.key,Ae=L;Ae!==null;){if(Ae.key===Se){if(Se=W.type,Se===D){if(Ae.tag===7){c(U,Ae.sibling),L=y(Ae,W.props.children),L.return=U,U=L;break e}}else if(Ae.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===fe&&Xx(Se)===Ae.type){c(U,Ae.sibling),L=y(Ae,W.props),L.ref=is(U,Ae,W),L.return=U,U=L;break e}c(U,Ae);break}else l(U,Ae);Ae=Ae.sibling}W.type===D?(L=ma(W.props.children,U.mode,oe,W.key),L.return=U,U=L):(oe=$c(W.type,W.key,W.props,null,U.mode,oe),oe.ref=is(U,L,W),oe.return=U,U=oe)}return A(U);case C:e:{for(Ae=W.key;L!==null;){if(L.key===Ae)if(L.tag===4&&L.stateNode.containerInfo===W.containerInfo&&L.stateNode.implementation===W.implementation){c(U,L.sibling),L=y(L,W.children||[]),L.return=U,U=L;break e}else{c(U,L);break}else l(U,L);L=L.sibling}L=cm(W,U.mode,oe),L.return=U,U=L}return A(U);case fe:return Ae=W._init,mt(U,L,Ae(W._payload),oe)}if(Ie(W))return ge(U,L,W,oe);if(ie(W))return xe(U,L,W,oe);hc(U,W)}return typeof W=="string"&&W!==""||typeof W=="number"?(W=""+W,L!==null&&L.tag===6?(c(U,L.sibling),L=y(L,W),L.return=U,U=L):(c(U,L),L=um(W,U.mode,oe),L.return=U,U=L),A(U)):c(U,L)}return mt}var yo=Zx(!0),Jx=Zx(!1),pc=bi(null),mc=null,go=null,xp=null;function bp(){xp=go=mc=null}function wp(a){var l=pc.current;Je(pc),a._currentValue=l}function Sp(a,l,c){for(;a!==null;){var p=a.alternate;if((a.childLanes&l)!==l?(a.childLanes|=l,p!==null&&(p.childLanes|=l)):p!==null&&(p.childLanes&l)!==l&&(p.childLanes|=l),a===c)break;a=a.return}}function xo(a,l){mc=a,xp=go=null,a=a.dependencies,a!==null&&a.firstContext!==null&&((a.lanes&l)!==0&&(ur=!0),a.firstContext=null)}function Ir(a){var l=a._currentValue;if(xp!==a)if(a={context:a,memoizedValue:l,next:null},go===null){if(mc===null)throw Error(r(308));go=a,mc.dependencies={lanes:0,firstContext:a}}else go=go.next=a;return l}var sa=null;function kp(a){sa===null?sa=[a]:sa.push(a)}function eb(a,l,c,p){var y=l.interleaved;return y===null?(c.next=c,kp(l)):(c.next=y.next,y.next=c),l.interleaved=c,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 Ep(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function tb(a,l){a=a.updateQueue,l.updateQueue===a&&(l.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function 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 y=p.pending;return y===null?l.next=l:(l.next=y.next,y.next=l),p.pending=l,zn(a,c)}return y=p.interleaved,y===null?(l.next=l,kp(p)):(l.next=y.next,y.next=l),p.interleaved=l,zn(a,c)}function vc(a,l,c){if(l=l.updateQueue,l!==null&&(l=l.shared,(c&4194240)!==0)){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}function rb(a,l){var c=a.updateQueue,p=a.alternate;if(p!==null&&(p=p.updateQueue,c===p)){var y=null,b=null;if(c=c.firstBaseUpdate,c!==null){do{var A={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};b===null?y=b=A:b=b.next=A,c=c.next}while(c!==null);b===null?y=b=l:b=b.next=l}else y=b=l;c={baseState:p.baseState,firstBaseUpdate:y,lastBaseUpdate:b,shared:p.shared,effects:p.effects},a.updateQueue=c;return}a=c.lastBaseUpdate,a===null?c.firstBaseUpdate=l:a.next=l,c.lastBaseUpdate=l}function yc(a,l,c,p){var y=a.updateQueue;ki=!1;var b=y.firstBaseUpdate,A=y.lastBaseUpdate,I=y.shared.pending;if(I!==null){y.shared.pending=null;var T=I,V=T.next;T.next=null,A===null?b=V:A.next=V,A=T;var re=a.alternate;re!==null&&(re=re.updateQueue,I=re.lastBaseUpdate,I!==A&&(I===null?re.firstBaseUpdate=V:I.next=V,re.lastBaseUpdate=T))}if(b!==null){var ae=y.baseState;A=0,re=V=T=null,I=b;do{var ee=I.lane,he=I.eventTime;if((p&ee)===ee){re!==null&&(re=re.next={eventTime:he,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var ge=a,xe=I;switch(ee=l,he=c,xe.tag){case 1:if(ge=xe.payload,typeof ge=="function"){ae=ge.call(he,ae,ee);break e}ae=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=xe.payload,ee=typeof ge=="function"?ge.call(he,ae,ee):ge,ee==null)break e;ae=Q({},ae,ee);break e;case 2:ki=!0}}I.callback!==null&&I.lane!==0&&(a.flags|=64,ee=y.effects,ee===null?y.effects=[I]:ee.push(I))}else he={eventTime:he,lane:ee,tag:I.tag,payload:I.payload,callback:I.callback,next:null},re===null?(V=re=he,T=ae):re=re.next=he,A|=ee;if(I=I.next,I===null){if(I=y.shared.pending,I===null)break;ee=I,I=ee.next,ee.next=null,y.lastBaseUpdate=ee,y.shared.pending=null}}while(!0);if(re===null&&(T=ae),y.baseState=T,y.firstBaseUpdate=V,y.lastBaseUpdate=re,l=y.shared.interleaved,l!==null){y=l;do A|=y.lane,y=y.next;while(y!==l)}else b===null&&(y.shared.lanes=0);da|=A,a.lanes=A,a.memoizedState=ae}}function nb(a,l,c){if(a=l.effects,l.effects=null,a!==null)for(l=0;lc?c:4,a(!0);var p=_p.transition;_p.transition={};try{a(!1),l()}finally{qe=c,_p.transition=p}}function Sb(){return Mr().memoizedState}function pI(a,l,c){var p=Ci(a);if(c={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null},kb(a))Eb(l,c);else if(c=eb(a,l,c,p),c!==null){var y=er();Jr(c,a,p,y),Pb(c,l,p)}}function mI(a,l,c){var p=Ci(a),y={lane:p,action:c,hasEagerState:!1,eagerState:null,next:null};if(kb(a))Eb(l,y);else{var b=a.alternate;if(a.lanes===0&&(b===null||b.lanes===0)&&(b=l.lastRenderedReducer,b!==null))try{var A=l.lastRenderedState,I=b(A,c);if(y.hasEagerState=!0,y.eagerState=I,Gr(I,A)){var T=l.interleaved;T===null?(y.next=y,kp(l)):(y.next=T.next,T.next=y),l.interleaved=y;return}}catch{}finally{}c=eb(a,l,y,p),c!==null&&(y=er(),Jr(c,a,p,y),Pb(c,l,p))}}function kb(a){var l=a.alternate;return a===ut||l!==null&&l===ut}function Eb(a,l){ss=bc=!0;var c=a.pending;c===null?l.next=l:(l.next=c.next,c.next=l),a.pending=l}function Pb(a,l,c){if((c&4194240)!==0){var p=l.lanes;p&=a.pendingLanes,c|=p,l.lanes=c,Lh(a,c)}}var kc={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,wc(4194308,4,yb.bind(null,l,a),c)},useLayoutEffect:function(a,l){return wc(4194308,4,a,l)},useInsertionEffect:function(a,l){return wc(4,2,a,l)},useMemo:function(a,l){var c=hn();return l=l===void 0?null:l,a=a(),c.memoizedState=[a,l],a},useReducer:function(a,l,c){var p=hn();return l=c!==void 0?c(l):l,p.memoizedState=p.baseState=l,a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:l},p.queue=a,a=a.dispatch=pI.bind(null,ut,a),[p.memoizedState,a]},useRef:function(a){var l=hn();return a={current:a},l.memoizedState=a},useState:fb,useDebugValue:Rp,useDeferredValue:function(a){return hn().memoizedState=a},useTransition:function(){var a=fb(!1),l=a[0];return a=hI.bind(null,a[1]),hn().memoizedState=a,[l,a]},useMutableSource:function(){},useSyncExternalStore:function(a,l,c){var p=ut,y=hn();if(nt){if(c===void 0)throw Error(r(407));c=c()}else{if(c=l(),Ot===null)throw Error(r(349));(ca&30)!==0||lb(p,l,c)}y.memoizedState=c;var b={value:c,getSnapshot:l};return y.queue=b,pb(ub.bind(null,p,b,a),[a]),p.flags|=2048,ds(9,sb.bind(null,p,b,c,l),void 0,null),c},useId:function(){var a=hn(),l=Ot.identifierPrefix;if(nt){var c=Ln,p=$n;c=(p&~(1<<32-qr(p)-1)).toString(32)+c,l=":"+l+"R"+c,c=us++,0<\/script>",a=a.removeChild(a.firstChild)):typeof p.is=="string"?a=A.createElement(c,{is:p.is}):(a=A.createElement(c),c==="select"&&(A=a,p.multiple?A.multiple=!0:p.size&&(A.size=p.size))):a=A.createElementNS(a,c),a[dn]=l,a[ns]=p,Kb(a,l,!1,!1),l.stateNode=a;e:{switch(A=Ch(c,p),c){case"dialog":Ze("cancel",a),Ze("close",a),y=p;break;case"iframe":case"object":case"embed":Ze("load",a),y=p;break;case"video":case"audio":for(y=0;yPo&&(l.flags|=128,p=!0,hs(b,!1),l.lanes=4194304)}else{if(!p)if(a=gc(A),a!==null){if(l.flags|=128,p=!0,c=a.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),hs(b,!0),b.tail===null&&b.tailMode==="hidden"&&!A.alternate&&!nt)return qt(l),null}else 2*pt()-b.renderingStartTime>Po&&c!==1073741824&&(l.flags|=128,p=!0,hs(b,!1),l.lanes=4194304);b.isBackwards?(A.sibling=l.child,l.child=A):(c=b.last,c!==null?c.sibling=A:l.child=A,b.last=A)}return b.tail!==null?(l=b.tail,b.rendering=l,b.tail=l.sibling,b.renderingStartTime=pt(),l.sibling=null,c=st.current,Ye(st,p?c&1|2:c&1),l):(qt(l),null);case 22:case 23:return om(),p=l.memoizedState!==null,a!==null&&a.memoizedState!==null!==p&&(l.flags|=8192),p&&(l.mode&1)!==0?(Sr&1073741824)!==0&&(qt(l),l.subtreeFlags&6&&(l.flags|=8192)):qt(l),null;case 24:return null;case 25:return null}throw Error(r(156,l.tag))}function EI(a,l){switch(mp(l),l.tag){case 1:return sr(l.type)&&lc(),a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 3:return wo(),Je(lr),Je(Kt),Cp(),a=l.flags,(a&65536)!==0&&(a&128)===0?(l.flags=a&-65537|128,l):null;case 5:return Ap(l),null;case 13:if(Je(st),a=l.memoizedState,a!==null&&a.dehydrated!==null){if(l.alternate===null)throw Error(r(340));yo()}return a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 19:return Je(st),null;case 4:return wo(),null;case 10:return wp(l.type._context),null;case 22:case 23:return om(),null;case 24:return null;default:return null}}var Oc=!1,Gt=!1,PI=typeof WeakSet=="function"?WeakSet:Set,me=null;function ko(a,l){var c=a.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(p){ct(a,l,p)}else c.current=null}function Gp(a,l,c){try{c()}catch(p){ct(a,l,p)}}var Gb=!1;function AI(a,l){if(op=qu,a=Ax(),Zh(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else e:{c=(c=a.ownerDocument)&&c.defaultView||window;var p=c.getSelection&&c.getSelection();if(p&&p.rangeCount!==0){c=p.anchorNode;var y=p.anchorOffset,b=p.focusNode;p=p.focusOffset;try{c.nodeType,b.nodeType}catch{c=null;break e}var A=0,I=-1,T=-1,V=0,re=0,ae=a,ee=null;t:for(;;){for(var he;ae!==c||y!==0&&ae.nodeType!==3||(I=A+y),ae!==b||p!==0&&ae.nodeType!==3||(T=A+p),ae.nodeType===3&&(A+=ae.nodeValue.length),(he=ae.firstChild)!==null;)ee=ae,ae=he;for(;;){if(ae===a)break t;if(ee===c&&++V===y&&(I=A),ee===b&&++re===p&&(T=A),(he=ae.nextSibling)!==null)break;ae=ee,ee=ae.parentNode}ae=he}c=I===-1||T===-1?null:{start:I,end:T}}else c=null}c=c||{start:0,end:0}}else c=null;for(lp={focusedElem:a,selectionRange:c},qu=!1,me=l;me!==null;)if(l=me,a=l.child,(l.subtreeFlags&1028)!==0&&a!==null)a.return=l,me=a;else for(;me!==null;){l=me;try{var ge=l.alternate;if((l.flags&1024)!==0)switch(l.tag){case 0:case 11:case 15:break;case 1:if(ge!==null){var xe=ge.memoizedProps,mt=ge.memoizedState,U=l.stateNode,L=U.getSnapshotBeforeUpdate(l.elementType===l.type?xe:Qr(l.type,xe),mt);U.__reactInternalSnapshotBeforeUpdate=L}break;case 3:var W=l.stateNode.containerInfo;W.nodeType===1?W.textContent="":W.nodeType===9&&W.documentElement&&W.removeChild(W.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(oe){ct(l,l.return,oe)}if(a=l.sibling,a!==null){a.return=l.return,me=a;break}me=l.return}return ge=Gb,Gb=!1,ge}function ps(a,l,c){var p=l.updateQueue;if(p=p!==null?p.lastEffect:null,p!==null){var y=p=p.next;do{if((y.tag&a)===a){var b=y.destroy;y.destroy=void 0,b!==void 0&&Gp(l,c,b)}y=y.next}while(y!==p)}}function Cc(a,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&a)===a){var p=c.create;c.destroy=p()}c=c.next}while(c!==l)}}function Yp(a){var l=a.ref;if(l!==null){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}typeof l=="function"?l(a):l.current=a}}function Yb(a){var l=a.alternate;l!==null&&(a.alternate=null,Yb(l)),a.child=null,a.deletions=null,a.sibling=null,a.tag===5&&(l=a.stateNode,l!==null&&(delete l[dn],delete l[ns],delete l[dp],delete l[sI],delete l[uI])),a.stateNode=null,a.return=null,a.dependencies=null,a.memoizedProps=null,a.memoizedState=null,a.pendingProps=null,a.stateNode=null,a.updateQueue=null}function Qb(a){return a.tag===5||a.tag===3||a.tag===4}function Xb(a){e:for(;;){for(;a.sibling===null;){if(a.return===null||Qb(a.return))return null;a=a.return}for(a.sibling.return=a.return,a=a.sibling;a.tag!==5&&a.tag!==6&&a.tag!==18;){if(a.flags&2||a.child===null||a.tag===4)continue e;a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}function Qp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.nodeType===8?c.parentNode.insertBefore(a,l):c.insertBefore(a,l):(c.nodeType===8?(l=c.parentNode,l.insertBefore(a,c)):(l=c,l.appendChild(a)),c=c._reactRootContainer,c!=null||l.onclick!==null||(l.onclick=ac));else if(p!==4&&(a=a.child,a!==null))for(Qp(a,l,c),a=a.sibling;a!==null;)Qp(a,l,c),a=a.sibling}function Xp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.insertBefore(a,l):c.appendChild(a);else if(p!==4&&(a=a.child,a!==null))for(Xp(a,l,c),a=a.sibling;a!==null;)Xp(a,l,c),a=a.sibling}var Dt=null,Xr=!1;function Pi(a,l,c){for(c=c.child;c!==null;)Zb(a,l,c),c=c.sibling}function Zb(a,l,c){if(cn&&typeof cn.onCommitFiberUnmount=="function")try{cn.onCommitFiberUnmount(Bu,c)}catch{}switch(c.tag){case 5:Gt||ko(c,l);case 6:var p=Dt,y=Xr;Dt=null,Pi(a,l,c),Dt=p,Xr=y,Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?a.parentNode.removeChild(c):a.removeChild(c)):Dt.removeChild(c.stateNode));break;case 18:Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?cp(a.parentNode,c):a.nodeType===1&&cp(a,c),Vl(a)):cp(Dt,c.stateNode));break;case 4:p=Dt,y=Xr,Dt=c.stateNode.containerInfo,Xr=!0,Pi(a,l,c),Dt=p,Xr=y;break;case 0:case 11:case 14:case 15:if(!Gt&&(p=c.updateQueue,p!==null&&(p=p.lastEffect,p!==null))){y=p=p.next;do{var b=y,A=b.destroy;b=b.tag,A!==void 0&&((b&2)!==0||(b&4)!==0)&&Gp(c,l,A),y=y.next}while(y!==p)}Pi(a,l,c);break;case 1:if(!Gt&&(ko(c,l),p=c.stateNode,typeof p.componentWillUnmount=="function"))try{p.props=c.memoizedProps,p.state=c.memoizedState,p.componentWillUnmount()}catch(I){ct(c,l,I)}Pi(a,l,c);break;case 21:Pi(a,l,c);break;case 22:c.mode&1?(Gt=(p=Gt)||c.memoizedState!==null,Pi(a,l,c),Gt=p):Pi(a,l,c);break;default:Pi(a,l,c)}}function Jb(a){var l=a.updateQueue;if(l!==null){a.updateQueue=null;var c=a.stateNode;c===null&&(c=a.stateNode=new PI),l.forEach(function(p){var y=DI.bind(null,a,p);c.has(p)||(c.add(p),p.then(y,y))})}}function Zr(a,l){var c=l.deletions;if(c!==null)for(var p=0;py&&(y=A),p&=~b}if(p=y,p=pt()-p,p=(120>p?120:480>p?480:1080>p?1080:1920>p?1920:3e3>p?3e3:4320>p?4320:1960*CI(p/1960))-p,10a?16:a,Oi===null)var p=!1;else{if(a=Oi,Oi=null,Mc=0,(We&6)!==0)throw Error(r(331));var y=We;for(We|=4,me=a.current;me!==null;){var b=me,A=b.child;if((me.flags&16)!==0){var I=b.deletions;if(I!==null){for(var T=0;Tpt()-em?ha(a,0):Jp|=c),dr(a,l)}function f1(a,l){l===0&&((a.mode&1)===0?l=1:(l=Wu,Wu<<=1,(Wu&130023424)===0&&(Wu=4194304)));var c=er();a=zn(a,l),a!==null&&(Bl(a,l,c),dr(a,c))}function TI(a){var l=a.memoizedState,c=0;l!==null&&(c=l.retryLane),f1(a,c)}function DI(a,l){var c=0;switch(a.tag){case 13:var p=a.stateNode,y=a.memoizedState;y!==null&&(c=y.retryLane);break;case 19:p=a.stateNode;break;default:throw Error(r(314))}p!==null&&p.delete(l),f1(a,c)}var h1;h1=function(a,l,c){if(a!==null)if(a.memoizedProps!==l.pendingProps||lr.current)ur=!0;else{if((a.lanes&c)===0&&(l.flags&128)===0)return ur=!1,SI(a,l,c);ur=(a.flags&131072)!==0}else ur=!1,nt&&(l.flags&1048576)!==0&&Vx(l,dc,l.index);switch(l.lanes=0,l.tag){case 2:var p=l.type;Ac(a,l),a=l.pendingProps;var y=po(l,Kt.current);bo(l,c),y=Np(null,l,p,a,y,c);var b=Ip();return l.flags|=1,typeof y=="object"&&y!==null&&typeof y.render=="function"&&y.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,sr(p)?(b=!0,sc(l)):b=!1,l.memoizedState=y.state!==null&&y.state!==void 0?y.state:null,Ep(l),y.updater=Ec,l.stateNode=y,y._reactInternals=l,Lp(l,p,a,c),l=Up(null,l,p,!0,b,c)):(l.tag=0,nt&&b&&pp(l),Jt(null,l,y,c),l=l.child),l;case 16:p=l.elementType;e:{switch(Ac(a,l),a=l.pendingProps,y=p._init,p=y(p._payload),l.type=p,y=l.tag=$I(p),a=Qr(p,a),y){case 0:l=Bp(null,l,p,a,c);break e;case 1:l=zb(null,l,p,a,c);break e;case 11:l=Tb(null,l,p,a,c);break e;case 14:l=Db(null,l,p,Qr(p.type,a),c);break e}throw Error(r(306,p,""))}return l;case 0:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Bp(a,l,p,y,c);case 1:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),zb(a,l,p,y,c);case 3:e:{if(Fb(l),a===null)throw Error(r(387));p=l.pendingProps,b=l.memoizedState,y=b.element,tb(a,l),yc(l,p,null,c);var A=l.memoizedState;if(p=A.element,b.isDehydrated)if(b={element:p,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},l.updateQueue.baseState=b,l.memoizedState=b,l.flags&256){y=So(Error(r(423)),l),l=Bb(a,l,p,c,y);break e}else if(p!==y){y=So(Error(r(424)),l),l=Bb(a,l,p,c,y);break e}else for(wr=xi(l.stateNode.containerInfo.firstChild),br=l,nt=!0,Yr=null,c=Jx(l,null,p,c),l.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(yo(),p===y){l=Bn(a,l,c);break e}Jt(a,l,p,c)}l=l.child}return l;case 5:return ib(l),a===null&&yp(l),p=l.type,y=l.pendingProps,b=a!==null?a.memoizedProps:null,A=y.children,sp(p,y)?A=null:b!==null&&sp(p,b)&&(l.flags|=32),Lb(a,l),Jt(a,l,A,c),l.child;case 6:return a===null&&yp(l),null;case 13:return Ub(a,l,c);case 4:return Pp(l,l.stateNode.containerInfo),p=l.pendingProps,a===null?l.child=go(l,null,p,c):Jt(a,l,p,c),l.child;case 11:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Tb(a,l,p,y,c);case 7:return Jt(a,l,l.pendingProps,c),l.child;case 8:return Jt(a,l,l.pendingProps.children,c),l.child;case 12:return Jt(a,l,l.pendingProps.children,c),l.child;case 10:e:{if(p=l.type._context,y=l.pendingProps,b=l.memoizedProps,A=y.value,Ye(pc,p._currentValue),p._currentValue=A,b!==null)if(Gr(b.value,A)){if(b.children===y.children&&!lr.current){l=Bn(a,l,c);break e}}else for(b=l.child,b!==null&&(b.return=l);b!==null;){var I=b.dependencies;if(I!==null){A=b.child;for(var T=I.firstContext;T!==null;){if(T.context===p){if(b.tag===1){T=Fn(-1,c&-c),T.tag=2;var V=b.updateQueue;if(V!==null){V=V.shared;var re=V.pending;re===null?T.next=T:(T.next=re.next,re.next=T),V.pending=T}}b.lanes|=c,T=b.alternate,T!==null&&(T.lanes|=c),Sp(b.return,c,l),I.lanes|=c;break}T=T.next}}else if(b.tag===10)A=b.type===l.type?null:b.child;else if(b.tag===18){if(A=b.return,A===null)throw Error(r(341));A.lanes|=c,I=A.alternate,I!==null&&(I.lanes|=c),Sp(A,c,l),A=b.sibling}else A=b.child;if(A!==null)A.return=b;else for(A=b;A!==null;){if(A===l){A=null;break}if(b=A.sibling,b!==null){b.return=A.return,A=b;break}A=A.return}b=A}Jt(a,l,y.children,c),l=l.child}return l;case 9:return y=l.type,p=l.pendingProps.children,bo(l,c),y=Ir(y),p=p(y),l.flags|=1,Jt(a,l,p,c),l.child;case 14:return p=l.type,y=Qr(p,l.pendingProps),y=Qr(p.type,y),Db(a,l,p,y,c);case 15:return Rb(a,l,l.type,l.pendingProps,c);case 17:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Ac(a,l),l.tag=1,sr(p)?(a=!0,sc(l)):a=!1,bo(l,c),Ob(l,p,y),Lp(l,p,y,c),Up(null,l,p,!0,a,c);case 19:return Hb(a,l,c);case 22:return $b(a,l,c)}throw Error(r(156,l.tag))};function p1(a,l){return q0(a,l)}function RI(a,l,c,p){this.tag=a,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=p,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(a,l,c,p){return new RI(a,l,c,p)}function sm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function $I(a){if(typeof a=="function")return sm(a)?1:0;if(a!=null){if(a=a.$$typeof,a===B)return 11;if(a===le)return 14}return 2}function ji(a,l){var c=a.alternate;return c===null?(c=Dr(a.tag,l,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=l,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=a.flags&14680064,c.childLanes=a.childLanes,c.lanes=a.lanes,c.child=a.child,c.memoizedProps=a.memoizedProps,c.memoizedState=a.memoizedState,c.updateQueue=a.updateQueue,l=a.dependencies,c.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},c.sibling=a.sibling,c.index=a.index,c.ref=a.ref,c}function $c(a,l,c,p,y,b){var A=2;if(p=a,typeof a=="function")sm(a)&&(A=1);else if(typeof a=="string")A=5;else e:switch(a){case D:return ma(c.children,y,b,l);case F:A=8,y|=8;break;case z:return a=Dr(12,c,l,y|2),a.elementType=z,a.lanes=b,a;case ue:return a=Dr(13,c,l,y),a.elementType=ue,a.lanes=b,a;case Y:return a=Dr(19,c,l,y),a.elementType=Y,a.lanes=b,a;case de:return Lc(c,y,b,l);default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case q:A=10;break e;case X:A=9;break e;case B:A=11;break e;case le:A=14;break e;case fe:A=16,p=null;break e}throw Error(r(130,a==null?a:typeof a,""))}return l=Dr(A,c,l,y),l.elementType=a,l.type=p,l.lanes=b,l}function ma(a,l,c,p){return a=Dr(7,a,p,l),a.lanes=c,a}function Lc(a,l,c,p){return a=Dr(22,a,p,l),a.elementType=de,a.lanes=c,a.stateNode={isHidden:!1},a}function um(a,l,c){return a=Dr(6,a,null,l),a.lanes=c,a}function cm(a,l,c){return l=Dr(4,a.children!==null?a.children:[],a.key,l),l.lanes=c,l.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},l}function LI(a,l,c,p,y){this.tag=l,this.containerInfo=a,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$h(0),this.expirationTimes=$h(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$h(0),this.identifierPrefix=p,this.onRecoverableError=y,this.mutableSourceEagerHydrationData=null}function dm(a,l,c,p,y,b,A,I,T){return a=new LI(a,l,c,I,T),l===1?(l=1,b===!0&&(l|=8)):l=0,b=Dr(3,null,null,l),a.current=b,b.stateNode=a,b.memoizedState={element:p,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ep(b),a}function zI(a,l,c){var p=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),gm.exports=JI(),gm.exports}var _1;function eM(){if(_1)return Vc;_1=1;var e=EP();return Vc.createRoot=e.createRoot,Vc.hydrateRoot=e.hydrateRoot,Vc}var tM=eM();const rM=Ty(tM);var xu=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},ja,Fi,Xo,pP,nM=(pP=class extends xu{constructor(){super();Ce(this,ja);Ce(this,Fi);Ce(this,Xo);pe(this,Xo,t=>{if(typeof window<"u"&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){$(this,Fi)||this.setEventListener($(this,Xo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Fi))==null||t.call(this),pe(this,Fi,void 0))}setEventListener(t){var r;pe(this,Xo,t),(r=$(this,Fi))==null||r.call(this),pe(this,Fi,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){$(this,ja)!==t&&(pe(this,ja,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof $(this,ja)=="boolean"?$(this,ja):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ja=new WeakMap,Fi=new WeakMap,Xo=new WeakMap,pP),Ry=new nM,iM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Bi,My,mP,aM=(mP=class{constructor(){Ce(this,Bi,iM);Ce(this,My,!1)}setTimeoutProvider(e){pe(this,Bi,e)}setTimeout(e,t){return $(this,Bi).setTimeout(e,t)}clearTimeout(e){$(this,Bi).clearTimeout(e)}setInterval(e,t){return $(this,Bi).setInterval(e,t)}clearInterval(e){$(this,Bi).clearInterval(e)}},Bi=new WeakMap,My=new WeakMap,mP),ka=new aM;function oM(e){setTimeout(e,0)}var lM=typeof window>"u"||"Deno"in globalThis;function pr(){}function sM(e,t){return typeof e=="function"?e(t):e}function hv(e){return typeof e=="number"&&e>=0&&e!==1/0}function PP(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Yi(e,t){return typeof e=="function"?e(t):e}function Er(e,t){return typeof e=="function"?e(t):e}function j1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:u}=e;if(s){if(n){if(t.queryHash!==$y(s,t.options))return!1}else if(!Vs(t.queryKey,s))return!1}if(r!=="all"){const d=t.isActive();if(r==="active"&&!d||r==="inactive"&&d)return!1}return!(typeof u=="boolean"&&t.isStale()!==u||i&&i!==t.state.fetchStatus||o&&!o(t))}function N1(e,t){const{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(Ks(t.options.mutationKey)!==Ks(o))return!1}else if(!Vs(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function $y(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ks)(e)}function Ks(e){return JSON.stringify(e,(t,r)=>mv(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function Vs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Vs(e[r],t[r])):!1}var uM=Object.prototype.hasOwnProperty;function AP(e,t,r=0){if(e===t)return e;if(r>500)return t;const n=I1(e)&&I1(t);if(!n&&!(mv(e)&&mv(t)))return t;const o=(n?e:Object.keys(e)).length,s=n?t:Object.keys(t),u=s.length,d=n?new Array(u):{};let f=0;for(let h=0;h{ka.setTimeout(t,e)})}function vv(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?AP(e,t):t}function dM(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function fM(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var Ly=Symbol();function OP(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Ly?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function CP(e,t){return typeof e=="function"?e(...t):!!e}function hM(e,t,r){let n=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??(i=t()),n||(n=!0,i.aborted?r():i.addEventListener("abort",r,{once:!0})),i)}),e}var qs=(()=>{let e=()=>lM;return{isServer(){return e()},setIsServer(t){e=t}}})();function yv(){let e,t;const r=new Promise((i,o)=>{e=i,t=o});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}var pM=oM;function mM(){let e=[],t=0,r=u=>{u()},n=u=>{u()},i=pM;const o=u=>{t?e.push(u):i(()=>{r(u)})},s=()=>{const u=e;e=[],u.length&&i(()=>{n(()=>{u.forEach(d=>{r(d)})})})};return{batch:u=>{let d;t++;try{d=u()}finally{t--,t||s()}return d},batchCalls:u=>(...d)=>{o(()=>{u(...d)})},schedule:o,setNotifyFunction:u=>{r=u},setBatchNotifyFunction:u=>{n=u},setScheduler:u=>{i=u}}}var Ft=mM(),Zo,Ui,Jo,vP,vM=(vP=class extends xu{constructor(){super();Ce(this,Zo,!0);Ce(this,Ui);Ce(this,Jo);pe(this,Jo,t=>{if(typeof window<"u"&&window.addEventListener){const r=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){$(this,Ui)||this.setEventListener($(this,Jo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Ui))==null||t.call(this),pe(this,Ui,void 0))}setEventListener(t){var r;pe(this,Jo,t),(r=$(this,Ui))==null||r.call(this),pe(this,Ui,t(this.setOnline.bind(this)))}setOnline(t){$(this,Zo)!==t&&(pe(this,Zo,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return $(this,Zo)}},Zo=new WeakMap,Ui=new WeakMap,Jo=new WeakMap,vP),Od=new vM;function yM(e){return Math.min(1e3*2**e,3e4)}function _P(e){return(e??"online")==="online"?Od.isOnline():!0}var gv=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function jP(e){let t=!1,r=0,n;const i=yv(),o=()=>i.status!=="pending",s=S=>{var E;if(!o()){const P=new gv(S);v(P),(E=e.onCancel)==null||E.call(e,P)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Ry.isFocused()&&(e.networkMode==="always"||Od.isOnline())&&e.canRun(),h=()=>_P(e.networkMode)&&e.canRun(),m=S=>{o()||(n==null||n(),i.resolve(S))},v=S=>{o()||(n==null||n(),i.reject(S))},x=()=>new Promise(S=>{var E;n=P=>{(o()||f())&&S(P)},(E=e.onPause)==null||E.call(e)}).then(()=>{var S;n=void 0,o()||(S=e.onContinue)==null||S.call(e)}),k=()=>{if(o())return;let S;const E=r===0?e.initialPromise:void 0;try{S=E??e.fn()}catch(P){S=Promise.reject(P)}Promise.resolve(S).then(m).catch(P=>{var C;if(o())return;const O=e.retry??(qs.isServer()?0:3),j=e.retryDelay??yM,_=typeof j=="function"?j(r,P):j,N=O===!0||typeof O=="number"&&rf()?void 0:x()).then(()=>{t?v(P):k()})})};return{promise:i,status:()=>i.status,cancel:s,continue:()=>(n==null||n(),i),cancelRetry:u,continueRetry:d,canStart:h,start:()=>(h()?k():x().then(k),i)}}var Na,yP,NP=(yP=class{constructor(){Ce(this,Na)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),hv(this.gcTime)&&pe(this,Na,ka.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(qs.isServer()?1/0:300*1e3))}clearGcTimeout(){$(this,Na)!==void 0&&(ka.clearTimeout($(this,Na)),pe(this,Na,void 0))}},Na=new WeakMap,yP);function gM(e){return{onFetch:(t,r)=>{var h,m,v,x,k;const n=t.options,i=(v=(m=(h=t.fetchOptions)==null?void 0:h.meta)==null?void 0:m.fetchMore)==null?void 0:v.direction,o=((x=t.state.data)==null?void 0:x.pages)||[],s=((k=t.state.data)==null?void 0:k.pageParams)||[];let u={pages:[],pageParams:[]},d=0;const f=async()=>{let S=!1;const E=j=>{hM(j,()=>t.signal,()=>S=!0)},P=OP(t.options,t.fetchOptions),O=async(j,_,N)=>{if(S)return Promise.reject(t.signal.reason);if(_==null&&j.pages.length)return Promise.resolve(j);const D=(()=>{const X={client:t.client,queryKey:t.queryKey,pageParam:_,direction:N?"backward":"forward",meta:t.options.meta};return E(X),X})(),F=await P(D),{maxPages:z}=t.options,q=N?fM:dM;return{pages:q(j.pages,F,z),pageParams:q(j.pageParams,_,z)}};if(i&&o.length){const j=i==="backward",_=j?xM:T1,N={pages:o,pageParams:s},C=_(n,N);u=await O(N,C,j)}else{const j=e??o.length;do{const _=d===0?s[0]??n.initialPageParam:T1(n,u);if(d>0&&_==null)break;u=await O(u,_),d++}while(d{var S,E;return(E=(S=t.options).persister)==null?void 0:E.call(S,f,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=f}}}function T1(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function xM(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var el,Ia,tl,$r,Ma,_t,pu,Ta,kr,IP,Hn,gP,bM=(gP=class extends NP{constructor(t){super();Ce(this,kr);Ce(this,el);Ce(this,Ia);Ce(this,tl);Ce(this,$r);Ce(this,Ma);Ce(this,_t);Ce(this,pu);Ce(this,Ta);pe(this,Ta,!1),pe(this,pu,t.defaultOptions),this.setOptions(t.options),this.observers=[],pe(this,Ma,t.client),pe(this,$r,$(this,Ma).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,pe(this,Ia,R1(this.options)),this.state=t.state??$(this,Ia),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return $(this,el)}get promise(){var t;return(t=$(this,_t))==null?void 0:t.promise}setOptions(t){if(this.options={...$(this,pu),...t},t!=null&&t._type&&pe(this,el,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=R1(this.options);r.data!==void 0&&(this.setState(D1(r.data,r.dataUpdatedAt)),pe(this,Ia,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&$(this,$r).remove(this)}setData(t,r){const n=vv(this.state.data,t,this.options);return Le(this,kr,Hn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t){Le(this,kr,Hn).call(this,{type:"setState",state:t})}cancel(t){var n,i;const r=(n=$(this,_t))==null?void 0:n.promise;return(i=$(this,_t))==null||i.cancel(t),r?r.then(pr).catch(pr):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return $(this,Ia)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Er(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ly||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Yi(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!PP(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),$(this,$r).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||($(this,_t)&&($(this,Ta)||Le(this,kr,IP).call(this)?$(this,_t).cancel({revert:!0}):$(this,_t).cancelRetry()),this.scheduleGc()),$(this,$r).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Le(this,kr,Hn).call(this,{type:"invalidate"})}async fetch(t,r){var f,h,m,v,x,k,S,E,P,O,j;if(this.state.fetchStatus!=="idle"&&((f=$(this,_t))==null?void 0:f.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if($(this,_t))return $(this,_t).continueRetry(),$(this,_t).promise}if(t&&this.setOptions(t),!this.options.queryFn){const _=this.observers.find(N=>N.options.queryFn);_&&this.setOptions(_.options)}const n=new AbortController,i=_=>{Object.defineProperty(_,"signal",{enumerable:!0,get:()=>(pe(this,Ta,!0),n.signal)})},o=()=>{const _=OP(this.options,r),C=(()=>{const D={client:$(this,Ma),queryKey:this.queryKey,meta:this.meta};return i(D),D})();return pe(this,Ta,!1),this.options.persister?this.options.persister(_,C,this):_(C)},u=(()=>{const _={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:$(this,Ma),state:this.state,fetchFn:o};return i(_),_})(),d=$(this,el)==="infinite"?gM(this.options.pages):this.options.behavior;d==null||d.onFetch(u,this),pe(this,tl,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((h=u.fetchOptions)==null?void 0:h.meta))&&Le(this,kr,Hn).call(this,{type:"fetch",meta:(m=u.fetchOptions)==null?void 0:m.meta}),pe(this,_t,jP({initialPromise:r==null?void 0:r.initialPromise,fn:u.fetchFn,onCancel:_=>{_ instanceof gv&&_.revert&&this.setState({...$(this,tl),fetchStatus:"idle"}),n.abort()},onFail:(_,N)=>{Le(this,kr,Hn).call(this,{type:"failed",failureCount:_,error:N})},onPause:()=>{Le(this,kr,Hn).call(this,{type:"pause"})},onContinue:()=>{Le(this,kr,Hn).call(this,{type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0}));try{const _=await $(this,_t).start();if(_===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(_),(x=(v=$(this,$r).config).onSuccess)==null||x.call(v,_,this),(S=(k=$(this,$r).config).onSettled)==null||S.call(k,_,this.state.error,this),_}catch(_){if(_ instanceof gv){if(_.silent)return $(this,_t).promise;if(_.revert){if(this.state.data===void 0)throw _;return this.state.data}}throw Le(this,kr,Hn).call(this,{type:"error",error:_}),(P=(E=$(this,$r).config).onError)==null||P.call(E,_,this),(j=(O=$(this,$r).config).onSettled)==null||j.call(O,this.state.data,_,this),_}finally{this.scheduleGc()}}},el=new WeakMap,Ia=new WeakMap,tl=new WeakMap,$r=new WeakMap,Ma=new WeakMap,_t=new WeakMap,pu=new WeakMap,Ta=new WeakMap,kr=new WeakSet,IP=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,...MP(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,...D1(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return pe(this,tl,t.manual?i:void 0),i;case"error":const o=t.error;return{...n,error:o,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),Ft.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),$(this,$r).notify({query:this,type:"updated",action:t})})},gP);function MP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:_P(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function D1(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function R1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var hr,Be,mu,tr,Da,rl,Vn,Wi,vu,nl,il,Ra,$a,Hi,al,Ve,$s,xv,bv,wv,Sv,kv,Ev,Pv,TP,xP,wM=(xP=class extends xu{constructor(t,r){super();Ce(this,Ve);Ce(this,hr);Ce(this,Be);Ce(this,mu);Ce(this,tr);Ce(this,Da);Ce(this,rl);Ce(this,Vn);Ce(this,Wi);Ce(this,vu);Ce(this,nl);Ce(this,il);Ce(this,Ra);Ce(this,$a);Ce(this,Hi);Ce(this,al,new Set);this.options=r,pe(this,hr,t),pe(this,Wi,null),pe(this,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)?Le(this,Ve,$s).call(this):this.updateResult(),Le(this,Ve,Sv).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Av($(this,Be),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Av($(this,Be),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Le(this,Ve,kv).call(this),Le(this,Ve,Ev).call(this),$(this,Be).removeObserver(this)}setOptions(t){const r=this.options,n=$(this,Be);if(this.options=$(this,hr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Er(this.options.enabled,$(this,Be))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Le(this,Ve,Pv).call(this),$(this,Be).setOptions(this.options),r._defaulted&&!pv(this.options,r)&&$(this,hr).getQueryCache().notify({type:"observerOptionsUpdated",query:$(this,Be),observer:this});const i=this.hasListeners();i&&L1($(this,Be),n,this.options,r)&&Le(this,Ve,$s).call(this),this.updateResult(),i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||Yi(this.options.staleTime,$(this,Be))!==Yi(r.staleTime,$(this,Be)))&&Le(this,Ve,xv).call(this);const o=Le(this,Ve,bv).call(this);i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||o!==$(this,Hi))&&Le(this,Ve,wv).call(this,o)}getOptimisticResult(t){const r=$(this,hr).getQueryCache().build($(this,hr),t),n=this.createResult(r,t);return kM(this,n)&&(pe(this,tr,n),pe(this,rl,this.options),pe(this,Da,$(this,Be).state)),n}getCurrentResult(){return $(this,tr)}trackResult(t,r){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),r==null||r(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&$(this,Vn).status==="pending"&&$(this,Vn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){$(this,al).add(t)}getCurrentQuery(){return $(this,Be)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=$(this,hr).defaultQueryOptions(t),n=$(this,hr).getQueryCache().build($(this,hr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return Le(this,Ve,$s).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),$(this,tr)))}createResult(t,r){var z;const n=$(this,Be),i=this.options,o=$(this,tr),s=$(this,Da),u=$(this,rl),f=t!==n?t.state:$(this,mu),{state:h}=t;let m={...h},v=!1,x;if(r._optimisticResults){const q=this.hasListeners(),X=!q&&$1(t,r),B=q&&L1(t,n,r,i);(X||B)&&(m={...m,...MP(h.data,t.options)}),r._optimisticResults==="isRestoring"&&(m.fetchStatus="idle")}let{error:k,errorUpdatedAt:S,status:E}=m;x=m.data;let P=!1;if(r.placeholderData!==void 0&&x===void 0&&E==="pending"){let q;o!=null&&o.isPlaceholderData&&r.placeholderData===(u==null?void 0:u.placeholderData)?(q=o.data,P=!0):q=typeof r.placeholderData=="function"?r.placeholderData((z=$(this,il))==null?void 0:z.state.data,$(this,il)):r.placeholderData,q!==void 0&&(E="success",x=vv(o==null?void 0:o.data,q,r),v=!0)}if(r.select&&x!==void 0&&!P)if(o&&x===(s==null?void 0:s.data)&&r.select===$(this,vu))x=$(this,nl);else try{pe(this,vu,r.select),x=r.select(x),x=vv(o==null?void 0:o.data,x,r),pe(this,nl,x),pe(this,Wi,null)}catch(q){pe(this,Wi,q)}$(this,Wi)&&(k=$(this,Wi),x=$(this,nl),S=Date.now(),E="error");const O=m.fetchStatus==="fetching",j=E==="pending",_=E==="error",N=j&&O,C=x!==void 0,F={status:E,fetchStatus:m.fetchStatus,isPending:j,isSuccess:E==="success",isError:_,isInitialLoading:N,isLoading:N,data:x,dataUpdatedAt:m.dataUpdatedAt,error:k,errorUpdatedAt:S,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:O,isRefetching:O&&!j,isLoadingError:_&&!C,isPaused:m.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:_&&C,isStale:zy(t,r),refetch:this.refetch,promise:$(this,Vn),isEnabled:Er(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const q=F.data!==void 0,X=F.status==="error"&&!q,B=le=>{X?le.reject(F.error):q&&le.resolve(F.data)},ue=()=>{const le=pe(this,Vn,F.promise=yv());B(le)},Y=$(this,Vn);switch(Y.status){case"pending":t.queryHash===n.queryHash&&B(Y);break;case"fulfilled":(X||F.data!==Y.value)&&ue();break;case"rejected":(!X||F.error!==Y.reason)&&ue();break}}return F}updateResult(){const t=$(this,tr),r=this.createResult($(this,Be),this.options);if(pe(this,Da,$(this,Be).state),pe(this,rl,this.options),$(this,Da).data!==void 0&&pe(this,il,$(this,Be)),pv(r,t))return;pe(this,tr,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!$(this,al).size)return!0;const s=new Set(o??$(this,al));return this.options.throwOnError&&s.add("error"),Object.keys($(this,tr)).some(u=>{const d=u;return $(this,tr)[d]!==t[d]&&s.has(d)})};Le(this,Ve,TP).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Le(this,Ve,Sv).call(this)}},hr=new WeakMap,Be=new WeakMap,mu=new WeakMap,tr=new WeakMap,Da=new WeakMap,rl=new WeakMap,Vn=new WeakMap,Wi=new WeakMap,vu=new WeakMap,nl=new WeakMap,il=new WeakMap,Ra=new WeakMap,$a=new WeakMap,Hi=new WeakMap,al=new WeakMap,Ve=new WeakSet,$s=function(t){Le(this,Ve,Pv).call(this);let r=$(this,Be).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(pr)),r},xv=function(){Le(this,Ve,kv).call(this);const t=Yi(this.options.staleTime,$(this,Be));if(qs.isServer()||$(this,tr).isStale||!hv(t))return;const n=PP($(this,tr).dataUpdatedAt,t)+1;pe(this,Ra,ka.setTimeout(()=>{$(this,tr).isStale||this.updateResult()},n))},bv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval($(this,Be)):this.options.refetchInterval)??!1},wv=function(t){Le(this,Ve,Ev).call(this),pe(this,Hi,t),!(qs.isServer()||Er(this.options.enabled,$(this,Be))===!1||!hv($(this,Hi))||$(this,Hi)===0)&&pe(this,$a,ka.setInterval(()=>{(this.options.refetchIntervalInBackground||Ry.isFocused())&&Le(this,Ve,$s).call(this)},$(this,Hi)))},Sv=function(){Le(this,Ve,xv).call(this),Le(this,Ve,wv).call(this,Le(this,Ve,bv).call(this))},kv=function(){$(this,Ra)!==void 0&&(ka.clearTimeout($(this,Ra)),pe(this,Ra,void 0))},Ev=function(){$(this,$a)!==void 0&&(ka.clearInterval($(this,$a)),pe(this,$a,void 0))},Pv=function(){const t=$(this,hr).getQueryCache().build($(this,hr),this.options);if(t===$(this,Be))return;const r=$(this,Be);pe(this,Be,t),pe(this,mu,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},TP=function(t){Ft.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r($(this,tr))}),$(this,hr).getQueryCache().notify({query:$(this,Be),type:"observerResultsUpdated"})})},xP);function SM(e,t){return Er(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Er(t.retryOnMount,e)===!1)}function $1(e,t){return SM(e,t)||e.state.data!==void 0&&Av(e,t,t.refetchOnMount)}function Av(e,t,r){if(Er(t.enabled,e)!==!1&&Yi(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&zy(e,t)}return!1}function L1(e,t,r,n){return(e!==t||Er(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&zy(e,r)}function zy(e,t){return Er(t.enabled,e)!==!1&&e.isStaleByTime(Yi(t.staleTime,e))}function kM(e,t){return!pv(e.getCurrentResult(),t)}var yu,xn,Yt,La,bn,Di,bP,EM=(bP=class extends NP{constructor(t){super();Ce(this,bn);Ce(this,yu);Ce(this,xn);Ce(this,Yt);Ce(this,La);pe(this,yu,t.client),this.mutationId=t.mutationId,pe(this,Yt,t.mutationCache),pe(this,xn,[]),this.state=t.state||PM(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){$(this,xn).includes(t)||($(this,xn).push(t),this.clearGcTimeout(),$(this,Yt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){pe(this,xn,$(this,xn).filter(r=>r!==t)),this.scheduleGc(),$(this,Yt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){$(this,xn).length||(this.state.status==="pending"?this.scheduleGc():$(this,Yt).remove(this))}continue(){var t;return((t=$(this,La))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D;const r=()=>{Le(this,bn,Di).call(this,{type:"continue"})},n={client:$(this,yu),meta:this.options.meta,mutationKey:this.options.mutationKey};pe(this,La,jP({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(F,z)=>{Le(this,bn,Di).call(this,{type:"failed",failureCount:F,error:z})},onPause:()=>{Le(this,bn,Di).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>$(this,Yt).canRun(this)}));const i=this.state.status==="pending",o=!$(this,La).canStart();try{if(i)r();else{Le(this,bn,Di).call(this,{type:"pending",variables:t,isPaused:o}),$(this,Yt).config.onMutate&&await $(this,Yt).config.onMutate(t,this,n);const z=await((u=(s=this.options).onMutate)==null?void 0:u.call(s,t,n));z!==this.state.context&&Le(this,bn,Di).call(this,{type:"pending",context:z,variables:t,isPaused:o})}const F=await $(this,La).start();return await((f=(d=$(this,Yt).config).onSuccess)==null?void 0:f.call(d,F,t,this.state.context,this,n)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,F,t,this.state.context,n)),await((x=(v=$(this,Yt).config).onSettled)==null?void 0:x.call(v,F,null,this.state.variables,this.state.context,this,n)),await((S=(k=this.options).onSettled)==null?void 0:S.call(k,F,null,t,this.state.context,n)),Le(this,bn,Di).call(this,{type:"success",data:F}),F}catch(F){try{await((P=(E=$(this,Yt).config).onError)==null?void 0:P.call(E,F,t,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((j=(O=this.options).onError)==null?void 0:j.call(O,F,t,this.state.context,n))}catch(z){Promise.reject(z)}try{await((N=(_=$(this,Yt).config).onSettled)==null?void 0:N.call(_,void 0,F,this.state.variables,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((D=(C=this.options).onSettled)==null?void 0:D.call(C,void 0,F,t,this.state.context,n))}catch(z){Promise.reject(z)}throw Le(this,bn,Di).call(this,{type:"error",error:F}),F}finally{$(this,Yt).runNext(this)}}},yu=new WeakMap,xn=new WeakMap,Yt=new WeakMap,La=new WeakMap,bn=new WeakSet,Di=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),Ft.batch(()=>{$(this,xn).forEach(n=>{n.onMutationUpdate(t)}),$(this,Yt).notify({mutation:this,type:"updated",action:t})})},bP);function PM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var qn,tn,gu,wP,AM=(wP=class extends xu{constructor(t={}){super();Ce(this,qn);Ce(this,tn);Ce(this,gu);this.config=t,pe(this,qn,new Set),pe(this,tn,new Map),pe(this,gu,0)}build(t,r,n){const i=new EM({client:t,mutationCache:this,mutationId:++Kc(this,gu)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){$(this,qn).add(t);const r=qc(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=qc(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=qc(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=qc(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(pr))))}},qn=new WeakMap,tn=new WeakMap,gu=new WeakMap,wP);function qc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var wn,SP,OM=(SP=class extends xu{constructor(t={}){super();Ce(this,wn);this.config=t,pe(this,wn,new Map)}build(t,r,n){const i=r.queryKey,o=r.queryHash??$y(i,r);let s=this.get(o);return s||(s=new bM({client:t,queryKey:i,queryHash:o,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(s)),s}add(t){$(this,wn).has(t.queryHash)||($(this,wn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=$(this,wn).get(t.queryHash);r&&(t.destroy(),r===t&&$(this,wn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ft.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return $(this,wn).get(t)}getAll(){return[...$(this,wn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>j1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>j1(t,n)):r}notify(t){Ft.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},wn=new WeakMap,SP),dt,Ki,Vi,ol,ll,qi,sl,ul,kP,CM=(kP=class{constructor(e={}){Ce(this,dt);Ce(this,Ki);Ce(this,Vi);Ce(this,ol);Ce(this,ll);Ce(this,qi);Ce(this,sl);Ce(this,ul);pe(this,dt,e.queryCache||new OM),pe(this,Ki,e.mutationCache||new AM),pe(this,Vi,e.defaultOptions||{}),pe(this,ol,new Map),pe(this,ll,new Map),pe(this,qi,0)}mount(){Kc(this,qi)._++,$(this,qi)===1&&(pe(this,sl,Ry.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onFocus())})),pe(this,ul,Od.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onOnline())})))}unmount(){var e,t;Kc(this,qi)._--,$(this,qi)===0&&((e=$(this,sl))==null||e.call(this),pe(this,sl,void 0),(t=$(this,ul))==null||t.call(this),pe(this,ul,void 0))}isFetching(e){return $(this,dt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return $(this,Ki).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=$(this,dt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(Yi(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return $(this,dt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),i=$(this,dt).get(n.queryHash),o=i==null?void 0:i.state.data,s=sM(t,o);if(s!==void 0)return $(this,dt).build(this,n).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return Ft.batch(()=>$(this,dt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=$(this,dt);Ft.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=$(this,dt);return Ft.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=Ft.batch(()=>$(this,dt).findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(pr).catch(pr)}invalidateQueries(e,t={}){return Ft.batch(()=>($(this,dt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=Ft.batch(()=>$(this,dt).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let o=i.fetch(void 0,r);return r.throwOnError||(o=o.catch(pr)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(pr)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=$(this,dt).build(this,t);return r.isStaleByTime(Yi(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(pr).catch(pr)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(pr).catch(pr)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Od.isOnline()?$(this,Ki).resumePausedMutations():Promise.resolve()}getQueryCache(){return $(this,dt)}getMutationCache(){return $(this,Ki)}getDefaultOptions(){return $(this,Vi)}setDefaultOptions(e){pe(this,Vi,e)}setQueryDefaults(e,t){$(this,ol).set(Ks(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...$(this,ol).values()],r={};return t.forEach(n=>{Vs(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){$(this,ll).set(Ks(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...$(this,ll).values()],r={};return t.forEach(n=>{Vs(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...$(this,Vi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=$y(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Ly&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...$(this,Vi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){$(this,dt).clear(),$(this,Ki).clear()}},dt=new WeakMap,Ki=new WeakMap,Vi=new WeakMap,ol=new WeakMap,ll=new WeakMap,qi=new WeakMap,sl=new WeakMap,ul=new WeakMap,kP),DP=g.createContext(void 0),Af=e=>{const t=g.useContext(DP);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},_M=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),w.jsx(DP.Provider,{value:e,children:t})),RP=g.createContext(!1),jM=()=>g.useContext(RP);RP.Provider;function NM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var IM=g.createContext(NM()),MM=()=>g.useContext(IM),TM=(e,t,r)=>{const n=r!=null&&r.state.error&&typeof e.throwOnError=="function"?CP(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},DM=e=>{g.useEffect(()=>{e.clearReset()},[e])},RM=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||CP(r,[e.error,n])),$M=e=>{if(e.suspense){const r=i=>i==="static"?i:Math.max(i??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...i)=>r(n(...i)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},LM=(e,t)=>e.isLoading&&e.isFetching&&!t,zM=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,z1=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function FM(e,t,r){var x,k,S,E;const n=jM(),i=MM(),o=Af(),s=o.defaultQueryOptions(e);(k=(x=o.getDefaultOptions().queries)==null?void 0:x._experimental_beforeQuery)==null||k.call(x,s);const u=o.getQueryCache().get(s.queryHash),d=e.subscribed!==!1;s._optimisticResults=n?"isRestoring":d?"optimistic":void 0,$M(s),TM(s,i,u),DM(i);const f=!o.getQueryCache().get(s.queryHash),[h]=g.useState(()=>new t(o,s)),m=h.getOptimisticResult(s),v=!n&&d;if(g.useSyncExternalStore(g.useCallback(P=>{const O=v?h.subscribe(Ft.batchCalls(P)):pr;return h.updateResult(),O},[h,v]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),g.useEffect(()=>{h.setOptions(s)},[s,h]),zM(s,m))throw z1(s,h,i);if(RM({result:m,errorResetBoundary:i,throwOnError:s.throwOnError,query:u,suspense:s.suspense}))throw m.error;if((E=(S=o.getDefaultOptions().queries)==null?void 0:S._experimental_afterQuery)==null||E.call(S,s,m),s.experimental_prefetchInRender&&!qs.isServer()&&LM(m,n)){const P=f?z1(s,h,i):u==null?void 0:u.promise;P==null||P.catch(pr).finally(()=>{h.updateResult()})}return s.notifyOnChangeProps?m:h.trackResult(m)}function at(e,t){return FM(e,wM)}const BM="modulepreload",UM=function(e){return"/"+e},F1={},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 v=document.createElement("link");if(v.rel=h?"stylesheet":BM,h||(v.as="script"),v.crossOrigin="",v.href=f,d&&v.setAttribute("nonce",d),document.head.appendChild(v),h)return new Promise((x,k)=>{v.addEventListener("load",x),v.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${f}`)))})}))}function o(s){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=s,window.dispatchEvent(u),!u.defaultPrevented)throw s}return i.then(s=>{for(const u of s||[])u.status==="rejected"&&o(u.reason);return t().catch(o)})};/** +`+b.stack}return{value:a,source:l,stack:y,digest:null}}function zp(a,l,c){return{value:a,source:null,stack:c??null,digest:l??null}}function Fp(a,l){try{console.error(l.value)}catch(c){setTimeout(function(){throw c})}}var xI=typeof WeakMap=="function"?WeakMap:Map;function _b(a,l,c){c=Fn(-1,c),c.tag=3,c.payload={element:null};var p=l.value;return c.callback=function(){Nc||(Nc=!0,tm=p),Fp(a,l)},c}function jb(a,l,c){c=Fn(-1,c),c.tag=3;var p=a.type.getDerivedStateFromError;if(typeof p=="function"){var y=l.value;c.payload=function(){return p(y)},c.callback=function(){Fp(a,l)}}var b=a.stateNode;return b!==null&&typeof b.componentDidCatch=="function"&&(c.callback=function(){Fp(a,l),typeof p!="function"&&(Ai===null?Ai=new Set([this]):Ai.add(this));var A=l.stack;this.componentDidCatch(l.value,{componentStack:A!==null?A:""})}),c}function Nb(a,l,c){var p=a.pingCache;if(p===null){p=a.pingCache=new xI;var y=new Set;p.set(l,y)}else y=p.get(l),y===void 0&&(y=new Set,p.set(l,y));y.has(c)||(y.add(c),a=MI.bind(null,a,l,c),l.then(a,a))}function Ib(a){do{var l;if((l=a.tag===13)&&(l=a.memoizedState,l=l!==null?l.dehydrated!==null:!0),l)return a;a=a.return}while(a!==null);return null}function Mb(a,l,c,p,y){return(a.mode&1)===0?(a===l?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,c.tag===1&&(c.alternate===null?c.tag=17:(l=Fn(-1,1),l.tag=2,Ei(c,l,1))),c.lanes|=1),a):(a.flags|=65536,a.lanes=y,a)}var bI=_.ReactCurrentOwner,ur=!1;function Jt(a,l,c,p){l.child=a===null?Jx(l,null,c,p):yo(l,a.child,c,p)}function Tb(a,l,c,p,y){c=c.render;var b=l.ref;return xo(l,y),p=Np(a,l,c,p,b,y),c=Ip(),a!==null&&!ur?(l.updateQueue=a.updateQueue,l.flags&=-2053,a.lanes&=~y,Bn(a,l,y)):(nt&&c&&pp(l),l.flags|=1,Jt(a,l,p,y),l.child)}function Db(a,l,c,p,y){if(a===null){var b=c.type;return typeof b=="function"&&!sm(b)&&b.defaultProps===void 0&&c.compare===null&&c.defaultProps===void 0?(l.tag=15,l.type=b,Rb(a,l,b,p,y)):(a=$c(c.type,null,p,l,l.mode,y),a.ref=l.ref,a.return=l,l.child=a)}if(b=a.child,(a.lanes&y)===0){var A=b.memoizedProps;if(c=c.compare,c=c!==null?c:Xl,c(A,p)&&a.ref===l.ref)return Bn(a,l,y)}return l.flags|=1,a=ji(b,p),a.ref=l.ref,a.return=l,l.child=a}function Rb(a,l,c,p,y){if(a!==null){var b=a.memoizedProps;if(Xl(b,p)&&a.ref===l.ref)if(ur=!1,l.pendingProps=p=b,(a.lanes&y)!==0)(a.flags&131072)!==0&&(ur=!0);else return l.lanes=a.lanes,Bn(a,l,y)}return Bp(a,l,c,p,y)}function $b(a,l,c){var p=l.pendingProps,y=p.children,b=a!==null?a.memoizedState:null;if(p.mode==="hidden")if((l.mode&1)===0)l.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ye(ko,Sr),Sr|=c;else{if((c&1073741824)===0)return a=b!==null?b.baseLanes|c:c,l.lanes=l.childLanes=1073741824,l.memoizedState={baseLanes:a,cachePool:null,transitions:null},l.updateQueue=null,Ye(ko,Sr),Sr|=a,null;l.memoizedState={baseLanes:0,cachePool:null,transitions:null},p=b!==null?b.baseLanes:c,Ye(ko,Sr),Sr|=p}else b!==null?(p=b.baseLanes|c,l.memoizedState=null):p=c,Ye(ko,Sr),Sr|=p;return Jt(a,l,y,c),l.child}function Lb(a,l){var c=l.ref;(a===null&&c!==null||a!==null&&a.ref!==c)&&(l.flags|=512,l.flags|=2097152)}function Bp(a,l,c,p,y){var b=sr(c)?aa:Kt.current;return b=ho(l,b),xo(l,y),c=Np(a,l,c,p,b,y),p=Ip(),a!==null&&!ur?(l.updateQueue=a.updateQueue,l.flags&=-2053,a.lanes&=~y,Bn(a,l,y)):(nt&&p&&pp(l),l.flags|=1,Jt(a,l,c,y),l.child)}function zb(a,l,c,p,y){if(sr(c)){var b=!0;sc(l)}else b=!1;if(xo(l,y),l.stateNode===null)Ac(a,l),Ob(l,c,p),Lp(l,c,p,y),p=!0;else if(a===null){var A=l.stateNode,I=l.memoizedProps;A.props=I;var T=A.context,V=c.contextType;typeof V=="object"&&V!==null?V=Ir(V):(V=sr(c)?aa:Kt.current,V=ho(l,V));var re=c.getDerivedStateFromProps,ae=typeof re=="function"||typeof A.getSnapshotBeforeUpdate=="function";ae||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(I!==p||T!==V)&&Cb(l,A,p,V),ki=!1;var ee=l.memoizedState;A.state=ee,yc(l,p,A,y),T=l.memoizedState,I!==p||ee!==T||lr.current||ki?(typeof re=="function"&&($p(l,c,re,p),T=l.memoizedState),(I=ki||Ab(l,c,I,p,ee,T,V))?(ae||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount()),typeof A.componentDidMount=="function"&&(l.flags|=4194308)):(typeof A.componentDidMount=="function"&&(l.flags|=4194308),l.memoizedProps=p,l.memoizedState=T),A.props=p,A.state=T,A.context=V,p=I):(typeof A.componentDidMount=="function"&&(l.flags|=4194308),p=!1)}else{A=l.stateNode,tb(a,l),I=l.memoizedProps,V=l.type===l.elementType?I:Qr(l.type,I),A.props=V,ae=l.pendingProps,ee=A.context,T=c.contextType,typeof T=="object"&&T!==null?T=Ir(T):(T=sr(c)?aa:Kt.current,T=ho(l,T));var he=c.getDerivedStateFromProps;(re=typeof he=="function"||typeof A.getSnapshotBeforeUpdate=="function")||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(I!==ae||ee!==T)&&Cb(l,A,p,T),ki=!1,ee=l.memoizedState,A.state=ee,yc(l,p,A,y);var ge=l.memoizedState;I!==ae||ee!==ge||lr.current||ki?(typeof he=="function"&&($p(l,c,he,p),ge=l.memoizedState),(V=ki||Ab(l,c,V,p,ee,ge,T)||!1)?(re||typeof A.UNSAFE_componentWillUpdate!="function"&&typeof A.componentWillUpdate!="function"||(typeof A.componentWillUpdate=="function"&&A.componentWillUpdate(p,ge,T),typeof A.UNSAFE_componentWillUpdate=="function"&&A.UNSAFE_componentWillUpdate(p,ge,T)),typeof A.componentDidUpdate=="function"&&(l.flags|=4),typeof A.getSnapshotBeforeUpdate=="function"&&(l.flags|=1024)):(typeof A.componentDidUpdate!="function"||I===a.memoizedProps&&ee===a.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||I===a.memoizedProps&&ee===a.memoizedState||(l.flags|=1024),l.memoizedProps=p,l.memoizedState=ge),A.props=p,A.state=ge,A.context=T,p=V):(typeof A.componentDidUpdate!="function"||I===a.memoizedProps&&ee===a.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||I===a.memoizedProps&&ee===a.memoizedState||(l.flags|=1024),p=!1)}return Up(a,l,c,p,b,y)}function Up(a,l,c,p,y,b){Lb(a,l);var A=(l.flags&128)!==0;if(!p&&!A)return y&&Hx(l,c,!1),Bn(a,l,b);p=l.stateNode,bI.current=l;var I=A&&typeof c.getDerivedStateFromError!="function"?null:p.render();return l.flags|=1,a!==null&&A?(l.child=yo(l,a.child,null,b),l.child=yo(l,null,I,b)):Jt(a,l,I,b),l.memoizedState=p.state,y&&Hx(l,c,!0),l.child}function Fb(a){var l=a.stateNode;l.pendingContext?Ux(a,l.pendingContext,l.pendingContext!==l.context):l.context&&Ux(a,l.context,!1),Pp(a,l.containerInfo)}function Bb(a,l,c,p,y){return vo(),gp(y),l.flags|=256,Jt(a,l,c,p),l.child}var Wp={dehydrated:null,treeContext:null,retryLane:0};function Hp(a){return{baseLanes:a,cachePool:null,transitions:null}}function Ub(a,l,c){var p=l.pendingProps,y=st.current,b=!1,A=(l.flags&128)!==0,I;if((I=A)||(I=a!==null&&a.memoizedState===null?!1:(y&2)!==0),I?(b=!0,l.flags&=-129):(a===null||a.memoizedState!==null)&&(y|=1),Ye(st,y&1),a===null)return yp(l),a=l.memoizedState,a!==null&&(a=a.dehydrated,a!==null)?((l.mode&1)===0?l.lanes=1:a.data==="$!"?l.lanes=8:l.lanes=1073741824,null):(A=p.children,a=p.fallback,b?(p=l.mode,b=l.child,A={mode:"hidden",children:A},(p&1)===0&&b!==null?(b.childLanes=0,b.pendingProps=A):b=Lc(A,p,0,null),a=ma(a,p,c,null),b.return=l,a.return=l,b.sibling=a,l.child=b,l.child.memoizedState=Hp(c),l.memoizedState=Wp,a):Kp(l,A));if(y=a.memoizedState,y!==null&&(I=y.dehydrated,I!==null))return wI(a,l,A,p,I,y,c);if(b){b=p.fallback,A=l.mode,y=a.child,I=y.sibling;var T={mode:"hidden",children:p.children};return(A&1)===0&&l.child!==y?(p=l.child,p.childLanes=0,p.pendingProps=T,l.deletions=null):(p=ji(y,T),p.subtreeFlags=y.subtreeFlags&14680064),I!==null?b=ji(I,b):(b=ma(b,A,c,null),b.flags|=2),b.return=l,p.return=l,p.sibling=b,l.child=p,p=b,b=l.child,A=a.child.memoizedState,A=A===null?Hp(c):{baseLanes:A.baseLanes|c,cachePool:null,transitions:A.transitions},b.memoizedState=A,b.childLanes=a.childLanes&~c,l.memoizedState=Wp,p}return b=a.child,a=b.sibling,p=ji(b,{mode:"visible",children:p.children}),(l.mode&1)===0&&(p.lanes=c),p.return=l,p.sibling=null,a!==null&&(c=l.deletions,c===null?(l.deletions=[a],l.flags|=16):c.push(a)),l.child=p,l.memoizedState=null,p}function Kp(a,l){return l=Lc({mode:"visible",children:l},a.mode,0,null),l.return=a,a.child=l}function Pc(a,l,c,p){return p!==null&&gp(p),yo(l,a.child,null,c),a=Kp(l,l.pendingProps.children),a.flags|=2,l.memoizedState=null,a}function wI(a,l,c,p,y,b,A){if(c)return l.flags&256?(l.flags&=-257,p=zp(Error(r(422))),Pc(a,l,A,p)):l.memoizedState!==null?(l.child=a.child,l.flags|=128,null):(b=p.fallback,y=l.mode,p=Lc({mode:"visible",children:p.children},y,0,null),b=ma(b,y,A,null),b.flags|=2,p.return=l,b.return=l,p.sibling=b,l.child=p,(l.mode&1)!==0&&yo(l,a.child,null,A),l.child.memoizedState=Hp(A),l.memoizedState=Wp,b);if((l.mode&1)===0)return Pc(a,l,A,null);if(y.data==="$!"){if(p=y.nextSibling&&y.nextSibling.dataset,p)var I=p.dgst;return p=I,b=Error(r(419)),p=zp(b,p,void 0),Pc(a,l,A,p)}if(I=(A&a.childLanes)!==0,ur||I){if(p=Ot,p!==null){switch(A&-A){case 4:y=2;break;case 16:y=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:y=32;break;case 536870912:y=268435456;break;default:y=0}y=(y&(p.suspendedLanes|A))!==0?0:y,y!==0&&y!==b.retryLane&&(b.retryLane=y,zn(a,y),Jr(p,a,y,-1))}return lm(),p=zp(Error(r(421))),Pc(a,l,A,p)}return y.data==="$?"?(l.flags|=128,l.child=a.child,l=TI.bind(null,a),y._reactRetry=l,null):(a=b.treeContext,wr=xi(y.nextSibling),br=l,nt=!0,Yr=null,a!==null&&(jr[Nr++]=$n,jr[Nr++]=Ln,jr[Nr++]=oa,$n=a.id,Ln=a.overflow,oa=l),l=Kp(l,p.children),l.flags|=4096,l)}function Wb(a,l,c){a.lanes|=l;var p=a.alternate;p!==null&&(p.lanes|=l),Sp(a.return,l,c)}function Vp(a,l,c,p,y){var b=a.memoizedState;b===null?a.memoizedState={isBackwards:l,rendering:null,renderingStartTime:0,last:p,tail:c,tailMode:y}:(b.isBackwards=l,b.rendering=null,b.renderingStartTime=0,b.last=p,b.tail=c,b.tailMode=y)}function Hb(a,l,c){var p=l.pendingProps,y=p.revealOrder,b=p.tail;if(Jt(a,l,p.children,c),p=st.current,(p&2)!==0)p=p&1|2,l.flags|=128;else{if(a!==null&&(a.flags&128)!==0)e:for(a=l.child;a!==null;){if(a.tag===13)a.memoizedState!==null&&Wb(a,c,l);else if(a.tag===19)Wb(a,c,l);else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===l)break e;for(;a.sibling===null;){if(a.return===null||a.return===l)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}p&=1}if(Ye(st,p),(l.mode&1)===0)l.memoizedState=null;else switch(y){case"forwards":for(c=l.child,y=null;c!==null;)a=c.alternate,a!==null&&gc(a)===null&&(y=c),c=c.sibling;c=y,c===null?(y=l.child,l.child=null):(y=c.sibling,c.sibling=null),Vp(l,!1,y,c,b);break;case"backwards":for(c=null,y=l.child,l.child=null;y!==null;){if(a=y.alternate,a!==null&&gc(a)===null){l.child=y;break}a=y.sibling,y.sibling=c,c=y,y=a}Vp(l,!0,c,null,b);break;case"together":Vp(l,!1,null,null,void 0);break;default:l.memoizedState=null}return l.child}function Ac(a,l){(l.mode&1)===0&&a!==null&&(a.alternate=null,l.alternate=null,l.flags|=2)}function Bn(a,l,c){if(a!==null&&(l.dependencies=a.dependencies),da|=l.lanes,(c&l.childLanes)===0)return null;if(a!==null&&l.child!==a.child)throw Error(r(153));if(l.child!==null){for(a=l.child,c=ji(a,a.pendingProps),l.child=c,c.return=l;a.sibling!==null;)a=a.sibling,c=c.sibling=ji(a,a.pendingProps),c.return=l;c.sibling=null}return l.child}function SI(a,l,c){switch(l.tag){case 3:Fb(l),vo();break;case 5:ib(l);break;case 1:sr(l.type)&&sc(l);break;case 4:Pp(l,l.stateNode.containerInfo);break;case 10:var p=l.type._context,y=l.memoizedProps.value;Ye(pc,p._currentValue),p._currentValue=y;break;case 13:if(p=l.memoizedState,p!==null)return p.dehydrated!==null?(Ye(st,st.current&1),l.flags|=128,null):(c&l.child.childLanes)!==0?Ub(a,l,c):(Ye(st,st.current&1),a=Bn(a,l,c),a!==null?a.sibling:null);Ye(st,st.current&1);break;case 19:if(p=(c&l.childLanes)!==0,(a.flags&128)!==0){if(p)return Hb(a,l,c);l.flags|=128}if(y=l.memoizedState,y!==null&&(y.rendering=null,y.tail=null,y.lastEffect=null),Ye(st,st.current),p)break;return null;case 22:case 23:return l.lanes=0,$b(a,l,c)}return Bn(a,l,c)}var Kb,qp,Vb,qb;Kb=function(a,l){for(var c=l.child;c!==null;){if(c.tag===5||c.tag===6)a.appendChild(c.stateNode);else if(c.tag!==4&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===l)break;for(;c.sibling===null;){if(c.return===null||c.return===l)return;c=c.return}c.sibling.return=c.return,c=c.sibling}},qp=function(){},Vb=function(a,l,c,p){var y=a.memoizedProps;if(y!==p){a=l.stateNode,ua(fn.current);var b=null;switch(c){case"input":y=Re(a,y),p=Re(a,p),b=[];break;case"select":y=Q({},y,{value:void 0}),p=Q({},p,{value:void 0}),b=[];break;case"textarea":y=Ph(a,y),p=Ph(a,p),b=[];break;default:typeof y.onClick!="function"&&typeof p.onClick=="function"&&(a.onclick=ac)}Oh(c,p);var A;c=null;for(V in y)if(!p.hasOwnProperty(V)&&y.hasOwnProperty(V)&&y[V]!=null)if(V==="style"){var I=y[V];for(A in I)I.hasOwnProperty(A)&&(c||(c={}),c[A]="")}else V!=="dangerouslySetInnerHTML"&&V!=="children"&&V!=="suppressContentEditableWarning"&&V!=="suppressHydrationWarning"&&V!=="autoFocus"&&(i.hasOwnProperty(V)?b||(b=[]):(b=b||[]).push(V,null));for(V in p){var T=p[V];if(I=y!=null?y[V]:void 0,p.hasOwnProperty(V)&&T!==I&&(T!=null||I!=null))if(V==="style")if(I){for(A in I)!I.hasOwnProperty(A)||T&&T.hasOwnProperty(A)||(c||(c={}),c[A]="");for(A in T)T.hasOwnProperty(A)&&I[A]!==T[A]&&(c||(c={}),c[A]=T[A])}else c||(b||(b=[]),b.push(V,c)),c=T;else V==="dangerouslySetInnerHTML"?(T=T?T.__html:void 0,I=I?I.__html:void 0,T!=null&&I!==T&&(b=b||[]).push(V,T)):V==="children"?typeof T!="string"&&typeof T!="number"||(b=b||[]).push(V,""+T):V!=="suppressContentEditableWarning"&&V!=="suppressHydrationWarning"&&(i.hasOwnProperty(V)?(T!=null&&V==="onScroll"&&Ze("scroll",a),b||I===T||(b=[])):(b=b||[]).push(V,T))}c&&(b=b||[]).push("style",c);var V=b;(l.updateQueue=V)&&(l.flags|=4)}},qb=function(a,l,c,p){c!==p&&(l.flags|=4)};function fs(a,l){if(!nt)switch(a.tailMode){case"hidden":l=a.tail;for(var c=null;l!==null;)l.alternate!==null&&(c=l),l=l.sibling;c===null?a.tail=null:c.sibling=null;break;case"collapsed":c=a.tail;for(var p=null;c!==null;)c.alternate!==null&&(p=c),c=c.sibling;p===null?l||a.tail===null?a.tail=null:a.tail.sibling=null:p.sibling=null}}function qt(a){var l=a.alternate!==null&&a.alternate.child===a.child,c=0,p=0;if(l)for(var y=a.child;y!==null;)c|=y.lanes|y.childLanes,p|=y.subtreeFlags&14680064,p|=y.flags&14680064,y.return=a,y=y.sibling;else for(y=a.child;y!==null;)c|=y.lanes|y.childLanes,p|=y.subtreeFlags,p|=y.flags,y.return=a,y=y.sibling;return a.subtreeFlags|=p,a.childLanes=c,l}function kI(a,l,c){var p=l.pendingProps;switch(mp(l),l.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qt(l),null;case 1:return sr(l.type)&&lc(),qt(l),null;case 3:return p=l.stateNode,bo(),Je(lr),Je(Kt),Cp(),p.pendingContext&&(p.context=p.pendingContext,p.pendingContext=null),(a===null||a.child===null)&&(fc(l)?l.flags|=4:a===null||a.memoizedState.isDehydrated&&(l.flags&256)===0||(l.flags|=1024,Yr!==null&&(im(Yr),Yr=null))),qp(a,l),qt(l),null;case 5:Ap(l);var y=ua(ls.current);if(c=l.type,a!==null&&l.stateNode!=null)Vb(a,l,c,p,y),a.ref!==l.ref&&(l.flags|=512,l.flags|=2097152);else{if(!p){if(l.stateNode===null)throw Error(r(166));return qt(l),null}if(a=ua(fn.current),fc(l)){p=l.stateNode,c=l.type;var b=l.memoizedProps;switch(p[dn]=l,p[rs]=b,a=(l.mode&1)!==0,c){case"dialog":Ze("cancel",p),Ze("close",p);break;case"iframe":case"object":case"embed":Ze("load",p);break;case"video":case"audio":for(y=0;y<\/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[rs]=p,Kb(a,l,!1,!1),l.stateNode=a;e:{switch(A=Ch(c,p),c){case"dialog":Ze("cancel",a),Ze("close",a),y=p;break;case"iframe":case"object":case"embed":Ze("load",a),y=p;break;case"video":case"audio":for(y=0;yEo&&(l.flags|=128,p=!0,fs(b,!1),l.lanes=4194304)}else{if(!p)if(a=gc(A),a!==null){if(l.flags|=128,p=!0,c=a.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),fs(b,!0),b.tail===null&&b.tailMode==="hidden"&&!A.alternate&&!nt)return qt(l),null}else 2*pt()-b.renderingStartTime>Eo&&c!==1073741824&&(l.flags|=128,p=!0,fs(b,!1),l.lanes=4194304);b.isBackwards?(A.sibling=l.child,l.child=A):(c=b.last,c!==null?c.sibling=A:l.child=A,b.last=A)}return b.tail!==null?(l=b.tail,b.rendering=l,b.tail=l.sibling,b.renderingStartTime=pt(),l.sibling=null,c=st.current,Ye(st,p?c&1|2:c&1),l):(qt(l),null);case 22:case 23:return om(),p=l.memoizedState!==null,a!==null&&a.memoizedState!==null!==p&&(l.flags|=8192),p&&(l.mode&1)!==0?(Sr&1073741824)!==0&&(qt(l),l.subtreeFlags&6&&(l.flags|=8192)):qt(l),null;case 24:return null;case 25:return null}throw Error(r(156,l.tag))}function EI(a,l){switch(mp(l),l.tag){case 1:return sr(l.type)&&lc(),a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 3:return bo(),Je(lr),Je(Kt),Cp(),a=l.flags,(a&65536)!==0&&(a&128)===0?(l.flags=a&-65537|128,l):null;case 5:return Ap(l),null;case 13:if(Je(st),a=l.memoizedState,a!==null&&a.dehydrated!==null){if(l.alternate===null)throw Error(r(340));vo()}return a=l.flags,a&65536?(l.flags=a&-65537|128,l):null;case 19:return Je(st),null;case 4:return bo(),null;case 10:return wp(l.type._context),null;case 22:case 23:return om(),null;case 24:return null;default:return null}}var Oc=!1,Gt=!1,PI=typeof WeakSet=="function"?WeakSet:Set,me=null;function So(a,l){var c=a.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(p){ct(a,l,p)}else c.current=null}function Gp(a,l,c){try{c()}catch(p){ct(a,l,p)}}var Gb=!1;function AI(a,l){if(op=qu,a=Ax(),Zh(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else e:{c=(c=a.ownerDocument)&&c.defaultView||window;var p=c.getSelection&&c.getSelection();if(p&&p.rangeCount!==0){c=p.anchorNode;var y=p.anchorOffset,b=p.focusNode;p=p.focusOffset;try{c.nodeType,b.nodeType}catch{c=null;break e}var A=0,I=-1,T=-1,V=0,re=0,ae=a,ee=null;t:for(;;){for(var he;ae!==c||y!==0&&ae.nodeType!==3||(I=A+y),ae!==b||p!==0&&ae.nodeType!==3||(T=A+p),ae.nodeType===3&&(A+=ae.nodeValue.length),(he=ae.firstChild)!==null;)ee=ae,ae=he;for(;;){if(ae===a)break t;if(ee===c&&++V===y&&(I=A),ee===b&&++re===p&&(T=A),(he=ae.nextSibling)!==null)break;ae=ee,ee=ae.parentNode}ae=he}c=I===-1||T===-1?null:{start:I,end:T}}else c=null}c=c||{start:0,end:0}}else c=null;for(lp={focusedElem:a,selectionRange:c},qu=!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 hs(a,l,c){var p=l.updateQueue;if(p=p!==null?p.lastEffect:null,p!==null){var y=p=p.next;do{if((y.tag&a)===a){var b=y.destroy;y.destroy=void 0,b!==void 0&&Gp(l,c,b)}y=y.next}while(y!==p)}}function Cc(a,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&a)===a){var p=c.create;c.destroy=p()}c=c.next}while(c!==l)}}function Yp(a){var l=a.ref;if(l!==null){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}typeof l=="function"?l(a):l.current=a}}function Yb(a){var l=a.alternate;l!==null&&(a.alternate=null,Yb(l)),a.child=null,a.deletions=null,a.sibling=null,a.tag===5&&(l=a.stateNode,l!==null&&(delete l[dn],delete l[rs],delete l[dp],delete l[sI],delete l[uI])),a.stateNode=null,a.return=null,a.dependencies=null,a.memoizedProps=null,a.memoizedState=null,a.pendingProps=null,a.stateNode=null,a.updateQueue=null}function Qb(a){return a.tag===5||a.tag===3||a.tag===4}function Xb(a){e:for(;;){for(;a.sibling===null;){if(a.return===null||Qb(a.return))return null;a=a.return}for(a.sibling.return=a.return,a=a.sibling;a.tag!==5&&a.tag!==6&&a.tag!==18;){if(a.flags&2||a.child===null||a.tag===4)continue e;a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}function Qp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.nodeType===8?c.parentNode.insertBefore(a,l):c.insertBefore(a,l):(c.nodeType===8?(l=c.parentNode,l.insertBefore(a,c)):(l=c,l.appendChild(a)),c=c._reactRootContainer,c!=null||l.onclick!==null||(l.onclick=ac));else if(p!==4&&(a=a.child,a!==null))for(Qp(a,l,c),a=a.sibling;a!==null;)Qp(a,l,c),a=a.sibling}function Xp(a,l,c){var p=a.tag;if(p===5||p===6)a=a.stateNode,l?c.insertBefore(a,l):c.appendChild(a);else if(p!==4&&(a=a.child,a!==null))for(Xp(a,l,c),a=a.sibling;a!==null;)Xp(a,l,c),a=a.sibling}var Dt=null,Xr=!1;function Pi(a,l,c){for(c=c.child;c!==null;)Zb(a,l,c),c=c.sibling}function Zb(a,l,c){if(cn&&typeof cn.onCommitFiberUnmount=="function")try{cn.onCommitFiberUnmount(Bu,c)}catch{}switch(c.tag){case 5:Gt||So(c,l);case 6:var p=Dt,y=Xr;Dt=null,Pi(a,l,c),Dt=p,Xr=y,Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?a.parentNode.removeChild(c):a.removeChild(c)):Dt.removeChild(c.stateNode));break;case 18:Dt!==null&&(Xr?(a=Dt,c=c.stateNode,a.nodeType===8?cp(a.parentNode,c):a.nodeType===1&&cp(a,c),Kl(a)):cp(Dt,c.stateNode));break;case 4:p=Dt,y=Xr,Dt=c.stateNode.containerInfo,Xr=!0,Pi(a,l,c),Dt=p,Xr=y;break;case 0:case 11:case 14:case 15:if(!Gt&&(p=c.updateQueue,p!==null&&(p=p.lastEffect,p!==null))){y=p=p.next;do{var b=y,A=b.destroy;b=b.tag,A!==void 0&&((b&2)!==0||(b&4)!==0)&&Gp(c,l,A),y=y.next}while(y!==p)}Pi(a,l,c);break;case 1:if(!Gt&&(So(c,l),p=c.stateNode,typeof p.componentWillUnmount=="function"))try{p.props=c.memoizedProps,p.state=c.memoizedState,p.componentWillUnmount()}catch(I){ct(c,l,I)}Pi(a,l,c);break;case 21:Pi(a,l,c);break;case 22:c.mode&1?(Gt=(p=Gt)||c.memoizedState!==null,Pi(a,l,c),Gt=p):Pi(a,l,c);break;default:Pi(a,l,c)}}function Jb(a){var l=a.updateQueue;if(l!==null){a.updateQueue=null;var c=a.stateNode;c===null&&(c=a.stateNode=new PI),l.forEach(function(p){var y=DI.bind(null,a,p);c.has(p)||(c.add(p),p.then(y,y))})}}function Zr(a,l){var c=l.deletions;if(c!==null)for(var p=0;py&&(y=A),p&=~b}if(p=y,p=pt()-p,p=(120>p?120:480>p?480:1080>p?1080:1920>p?1920:3e3>p?3e3:4320>p?4320:1960*CI(p/1960))-p,10a?16:a,Oi===null)var p=!1;else{if(a=Oi,Oi=null,Mc=0,(We&6)!==0)throw Error(r(331));var y=We;for(We|=4,me=a.current;me!==null;){var b=me,A=b.child;if((me.flags&16)!==0){var I=b.deletions;if(I!==null){for(var T=0;Tpt()-em?ha(a,0):Jp|=c),dr(a,l)}function f1(a,l){l===0&&((a.mode&1)===0?l=1:(l=Wu,Wu<<=1,(Wu&130023424)===0&&(Wu=4194304)));var c=er();a=zn(a,l),a!==null&&(Fl(a,l,c),dr(a,c))}function TI(a){var l=a.memoizedState,c=0;l!==null&&(c=l.retryLane),f1(a,c)}function DI(a,l){var c=0;switch(a.tag){case 13:var p=a.stateNode,y=a.memoizedState;y!==null&&(c=y.retryLane);break;case 19:p=a.stateNode;break;default:throw Error(r(314))}p!==null&&p.delete(l),f1(a,c)}var h1;h1=function(a,l,c){if(a!==null)if(a.memoizedProps!==l.pendingProps||lr.current)ur=!0;else{if((a.lanes&c)===0&&(l.flags&128)===0)return ur=!1,SI(a,l,c);ur=(a.flags&131072)!==0}else ur=!1,nt&&(l.flags&1048576)!==0&&Vx(l,dc,l.index);switch(l.lanes=0,l.tag){case 2:var p=l.type;Ac(a,l),a=l.pendingProps;var y=ho(l,Kt.current);xo(l,c),y=Np(null,l,p,a,y,c);var b=Ip();return l.flags|=1,typeof y=="object"&&y!==null&&typeof y.render=="function"&&y.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,sr(p)?(b=!0,sc(l)):b=!1,l.memoizedState=y.state!==null&&y.state!==void 0?y.state:null,Ep(l),y.updater=Ec,l.stateNode=y,y._reactInternals=l,Lp(l,p,a,c),l=Up(null,l,p,!0,b,c)):(l.tag=0,nt&&b&&pp(l),Jt(null,l,y,c),l=l.child),l;case 16:p=l.elementType;e:{switch(Ac(a,l),a=l.pendingProps,y=p._init,p=y(p._payload),l.type=p,y=l.tag=$I(p),a=Qr(p,a),y){case 0:l=Bp(null,l,p,a,c);break e;case 1:l=zb(null,l,p,a,c);break e;case 11:l=Tb(null,l,p,a,c);break e;case 14:l=Db(null,l,p,Qr(p.type,a),c);break e}throw Error(r(306,p,""))}return l;case 0:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Bp(a,l,p,y,c);case 1:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),zb(a,l,p,y,c);case 3:e:{if(Fb(l),a===null)throw Error(r(387));p=l.pendingProps,b=l.memoizedState,y=b.element,tb(a,l),yc(l,p,null,c);var A=l.memoizedState;if(p=A.element,b.isDehydrated)if(b={element:p,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},l.updateQueue.baseState=b,l.memoizedState=b,l.flags&256){y=wo(Error(r(423)),l),l=Bb(a,l,p,c,y);break e}else if(p!==y){y=wo(Error(r(424)),l),l=Bb(a,l,p,c,y);break e}else for(wr=xi(l.stateNode.containerInfo.firstChild),br=l,nt=!0,Yr=null,c=Jx(l,null,p,c),l.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(vo(),p===y){l=Bn(a,l,c);break e}Jt(a,l,p,c)}l=l.child}return l;case 5:return ib(l),a===null&&yp(l),p=l.type,y=l.pendingProps,b=a!==null?a.memoizedProps:null,A=y.children,sp(p,y)?A=null:b!==null&&sp(p,b)&&(l.flags|=32),Lb(a,l),Jt(a,l,A,c),l.child;case 6:return a===null&&yp(l),null;case 13:return Ub(a,l,c);case 4:return Pp(l,l.stateNode.containerInfo),p=l.pendingProps,a===null?l.child=yo(l,null,p,c):Jt(a,l,p,c),l.child;case 11:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Tb(a,l,p,y,c);case 7:return Jt(a,l,l.pendingProps,c),l.child;case 8:return Jt(a,l,l.pendingProps.children,c),l.child;case 12:return Jt(a,l,l.pendingProps.children,c),l.child;case 10:e:{if(p=l.type._context,y=l.pendingProps,b=l.memoizedProps,A=y.value,Ye(pc,p._currentValue),p._currentValue=A,b!==null)if(Gr(b.value,A)){if(b.children===y.children&&!lr.current){l=Bn(a,l,c);break e}}else for(b=l.child,b!==null&&(b.return=l);b!==null;){var I=b.dependencies;if(I!==null){A=b.child;for(var T=I.firstContext;T!==null;){if(T.context===p){if(b.tag===1){T=Fn(-1,c&-c),T.tag=2;var V=b.updateQueue;if(V!==null){V=V.shared;var re=V.pending;re===null?T.next=T:(T.next=re.next,re.next=T),V.pending=T}}b.lanes|=c,T=b.alternate,T!==null&&(T.lanes|=c),Sp(b.return,c,l),I.lanes|=c;break}T=T.next}}else if(b.tag===10)A=b.type===l.type?null:b.child;else if(b.tag===18){if(A=b.return,A===null)throw Error(r(341));A.lanes|=c,I=A.alternate,I!==null&&(I.lanes|=c),Sp(A,c,l),A=b.sibling}else A=b.child;if(A!==null)A.return=b;else for(A=b;A!==null;){if(A===l){A=null;break}if(b=A.sibling,b!==null){b.return=A.return,A=b;break}A=A.return}b=A}Jt(a,l,y.children,c),l=l.child}return l;case 9:return y=l.type,p=l.pendingProps.children,xo(l,c),y=Ir(y),p=p(y),l.flags|=1,Jt(a,l,p,c),l.child;case 14:return p=l.type,y=Qr(p,l.pendingProps),y=Qr(p.type,y),Db(a,l,p,y,c);case 15:return Rb(a,l,l.type,l.pendingProps,c);case 17:return p=l.type,y=l.pendingProps,y=l.elementType===p?y:Qr(p,y),Ac(a,l),l.tag=1,sr(p)?(a=!0,sc(l)):a=!1,xo(l,c),Ob(l,p,y),Lp(l,p,y,c),Up(null,l,p,!0,a,c);case 19:return Hb(a,l,c);case 22:return $b(a,l,c)}throw Error(r(156,l.tag))};function p1(a,l){return q0(a,l)}function RI(a,l,c,p){this.tag=a,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=p,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Dr(a,l,c,p){return new RI(a,l,c,p)}function sm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function $I(a){if(typeof a=="function")return sm(a)?1:0;if(a!=null){if(a=a.$$typeof,a===B)return 11;if(a===le)return 14}return 2}function ji(a,l){var c=a.alternate;return c===null?(c=Dr(a.tag,l,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=l,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=a.flags&14680064,c.childLanes=a.childLanes,c.lanes=a.lanes,c.child=a.child,c.memoizedProps=a.memoizedProps,c.memoizedState=a.memoizedState,c.updateQueue=a.updateQueue,l=a.dependencies,c.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},c.sibling=a.sibling,c.index=a.index,c.ref=a.ref,c}function $c(a,l,c,p,y,b){var A=2;if(p=a,typeof a=="function")sm(a)&&(A=1);else if(typeof a=="string")A=5;else e:switch(a){case D:return ma(c.children,y,b,l);case F:A=8,y|=8;break;case z:return a=Dr(12,c,l,y|2),a.elementType=z,a.lanes=b,a;case ue:return a=Dr(13,c,l,y),a.elementType=ue,a.lanes=b,a;case Y:return a=Dr(19,c,l,y),a.elementType=Y,a.lanes=b,a;case de:return Lc(c,y,b,l);default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case q:A=10;break e;case X:A=9;break e;case B:A=11;break e;case le:A=14;break e;case fe:A=16,p=null;break e}throw Error(r(130,a==null?a:typeof a,""))}return l=Dr(A,c,l,y),l.elementType=a,l.type=p,l.lanes=b,l}function ma(a,l,c,p){return a=Dr(7,a,p,l),a.lanes=c,a}function Lc(a,l,c,p){return a=Dr(22,a,p,l),a.elementType=de,a.lanes=c,a.stateNode={isHidden:!1},a}function um(a,l,c){return a=Dr(6,a,null,l),a.lanes=c,a}function cm(a,l,c){return l=Dr(4,a.children!==null?a.children:[],a.key,l),l.lanes=c,l.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},l}function LI(a,l,c,p,y){this.tag=l,this.containerInfo=a,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$h(0),this.expirationTimes=$h(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$h(0),this.identifierPrefix=p,this.onRecoverableError=y,this.mutableSourceEagerHydrationData=null}function dm(a,l,c,p,y,b,A,I,T){return a=new LI(a,l,c,I,T),l===1?(l=1,b===!0&&(l|=8)):l=0,b=Dr(3,null,null,l),a.current=b,b.stateNode=a,b.memoizedState={element:p,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ep(b),a}function zI(a,l,c){var p=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),gm.exports=JI(),gm.exports}var _1;function eM(){if(_1)return Vc;_1=1;var e=EP();return Vc.createRoot=e.createRoot,Vc.hydrateRoot=e.hydrateRoot,Vc}var tM=eM();const rM=Ty(tM);var xu=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,Qo,pP,nM=(pP=class extends xu{constructor(){super();Ce(this,_a);Ce(this,Fi);Ce(this,Qo);pe(this,Qo,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,Qo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Fi))==null||t.call(this),pe(this,Fi,void 0))}setEventListener(t){var r;pe(this,Qo,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,Qo=new WeakMap,pP),Ry=new nM,iM={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Bi,My,mP,aM=(mP=class{constructor(){Ce(this,Bi,iM);Ce(this,My,!1)}setTimeoutProvider(e){pe(this,Bi,e)}setTimeout(e,t){return $(this,Bi).setTimeout(e,t)}clearTimeout(e){$(this,Bi).clearTimeout(e)}setInterval(e,t){return $(this,Bi).setInterval(e,t)}clearInterval(e){$(this,Bi).clearInterval(e)}},Bi=new WeakMap,My=new WeakMap,mP),ka=new aM;function oM(e){setTimeout(e,0)}var lM=typeof window>"u"||"Deno"in globalThis;function pr(){}function sM(e,t){return typeof e=="function"?e(t):e}function hv(e){return typeof e=="number"&&e>=0&&e!==1/0}function PP(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Yi(e,t){return typeof e=="function"?e(t):e}function Er(e,t){return typeof e=="function"?e(t):e}function j1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:s,stale:u}=e;if(s){if(n){if(t.queryHash!==$y(s,t.options))return!1}else if(!Vs(t.queryKey,s))return!1}if(r!=="all"){const d=t.isActive();if(r==="active"&&!d||r==="inactive"&&d)return!1}return!(typeof u=="boolean"&&t.isStale()!==u||i&&i!==t.state.fetchStatus||o&&!o(t))}function N1(e,t){const{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(Ks(t.options.mutationKey)!==Ks(o))return!1}else if(!Vs(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function $y(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ks)(e)}function Ks(e){return JSON.stringify(e,(t,r)=>mv(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function Vs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Vs(e[r],t[r])):!1}var uM=Object.prototype.hasOwnProperty;function AP(e,t,r=0){if(e===t)return e;if(r>500)return t;const n=I1(e)&&I1(t);if(!n&&!(mv(e)&&mv(t)))return t;const o=(n?e:Object.keys(e)).length,s=n?t:Object.keys(t),u=s.length,d=n?new Array(u):{};let f=0;for(let h=0;h{ka.setTimeout(t,e)})}function vv(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?AP(e,t):t}function dM(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function fM(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var Ly=Symbol();function OP(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Ly?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function CP(e,t){return typeof e=="function"?e(...t):!!e}function hM(e,t,r){let n=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??(i=t()),n||(n=!0,i.aborted?r():i.addEventListener("abort",r,{once:!0})),i)}),e}var qs=(()=>{let e=()=>lM;return{isServer(){return e()},setIsServer(t){e=t}}})();function yv(){let e,t;const r=new Promise((i,o)=>{e=i,t=o});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}var pM=oM;function mM(){let e=[],t=0,r=u=>{u()},n=u=>{u()},i=pM;const o=u=>{t?e.push(u):i(()=>{r(u)})},s=()=>{const u=e;e=[],u.length&&i(()=>{n(()=>{u.forEach(d=>{r(d)})})})};return{batch:u=>{let d;t++;try{d=u()}finally{t--,t||s()}return d},batchCalls:u=>(...d)=>{o(()=>{u(...d)})},schedule:o,setNotifyFunction:u=>{r=u},setBatchNotifyFunction:u=>{n=u},setScheduler:u=>{i=u}}}var Ft=mM(),Xo,Ui,Zo,vP,vM=(vP=class extends xu{constructor(){super();Ce(this,Xo,!0);Ce(this,Ui);Ce(this,Zo);pe(this,Zo,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,Zo))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,Ui))==null||t.call(this),pe(this,Ui,void 0))}setEventListener(t){var r;pe(this,Zo,t),(r=$(this,Ui))==null||r.call(this),pe(this,Ui,t(this.setOnline.bind(this)))}setOnline(t){$(this,Xo)!==t&&(pe(this,Xo,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return $(this,Xo)}},Xo=new WeakMap,Ui=new WeakMap,Zo=new WeakMap,vP),Od=new vM;function yM(e){return Math.min(1e3*2**e,3e4)}function _P(e){return(e??"online")==="online"?Od.isOnline():!0}var gv=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function jP(e){let t=!1,r=0,n;const i=yv(),o=()=>i.status!=="pending",s=S=>{var E;if(!o()){const P=new gv(S);v(P),(E=e.onCancel)==null||E.call(e,P)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Ry.isFocused()&&(e.networkMode==="always"||Od.isOnline())&&e.canRun(),h=()=>_P(e.networkMode)&&e.canRun(),m=S=>{o()||(n==null||n(),i.resolve(S))},v=S=>{o()||(n==null||n(),i.reject(S))},x=()=>new Promise(S=>{var E;n=P=>{(o()||f())&&S(P)},(E=e.onPause)==null||E.call(e)}).then(()=>{var S;n=void 0,o()||(S=e.onContinue)==null||S.call(e)}),k=()=>{if(o())return;let S;const E=r===0?e.initialPromise:void 0;try{S=E??e.fn()}catch(P){S=Promise.reject(P)}Promise.resolve(S).then(m).catch(P=>{var C;if(o())return;const O=e.retry??(qs.isServer()?0:3),j=e.retryDelay??yM,_=typeof j=="function"?j(r,P):j,N=O===!0||typeof O=="number"&&rf()?void 0:x()).then(()=>{t?v(P):k()})})};return{promise:i,status:()=>i.status,cancel:s,continue:()=>(n==null||n(),i),cancelRetry:u,continueRetry:d,canStart:h,start:()=>(h()?k():x().then(k),i)}}var ja,yP,NP=(yP=class{constructor(){Ce(this,ja)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),hv(this.gcTime)&&pe(this,ja,ka.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(qs.isServer()?1/0:300*1e3))}clearGcTimeout(){$(this,ja)!==void 0&&(ka.clearTimeout($(this,ja)),pe(this,ja,void 0))}},ja=new WeakMap,yP);function gM(e){return{onFetch:(t,r)=>{var h,m,v,x,k;const n=t.options,i=(v=(m=(h=t.fetchOptions)==null?void 0:h.meta)==null?void 0:m.fetchMore)==null?void 0:v.direction,o=((x=t.state.data)==null?void 0:x.pages)||[],s=((k=t.state.data)==null?void 0:k.pageParams)||[];let u={pages:[],pageParams:[]},d=0;const f=async()=>{let S=!1;const E=j=>{hM(j,()=>t.signal,()=>S=!0)},P=OP(t.options,t.fetchOptions),O=async(j,_,N)=>{if(S)return Promise.reject(t.signal.reason);if(_==null&&j.pages.length)return Promise.resolve(j);const D=(()=>{const X={client:t.client,queryKey:t.queryKey,pageParam:_,direction:N?"backward":"forward",meta:t.options.meta};return E(X),X})(),F=await P(D),{maxPages:z}=t.options,q=N?fM:dM;return{pages:q(j.pages,F,z),pageParams:q(j.pageParams,_,z)}};if(i&&o.length){const j=i==="backward",_=j?xM:T1,N={pages:o,pageParams:s},C=_(n,N);u=await O(N,C,j)}else{const j=e??o.length;do{const _=d===0?s[0]??n.initialPageParam:T1(n,u);if(d>0&&_==null)break;u=await O(u,_),d++}while(d{var S,E;return(E=(S=t.options).persister)==null?void 0:E.call(S,f,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=f}}}function T1(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function xM(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var Jo,Na,el,$r,Ia,_t,pu,Ma,kr,IP,Hn,gP,bM=(gP=class extends NP{constructor(t){super();Ce(this,kr);Ce(this,Jo);Ce(this,Na);Ce(this,el);Ce(this,$r);Ce(this,Ia);Ce(this,_t);Ce(this,pu);Ce(this,Ma);pe(this,Ma,!1),pe(this,pu,t.defaultOptions),this.setOptions(t.options),this.observers=[],pe(this,Ia,t.client),pe(this,$r,$(this,Ia).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,pe(this,Na,R1(this.options)),this.state=t.state??$(this,Na),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return $(this,Jo)}get promise(){var t;return(t=$(this,_t))==null?void 0:t.promise}setOptions(t){if(this.options={...$(this,pu),...t},t!=null&&t._type&&pe(this,Jo,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,Na,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&$(this,$r).remove(this)}setData(t,r){const n=vv(this.state.data,t,this.options);return Le(this,kr,Hn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t){Le(this,kr,Hn).call(this,{type:"setState",state:t})}cancel(t){var n,i;const r=(n=$(this,_t))==null?void 0:n.promise;return(i=$(this,_t))==null||i.cancel(t),r?r.then(pr).catch(pr):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return $(this,Na)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Er(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ly||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Yi(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!PP(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=$(this,_t))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),$(this,$r).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||($(this,_t)&&($(this,Ma)||Le(this,kr,IP).call(this)?$(this,_t).cancel({revert:!0}):$(this,_t).cancelRetry()),this.scheduleGc()),$(this,$r).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Le(this,kr,Hn).call(this,{type:"invalidate"})}async fetch(t,r){var f,h,m,v,x,k,S,E,P,O,j;if(this.state.fetchStatus!=="idle"&&((f=$(this,_t))==null?void 0:f.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if($(this,_t))return $(this,_t).continueRetry(),$(this,_t).promise}if(t&&this.setOptions(t),!this.options.queryFn){const _=this.observers.find(N=>N.options.queryFn);_&&this.setOptions(_.options)}const n=new AbortController,i=_=>{Object.defineProperty(_,"signal",{enumerable:!0,get:()=>(pe(this,Ma,!0),n.signal)})},o=()=>{const _=OP(this.options,r),C=(()=>{const D={client:$(this,Ia),queryKey:this.queryKey,meta:this.meta};return i(D),D})();return pe(this,Ma,!1),this.options.persister?this.options.persister(_,C,this):_(C)},u=(()=>{const _={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:$(this,Ia),state:this.state,fetchFn:o};return i(_),_})(),d=$(this,Jo)==="infinite"?gM(this.options.pages):this.options.behavior;d==null||d.onFetch(u,this),pe(this,el,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((h=u.fetchOptions)==null?void 0:h.meta))&&Le(this,kr,Hn).call(this,{type:"fetch",meta:(m=u.fetchOptions)==null?void 0:m.meta}),pe(this,_t,jP({initialPromise:r==null?void 0:r.initialPromise,fn:u.fetchFn,onCancel:_=>{_ instanceof gv&&_.revert&&this.setState({...$(this,el),fetchStatus:"idle"}),n.abort()},onFail:(_,N)=>{Le(this,kr,Hn).call(this,{type:"failed",failureCount:_,error:N})},onPause:()=>{Le(this,kr,Hn).call(this,{type:"pause"})},onContinue:()=>{Le(this,kr,Hn).call(this,{type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0}));try{const _=await $(this,_t).start();if(_===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(_),(x=(v=$(this,$r).config).onSuccess)==null||x.call(v,_,this),(S=(k=$(this,$r).config).onSettled)==null||S.call(k,_,this.state.error,this),_}catch(_){if(_ instanceof gv){if(_.silent)return $(this,_t).promise;if(_.revert){if(this.state.data===void 0)throw _;return this.state.data}}throw Le(this,kr,Hn).call(this,{type:"error",error:_}),(P=(E=$(this,$r).config).onError)==null||P.call(E,_,this),(j=(O=$(this,$r).config).onSettled)==null||j.call(O,this.state.data,_,this),_}finally{this.scheduleGc()}}},Jo=new WeakMap,Na=new WeakMap,el=new WeakMap,$r=new WeakMap,Ia=new WeakMap,_t=new WeakMap,pu=new WeakMap,Ma=new WeakMap,kr=new WeakSet,IP=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,...MP(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,...D1(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return pe(this,el,t.manual?i:void 0),i;case"error":const o=t.error;return{...n,error:o,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),Ft.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),$(this,$r).notify({query:this,type:"updated",action:t})})},gP);function MP(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:_P(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function D1(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function R1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var hr,Be,mu,tr,Ta,tl,Vn,Wi,vu,rl,nl,Da,Ra,Hi,il,Ve,Rs,xv,bv,wv,Sv,kv,Ev,Pv,TP,xP,wM=(xP=class extends xu{constructor(t,r){super();Ce(this,Ve);Ce(this,hr);Ce(this,Be);Ce(this,mu);Ce(this,tr);Ce(this,Ta);Ce(this,tl);Ce(this,Vn);Ce(this,Wi);Ce(this,vu);Ce(this,rl);Ce(this,nl);Ce(this,Da);Ce(this,Ra);Ce(this,Hi);Ce(this,il,new Set);this.options=r,pe(this,hr,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)?Le(this,Ve,Rs).call(this):this.updateResult(),Le(this,Ve,Sv).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Av($(this,Be),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Av($(this,Be),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Le(this,Ve,kv).call(this),Le(this,Ve,Ev).call(this),$(this,Be).removeObserver(this)}setOptions(t){const r=this.options,n=$(this,Be);if(this.options=$(this,hr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Er(this.options.enabled,$(this,Be))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Le(this,Ve,Pv).call(this),$(this,Be).setOptions(this.options),r._defaulted&&!pv(this.options,r)&&$(this,hr).getQueryCache().notify({type:"observerOptionsUpdated",query:$(this,Be),observer:this});const i=this.hasListeners();i&&L1($(this,Be),n,this.options,r)&&Le(this,Ve,Rs).call(this),this.updateResult(),i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||Yi(this.options.staleTime,$(this,Be))!==Yi(r.staleTime,$(this,Be)))&&Le(this,Ve,xv).call(this);const o=Le(this,Ve,bv).call(this);i&&($(this,Be)!==n||Er(this.options.enabled,$(this,Be))!==Er(r.enabled,$(this,Be))||o!==$(this,Hi))&&Le(this,Ve,wv).call(this,o)}getOptimisticResult(t){const r=$(this,hr).getQueryCache().build($(this,hr),t),n=this.createResult(r,t);return kM(this,n)&&(pe(this,tr,n),pe(this,tl,this.options),pe(this,Ta,$(this,Be).state)),n}getCurrentResult(){return $(this,tr)}trackResult(t,r){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),r==null||r(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&$(this,Vn).status==="pending"&&$(this,Vn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){$(this,il).add(t)}getCurrentQuery(){return $(this,Be)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=$(this,hr).defaultQueryOptions(t),n=$(this,hr).getQueryCache().build($(this,hr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return Le(this,Ve,Rs).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),$(this,tr)))}createResult(t,r){var z;const n=$(this,Be),i=this.options,o=$(this,tr),s=$(this,Ta),u=$(this,tl),f=t!==n?t.state:$(this,mu),{state:h}=t;let m={...h},v=!1,x;if(r._optimisticResults){const q=this.hasListeners(),X=!q&&$1(t,r),B=q&&L1(t,n,r,i);(X||B)&&(m={...m,...MP(h.data,t.options)}),r._optimisticResults==="isRestoring"&&(m.fetchStatus="idle")}let{error:k,errorUpdatedAt:S,status:E}=m;x=m.data;let P=!1;if(r.placeholderData!==void 0&&x===void 0&&E==="pending"){let q;o!=null&&o.isPlaceholderData&&r.placeholderData===(u==null?void 0:u.placeholderData)?(q=o.data,P=!0):q=typeof r.placeholderData=="function"?r.placeholderData((z=$(this,nl))==null?void 0:z.state.data,$(this,nl)):r.placeholderData,q!==void 0&&(E="success",x=vv(o==null?void 0:o.data,q,r),v=!0)}if(r.select&&x!==void 0&&!P)if(o&&x===(s==null?void 0:s.data)&&r.select===$(this,vu))x=$(this,rl);else try{pe(this,vu,r.select),x=r.select(x),x=vv(o==null?void 0:o.data,x,r),pe(this,rl,x),pe(this,Wi,null)}catch(q){pe(this,Wi,q)}$(this,Wi)&&(k=$(this,Wi),x=$(this,rl),S=Date.now(),E="error");const O=m.fetchStatus==="fetching",j=E==="pending",_=E==="error",N=j&&O,C=x!==void 0,F={status:E,fetchStatus:m.fetchStatus,isPending:j,isSuccess:E==="success",isError:_,isInitialLoading:N,isLoading:N,data:x,dataUpdatedAt:m.dataUpdatedAt,error:k,errorUpdatedAt:S,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:O,isRefetching:O&&!j,isLoadingError:_&&!C,isPaused:m.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:_&&C,isStale:zy(t,r),refetch:this.refetch,promise:$(this,Vn),isEnabled:Er(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const q=F.data!==void 0,X=F.status==="error"&&!q,B=le=>{X?le.reject(F.error):q&&le.resolve(F.data)},ue=()=>{const le=pe(this,Vn,F.promise=yv());B(le)},Y=$(this,Vn);switch(Y.status){case"pending":t.queryHash===n.queryHash&&B(Y);break;case"fulfilled":(X||F.data!==Y.value)&&ue();break;case"rejected":(!X||F.error!==Y.reason)&&ue();break}}return F}updateResult(){const t=$(this,tr),r=this.createResult($(this,Be),this.options);if(pe(this,Ta,$(this,Be).state),pe(this,tl,this.options),$(this,Ta).data!==void 0&&pe(this,nl,$(this,Be)),pv(r,t))return;pe(this,tr,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!$(this,il).size)return!0;const s=new Set(o??$(this,il));return this.options.throwOnError&&s.add("error"),Object.keys($(this,tr)).some(u=>{const d=u;return $(this,tr)[d]!==t[d]&&s.has(d)})};Le(this,Ve,TP).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Le(this,Ve,Sv).call(this)}},hr=new WeakMap,Be=new WeakMap,mu=new WeakMap,tr=new WeakMap,Ta=new WeakMap,tl=new WeakMap,Vn=new WeakMap,Wi=new WeakMap,vu=new WeakMap,rl=new WeakMap,nl=new WeakMap,Da=new WeakMap,Ra=new WeakMap,Hi=new WeakMap,il=new WeakMap,Ve=new WeakSet,Rs=function(t){Le(this,Ve,Pv).call(this);let r=$(this,Be).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(pr)),r},xv=function(){Le(this,Ve,kv).call(this);const t=Yi(this.options.staleTime,$(this,Be));if(qs.isServer()||$(this,tr).isStale||!hv(t))return;const n=PP($(this,tr).dataUpdatedAt,t)+1;pe(this,Da,ka.setTimeout(()=>{$(this,tr).isStale||this.updateResult()},n))},bv=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval($(this,Be)):this.options.refetchInterval)??!1},wv=function(t){Le(this,Ve,Ev).call(this),pe(this,Hi,t),!(qs.isServer()||Er(this.options.enabled,$(this,Be))===!1||!hv($(this,Hi))||$(this,Hi)===0)&&pe(this,Ra,ka.setInterval(()=>{(this.options.refetchIntervalInBackground||Ry.isFocused())&&Le(this,Ve,Rs).call(this)},$(this,Hi)))},Sv=function(){Le(this,Ve,xv).call(this),Le(this,Ve,wv).call(this,Le(this,Ve,bv).call(this))},kv=function(){$(this,Da)!==void 0&&(ka.clearTimeout($(this,Da)),pe(this,Da,void 0))},Ev=function(){$(this,Ra)!==void 0&&(ka.clearInterval($(this,Ra)),pe(this,Ra,void 0))},Pv=function(){const t=$(this,hr).getQueryCache().build($(this,hr),this.options);if(t===$(this,Be))return;const r=$(this,Be);pe(this,Be,t),pe(this,mu,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},TP=function(t){Ft.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r($(this,tr))}),$(this,hr).getQueryCache().notify({query:$(this,Be),type:"observerResultsUpdated"})})},xP);function SM(e,t){return Er(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Er(t.retryOnMount,e)===!1)}function $1(e,t){return SM(e,t)||e.state.data!==void 0&&Av(e,t,t.refetchOnMount)}function Av(e,t,r){if(Er(t.enabled,e)!==!1&&Yi(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&zy(e,t)}return!1}function L1(e,t,r,n){return(e!==t||Er(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&zy(e,r)}function zy(e,t){return Er(t.enabled,e)!==!1&&e.isStaleByTime(Yi(t.staleTime,e))}function kM(e,t){return!pv(e.getCurrentResult(),t)}var yu,xn,Yt,$a,bn,Di,bP,EM=(bP=class extends NP{constructor(t){super();Ce(this,bn);Ce(this,yu);Ce(this,xn);Ce(this,Yt);Ce(this,$a);pe(this,yu,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,$a))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D;const r=()=>{Le(this,bn,Di).call(this,{type:"continue"})},n={client:$(this,yu),meta:this.options.meta,mutationKey:this.options.mutationKey};pe(this,$a,jP({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(F,z)=>{Le(this,bn,Di).call(this,{type:"failed",failureCount:F,error:z})},onPause:()=>{Le(this,bn,Di).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>$(this,Yt).canRun(this)}));const i=this.state.status==="pending",o=!$(this,$a).canStart();try{if(i)r();else{Le(this,bn,Di).call(this,{type:"pending",variables:t,isPaused:o}),$(this,Yt).config.onMutate&&await $(this,Yt).config.onMutate(t,this,n);const z=await((u=(s=this.options).onMutate)==null?void 0:u.call(s,t,n));z!==this.state.context&&Le(this,bn,Di).call(this,{type:"pending",context:z,variables:t,isPaused:o})}const F=await $(this,$a).start();return await((f=(d=$(this,Yt).config).onSuccess)==null?void 0:f.call(d,F,t,this.state.context,this,n)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,F,t,this.state.context,n)),await((x=(v=$(this,Yt).config).onSettled)==null?void 0:x.call(v,F,null,this.state.variables,this.state.context,this,n)),await((S=(k=this.options).onSettled)==null?void 0:S.call(k,F,null,t,this.state.context,n)),Le(this,bn,Di).call(this,{type:"success",data:F}),F}catch(F){try{await((P=(E=$(this,Yt).config).onError)==null?void 0:P.call(E,F,t,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((j=(O=this.options).onError)==null?void 0:j.call(O,F,t,this.state.context,n))}catch(z){Promise.reject(z)}try{await((N=(_=$(this,Yt).config).onSettled)==null?void 0:N.call(_,void 0,F,this.state.variables,this.state.context,this,n))}catch(z){Promise.reject(z)}try{await((D=(C=this.options).onSettled)==null?void 0:D.call(C,void 0,F,t,this.state.context,n))}catch(z){Promise.reject(z)}throw Le(this,bn,Di).call(this,{type:"error",error:F}),F}finally{$(this,Yt).runNext(this)}}},yu=new WeakMap,xn=new WeakMap,Yt=new WeakMap,$a=new WeakMap,bn=new WeakSet,Di=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),Ft.batch(()=>{$(this,xn).forEach(n=>{n.onMutationUpdate(t)}),$(this,Yt).notify({mutation:this,type:"updated",action:t})})},bP);function PM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var qn,tn,gu,wP,AM=(wP=class extends xu{constructor(t={}){super();Ce(this,qn);Ce(this,tn);Ce(this,gu);this.config=t,pe(this,qn,new Set),pe(this,tn,new Map),pe(this,gu,0)}build(t,r,n){const i=new EM({client:t,mutationCache:this,mutationId:++Kc(this,gu)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){$(this,qn).add(t);const r=qc(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=qc(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=qc(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=qc(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(pr))))}},qn=new WeakMap,tn=new WeakMap,gu=new WeakMap,wP);function qc(e){var t;return(t=e.options.scope)==null?void 0:t.id}var wn,SP,OM=(SP=class extends xu{constructor(t={}){super();Ce(this,wn);this.config=t,pe(this,wn,new Map)}build(t,r,n){const i=r.queryKey,o=r.queryHash??$y(i,r);let s=this.get(o);return s||(s=new bM({client:t,queryKey:i,queryHash:o,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(s)),s}add(t){$(this,wn).has(t.queryHash)||($(this,wn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=$(this,wn).get(t.queryHash);r&&(t.destroy(),r===t&&$(this,wn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ft.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return $(this,wn).get(t)}getAll(){return[...$(this,wn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>j1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>j1(t,n)):r}notify(t){Ft.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ft.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},wn=new WeakMap,SP),dt,Ki,Vi,al,ol,qi,ll,sl,kP,CM=(kP=class{constructor(e={}){Ce(this,dt);Ce(this,Ki);Ce(this,Vi);Ce(this,al);Ce(this,ol);Ce(this,qi);Ce(this,ll);Ce(this,sl);pe(this,dt,e.queryCache||new OM),pe(this,Ki,e.mutationCache||new AM),pe(this,Vi,e.defaultOptions||{}),pe(this,al,new Map),pe(this,ol,new Map),pe(this,qi,0)}mount(){Kc(this,qi)._++,$(this,qi)===1&&(pe(this,ll,Ry.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onFocus())})),pe(this,sl,Od.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,dt).onOnline())})))}unmount(){var e,t;Kc(this,qi)._--,$(this,qi)===0&&((e=$(this,ll))==null||e.call(this),pe(this,ll,void 0),(t=$(this,sl))==null||t.call(this),pe(this,sl,void 0))}isFetching(e){return $(this,dt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return $(this,Ki).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=$(this,dt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(Yi(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return $(this,dt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),i=$(this,dt).get(n.queryHash),o=i==null?void 0:i.state.data,s=sM(t,o);if(s!==void 0)return $(this,dt).build(this,n).setData(s,{...r,manual:!0})}setQueriesData(e,t,r){return Ft.batch(()=>$(this,dt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=$(this,dt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=$(this,dt);Ft.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=$(this,dt);return Ft.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=Ft.batch(()=>$(this,dt).findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(pr).catch(pr)}invalidateQueries(e,t={}){return Ft.batch(()=>($(this,dt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=Ft.batch(()=>$(this,dt).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let o=i.fetch(void 0,r);return r.throwOnError||(o=o.catch(pr)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(pr)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=$(this,dt).build(this,t);return r.isStaleByTime(Yi(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(pr).catch(pr)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(pr).catch(pr)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Od.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,al).set(Ks(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...$(this,al).values()],r={};return t.forEach(n=>{Vs(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){$(this,ol).set(Ks(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...$(this,ol).values()],r={};return t.forEach(n=>{Vs(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...$(this,Vi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=$y(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Ly&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...$(this,Vi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){$(this,dt).clear(),$(this,Ki).clear()}},dt=new WeakMap,Ki=new WeakMap,Vi=new WeakMap,al=new WeakMap,ol=new WeakMap,qi=new WeakMap,ll=new WeakMap,sl=new WeakMap,kP),DP=g.createContext(void 0),Af=e=>{const t=g.useContext(DP);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},_M=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),w.jsx(DP.Provider,{value:e,children:t})),RP=g.createContext(!1),jM=()=>g.useContext(RP);RP.Provider;function NM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var IM=g.createContext(NM()),MM=()=>g.useContext(IM),TM=(e,t,r)=>{const n=r!=null&&r.state.error&&typeof e.throwOnError=="function"?CP(e.throwOnError,[r.state.error,r]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},DM=e=>{g.useEffect(()=>{e.clearReset()},[e])},RM=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||CP(r,[e.error,n])),$M=e=>{if(e.suspense){const r=i=>i==="static"?i:Math.max(i??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...i)=>r(n(...i)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},LM=(e,t)=>e.isLoading&&e.isFetching&&!t,zM=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,z1=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function FM(e,t,r){var x,k,S,E;const n=jM(),i=MM(),o=Af(),s=o.defaultQueryOptions(e);(k=(x=o.getDefaultOptions().queries)==null?void 0:x._experimental_beforeQuery)==null||k.call(x,s);const u=o.getQueryCache().get(s.queryHash),d=e.subscribed!==!1;s._optimisticResults=n?"isRestoring":d?"optimistic":void 0,$M(s),TM(s,i,u),DM(i);const f=!o.getQueryCache().get(s.queryHash),[h]=g.useState(()=>new t(o,s)),m=h.getOptimisticResult(s),v=!n&&d;if(g.useSyncExternalStore(g.useCallback(P=>{const O=v?h.subscribe(Ft.batchCalls(P)):pr;return h.updateResult(),O},[h,v]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),g.useEffect(()=>{h.setOptions(s)},[s,h]),zM(s,m))throw z1(s,h,i);if(RM({result:m,errorResetBoundary:i,throwOnError:s.throwOnError,query:u,suspense:s.suspense}))throw m.error;if((E=(S=o.getDefaultOptions().queries)==null?void 0:S._experimental_afterQuery)==null||E.call(S,s,m),s.experimental_prefetchInRender&&!qs.isServer()&&LM(m,n)){const P=f?z1(s,h,i):u==null?void 0:u.promise;P==null||P.catch(pr).finally(()=>{h.updateResult()})}return s.notifyOnChangeProps?m:h.trackResult(m)}function at(e,t){return FM(e,wM)}const BM="modulepreload",UM=function(e){return"/"+e},F1={},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 v=document.createElement("link");if(v.rel=h?"stylesheet":BM,h||(v.as="script"),v.crossOrigin="",v.href=f,d&&v.setAttribute("nonce",d),document.head.appendChild(v),h)return new Promise((x,k)=>{v.addEventListener("load",x),v.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${f}`)))})}))}function o(s){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=s,window.dispatchEvent(u),!u.defaultPrevented)throw s}return i.then(s=>{for(const u of s||[])u.status==="rejected"&&o(u.reason);return t().catch(o)})};/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -113,7 +113,7 @@ Error generating stack: `+b.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Bs=je("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + */const Fs=je("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -248,7 +248,7 @@ Error generating stack: `+b.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ho=je("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + */const Wo=je("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. @@ -313,12 +313,12 @@ Error generating stack: `+b.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Cf=je("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Ko=[{id:"dashboard",label:"Cockpit",hint:"Deine Box auf einen Blick",icon:dT,group:"Operativ"},{id:"ideen",label:"Ideen",hint:"Schreib hin, was entstehen soll",icon:hT,group:"Operativ"},{id:"auftraege",label:"Auftragsbuch",hint:"Vorschläge der Box — annehmen oder ablehnen",icon:Fy,group:"Operativ"},{id:"skills",label:"Skills & Jobs",hint:"Autonome Skills manuell auslösen",icon:Gs,group:"Operativ"},{id:"chronik",label:"Chronik",hint:"Was die Box von allein getan hat + Zeitmaschine",icon:uT,group:"Operativ"},{id:"wissen",label:"Wissen",hint:"Lucys Wissens-Vault (Traum-Notizen)",icon:fT,group:"Wissen"},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:Uy,group:"Werkzeuge"},{id:"konsole",label:"Konsole",hint:"Direkte Box-Shell (SSH-artig)",icon:wT,group:"Werkzeuge"},{id:"guide",label:"Anleitung",hint:"Einrichten & Vibe-Coding",icon:zP,group:"Werkzeuge"},{id:"models",label:"Modelle",hint:"Speicher, laden & Rollen",icon:LP,group:"Wartung"},{id:"agent",label:"Hermes",hint:"Agent-Status & Verdrahtung",icon:Gs,group:"Wartung"}];var H1=1,ET=.9,PT=.8,AT=.17,wm=.1,Sm=.999,OT=.9999,CT=.99,_T=/[\\\/_+.#"@\[\(\{&]/,jT=/[\\\/_+.#"@\[\(\{&]/g,NT=/[\s-]/,UP=/[\s-]/g;function Cv(e,t,r,n,i,o,s){if(o===t.length)return i===e.length?H1:CT;var u=`${i},${o}`;if(s[u]!==void 0)return s[u];for(var d=n.charAt(o),f=r.indexOf(d,i),h=0,m,v,x,k;f>=0;)m=Cv(e,t,r,n,f+1,o+1,s),m>h&&(f===i?m*=H1:_T.test(e.charAt(f-1))?(m*=PT,x=e.slice(i,f-1).match(jT),x&&i>0&&(m*=Math.pow(Sm,x.length))):NT.test(e.charAt(f-1))?(m*=ET,k=e.slice(i,f-1).match(UP),k&&i>0&&(m*=Math.pow(Sm,k.length))):(m*=AT,i>0&&(m*=Math.pow(Sm,f-i))),e.charAt(f)!==t.charAt(o)&&(m*=OT)),(mm&&(m=v*wm)),m>h&&(h=m),f=r.indexOf(d,f+1);return s[u]=h,h}function K1(e){return e.toLowerCase().replace(UP," ")}function IT(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,Cv(e,t,K1(e),K1(t),0,0,{})}function Qi(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e==null||e(i),r===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function V1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function cl(...e){return t=>{let r=!1;const n=e.map(i=>{const o=V1(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i{var P;const{scope:v,children:x,...k}=m,S=((P=v==null?void 0:v[e])==null?void 0:P[d])||u,E=g.useMemo(()=>k,Object.values(k));return w.jsx(S.Provider,{value:E,children:x})};f.displayName=o+"Provider";function h(m,v){var S;const x=((S=v==null?void 0:v[e])==null?void 0:S[d])||u,k=g.useContext(x);if(k)return k;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${o}\``)}return[f,h]}const i=()=>{const o=r.map(s=>g.createContext(s));return function(u){const d=(u==null?void 0:u[e])||o;return g.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return i.scopeName=e,[n,TT(i,...t)]}function TT(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=n.reduce((u,{useScope:d,scopeName:f})=>{const m=d(o)[`__scope${f}`];return{...u,...m}},{});return g.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}var Qs=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},DT=Pf[" useId ".trim().toString()]||(()=>{}),RT=0;function Zn(e){const[t,r]=g.useState(DT());return Qs(()=>{r(n=>n??String(RT++))},[e]),t?`radix-${t}`:""}var $T=Pf[" useInsertionEffect ".trim().toString()]||Qs;function LT({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=zT({defaultProp:t,onChange:r}),u=e!==void 0,d=u?e:i;{const h=g.useRef(e!==void 0);g.useEffect(()=>{const m=h.current;m!==u&&console.warn(`${n} is changing from ${m?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),h.current=u},[u,n])}const f=g.useCallback(h=>{var m;if(u){const v=FT(h)?h(e):h;v!==e&&((m=s.current)==null||m.call(s,v))}else o(h)},[u,e,o,s]);return[d,f]}function zT({defaultProp:e,onChange:t}){const[r,n]=g.useState(e),i=g.useRef(r),o=g.useRef(t);return $T(()=>{o.current=t},[t]),g.useEffect(()=>{var s;i.current!==r&&((s=o.current)==null||s.call(o,r),i.current=r)},[r,i]),[r,n,o]}function FT(e){return typeof e=="function"}var _f=EP();function WP(e){const t=g.forwardRef((r,n)=>{let{children:i,...o}=r,s=null,u=!1;const d=[];q1(i)&&typeof Gc=="function"&&(i=Gc(i._payload)),g.Children.forEach(i,v=>{var x;if(KT(v)){u=!0;const k=v;let S="child"in k.props?k.props.child:k.props.children;q1(S)&&typeof Gc=="function"&&(S=Gc(S._payload)),s=UT(k,S),d.push((x=s==null?void 0:s.props)==null?void 0:x.children)}else d.push(v)}),s?s=g.cloneElement(s,void 0,d):!u&&g.Children.count(i)===1&&g.isValidElement(i)&&(s=i);const f=s?HT(s):void 0,h=Xa(n,f);if(!s){if(i||i===0)throw new Error(u?YT(e):GT(e));return i}const m=WT(o,s.props??{});return s.type!==g.Fragment&&(m.ref=n?h:f),g.cloneElement(s,m)});return t.displayName=`${e}.Slot`,t}var BT=Symbol.for("radix.slottable"),UT=(e,t)=>{if("child"in e.props){const r=e.props.child;return g.isValidElement(r)?g.cloneElement(r,void 0,e.props.children(r.props.children)):null}return g.isValidElement(t)?t:null};function WT(e,t){const r={...t};for(const n in t){const i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...u)=>{const d=o(...u);return i(...u),d}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}function HT(e){var n,i;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function KT(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===BT}var VT=Symbol.for("react.lazy");function q1(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===VT&&"_payload"in e&&qT(e._payload)}function qT(e){return typeof e=="object"&&e!==null&&"then"in e}var GT=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,YT=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Gc=Pf[" use ".trim().toString()],QT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Wt=QT.reduce((e,t)=>{const r=WP(`Primitive.${t}`),n=g.forwardRef((i,o)=>{const{asChild:s,...u}=i,d=s?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),w.jsx(d,{...u,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function XT(e,t){e&&_f.flushSync(()=>e.dispatchEvent(t))}function Xs(e){const t=g.useRef(e);return g.useEffect(()=>{t.current=e}),g.useMemo(()=>((...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)}),[])}function ZT(e,t=globalThis==null?void 0:globalThis.document){const r=Xs(e);g.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var JT="DismissableLayer",_v="dismissableLayer.update",eD="dismissableLayer.pointerDownOutside",tD="dismissableLayer.focusOutside",G1,Ky=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),HP=g.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:n=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:u,onDismiss:d,...f}=e,h=g.useContext(Ky),[m,v]=g.useState(null),x=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,k]=g.useState({}),S=Xa(t,z=>v(z)),E=Array.from(h.layers),[P]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),O=E.indexOf(P),j=m?E.indexOf(m):-1,_=h.layersWithOutsidePointerEventsDisabled.size>0,N=j>=O,C=g.useRef(!1),D=aD(z=>{const q=z.target;if(!(q instanceof Node))return;const X=[...h.branches].some(B=>B.contains(q));!N||X||(o==null||o(z),u==null||u(z),z.defaultPrevented||d==null||d())},{ownerDocument:x,deferPointerDownOutside:n,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:h.dismissableSurfaces}),F=oD(z=>{if(n&&C.current)return;const q=z.target;[...h.branches].some(B=>B.contains(q))||(s==null||s(z),u==null||u(z),z.defaultPrevented||d==null||d())},x);return ZT(z=>{j===h.layers.size-1&&(i==null||i(z),!z.defaultPrevented&&d&&(z.preventDefault(),d()))},x),g.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(G1=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),Y1(),()=>{r&&(h.layersWithOutsidePointerEventsDisabled.delete(m),h.layersWithOutsidePointerEventsDisabled.size===0&&(x.body.style.pointerEvents=G1))}},[m,x,r,h]),g.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),Y1())},[m,h]),g.useEffect(()=>{const z=()=>k({});return document.addEventListener(_v,z),()=>document.removeEventListener(_v,z)},[]),w.jsx(Wt.div,{...f,ref:S,style:{pointerEvents:_?N?"auto":"none":void 0,...e.style},onFocusCapture:Qi(e.onFocusCapture,F.onFocusCapture),onBlurCapture:Qi(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:Qi(e.onPointerDownCapture,D.onPointerDownCapture)})});HP.displayName=JT;var rD="DismissableLayerBranch",nD=g.forwardRef((e,t)=>{const r=g.useContext(Ky),n=g.useRef(null),i=Xa(t,n);return g.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),w.jsx(Wt.div,{...e,ref:i})});nD.displayName=rD;function iD(){const e=g.useContext(Ky),[t,r]=g.useState(null);return g.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),r}function aD(e,t){const{ownerDocument:r=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:n=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:o}=t,s=Xs(e),u=g.useRef(!1),d=g.useRef(!1),f=g.useRef(new Map),h=g.useRef(()=>{});return g.useEffect(()=>{function m(){d.current=!1,i.current=!1,f.current.clear()}function v(){return Array.from(f.current.values()).some(Boolean)}function x(O){if(!d.current)return;const j=O.target;j instanceof Node&&[...o].some(N=>N.contains(j))||f.current.set(O.type,!0),O.type==="click"&&window.setTimeout(()=>{d.current&&h.current()},0)}function k(O){d.current&&f.current.set(O.type,!1)}const S=O=>{if(O.target&&!u.current){let j=function(){r.removeEventListener("click",h.current);const N=v();m(),N||KP(eD,s,_,{discrete:!0})};const _={originalEvent:O};d.current=!0,i.current=n&&O.button===0,f.current.clear(),!n||O.button!==0?j():(r.removeEventListener("click",h.current),h.current=j,r.addEventListener("click",h.current,{once:!0}))}else r.removeEventListener("click",h.current),m();u.current=!1},E=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const O of E)r.addEventListener(O,x,!0),r.addEventListener(O,k);const P=window.setTimeout(()=>{r.addEventListener("pointerdown",S)},0);return()=>{window.clearTimeout(P),r.removeEventListener("pointerdown",S),r.removeEventListener("click",h.current);for(const O of E)r.removeEventListener(O,x,!0),r.removeEventListener(O,k)}},[r,s,n,i,o]),{onPointerDownCapture:()=>u.current=!0}}function oD(e,t=globalThis==null?void 0:globalThis.document){const r=Xs(e),n=g.useRef(!1);return g.useEffect(()=>{const i=o=>{o.target&&!n.current&&KP(tD,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function Y1(){const e=new CustomEvent(_v);document.dispatchEvent(e)}function KP(e,t,r,{discrete:n}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?XT(i,o):i.dispatchEvent(o)}var km="focusScope.autoFocusOnMount",Em="focusScope.autoFocusOnUnmount",Q1={bubbles:!1,cancelable:!0},lD="FocusScope",VP=g.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[u,d]=g.useState(null),f=Xs(i),h=Xs(o),m=g.useRef(null),v=Xa(t,S=>d(S)),x=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(n){let S=function(j){if(x.paused||!u)return;const _=j.target;u.contains(_)?m.current=_:Ri(m.current,{select:!0})},E=function(j){if(x.paused||!u)return;const _=j.relatedTarget;_!==null&&(u.contains(_)||Ri(m.current,{select:!0}))},P=function(j){if(document.activeElement===document.body)for(const N of j)N.removedNodes.length>0&&Ri(u)};document.addEventListener("focusin",S),document.addEventListener("focusout",E);const O=new MutationObserver(P);return u&&O.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",E),O.disconnect()}}},[n,u,x.paused]),g.useEffect(()=>{if(u){Z1.add(x);const S=document.activeElement;if(!u.contains(S)){const P=new CustomEvent(km,Q1);u.addEventListener(km,f),u.dispatchEvent(P),P.defaultPrevented||(sD(hD(qP(u)),{select:!0}),document.activeElement===S&&Ri(u))}return()=>{u.removeEventListener(km,f),setTimeout(()=>{const P=new CustomEvent(Em,Q1);u.addEventListener(Em,h),u.dispatchEvent(P),P.defaultPrevented||Ri(S??document.body,{select:!0}),u.removeEventListener(Em,h),Z1.remove(x)},0)}}},[u,f,h,x]);const k=g.useCallback(S=>{if(!r&&!n||x.paused)return;const E=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,P=document.activeElement;if(E&&P){const O=S.currentTarget,[j,_]=uD(O);j&&_?!S.shiftKey&&P===_?(S.preventDefault(),r&&Ri(j,{select:!0})):S.shiftKey&&P===j&&(S.preventDefault(),r&&Ri(_,{select:!0})):P===O&&S.preventDefault()}},[r,n,x.paused]);return w.jsx(Wt.div,{tabIndex:-1,...s,ref:v,onKeyDown:k})});VP.displayName=lD;function sD(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Ri(n,{select:t}),document.activeElement!==r)return}function uD(e){const t=qP(e),r=X1(t,e),n=X1(t.reverse(),e);return[r,n]}function qP(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function X1(e,t){for(const r of e)if(!cD(r,{upTo:t}))return r}function cD(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function dD(e){return e instanceof HTMLInputElement&&"select"in e}function Ri(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&dD(e)&&t&&e.select()}}var Z1=fD();function fD(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=J1(e,t),e.unshift(t)},remove(t){var r;e=J1(e,t),(r=e[0])==null||r.resume()}}}function J1(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function hD(e){return e.filter(t=>t.tagName!=="A")}var pD="Portal",GP=g.forwardRef((e,t)=>{var u;const{container:r,...n}=e,[i,o]=g.useState(!1);Qs(()=>o(!0),[]);const s=r||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return s?_f.createPortal(w.jsx(Wt.div,{...n,ref:t}),s):null});GP.displayName=pD;function mD(e,t){return g.useReducer((r,n)=>t[r][n]??r,e)}var jf=e=>{const{present:t,children:r}=e,n=vD(t),i=typeof r=="function"?r({present:n.isPresent}):g.Children.only(r),o=yD(n.ref,gD(i));return typeof r=="function"||n.isPresent?g.cloneElement(i,{ref:o}):null};jf.displayName="Presence";function vD(e){const[t,r]=g.useState(),n=g.useRef(null),i=g.useRef(e),o=g.useRef("none"),s=e?"mounted":"unmounted",[u,d]=mD(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const f=Yc(n.current);o.current=u==="mounted"?f:"none"},[u]),Qs(()=>{const f=n.current,h=i.current;if(h!==e){const v=o.current,x=Yc(f);e?d("MOUNT"):x==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(h&&v!==x?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),Qs(()=>{if(t){let f;const h=t.ownerDocument.defaultView??window,m=x=>{const S=Yc(n.current).includes(CSS.escape(x.animationName));if(x.target===t&&S&&(d("ANIMATION_END"),!i.current)){const E=t.style.animationFillMode;t.style.animationFillMode="forwards",f=h.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=E)})}},v=x=>{x.target===t&&(o.current=Yc(n.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{h.clearTimeout(f),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:g.useCallback(f=>{n.current=f?getComputedStyle(f):null,r(f)},[])}}function ew(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function yD(...e){const t=g.useRef(e);return t.current=e,g.useCallback(r=>{const n=t.current;let i=!1;const o=n.map(s=>{const u=ew(s,r);return!i&&typeof u=="function"&&(i=!0),u});if(i)return()=>{for(let s=0;s{mn||(mn={start:tw(),end:tw()});const{start:e,end:t}=mn;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Qc++,()=>{Qc===1&&(mn==null||mn.start.remove(),mn==null||mn.end.remove(),mn=null),Qc=Math.max(0,Qc-1)}},[])}function tw(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Sn=function(){return Sn=Object.assign||function(t){for(var r,n=1,i=arguments.length;n"u")return RD;var t=$D(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},zD=ZP(),Vo="data-scroll-locked",FD=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,u=e.gap;return r===void 0&&(r="margin"),` + */const Cf=je("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Ho=[{id:"dashboard",label:"Cockpit",hint:"Deine Box auf einen Blick",icon:dT,group:"Operativ"},{id:"ideen",label:"Ideen",hint:"Schreib hin, was entstehen soll",icon:hT,group:"Operativ"},{id:"auftraege",label:"Auftragsbuch",hint:"Vorschläge der Box — annehmen oder ablehnen",icon:Fy,group:"Operativ"},{id:"skills",label:"Skills & Jobs",hint:"Autonome Skills manuell auslösen",icon:Gs,group:"Operativ"},{id:"chronik",label:"Chronik",hint:"Was die Box von allein getan hat + Zeitmaschine",icon:uT,group:"Operativ"},{id:"wissen",label:"Wissen",hint:"Lucys Wissens-Vault (Traum-Notizen)",icon:fT,group:"Wissen"},{id:"connect",label:"Verbinden",hint:"IDE-/Agent-Configs erzeugen",icon:Uy,group:"Werkzeuge"},{id:"konsole",label:"Konsole",hint:"Direkte Box-Shell (SSH-artig)",icon:wT,group:"Werkzeuge"},{id:"guide",label:"Anleitung",hint:"Einrichten & Vibe-Coding",icon:zP,group:"Werkzeuge"},{id:"models",label:"Modelle",hint:"Speicher, laden & Rollen",icon:LP,group:"Wartung"},{id:"agent",label:"Hermes",hint:"Agent-Status & Verdrahtung",icon:Gs,group:"Wartung"}];var H1=1,ET=.9,PT=.8,AT=.17,wm=.1,Sm=.999,OT=.9999,CT=.99,_T=/[\\\/_+.#"@\[\(\{&]/,jT=/[\\\/_+.#"@\[\(\{&]/g,NT=/[\s-]/,UP=/[\s-]/g;function Cv(e,t,r,n,i,o,s){if(o===t.length)return i===e.length?H1:CT;var u=`${i},${o}`;if(s[u]!==void 0)return s[u];for(var d=n.charAt(o),f=r.indexOf(d,i),h=0,m,v,x,k;f>=0;)m=Cv(e,t,r,n,f+1,o+1,s),m>h&&(f===i?m*=H1:_T.test(e.charAt(f-1))?(m*=PT,x=e.slice(i,f-1).match(jT),x&&i>0&&(m*=Math.pow(Sm,x.length))):NT.test(e.charAt(f-1))?(m*=ET,k=e.slice(i,f-1).match(UP),k&&i>0&&(m*=Math.pow(Sm,k.length))):(m*=AT,i>0&&(m*=Math.pow(Sm,f-i))),e.charAt(f)!==t.charAt(o)&&(m*=OT)),(mm&&(m=v*wm)),m>h&&(h=m),f=r.indexOf(d,f+1);return s[u]=h,h}function K1(e){return e.toLowerCase().replace(UP," ")}function IT(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,Cv(e,t,K1(e),K1(t),0,0,{})}function Qi(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e==null||e(i),r===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function V1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function ul(...e){return t=>{let r=!1;const n=e.map(i=>{const o=V1(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i{var P;const{scope:v,children:x,...k}=m,S=((P=v==null?void 0:v[e])==null?void 0:P[d])||u,E=g.useMemo(()=>k,Object.values(k));return w.jsx(S.Provider,{value:E,children:x})};f.displayName=o+"Provider";function h(m,v){var S;const x=((S=v==null?void 0:v[e])==null?void 0:S[d])||u,k=g.useContext(x);if(k)return k;if(s!==void 0)return s;throw new Error(`\`${m}\` must be used within \`${o}\``)}return[f,h]}const i=()=>{const o=r.map(s=>g.createContext(s));return function(u){const d=(u==null?void 0:u[e])||o;return g.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return i.scopeName=e,[n,TT(i,...t)]}function TT(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=n.reduce((u,{useScope:d,scopeName:f})=>{const m=d(o)[`__scope${f}`];return{...u,...m}},{});return g.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}var Qs=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},DT=Pf[" useId ".trim().toString()]||(()=>{}),RT=0;function Zn(e){const[t,r]=g.useState(DT());return Qs(()=>{r(n=>n??String(RT++))},[e]),t?`radix-${t}`:""}var $T=Pf[" useInsertionEffect ".trim().toString()]||Qs;function LT({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=zT({defaultProp:t,onChange:r}),u=e!==void 0,d=u?e:i;{const h=g.useRef(e!==void 0);g.useEffect(()=>{const m=h.current;m!==u&&console.warn(`${n} is changing from ${m?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),h.current=u},[u,n])}const f=g.useCallback(h=>{var m;if(u){const v=FT(h)?h(e):h;v!==e&&((m=s.current)==null||m.call(s,v))}else o(h)},[u,e,o,s]);return[d,f]}function zT({defaultProp:e,onChange:t}){const[r,n]=g.useState(e),i=g.useRef(r),o=g.useRef(t);return $T(()=>{o.current=t},[t]),g.useEffect(()=>{var s;i.current!==r&&((s=o.current)==null||s.call(o,r),i.current=r)},[r,i]),[r,n,o]}function FT(e){return typeof e=="function"}var _f=EP();function WP(e){const t=g.forwardRef((r,n)=>{let{children:i,...o}=r,s=null,u=!1;const d=[];q1(i)&&typeof Gc=="function"&&(i=Gc(i._payload)),g.Children.forEach(i,v=>{var x;if(KT(v)){u=!0;const k=v;let S="child"in k.props?k.props.child:k.props.children;q1(S)&&typeof Gc=="function"&&(S=Gc(S._payload)),s=UT(k,S),d.push((x=s==null?void 0:s.props)==null?void 0:x.children)}else d.push(v)}),s?s=g.cloneElement(s,void 0,d):!u&&g.Children.count(i)===1&&g.isValidElement(i)&&(s=i);const f=s?HT(s):void 0,h=Qa(n,f);if(!s){if(i||i===0)throw new Error(u?YT(e):GT(e));return i}const m=WT(o,s.props??{});return s.type!==g.Fragment&&(m.ref=n?h:f),g.cloneElement(s,m)});return t.displayName=`${e}.Slot`,t}var BT=Symbol.for("radix.slottable"),UT=(e,t)=>{if("child"in e.props){const r=e.props.child;return g.isValidElement(r)?g.cloneElement(r,void 0,e.props.children(r.props.children)):null}return g.isValidElement(t)?t:null};function WT(e,t){const r={...t};for(const n in t){const i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...u)=>{const d=o(...u);return i(...u),d}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}function HT(e){var n,i;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function KT(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===BT}var VT=Symbol.for("react.lazy");function q1(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===VT&&"_payload"in e&&qT(e._payload)}function qT(e){return typeof e=="object"&&e!==null&&"then"in e}var GT=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,YT=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Gc=Pf[" use ".trim().toString()],QT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Wt=QT.reduce((e,t)=>{const r=WP(`Primitive.${t}`),n=g.forwardRef((i,o)=>{const{asChild:s,...u}=i,d=s?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),w.jsx(d,{...u,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function XT(e,t){e&&_f.flushSync(()=>e.dispatchEvent(t))}function Xs(e){const t=g.useRef(e);return g.useEffect(()=>{t.current=e}),g.useMemo(()=>((...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)}),[])}function ZT(e,t=globalThis==null?void 0:globalThis.document){const r=Xs(e);g.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var JT="DismissableLayer",_v="dismissableLayer.update",eD="dismissableLayer.pointerDownOutside",tD="dismissableLayer.focusOutside",G1,Ky=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),HP=g.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:n=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:u,onDismiss:d,...f}=e,h=g.useContext(Ky),[m,v]=g.useState(null),x=(m==null?void 0:m.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,k]=g.useState({}),S=Qa(t,z=>v(z)),E=Array.from(h.layers),[P]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),O=E.indexOf(P),j=m?E.indexOf(m):-1,_=h.layersWithOutsidePointerEventsDisabled.size>0,N=j>=O,C=g.useRef(!1),D=aD(z=>{const q=z.target;if(!(q instanceof Node))return;const X=[...h.branches].some(B=>B.contains(q));!N||X||(o==null||o(z),u==null||u(z),z.defaultPrevented||d==null||d())},{ownerDocument:x,deferPointerDownOutside:n,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:h.dismissableSurfaces}),F=oD(z=>{if(n&&C.current)return;const q=z.target;[...h.branches].some(B=>B.contains(q))||(s==null||s(z),u==null||u(z),z.defaultPrevented||d==null||d())},x);return ZT(z=>{j===h.layers.size-1&&(i==null||i(z),!z.defaultPrevented&&d&&(z.preventDefault(),d()))},x),g.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(G1=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),Y1(),()=>{r&&(h.layersWithOutsidePointerEventsDisabled.delete(m),h.layersWithOutsidePointerEventsDisabled.size===0&&(x.body.style.pointerEvents=G1))}},[m,x,r,h]),g.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),Y1())},[m,h]),g.useEffect(()=>{const z=()=>k({});return document.addEventListener(_v,z),()=>document.removeEventListener(_v,z)},[]),w.jsx(Wt.div,{...f,ref:S,style:{pointerEvents:_?N?"auto":"none":void 0,...e.style},onFocusCapture:Qi(e.onFocusCapture,F.onFocusCapture),onBlurCapture:Qi(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:Qi(e.onPointerDownCapture,D.onPointerDownCapture)})});HP.displayName=JT;var rD="DismissableLayerBranch",nD=g.forwardRef((e,t)=>{const r=g.useContext(Ky),n=g.useRef(null),i=Qa(t,n);return g.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),w.jsx(Wt.div,{...e,ref:i})});nD.displayName=rD;function iD(){const e=g.useContext(Ky),[t,r]=g.useState(null);return g.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),r}function aD(e,t){const{ownerDocument:r=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:n=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:o}=t,s=Xs(e),u=g.useRef(!1),d=g.useRef(!1),f=g.useRef(new Map),h=g.useRef(()=>{});return g.useEffect(()=>{function m(){d.current=!1,i.current=!1,f.current.clear()}function v(){return Array.from(f.current.values()).some(Boolean)}function x(O){if(!d.current)return;const j=O.target;j instanceof Node&&[...o].some(N=>N.contains(j))||f.current.set(O.type,!0),O.type==="click"&&window.setTimeout(()=>{d.current&&h.current()},0)}function k(O){d.current&&f.current.set(O.type,!1)}const S=O=>{if(O.target&&!u.current){let j=function(){r.removeEventListener("click",h.current);const N=v();m(),N||KP(eD,s,_,{discrete:!0})};const _={originalEvent:O};d.current=!0,i.current=n&&O.button===0,f.current.clear(),!n||O.button!==0?j():(r.removeEventListener("click",h.current),h.current=j,r.addEventListener("click",h.current,{once:!0}))}else r.removeEventListener("click",h.current),m();u.current=!1},E=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const O of E)r.addEventListener(O,x,!0),r.addEventListener(O,k);const P=window.setTimeout(()=>{r.addEventListener("pointerdown",S)},0);return()=>{window.clearTimeout(P),r.removeEventListener("pointerdown",S),r.removeEventListener("click",h.current);for(const O of E)r.removeEventListener(O,x,!0),r.removeEventListener(O,k)}},[r,s,n,i,o]),{onPointerDownCapture:()=>u.current=!0}}function oD(e,t=globalThis==null?void 0:globalThis.document){const r=Xs(e),n=g.useRef(!1);return g.useEffect(()=>{const i=o=>{o.target&&!n.current&&KP(tD,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function Y1(){const e=new CustomEvent(_v);document.dispatchEvent(e)}function KP(e,t,r,{discrete:n}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?XT(i,o):i.dispatchEvent(o)}var km="focusScope.autoFocusOnMount",Em="focusScope.autoFocusOnUnmount",Q1={bubbles:!1,cancelable:!0},lD="FocusScope",VP=g.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[u,d]=g.useState(null),f=Xs(i),h=Xs(o),m=g.useRef(null),v=Qa(t,S=>d(S)),x=g.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;g.useEffect(()=>{if(n){let S=function(j){if(x.paused||!u)return;const _=j.target;u.contains(_)?m.current=_:Ri(m.current,{select:!0})},E=function(j){if(x.paused||!u)return;const _=j.relatedTarget;_!==null&&(u.contains(_)||Ri(m.current,{select:!0}))},P=function(j){if(document.activeElement===document.body)for(const N of j)N.removedNodes.length>0&&Ri(u)};document.addEventListener("focusin",S),document.addEventListener("focusout",E);const O=new MutationObserver(P);return u&&O.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",E),O.disconnect()}}},[n,u,x.paused]),g.useEffect(()=>{if(u){Z1.add(x);const S=document.activeElement;if(!u.contains(S)){const P=new CustomEvent(km,Q1);u.addEventListener(km,f),u.dispatchEvent(P),P.defaultPrevented||(sD(hD(qP(u)),{select:!0}),document.activeElement===S&&Ri(u))}return()=>{u.removeEventListener(km,f),setTimeout(()=>{const P=new CustomEvent(Em,Q1);u.addEventListener(Em,h),u.dispatchEvent(P),P.defaultPrevented||Ri(S??document.body,{select:!0}),u.removeEventListener(Em,h),Z1.remove(x)},0)}}},[u,f,h,x]);const k=g.useCallback(S=>{if(!r&&!n||x.paused)return;const E=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,P=document.activeElement;if(E&&P){const O=S.currentTarget,[j,_]=uD(O);j&&_?!S.shiftKey&&P===_?(S.preventDefault(),r&&Ri(j,{select:!0})):S.shiftKey&&P===j&&(S.preventDefault(),r&&Ri(_,{select:!0})):P===O&&S.preventDefault()}},[r,n,x.paused]);return w.jsx(Wt.div,{tabIndex:-1,...s,ref:v,onKeyDown:k})});VP.displayName=lD;function sD(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Ri(n,{select:t}),document.activeElement!==r)return}function uD(e){const t=qP(e),r=X1(t,e),n=X1(t.reverse(),e);return[r,n]}function qP(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function X1(e,t){for(const r of e)if(!cD(r,{upTo:t}))return r}function cD(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function dD(e){return e instanceof HTMLInputElement&&"select"in e}function Ri(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&dD(e)&&t&&e.select()}}var Z1=fD();function fD(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=J1(e,t),e.unshift(t)},remove(t){var r;e=J1(e,t),(r=e[0])==null||r.resume()}}}function J1(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function hD(e){return e.filter(t=>t.tagName!=="A")}var pD="Portal",GP=g.forwardRef((e,t)=>{var u;const{container:r,...n}=e,[i,o]=g.useState(!1);Qs(()=>o(!0),[]);const s=r||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return s?_f.createPortal(w.jsx(Wt.div,{...n,ref:t}),s):null});GP.displayName=pD;function mD(e,t){return g.useReducer((r,n)=>t[r][n]??r,e)}var jf=e=>{const{present:t,children:r}=e,n=vD(t),i=typeof r=="function"?r({present:n.isPresent}):g.Children.only(r),o=yD(n.ref,gD(i));return typeof r=="function"||n.isPresent?g.cloneElement(i,{ref:o}):null};jf.displayName="Presence";function vD(e){const[t,r]=g.useState(),n=g.useRef(null),i=g.useRef(e),o=g.useRef("none"),s=e?"mounted":"unmounted",[u,d]=mD(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const f=Yc(n.current);o.current=u==="mounted"?f:"none"},[u]),Qs(()=>{const f=n.current,h=i.current;if(h!==e){const v=o.current,x=Yc(f);e?d("MOUNT"):x==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(h&&v!==x?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,d]),Qs(()=>{if(t){let f;const h=t.ownerDocument.defaultView??window,m=x=>{const S=Yc(n.current).includes(CSS.escape(x.animationName));if(x.target===t&&S&&(d("ANIMATION_END"),!i.current)){const E=t.style.animationFillMode;t.style.animationFillMode="forwards",f=h.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=E)})}},v=x=>{x.target===t&&(o.current=Yc(n.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{h.clearTimeout(f),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:g.useCallback(f=>{n.current=f?getComputedStyle(f):null,r(f)},[])}}function ew(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function yD(...e){const t=g.useRef(e);return t.current=e,g.useCallback(r=>{const n=t.current;let i=!1;const o=n.map(s=>{const u=ew(s,r);return!i&&typeof u=="function"&&(i=!0),u});if(i)return()=>{for(let s=0;s{mn||(mn={start:tw(),end:tw()});const{start:e,end:t}=mn;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Qc++,()=>{Qc===1&&(mn==null||mn.start.remove(),mn==null||mn.end.remove(),mn=null),Qc=Math.max(0,Qc-1)}},[])}function tw(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Sn=function(){return Sn=Object.assign||function(t){for(var r,n=1,i=arguments.length;n"u")return RD;var t=$D(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},zD=ZP(),Ko="data-scroll-locked",FD=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,u=e.gap;return r===void 0&&(r="margin"),` .`.concat(wD,` { overflow: hidden `).concat(n,`; padding-right: `).concat(u,"px ").concat(n,`; } - body[`).concat(Vo,`] { + body[`).concat(Ko,`] { overflow: hidden `).concat(n,`; overscroll-behavior: contain; `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` @@ -347,14 +347,14 @@ Error generating stack: `+b.message+` margin-right: 0 `).concat(n,`; } - body[`).concat(Vo,`] { + body[`).concat(Ko,`] { `).concat(SD,": ").concat(u,`px; } -`)},nw=function(){var e=parseInt(document.body.getAttribute(Vo)||"0",10);return isFinite(e)?e:0},BD=function(){g.useEffect(function(){return document.body.setAttribute(Vo,(nw()+1).toString()),function(){var e=nw()-1;e<=0?document.body.removeAttribute(Vo):document.body.setAttribute(Vo,e.toString())}},[])},UD=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;BD();var o=g.useMemo(function(){return LD(i)},[i]);return g.createElement(zD,{styles:FD(o,!t,i,r?"":"!important")})},jv=!1;if(typeof window<"u")try{var Xc=Object.defineProperty({},"passive",{get:function(){return jv=!0,!0}});window.addEventListener("test",Xc,Xc),window.removeEventListener("test",Xc,Xc)}catch{jv=!1}var Oo=jv?{passive:!1}:!1,WD=function(e){return e.tagName==="TEXTAREA"},JP=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!WD(e)&&r[t]==="visible")},HD=function(e){return JP(e,"overflowY")},KD=function(e){return JP(e,"overflowX")},iw=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=eA(e,n);if(i){var o=tA(e,n),s=o[1],u=o[2];if(s>u)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},VD=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},qD=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},eA=function(e,t){return e==="v"?HD(t):KD(t)},tA=function(e,t){return e==="v"?VD(t):qD(t)},GD=function(e,t){return e==="h"&&t==="rtl"?-1:1},YD=function(e,t,r,n,i){var o=GD(e,window.getComputedStyle(t).direction),s=o*n,u=r.target,d=t.contains(u),f=!1,h=s>0,m=0,v=0;do{if(!u)break;var x=tA(e,u),k=x[0],S=x[1],E=x[2],P=S-E-o*k;(k||P)&&eA(e,u)&&(m+=P,v+=k);var O=u.parentNode;u=O&&O.nodeType===Node.DOCUMENT_FRAGMENT_NODE?O.host:O}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(h&&Math.abs(m)<1||!h&&Math.abs(v)<1)&&(f=!0),f},Zc=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aw=function(e){return[e.deltaX,e.deltaY]},ow=function(e){return e&&"current"in e?e.current:e},QD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},XD=function(e){return` +`)},nw=function(){var e=parseInt(document.body.getAttribute(Ko)||"0",10);return isFinite(e)?e:0},BD=function(){g.useEffect(function(){return document.body.setAttribute(Ko,(nw()+1).toString()),function(){var e=nw()-1;e<=0?document.body.removeAttribute(Ko):document.body.setAttribute(Ko,e.toString())}},[])},UD=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;BD();var o=g.useMemo(function(){return LD(i)},[i]);return g.createElement(zD,{styles:FD(o,!t,i,r?"":"!important")})},jv=!1;if(typeof window<"u")try{var Xc=Object.defineProperty({},"passive",{get:function(){return jv=!0,!0}});window.addEventListener("test",Xc,Xc),window.removeEventListener("test",Xc,Xc)}catch{jv=!1}var Ao=jv?{passive:!1}:!1,WD=function(e){return e.tagName==="TEXTAREA"},JP=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!WD(e)&&r[t]==="visible")},HD=function(e){return JP(e,"overflowY")},KD=function(e){return JP(e,"overflowX")},iw=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=eA(e,n);if(i){var o=tA(e,n),s=o[1],u=o[2];if(s>u)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},VD=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},qD=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},eA=function(e,t){return e==="v"?HD(t):KD(t)},tA=function(e,t){return e==="v"?VD(t):qD(t)},GD=function(e,t){return e==="h"&&t==="rtl"?-1:1},YD=function(e,t,r,n,i){var o=GD(e,window.getComputedStyle(t).direction),s=o*n,u=r.target,d=t.contains(u),f=!1,h=s>0,m=0,v=0;do{if(!u)break;var x=tA(e,u),k=x[0],S=x[1],E=x[2],P=S-E-o*k;(k||P)&&eA(e,u)&&(m+=P,v+=k);var O=u.parentNode;u=O&&O.nodeType===Node.DOCUMENT_FRAGMENT_NODE?O.host:O}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(h&&Math.abs(m)<1||!h&&Math.abs(v)<1)&&(f=!0),f},Zc=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aw=function(e){return[e.deltaX,e.deltaY]},ow=function(e){return e&&"current"in e?e.current:e},QD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},XD=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},ZD=0,Co=[];function JD(e){var t=g.useRef([]),r=g.useRef([0,0]),n=g.useRef(),i=g.useState(ZD++)[0],o=g.useState(ZP)[0],s=g.useRef(e);g.useEffect(function(){s.current=e},[e]),g.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var S=bD([e.lockRef.current],(e.shards||[]).map(ow),!0).filter(Boolean);return S.forEach(function(E){return E.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),S.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=g.useCallback(function(S,E){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!s.current.allowPinchZoom;var P=Zc(S),O=r.current,j="deltaX"in S?S.deltaX:O[0]-P[0],_="deltaY"in S?S.deltaY:O[1]-P[1],N,C=S.target,D=Math.abs(j)>Math.abs(_)?"h":"v";if("touches"in S&&D==="h"&&C.type==="range")return!1;var F=window.getSelection(),z=F&&F.anchorNode,q=z?z===C||z.contains(C):!1;if(q)return!1;var X=iw(D,C);if(!X)return!0;if(X?N=D:(N=D==="v"?"h":"v",X=iw(D,C)),!X)return!1;if(!n.current&&"changedTouches"in S&&(j||_)&&(n.current=N),!N)return!0;var B=n.current||N;return YD(B,E,S,B==="h"?j:_)},[]),d=g.useCallback(function(S){var E=S;if(!(!Co.length||Co[Co.length-1]!==o)){var P="deltaY"in E?aw(E):Zc(E),O=t.current.filter(function(N){return N.name===E.type&&(N.target===E.target||E.target===N.shadowParent)&&QD(N.delta,P)})[0];if(O&&O.should){E.cancelable&&E.preventDefault();return}if(!O){var j=(s.current.shards||[]).map(ow).filter(Boolean).filter(function(N){return N.contains(E.target)}),_=j.length>0?u(E,j[0]):!s.current.noIsolation;_&&E.cancelable&&E.preventDefault()}}},[]),f=g.useCallback(function(S,E,P,O){var j={name:S,delta:E,target:P,should:O,shadowParent:eR(P)};t.current.push(j),setTimeout(function(){t.current=t.current.filter(function(_){return _!==j})},1)},[]),h=g.useCallback(function(S){r.current=Zc(S),n.current=void 0},[]),m=g.useCallback(function(S){f(S.type,aw(S),S.target,u(S,e.lockRef.current))},[]),v=g.useCallback(function(S){f(S.type,Zc(S),S.target,u(S,e.lockRef.current))},[]);g.useEffect(function(){return Co.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",d,Oo),document.addEventListener("touchmove",d,Oo),document.addEventListener("touchstart",h,Oo),function(){Co=Co.filter(function(S){return S!==o}),document.removeEventListener("wheel",d,Oo),document.removeEventListener("touchmove",d,Oo),document.removeEventListener("touchstart",h,Oo)}},[]);var x=e.removeScrollBar,k=e.inert;return g.createElement(g.Fragment,null,k?g.createElement(o,{styles:XD(i)}):null,x?g.createElement(UD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function eR(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const tR=_D(XP,JD);var rA=g.forwardRef(function(e,t){return g.createElement(Nf,Sn({},e,{ref:t,sideCar:tR}))});rA.classNames=Nf.classNames;var rR=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},_o=new WeakMap,Jc=new WeakMap,ed={},Cm=0,nA=function(e){return e&&(e.host||nA(e.parentNode))},nR=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=nA(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},iR=function(e,t,r,n){var i=nR(t,Array.isArray(e)?e:[e]);ed[r]||(ed[r]=new WeakMap);var o=ed[r],s=[],u=new Set,d=new Set(i),f=function(m){!m||u.has(m)||(u.add(m),f(m.parentNode))};i.forEach(f);var h=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(v){if(u.has(v))h(v);else try{var x=v.getAttribute(n),k=x!==null&&x!=="false",S=(_o.get(v)||0)+1,E=(o.get(v)||0)+1;_o.set(v,S),o.set(v,E),s.push(v),S===1&&k&&Jc.set(v,!0),E===1&&v.setAttribute(r,"true"),k||v.setAttribute(n,"true")}catch(P){console.error("aria-hidden: cannot operate on ",v,P)}})};return h(t),u.clear(),Cm++,function(){s.forEach(function(m){var v=_o.get(m)-1,x=o.get(m)-1;_o.set(m,v),o.set(m,x),v||(Jc.has(m)||m.removeAttribute(n),Jc.delete(m)),x||m.removeAttribute(r)}),Cm--,Cm||(_o=new WeakMap,_o=new WeakMap,Jc=new WeakMap,ed={})}},aR=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=rR(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),iR(n,i,r,"aria-hidden")):function(){return null}},If="Dialog",[iA]=MT(If),[oR,sn]=iA(If),aA=e=>{const{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,u=g.useRef(null),d=g.useRef(null),[f,h]=LT({prop:n,defaultProp:i??!1,onChange:o,caller:If});return w.jsx(oR,{scope:t,triggerRef:u,contentRef:d,contentId:Zn(),titleId:Zn(),descriptionId:Zn(),open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),modal:s,children:r})};aA.displayName=If;var oA="DialogTrigger",lR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(oA,r),o=Xa(t,i.triggerRef);return w.jsx(Wt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":qy(i.open),...n,ref:o,onClick:Qi(e.onClick,i.onOpenToggle)})});lR.displayName=oA;var Vy="DialogPortal",[sR,lA]=iA(Vy,{forceMount:void 0}),sA=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=sn(Vy,t);return w.jsx(sR,{scope:t,forceMount:r,children:g.Children.map(n,s=>w.jsx(jf,{present:r||o.open,children:w.jsx(GP,{asChild:!0,container:i,children:s})}))})};sA.displayName=Vy;var Cd="DialogOverlay",uA=g.forwardRef((e,t)=>{const r=lA(Cd,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(Cd,e.__scopeDialog);return o.modal?w.jsx(jf,{present:n||o.open,children:w.jsx(cR,{...i,ref:t})}):null});uA.displayName=Cd;var uR=WP("DialogOverlay.RemoveScroll"),cR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(Cd,r),o=iD(),s=Xa(t,o);return w.jsx(rA,{as:uR,allowPinchZoom:!0,shards:[i.contentRef],children:w.jsx(Wt.div,{"data-state":qy(i.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})}),dl="DialogContent",cA=g.forwardRef((e,t)=>{const r=lA(dl,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(dl,e.__scopeDialog);return w.jsx(jf,{present:n||o.open,children:o.modal?w.jsx(dR,{...i,ref:t}):w.jsx(fR,{...i,ref:t})})});cA.displayName=dl;var dR=g.forwardRef((e,t)=>{const r=sn(dl,e.__scopeDialog),n=g.useRef(null),i=Xa(t,r.contentRef,n);return g.useEffect(()=>{const o=n.current;if(o)return aR(o)},[]),w.jsx(dA,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Qi(e.onCloseAutoFocus,o=>{var s;o.preventDefault(),(s=r.triggerRef.current)==null||s.focus()}),onPointerDownOutside:Qi(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0;(s.button===2||u)&&o.preventDefault()}),onFocusOutside:Qi(e.onFocusOutside,o=>o.preventDefault())})}),fR=g.forwardRef((e,t)=>{const r=sn(dl,e.__scopeDialog),n=g.useRef(!1),i=g.useRef(!1);return w.jsx(dA,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var s,u;(s=e.onCloseAutoFocus)==null||s.call(e,o),o.defaultPrevented||(n.current||(u=r.triggerRef.current)==null||u.focus(),o.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:o=>{var d,f;(d=e.onInteractOutside)==null||d.call(e,o),o.defaultPrevented||(n.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const s=o.target;((f=r.triggerRef.current)==null?void 0:f.contains(s))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),dA=g.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,u=sn(dl,r);return xD(),w.jsx(w.Fragment,{children:w.jsx(VP,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o,children:w.jsx(HP,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":qy(u.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),fA="DialogTitle",hR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(fA,r);return w.jsx(Wt.h2,{id:i.titleId,...n,ref:t})});hR.displayName=fA;var hA="DialogDescription",pR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(hA,r);return w.jsx(Wt.p,{id:i.descriptionId,...n,ref:t})});pR.displayName=hA;var pA="DialogClose",mR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(pA,r);return w.jsx(Wt.button,{type:"button",...n,ref:t,onClick:Qi(e.onClick,()=>i.onOpenChange(!1))})});mR.displayName=pA;function qy(e){return e?"open":"closed"}var ws='[cmdk-group=""]',_m='[cmdk-group-items=""]',vR='[cmdk-group-heading=""]',mA='[cmdk-item=""]',lw=`${mA}:not([aria-disabled="true"])`,Nv="cmdk-item-select",zo="data-value",yR=(e,t,r)=>IT(e,t,r),vA=g.createContext(void 0),bu=()=>g.useContext(vA),yA=g.createContext(void 0),Gy=()=>g.useContext(yA),gA=g.createContext(void 0),xA=g.forwardRef((e,t)=>{let r=Fo(()=>{var M,J;return{search:"",value:(J=(M=e.value)!=null?M:e.defaultValue)!=null?J:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=Fo(()=>new Set),i=Fo(()=>new Map),o=Fo(()=>new Map),s=Fo(()=>new Set),u=bA(e),{label:d,children:f,value:h,onValueChange:m,filter:v,shouldFilter:x,loop:k,disablePointerSelection:S=!1,vimBindings:E=!0,...P}=e,O=Zn(),j=Zn(),_=Zn(),N=g.useRef(null),C=CR();Ua(()=>{if(h!==void 0){let M=h.trim();r.current.value=M,D.emit()}},[h]),Ua(()=>{C(6,ue)},[]);let D=g.useMemo(()=>({subscribe:M=>(s.current.add(M),()=>s.current.delete(M)),snapshot:()=>r.current,setState:(M,J,se)=>{var te,ce,ye,_e;if(!Object.is(r.current[M],J)){if(r.current[M]=J,M==="search")B(),q(),C(1,X);else if(M==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(_);Z?Z.focus():(te=document.getElementById(O))==null||te.focus()}if(C(7,()=>{var Z;r.current.selectedItemId=(Z=Y())==null?void 0:Z.id,D.emit()}),se||C(5,ue),((ce=u.current)==null?void 0:ce.value)!==void 0){let Z=J??"";(_e=(ye=u.current).onValueChange)==null||_e.call(ye,Z);return}}D.emit()}},emit:()=>{s.current.forEach(M=>M())}}),[]),F=g.useMemo(()=>({value:(M,J,se)=>{var te;J!==((te=o.current.get(M))==null?void 0:te.value)&&(o.current.set(M,{value:J,keywords:se}),r.current.filtered.items.set(M,z(J,se)),C(2,()=>{q(),D.emit()}))},item:(M,J)=>(n.current.add(M),J&&(i.current.has(J)?i.current.get(J).add(M):i.current.set(J,new Set([M]))),C(3,()=>{B(),q(),r.current.value||X(),D.emit()}),()=>{o.current.delete(M),n.current.delete(M),r.current.filtered.items.delete(M);let se=Y();C(4,()=>{B(),(se==null?void 0:se.getAttribute("id"))===M&&X(),D.emit()})}),group:M=>(i.current.has(M)||i.current.set(M,new Set),()=>{o.current.delete(M),i.current.delete(M)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:O,inputId:_,labelId:j,listInnerRef:N}),[]);function z(M,J){var se,te;let ce=(te=(se=u.current)==null?void 0:se.filter)!=null?te:yR;return M?ce(M,r.current.search,J):0}function q(){if(!r.current.search||u.current.shouldFilter===!1)return;let M=r.current.filtered.items,J=[];r.current.filtered.groups.forEach(te=>{let ce=i.current.get(te),ye=0;ce.forEach(_e=>{let Z=M.get(_e);ye=Math.max(Z,ye)}),J.push([te,ye])});let se=N.current;le().sort((te,ce)=>{var ye,_e;let Z=te.getAttribute("id"),we=ce.getAttribute("id");return((ye=M.get(we))!=null?ye:0)-((_e=M.get(Z))!=null?_e:0)}).forEach(te=>{let ce=te.closest(_m);ce?ce.appendChild(te.parentElement===ce?te:te.closest(`${_m} > *`)):se.appendChild(te.parentElement===se?te:te.closest(`${_m} > *`))}),J.sort((te,ce)=>ce[1]-te[1]).forEach(te=>{var ce;let ye=(ce=N.current)==null?void 0:ce.querySelector(`${ws}[${zo}="${encodeURIComponent(te[0])}"]`);ye==null||ye.parentElement.appendChild(ye)})}function X(){let M=le().find(se=>se.getAttribute("aria-disabled")!=="true"),J=M==null?void 0:M.getAttribute(zo);D.setState("value",J||void 0)}function B(){var M,J,se,te;if(!r.current.search||u.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let ce=0;for(let ye of n.current){let _e=(J=(M=o.current.get(ye))==null?void 0:M.value)!=null?J:"",Z=(te=(se=o.current.get(ye))==null?void 0:se.keywords)!=null?te:[],we=z(_e,Z);r.current.filtered.items.set(ye,we),we>0&&ce++}for(let[ye,_e]of i.current)for(let Z of _e)if(r.current.filtered.items.get(Z)>0){r.current.filtered.groups.add(ye);break}r.current.filtered.count=ce}function ue(){var M,J,se;let te=Y();te&&(((M=te.parentElement)==null?void 0:M.firstChild)===te&&((se=(J=te.closest(ws))==null?void 0:J.querySelector(vR))==null||se.scrollIntoView({block:"nearest"})),te.scrollIntoView({block:"nearest"}))}function Y(){var M;return(M=N.current)==null?void 0:M.querySelector(`${mA}[aria-selected="true"]`)}function le(){var M;return Array.from(((M=N.current)==null?void 0:M.querySelectorAll(lw))||[])}function fe(M){let J=le()[M];J&&D.setState("value",J.getAttribute(zo))}function de(M){var J;let se=Y(),te=le(),ce=te.findIndex(_e=>_e===se),ye=te[ce+M];(J=u.current)!=null&&J.loop&&(ye=ce+M<0?te[te.length-1]:ce+M===te.length?te[0]:te[ce+M]),ye&&D.setState("value",ye.getAttribute(zo))}function K(M){let J=Y(),se=J==null?void 0:J.closest(ws),te;for(;se&&!te;)se=M>0?AR(se,ws):OR(se,ws),te=se==null?void 0:se.querySelector(lw);te?D.setState("value",te.getAttribute(zo)):de(M)}let ie=()=>fe(le().length-1),Q=M=>{M.preventDefault(),M.metaKey?ie():M.altKey?K(1):de(1)},R=M=>{M.preventDefault(),M.metaKey?fe(0):M.altKey?K(-1):de(-1)};return g.createElement(Wt.div,{ref:t,tabIndex:-1,...P,"cmdk-root":"",onKeyDown:M=>{var J;(J=P.onKeyDown)==null||J.call(P,M);let se=M.nativeEvent.isComposing||M.keyCode===229;if(!(M.defaultPrevented||se))switch(M.key){case"n":case"j":{E&&M.ctrlKey&&Q(M);break}case"ArrowDown":{Q(M);break}case"p":case"k":{E&&M.ctrlKey&&R(M);break}case"ArrowUp":{R(M);break}case"Home":{M.preventDefault(),fe(0);break}case"End":{M.preventDefault(),ie();break}case"Enter":{M.preventDefault();let te=Y();if(te){let ce=new Event(Nv);te.dispatchEvent(ce)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:F.inputId,id:F.labelId,style:jR},d),Mf(e,M=>g.createElement(yA.Provider,{value:D},g.createElement(vA.Provider,{value:F},M))))}),gR=g.forwardRef((e,t)=>{var r,n;let i=Zn(),o=g.useRef(null),s=g.useContext(gA),u=bu(),d=bA(e),f=(n=(r=d.current)==null?void 0:r.forceMount)!=null?n:s==null?void 0:s.forceMount;Ua(()=>{if(!f)return u.item(i,s==null?void 0:s.id)},[f]);let h=wA(i,o,[e.value,e.children,o],e.keywords),m=Gy(),v=Ji(C=>C.value&&C.value===h.current),x=Ji(C=>f||u.filter()===!1?!0:C.search?C.filtered.items.get(i)>0:!0);g.useEffect(()=>{let C=o.current;if(!(!C||e.disabled))return C.addEventListener(Nv,k),()=>C.removeEventListener(Nv,k)},[x,e.onSelect,e.disabled]);function k(){var C,D;S(),(D=(C=d.current).onSelect)==null||D.call(C,h.current)}function S(){m.setState("value",h.current,!0)}if(!x)return null;let{disabled:E,value:P,onSelect:O,forceMount:j,keywords:_,...N}=e;return g.createElement(Wt.div,{ref:cl(o,t),...N,id:i,"cmdk-item":"",role:"option","aria-disabled":!!E,"aria-selected":!!v,"data-disabled":!!E,"data-selected":!!v,onPointerMove:E||u.getDisablePointerSelection()?void 0:S,onClick:E?void 0:k},e.children)}),xR=g.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:i,...o}=e,s=Zn(),u=g.useRef(null),d=g.useRef(null),f=Zn(),h=bu(),m=Ji(x=>i||h.filter()===!1?!0:x.search?x.filtered.groups.has(s):!0);Ua(()=>h.group(s),[]),wA(s,u,[e.value,e.heading,d]);let v=g.useMemo(()=>({id:s,forceMount:i}),[i]);return g.createElement(Wt.div,{ref:cl(u,t),...o,"cmdk-group":"",role:"presentation",hidden:m?void 0:!0},r&&g.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},r),Mf(e,x=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},g.createElement(gA.Provider,{value:v},x))))}),bR=g.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,i=g.useRef(null),o=Ji(s=>!s.search);return!r&&!o?null:g.createElement(Wt.div,{ref:cl(i,t),...n,"cmdk-separator":"",role:"separator"})}),wR=g.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,i=e.value!=null,o=Gy(),s=Ji(f=>f.search),u=Ji(f=>f.selectedItemId),d=bu();return g.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),g.createElement(Wt.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:i?e.value:s,onChange:f=>{i||o.setState("search",f.target.value),r==null||r(f.target.value)}})}),SR=g.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...i}=e,o=g.useRef(null),s=g.useRef(null),u=Ji(f=>f.selectedItemId),d=bu();return g.useEffect(()=>{if(s.current&&o.current){let f=s.current,h=o.current,m,v=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let x=f.offsetHeight;h.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return v.observe(f),()=>{cancelAnimationFrame(m),v.unobserve(f)}}},[]),g.createElement(Wt.div,{ref:cl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":n,id:d.listId},Mf(e,f=>g.createElement("div",{ref:cl(s,d.listInnerRef),"cmdk-list-sizer":""},f)))}),kR=g.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:i,contentClassName:o,container:s,...u}=e;return g.createElement(aA,{open:r,onOpenChange:n},g.createElement(sA,{container:s},g.createElement(uA,{"cmdk-overlay":"",className:i}),g.createElement(cA,{"aria-label":e.label,"cmdk-dialog":"",className:o},g.createElement(xA,{ref:t,...u}))))}),ER=g.forwardRef((e,t)=>Ji(r=>r.filtered.count===0)?g.createElement(Wt.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),PR=g.forwardRef((e,t)=>{let{progress:r,children:n,label:i="Loading...",...o}=e;return g.createElement(Wt.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Mf(e,s=>g.createElement("div",{"aria-hidden":!0},s)))}),jo=Object.assign(xA,{List:SR,Item:gR,Input:wR,Group:xR,Separator:bR,Dialog:kR,Empty:ER,Loading:PR});function AR(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function OR(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function bA(e){let t=g.useRef(e);return Ua(()=>{t.current=e}),t}var Ua=typeof window>"u"?g.useEffect:g.useLayoutEffect;function Fo(e){let t=g.useRef();return t.current===void 0&&(t.current=e()),t}function Ji(e){let t=Gy(),r=()=>e(t.snapshot());return g.useSyncExternalStore(t.subscribe,r,r)}function wA(e,t,r,n=[]){let i=g.useRef(),o=bu();return Ua(()=>{var s;let u=(()=>{var f;for(let h of r){if(typeof h=="string")return h.trim();if(typeof h=="object"&&"current"in h)return h.current?(f=h.current.textContent)==null?void 0:f.trim():i.current}})(),d=n.map(f=>f.trim());o.value(e,u,d),(s=t.current)==null||s.setAttribute(zo,u),i.current=u}),i}var CR=()=>{let[e,t]=g.useState(),r=Fo(()=>new Map);return Ua(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,i)=>{r.current.set(n,i),t({})}};function _R(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Mf({asChild:e,children:t},r){return e&&g.isValidElement(t)?g.cloneElement(_R(t),{ref:t.ref},r(t.props.children)):r(t)}var jR={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function NR({onNavigate:e}){const[t,r]=g.useState(!1);return g.useEffect(()=>{const n=i=>{(i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="k"&&(i.preventDefault(),r(o=>!o))};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[]),w.jsx(jo.Dialog,{open:t,onOpenChange:r,label:"Befehlspalette",className:"fixed inset-0 z-50 flex items-start justify-center bg-black/50 p-4 pt-[12vh] overscroll-contain",onClick:()=>r(!1),children:w.jsxs("div",{className:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:n=>n.stopPropagation(),children:[w.jsx(jo.Input,{autoFocus:!0,placeholder:"Springe zu… (Modelle, Routing, System …)",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground"}),w.jsxs(jo.List,{className:"max-h-80 overflow-y-auto p-2",children:[w.jsx(jo.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),w.jsx(jo.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Ko.map(n=>w.jsxs(jo.Item,{value:`${n.label} ${n.hint}`,onSelect:()=>{e(n.id),r(!1)},className:"flex cursor-pointer items-center gap-3 rounded-md px-3 py-2 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",children:[w.jsx(n.icon,{className:"h-4 w-4 text-primary"}),w.jsx("span",{children:n.label}),w.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:n.hint})]},n.id))})]})]})})}const SA="mc_expert_mode",Iv="mc-expert-mode-change",IR=()=>{try{return localStorage.getItem(SA)==="true"}catch{return!1}};function MR(e){return window.addEventListener(Iv,e),window.addEventListener("storage",e),()=>{window.removeEventListener(Iv,e),window.removeEventListener("storage",e)}}function sw(e){localStorage.setItem(SA,String(e)),window.dispatchEvent(new Event(Iv))}function TR(){return g.useSyncExternalStore(MR,IR,()=>!1)}function kA(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t{const t=$R(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{const u=s.split(Yy);return u[0]===""&&u.length!==1&&u.shift(),EA(u,t)||RR(s)},getConflictingClassGroupIds:(s,u)=>{const d=r[s]||[];return u&&n[s]?[...d,...n[s]]:d}}},EA=(e,t)=>{var s;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),i=n?EA(e.slice(1),n):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(Yy);return(s=t.validators.find(({validator:u})=>u(o)))==null?void 0:s.classGroupId},uw=/^\[(.+)\]$/,RR=e=>{if(uw.test(e)){const t=uw.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},$R=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return zR(Object.entries(e.classGroups),r).forEach(([o,s])=>{Mv(s,n,o,t)}),n},Mv=(e,t,r,n)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:cw(t,i);o.classGroupId=r;return}if(typeof i=="function"){if(LR(i)){Mv(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([o,s])=>{Mv(s,cw(t,o),r,n)})})},cw=(e,t)=>{let r=e;return t.split(Yy).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},LR=e=>e.isThemeGetter,zR=(e,t)=>t?e.map(([r,n])=>{const i=n.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([s,u])=>[t+s,u])):o);return[r,i]}):e,FR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;const i=(o,s)=>{r.set(o,s),t++,t>e&&(t=0,n=r,r=new Map)};return{get(o){let s=r.get(o);if(s!==void 0)return s;if((s=n.get(o))!==void 0)return i(o,s),s},set(o,s){r.has(o)?r.set(o,s):i(o,s)}}},PA="!",BR=e=>{const{separator:t,experimentalParseClassName:r}=e,n=t.length===1,i=t[0],o=t.length,s=u=>{const d=[];let f=0,h=0,m;for(let E=0;Eh?m-h:void 0;return{modifiers:d,hasImportantModifier:x,baseClassName:k,maybePostfixModifierPosition:S}};return r?u=>r({className:u,parseClassName:s}):s},UR=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t},WR=e=>({cache:FR(e.cacheSize),parseClassName:BR(e),...DR(e)}),HR=/\s+/,KR=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,o=[],s=e.trim().split(HR);let u="";for(let d=s.length-1;d>=0;d-=1){const f=s[d],{modifiers:h,hasImportantModifier:m,baseClassName:v,maybePostfixModifierPosition:x}=r(f);let k=!!x,S=n(k?v.substring(0,x):v);if(!S){if(!k){u=f+(u.length>0?" "+u:u);continue}if(S=n(v),!S){u=f+(u.length>0?" "+u:u);continue}k=!1}const E=UR(h).join(":"),P=m?E+PA:E,O=P+S;if(o.includes(O))continue;o.push(O);const j=i(S,k);for(let _=0;_0?" "+u:u)}return u};function VR(){let e=0,t,r,n="";for(;e{if(typeof e=="string")return e;let t,r="";for(let n=0;nm(h),e());return r=WR(f),n=r.cache.get,i=r.cache.set,o=u,u(d)}function u(d){const f=n(d);if(f)return f;const h=KR(d,r);return i(d,h),h}return function(){return o(VR.apply(null,arguments))}}const et=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},OA=/^\[(?:([a-z-]+):)?(.+)\]$/i,GR=/^\d+\/\d+$/,YR=new Set(["px","full","screen"]),QR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,JR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Wn=e=>qo(e)||YR.has(e)||GR.test(e),Ii=e=>Sl(e,"length",s3),qo=e=>!!e&&!Number.isNaN(Number(e)),jm=e=>Sl(e,"number",qo),Ss=e=>!!e&&Number.isInteger(Number(e)),t3=e=>e.endsWith("%")&&qo(e.slice(0,-1)),Me=e=>OA.test(e),Mi=e=>QR.test(e),r3=new Set(["length","size","percentage"]),n3=e=>Sl(e,r3,CA),i3=e=>Sl(e,"position",CA),a3=new Set(["image","url"]),o3=e=>Sl(e,a3,c3),l3=e=>Sl(e,"",u3),ks=()=>!0,Sl=(e,t,r)=>{const n=OA.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},s3=e=>XR.test(e)&&!ZR.test(e),CA=()=>!1,u3=e=>JR.test(e),c3=e=>e3.test(e),d3=()=>{const e=et("colors"),t=et("spacing"),r=et("blur"),n=et("brightness"),i=et("borderColor"),o=et("borderRadius"),s=et("borderSpacing"),u=et("borderWidth"),d=et("contrast"),f=et("grayscale"),h=et("hueRotate"),m=et("invert"),v=et("gap"),x=et("gradientColorStops"),k=et("gradientColorStopPositions"),S=et("inset"),E=et("margin"),P=et("opacity"),O=et("padding"),j=et("saturate"),_=et("scale"),N=et("sepia"),C=et("skew"),D=et("space"),F=et("translate"),z=()=>["auto","contain","none"],q=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto",Me,t],B=()=>[Me,t],ue=()=>["",Wn,Ii],Y=()=>["auto",qo,Me],le=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],fe=()=>["solid","dashed","dotted","double","none"],de=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>["start","end","center","between","around","evenly","stretch"],ie=()=>["","0",Me],Q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>[qo,Me];return{cacheSize:500,separator:":",theme:{colors:[ks],spacing:[Wn,Ii],blur:["none","",Mi,Me],brightness:R(),borderColor:[e],borderRadius:["none","","full",Mi,Me],borderSpacing:B(),borderWidth:ue(),contrast:R(),grayscale:ie(),hueRotate:R(),invert:ie(),gap:B(),gradientColorStops:[e],gradientColorStopPositions:[t3,Ii],inset:X(),margin:X(),opacity:R(),padding:B(),saturate:R(),scale:R(),sepia:ie(),skew:R(),space:B(),translate:B()},classGroups:{aspect:[{aspect:["auto","square","video",Me]}],container:["container"],columns:[{columns:[Mi]}],"break-after":[{"break-after":Q()}],"break-before":[{"break-before":Q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...le(),Me]}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[S]}],"inset-x":[{"inset-x":[S]}],"inset-y":[{"inset-y":[S]}],start:[{start:[S]}],end:[{end:[S]}],top:[{top:[S]}],right:[{right:[S]}],bottom:[{bottom:[S]}],left:[{left:[S]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ss,Me]}],basis:[{basis:X()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Me]}],grow:[{grow:ie()}],shrink:[{shrink:ie()}],order:[{order:["first","last","none",Ss,Me]}],"grid-cols":[{"grid-cols":[ks]}],"col-start-end":[{col:["auto",{span:["full",Ss,Me]},Me]}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":[ks]}],"row-start-end":[{row:["auto",{span:[Ss,Me]},Me]}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Me]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Me]}],gap:[{gap:[v]}],"gap-x":[{"gap-x":[v]}],"gap-y":[{"gap-y":[v]}],"justify-content":[{justify:["normal",...K()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...K(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...K(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[E]}],mx:[{mx:[E]}],my:[{my:[E]}],ms:[{ms:[E]}],me:[{me:[E]}],mt:[{mt:[E]}],mr:[{mr:[E]}],mb:[{mb:[E]}],ml:[{ml:[E]}],"space-x":[{"space-x":[D]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[D]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Me,t]}],"min-w":[{"min-w":[Me,t,"min","max","fit"]}],"max-w":[{"max-w":[Me,t,"none","full","min","max","fit","prose",{screen:[Mi]},Mi]}],h:[{h:[Me,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Me,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Mi,Ii]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",jm]}],"font-family":[{font:[ks]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Me]}],"line-clamp":[{"line-clamp":["none",qo,jm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Wn,Me]}],"list-image":[{"list-image":["none",Me]}],"list-style-type":[{list:["none","disc","decimal",Me]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[P]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[P]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Wn,Ii]}],"underline-offset":[{"underline-offset":["auto",Wn,Me]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[P]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...le(),i3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",n3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},o3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[x]}],"gradient-via":[{via:[x]}],"gradient-to":[{to:[x]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[u]}],"border-w-x":[{"border-x":[u]}],"border-w-y":[{"border-y":[u]}],"border-w-s":[{"border-s":[u]}],"border-w-e":[{"border-e":[u]}],"border-w-t":[{"border-t":[u]}],"border-w-r":[{"border-r":[u]}],"border-w-b":[{"border-b":[u]}],"border-w-l":[{"border-l":[u]}],"border-opacity":[{"border-opacity":[P]}],"border-style":[{border:[...fe(),"hidden"]}],"divide-x":[{"divide-x":[u]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[u]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[P]}],"divide-style":[{divide:fe()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...fe()]}],"outline-offset":[{"outline-offset":[Wn,Me]}],"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,l3]}],"shadow-color":[{shadow:[ks]}],opacity:[{opacity:[P]}],"mix-blend":[{"mix-blend":[...de(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":de()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Mi,Me]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[j]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[P]}],"backdrop-saturate":[{"backdrop-saturate":[j]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Me]}],duration:[{duration:R()}],ease:[{ease:["linear","in","out","in-out",Me]}],delay:[{delay:R()}],animate:[{animate:["none","spin","ping","pulse","bounce",Me]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[_]}],"scale-x":[{"scale-x":[_]}],"scale-y":[{"scale-y":[_]}],rotate:[{rotate:[Ss,Me]}],"translate-x":[{"translate-x":[F]}],"translate-y":[{"translate-y":[F]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Me]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Me]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Me]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Wn,Ii,jm]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},f3=qR(d3);function De(...e){return f3(Qe(e))}function CQ(e){return e?e.replace(/127\.0\.0\.1|localhost/g,"192.168.178.151"):""}function h3(){const e=TR();return w.jsxs("div",{className:"flex items-center rounded-md border border-border/40 bg-background/40 p-0.5",role:"group","aria-label":"Ansichtsmodus",title:"Einfach zeigt nur das Wichtigste. Experte zeigt alle technischen Details.",children:[w.jsxs("button",{onClick:()=>sw(!1),"aria-pressed":!e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"text-muted-foreground hover:text-foreground":"bg-primary/15 text-primary shadow-sm"),children:[w.jsx(bT,{className:"h-3.5 w-3.5"})," Einfach"]}),w.jsxs("button",{onClick:()=>sw(!0),"aria-pressed":e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"bg-primary/15 text-primary shadow-sm":"text-muted-foreground hover:text-foreground"),children:[w.jsx(xT,{className:"h-3.5 w-3.5"})," Experte"]})]})}async function Te(e,t){var d;const r={"Content-Type":"application/json",...t==null?void 0:t.headers},n=((d=t==null?void 0:t.method)==null?void 0:d.toUpperCase())||"GET",i=n==="GET"?null:localStorage.getItem("mc_sudo_password"),o=n==="GET"?null:localStorage.getItem("mc_hf_token");i&&(r["X-Sudo-Password"]=i);let s=t==null?void 0:t.body;if(n==="POST"){if(typeof s=="string")try{const f=JSON.parse(s);let h=!1;i&&!("sudo_password"in f)&&(f.sudo_password=i,h=!0),o&&!("hf_token"in f)&&(f.hf_token=o,h=!0),h&&(s=JSON.stringify(f))}catch{}else if(!s){const f={};i&&(f.sudo_password=i),o&&(f.hf_token=o),Object.keys(f).length>0&&(s=JSON.stringify(f))}}const u=await fetch(e,{...t,headers:r,body:s});if(!u.ok)throw new Error(`${u.status} ${u.statusText}`);return u.json()}const _Q=(e,t,r=!1,n=!0)=>Te("/api/groups",{method:"PUT",body:JSON.stringify({group:e,members:t,swap:r,persist:n})}),jQ=e=>Te("/api/routing/policy",{method:"PUT",body:JSON.stringify(e)});function p3({type:e,title:t,message:r,defaultValue:n,autoValue:i,autoLabel:o,onConfirm:s,onCancel:u}){const d=g.useRef(null);return w.jsx("div",{className:"fixed inset-0 z-[99] bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 overscroll-contain",role:"dialog","aria-modal":"true","aria-label":t,children:w.jsxs("div",{className:"w-full max-w-sm rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[w.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:t}),w.jsx("button",{onClick:u||(()=>s()),"aria-label":"Schließen",className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"max-h-72 overflow-y-auto whitespace-pre-line text-xs text-muted-foreground leading-relaxed scrollbar-thin",children:r}),e==="prompt"&&w.jsxs("div",{className:"flex gap-2",children:[w.jsx("input",{ref:d,type:"text",defaultValue:n,"aria-label":t,className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground",autoFocus:!0,onKeyDown:f=>{var h;f.key==="Enter"&&s((h=d.current)==null?void 0:h.value)}}),i!==void 0&&w.jsx("button",{type:"button",onClick:()=>{d.current&&(d.current.value=i)},title:"Setup-bewussten Optimalwert eintragen",className:"h-9 px-3 shrink-0 text-xs font-semibold text-primary border border-primary/50 bg-primary/10 hover:bg-primary/20 rounded-lg transition-colors cursor-pointer",children:o||"Auto"})]}),w.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[(e==="confirm"||e==="prompt")&&w.jsx("button",{onClick:u,className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Abbrechen"}),w.jsx("button",{onClick:()=>{var h;const f=e==="prompt"?(h=d.current)==null?void 0:h.value:void 0;s(f)},className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/95 rounded-lg transition-colors cursor-pointer",children:e==="confirm"?"Ja, fortfahren":e==="prompt"?"Übernehmen":"OK"})]})]})})}function _A(){const[e,t]=g.useState(null),r=g.useCallback(()=>t(null),[]),n=g.useCallback((u,d,f)=>{t({type:"alert",title:u,message:d,onConfirm:()=>{t(null),f==null||f()}})},[]),i=g.useCallback((u,d,f,h)=>{t({type:"confirm",title:u,message:d,onConfirm:()=>{t(null),f()},onCancel:()=>{t(null),h==null||h()}})},[]),o=g.useCallback((u,d,f,h,m,v)=>{t({type:"prompt",title:u,message:d,defaultValue:f,autoValue:v==null?void 0:v.autoValue,autoLabel:v==null?void 0:v.autoLabel,onConfirm:x=>{t(null),h(x)},onCancel:()=>{t(null),m==null||m()}})},[]),s=e?w.jsx(p3,{...e}):null;return{showAlert:n,showConfirm:i,showPrompt:o,close:r,dialogElement:s}}let xd=!1;const m3=()=>xd;function v3(){const e=Af();g.useEffect(()=>{const t=new EventSource("/api/events");return t.onopen=()=>{xd=!0},t.onerror=()=>{xd=!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{}}),()=>{xd=!1,t.close()}},[e])}const ze={health:["health"],systemStatus:["system-status"],services:["services"],models:["models"],groups:["groups"],routing:["routing"],routingPolicy:["routing-policy"],jobs:["jobs"],tokenStats:["token-stats"],agentStatus:["agent-status"],hermesBrain:["hermes-brain"],updates:["updates"],discover:["discover"],drafts:e=>["drafts",e??""],connect:e=>["connect",e??""],connectHealth:["connect-health"],memory:(e,t)=>["memory",e??"",t??""],memoryGraph:["memory-graph"],voiceTrace:["voice-trace"],auftragsbuch:["auftragsbuch"],ideen:["ideen"],chronik:["chronik"],eigenleben:["eigenleben"],wissen:["wissen"],zeitmaschine:["zeitmaschine"],reminders:["reminders"]},yr={graph:3e3,schnell:8e3,normal:1e4,gemuetlich:3e4,traege:6e4},Tf=e=>()=>m3()?e*5:e,y3=(e=yr.schnell)=>at({queryKey:ze.auftragsbuch,queryFn:()=>Te("/api/auftragsbuch"),refetchInterval:Tf(e)}),g3=(e=yr.gemuetlich)=>at({queryKey:ze.ideen,queryFn:()=>Te("/api/ideen"),refetchInterval:Tf(e)}),NQ=(e,t=!1)=>at({queryKey:["ideen-log",e],queryFn:()=>Te(`/api/ideen/${e}/log`),enabled:t,refetchInterval:4e3,staleTime:0}),IQ=(e=150,t=yr.gemuetlich)=>at({queryKey:[...ze.chronik,e],queryFn:()=>Te(`/api/chronik?limit=${e}`),refetchInterval:Tf(t),select:r=>r.items??[]}),MQ=()=>at({queryKey:ze.wissen,queryFn:()=>Te("/api/wissen")}),x3=(e=yr.traege,t=!0)=>at({queryKey:ze.zeitmaschine,queryFn:()=>Te("/api/zeitmaschine"),refetchInterval:e,enabled:t}),b3=(e=12,t=yr.schnell)=>at({queryKey:ze.voiceTrace,queryFn:()=>Te(`/api/voice/trace?limit=${e}`),refetchInterval:t,select:r=>r.turns??[]}),TQ=(e=!0)=>at({queryKey:ze.memoryGraph,queryFn:()=>Te("/api/wissen/graph"),enabled:e,staleTime:60*1e3}),jA=()=>at({queryKey:ze.health,queryFn:()=>Te("/api/health"),refetchInterval:yr.normal}),Df=(e=yr.graph)=>at({queryKey:ze.systemStatus,queryFn:()=>Te("/api/system/status"),refetchInterval:e}),NA=(e,t=!0)=>at({queryKey:["metrics-history",e],queryFn:()=>Te(`/api/system/history?minutes=${e}`),enabled:t,refetchInterval:6e4}),Qy=(e=yr.normal)=>at({queryKey:ze.services,queryFn:()=>Te("/api/system/services"),refetchInterval:e}),IA=(e=yr.schnell)=>at({queryKey:ze.models,queryFn:()=>Te("/api/models"),refetchInterval:Tf(e)}),DQ=(e=yr.normal)=>at({queryKey:ze.groups,queryFn:()=>Te("/api/groups"),refetchInterval:e}),RQ=()=>at({queryKey:ze.routingPolicy,queryFn:()=>Te("/api/routing/policy")}),w3=(e=3e3,t=!0)=>at({queryKey:ze.jobs,queryFn:()=>Te("/api/jobs"),refetchInterval:e,enabled:t,select:r=>r.jobs??[]}),MA=(e=yr.graph)=>at({queryKey:ze.tokenStats,queryFn:()=>Te("/api/system/token-stats"),refetchInterval:e}),S3=(e=yr.normal)=>at({queryKey:ze.agentStatus,queryFn:()=>Te("/api/agent/status"),refetchInterval:e}),$Q=(e=yr.traege)=>at({queryKey:ze.hermesBrain,queryFn:()=>Te("/api/agent/brain"),refetchInterval:e}),TA=(e=yr.traege)=>at({queryKey:ze.updates,queryFn:()=>Te("/api/maintenance/updates"),refetchInterval:e}),LQ=()=>at({queryKey:ze.discover,queryFn:()=>Te("/api/discover")}),zQ=e=>at({queryKey:ze.drafts(e),queryFn:()=>Te(`/api/models/drafts?target=${encodeURIComponent(e??"")}`),enabled:!!e}),FQ=e=>at({queryKey:ze.connect(e),queryFn:()=>Te(e?`/api/connect?${e}`:"/api/connect")}),k3=()=>at({queryKey:ze.connectHealth,queryFn:()=>Te("/api/connect/health"),refetchInterval:15e3});function Es(e,...t){for(const r of t)e.invalidateQueries({queryKey:r})}function No(e){return(e/1024**3).toFixed(1)}function Nm(e){return e?e>1024**3?`${(e/1024**3).toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`:""}function BQ(e){if(!e)return"—";const t=e/1024**3;return t>=1?`${t.toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`}function UQ(e){if(!e)return"";const t=Math.floor(e/60);return t>0?`${t} min`:`${e} s`}function WQ(e){return e?`${Math.round(e/1024)}k`:"—"}function HQ(e){return e?new Date(e*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"—"}function Ps({icon:e,iconClass:t,name:r,status:n,available:i,busy:o,actionLabel:s,onAction:u}){return w.jsxs("div",{className:De("flex items-center gap-3 rounded-lg border px-3 py-2",i?"border-amber-500/30 bg-amber-500/5":"border-border/50 bg-background/20"),children:[w.jsx(e,{className:De("h-4 w-4 shrink-0",t)}),w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:r}),w.jsx("div",{className:De("text-[10px] truncate",i?"text-amber-400/90":"text-muted-foreground"),children:n})]}),w.jsx("button",{onClick:u,disabled:!i||o,className:De("text-[11px] font-semibold rounded-lg px-2.5 py-1 transition-colors shrink-0",i?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer":"border border-border/50 text-muted-foreground/40 cursor-default"),children:o?"…":s})]})}function E3({label:e,ok:t,system:r,busy:n,onRestart:i,onLogs:o}){return w.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[w.jsx("span",{className:De("w-1.5 h-1.5 rounded-full shrink-0",t===!0?"bg-emerald-500":t===!1?"bg-red-500":"bg-muted-foreground/40")}),w.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[e,r&&w.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),w.jsx("button",{onClick:i,disabled:n,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:w.jsx(Ho,{className:De("h-3.5 w-3.5",n&&"animate-spin")})}),w.jsx("button",{onClick:o,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:w.jsx(iT,{className:"h-3.5 w-3.5"})})]})}const P3=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,A3=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function O3(e){return P3.test(e)?"error":A3.test(e)?"warn":"info"}const C3={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function _3({service:e,text:t,loading:r,logStatus:n,onRefresh:i,onOpenSettings:o}){const[s,u]=g.useState(!1),[d,f]=g.useState(""),h=g.useRef(null),m=g.useMemo(()=>t?t.split(` -`).map(E=>({t:E,level:O3(E)})):[],[t]),v=g.useMemo(()=>m.filter(E=>E.level!=="info").length,[m]),x=d.trim().toLowerCase(),k=m.filter(E=>(!s||E.level!=="info")&&(!x||E.t.toLowerCase().includes(x))),S=n==="password_required"||n==="incorrect_password";return w.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[w.jsxs("div",{className:"flex h-10 items-center justify-between gap-2 px-3 border-b border-border/40 bg-black/30 shrink-0",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[w.jsx(ST,{className:"h-3 w-3 text-primary"}),w.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",e]}),w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsxs("div",{className:"relative",children:[w.jsx(yT,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),w.jsx("input",{value:d,onChange:E=>f(E.target.value),placeholder:"filtern…",className:"h-7 w-24 sm:w-36 rounded-md border border-border/50 bg-background/40 pl-6 pr-2 text-[10px] text-foreground outline-none focus:border-primary/50"})]}),w.jsxs("button",{onClick:()=>u(E=>!E),title:"Nur Fehler und Warnungen zeigen",className:De("flex h-7 items-center gap-1 rounded-md border px-2 text-[10px] font-semibold transition-colors",s?"border-amber-500/50 bg-amber-500/15 text-amber-300":"border-border/50 bg-background/20 text-muted-foreground hover:text-foreground"),children:[w.jsx(Ys,{className:"h-3 w-3"}),"Nur Probleme",v>0?` (${v})`:""]}),w.jsx("button",{onClick:i,disabled:r,title:"Neu laden",className:"flex h-7 w-7 items-center justify-center rounded-md border border-border/50 bg-background/20 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50",children:w.jsx(Ho,{className:De("h-3 w-3",r&&"animate-spin")})})]})]}),w.jsx("div",{ref:h,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:S?w.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[w.jsx(Ys,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),w.jsx("div",{className:"text-xs font-semibold text-amber-300",children:n==="incorrect_password"?"Falsches Sudo-Passwort hinterlegt.":"Sudo-Passwort für systemd-Dienste erforderlich."}),w.jsxs("p",{className:"max-w-xs text-[10px] leading-normal text-muted-foreground",children:["Für das Auslesen der systemd-Logs von ",e," werden Root-Rechte benötigt. Hinterlege dein Passwort in den Einstellungen."]}),w.jsx("button",{onClick:o,className:"mt-2 rounded-md bg-primary px-3 py-1.5 text-[10px] font-semibold text-primary-foreground transition-colors hover:bg-primary/95",children:"Sudo-Passwort eintragen"})]}):r&&!t?w.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):m.length===0?w.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):k.length===0?w.jsx("span",{className:"text-muted-foreground",children:s?"Keine Fehler oder Warnungen — der Dienst läuft sauber. ✓":"Kein Treffer für den Filter."}):k.map((E,P)=>w.jsx("div",{className:De("whitespace-pre-wrap",C3[E.level]),children:E.t||" "},P))})]})}function j3({open:e,showAlert:t}){const[r,n]=g.useState(""),[i,o]=g.useState(""),[s,u]=g.useState(!1),[d,f]=g.useState(!1);return g.useEffect(()=>{e&&(n(localStorage.getItem("mc_sudo_password")||""),o(localStorage.getItem("mc_hf_token")||""))},[e]),w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{className:"space-y-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Daten werden ausschließlich lokal in deinem Browser (localStorage) gespeichert und bei Bedarf an das Backend übertragen."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(Hy,{className:"h-4 w-4 text-amber-400"}),"Host Sudo-Passwort"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:s?"text":"password",value:r,onChange:h=>n(h.target.value),"aria-label":"Host Sudo-Passwort",name:"sudo-password",autoComplete:"off",spellCheck:!1,placeholder:"Sudo-Passwort für System-Operationen",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>u(!s),"aria-label":s?"Passwort verbergen":"Passwort anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:s?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Wird benötigt für systemd-Dienste (Llama Swap logs/restart), OS-Update (apt) und Reboot."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(cT,{className:"h-4 w-4 text-violet-400"}),"HuggingFace API Token"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:d?"text":"password",value:i,onChange:h=>o(h.target.value),"aria-label":"HuggingFace API Token",name:"hf-token",autoComplete:"off",spellCheck:!1,placeholder:"hf_…",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>f(!d),"aria-label":d?"Token verbergen":"Token anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:d?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Erlaubt das Herunterladen von geschützten oder Gate-restricted Modellen direkt über Mission Control."})]}),w.jsxs("div",{className:"flex gap-3 pt-2",children:[w.jsx("button",{onClick:()=>{localStorage.setItem("mc_sudo_password",r),localStorage.setItem("mc_hf_token",i),t("Erfolgreich","Einstellungen erfolgreich lokal gespeichert.")},className:"flex-1 h-9 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/90 rounded-lg transition-colors shadow shadow-primary/10 cursor-pointer",children:"Speichern"}),w.jsx("button",{onClick:()=>{n(""),o(""),localStorage.removeItem("mc_sudo_password"),localStorage.removeItem("mc_hf_token"),t("Gelöscht","Zugangsdaten gelöscht.")},className:"h-9 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Zurücksetzen"})]})]})}function N3({detail:e,maintenanceJob:t,onClose:r,onApply:n}){var d,f;const i=e.data,o={os:{icon:Hy,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:Of,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:BP,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:Gs,cls:"text-amber-400",title:"Hermes-Agent"}}[e.kind],s=o.icon,u=i?e.kind==="os"?(i.count??0)===0:e.kind==="hermes"?(i.behind??0)===0:i.installed_build!=null&&i.latest_build!=null&&i.latest_build<=i.installed_build:!0;return w.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[w.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:r}),w.jsxs("div",{className:"relative w-full max-w-lg max-h-[80vh] flex flex-col rounded-2xl border border-border/60 bg-card shadow-2xl font-sans text-foreground",children:[w.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(s,{className:De("h-4.5 w-4.5",o.cls)}),w.jsx("h3",{className:"text-sm font-semibold",children:o.title})]}),w.jsx("button",{onClick:r,className:"flex h-7 w-7 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:e.loading?w.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[w.jsx(Ho,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):i!=null&&i.error?w.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:i.error}):w.jsxs(w.Fragment,{children:[(i==null?void 0:i.action_needed)!=null&&w.jsxs("div",{className:De("flex items-start gap-2 rounded-lg border p-3",i.action_needed?"border-amber-500/40 bg-amber-500/10":"border-emerald-500/40 bg-emerald-500/10"),children:[i.action_needed?w.jsx(Ys,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):w.jsx(JM,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsxs("div",{className:De("text-xs font-semibold",i.action_needed?"text-amber-300":"text-emerald-300"),children:["Musst du etwas tun? ",i.action_needed?"Ja":"Nein — die Box regelt das (Fangnetz)"]}),i.action_needed&&i.action_text&&w.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:i.action_text})]})]}),(i==null?void 0:i.summary)&&w.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[w.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),w.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:i.summary})]}),e.kind==="os"?w.jsxs(w.Fragment,{children:[((i==null?void 0:i.count)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.count," Paket(e) werden aktualisiert:"]}),w.jsx("div",{className:"space-y-1",children:i.packages.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-cyan-400 shrink-0"}),h.name]}),w.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[w.jsx("span",{children:h.current}),w.jsx(B1,{className:"h-3 w-3"}),w.jsx("span",{className:"text-emerald-400",children:h.candidate})]})]},h.name))})]}),(((d=i==null?void 0:i.held_back)==null?void 0:d.length)??0)>0&&w.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[w.jsx(eT,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Pakete gäbe es bereits, Ubuntu spielt sie aber gestaffelt aus (Phasen-Rollout) bzw. hält sie kurz zurück. Sie kommen bei einem der nächsten automatischen Läufe von selbst — das ist kein Fehler und nichts hängt fest."}),w.jsx("div",{className:"space-y-1",children:i.held_back.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/30 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-muted-foreground shrink-0"}),h.name]}),w.jsx("span",{className:"text-[9px] text-muted-foreground shrink-0",children:h.reason==="phasing"?"Phasen-Rollout":"vorerst zurückgehalten"})]},h.name))})]})]}):e.kind==="engine"||e.kind==="swap"?w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[w.jsxs("span",{className:"rounded-md border border-border/40 bg-background/30 px-2 py-1",children:["Build ",(i==null?void 0:i.installed_build)??"?"]}),w.jsx(B1,{className:"h-3.5 w-3.5 text-muted-foreground"}),w.jsxs("span",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/5 px-2 py-1 text-emerald-400",children:["Build ",(i==null?void 0:i.latest_build)??"?"]})]}),((i==null?void 0:i.name)||(i==null?void 0:i.latest_tag))&&w.jsxs("div",{className:"text-muted-foreground",children:["Release: ",w.jsx("span",{className:"text-foreground",children:i==null?void 0:i.name}),i!=null&&i.latest_tag?` (${i.latest_tag})`:""]}),(i==null?void 0:i.url)&&w.jsxs("a",{href:i.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-primary hover:underline",children:["Original-Release-Notes auf GitHub ",w.jsx(nT,{className:"h-3 w-3"})]}),(i==null?void 0:i.body)&&w.jsxs("details",{className:"group",children:[w.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),w.jsx("pre",{className:"mt-1.5 whitespace-pre-wrap rounded-lg border border-border/40 bg-background/30 p-3 text-[10px] leading-relaxed text-muted-foreground max-h-60 overflow-y-auto scrollbar-thin",children:i.body})]})]}):(((f=i==null?void 0:i.commits)==null?void 0:f.length)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.behind," neue Commit(s) auf ",w.jsxs("span",{className:"font-mono text-foreground",children:["origin/",i.branch]}),":"]}),w.jsx("div",{className:"space-y-1",children:i.commits.map(h=>w.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsx(oT,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("div",{className:"text-[11px] truncate",children:h.subject}),w.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[h.hash," · ",h.when]})]})]},h.hash))})]}),e.kind!=="os"&&!u&&w.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[w.jsx(gT,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("p",{className:"text-[10px] text-muted-foreground leading-normal",children:["Vor dem Update sichert die Box automatisch den alten Stand. Danach prüft sie den ganzen Stack per echter Anfrage — läuft etwas nicht, rollt sie von selbst zurück",e.kind==="hermes"?" und startet den Gateway neu":"","."]})]})]})}),w.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[w.jsx("button",{onClick:r,className:"h-9 flex-1 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold text-muted-foreground hover:bg-accent transition-colors cursor-pointer",children:"Schließen"}),w.jsx("button",{onClick:n,disabled:e.loading||u||!!t,title:t?`Update läuft bereits: ${t.label}`:void 0,className:"h-9 flex-1 rounded-lg bg-primary text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-40 disabled:cursor-default",children:t?"Update läuft…":"Jetzt aktualisieren"})]})]})]})}function I3({open:e,onClose:t,defaultTab:r="maintenance"}){var or,fi;const n=Af(),{showAlert:i,showConfirm:o,dialogElement:s}=_A(),{data:u}=TA(),{data:d}=Qy(),f=w3(3e3,e).data??[],{data:h}=x3(void 0,e),[m,v]=g.useState("llama-swap"),[x,k]=g.useState(""),[S,E]=g.useState(!1),[P,O]=g.useState(null),[j,_]=g.useState({}),[N,C]=g.useState("maintenance"),[D,F]=g.useState(!1),[z,q]=g.useState(""),[X,B]=g.useState(!1),[ue,Y]=g.useState(!1),[le,fe]=g.useState(null),de=(d==null?void 0:d.services)??[],K=()=>Es(n,ze.jobs);function ie(G){return G?new Date(G*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"Nie"}g.useEffect(()=>{e&&r&&C(r)},[e,r]),g.useEffect(()=>{e&&Es(n,ze.updates,ze.services,ze.jobs,ze.zeitmaschine)},[e]);function Q(G){E(!0),O(null),Te(`/api/maintenance/logs?service=${G}&lines=150`).then(Ie=>{Ie.ok?k(Ie.text):(k(`Fehler beim Laden der Logs: ${Ie.err||"Unbekannter Fehler"}`),(Ie.status==="incorrect_password"||Ie.status==="password_required")&&O(Ie.status))}).catch(Ie=>k(`Fehler: ${Ie.message}`)).finally(()=>E(!1))}g.useEffect(()=>{!e||N!=="logs"||Q(m)},[e,N,m]);function R(G){return(G==null?void 0:G.status)==="busy"?(i("Update läuft bereits",`Es läuft gerade „${G.running}". Bitte warte, bis es fertig ist.`),K(),!0):!1}function M(G){return(G==null?void 0:G.status)==="password_required"||(G==null?void 0:G.status)==="incorrect_password"?(i("Box-Passwort nötig",(G.status==="incorrect_password"?"Das gespeicherte Box-Passwort stimmt nicht. ":"Für dieses Update braucht die Box dein Passwort. ")+"Bitte oben im Reiter „Einstellungen“ setzen bzw. korrigieren."),!0):G&&G.ok===!1?(i("Update fehlgeschlagen",G.err||"Unbekannter Fehler."),!0):!1}async function J(G){const Ie={os:"os-update",engine:"engine-update",swap:"swap-update"}[G];try{const Xe=await Te(`/api/maintenance/${Ie}`,{method:"POST"});if(R(Xe)||M(Xe))return;K(),C("maintenance")}catch(Xe){i("Fehler",`Update konnte nicht starten: ${Xe.message}`)}}async function se(){Y(!0);try{const G=await Te("/api/maintenance/hermes-update",{method:"POST"});if(R(G))return;K()}catch(G){i("Fehler",`Hermes-Update fehlgeschlagen: ${G.message}`)}finally{Y(!1)}}async function te(G){fe({kind:G,loading:!0,data:null});try{const Ie=await Te(`/api/maintenance/update-details?kind=${G}`);fe({kind:G,loading:!1,data:Ie})}catch(Ie){fe({kind:G,loading:!1,data:{kind:G,error:Ie.message}})}}function ce(){const G=le==null?void 0:le.kind;fe(null),G==="os"||G==="engine"||G==="swap"?J(G):G==="hermes"&&se()}function ye(){var Ie;const G=[u!=null&&u.engine?"Engine":null,u!=null&&u.swap?"Router":null,(Ie=u==null?void 0:u.components)!=null&&Ie.some(Xe=>Xe.update===!0)?"Hermes-Agent":null,u!=null&&u.os?`OS (${u.os} Pakete)`:null].filter(Boolean);o("Alle Updates einspielen?",`Nacheinander in einem Job: ${G.join(" → ")}. Jeder Schritt sichert und prüft sich selbst; schlägt einer fehl, stoppt der Rest. (OS braucht das Box-Passwort aus den Einstellungen — fehlt es, wird OS übersprungen.)`,async()=>{try{const Xe=await Te("/api/maintenance/update-all",{method:"POST"});if(R(Xe)||M(Xe))return;if((Xe==null?void 0:Xe.status)==="nothing"){i("Nichts zu tun","Es stehen keine Updates aus.");return}K(),C("maintenance")}catch(Xe){i("Fehler",`„Alle aktualisieren" konnte nicht starten: ${Xe.message}`)}})}async function _e(){F(!0);try{await Te("/api/maintenance/check-updates",{method:"POST"}),Es(n,ze.jobs,ze.updates),C("maintenance")}catch(G){i("Fehler",`Fehler bei der Update-Suche: ${G.message}`)}finally{F(!1)}}async function Z(G,Ie){try{await Te("/api/models/install",{method:"POST",body:JSON.stringify({repo:G,role:Ie})}),i("Gestartet",`Modell-Upgrade für '${Ie}' (${G}) gestartet.`),K(),C("maintenance")}catch(Xe){i("Fehler",`Fehler beim Starten des Modell-Upgrades: ${Xe.message}`)}}async function we(){o("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await Te("/api/maintenance/reboot",{method:"POST"}),i("Reboot","Reboot ausgelöst. System startet neu...",()=>t())}catch(G){i("Fehler",`Fehler beim Reboot: ${G.message}`)}})}async function Pe(){B(!0),q("Snapshot wird erzeugt...");try{const G=await Te("/api/system/backup",{method:"POST"});q(G.ok?`Snapshot erzeugt: ${G.snapshot} (${G.files.length} Komponenten)`:"Backup fehlgeschlagen."),Es(n,ze.zeitmaschine)}catch(G){q(`Fehler: ${G.message}`)}finally{B(!1)}}async function ne(G){_(Ie=>({...Ie,[G]:!0}));try{const Ie=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:G})});Ie.ok?(i("Dienst neu gestartet",`Dienst ${G} wurde erfolgreich neu gestartet.`,()=>{N==="logs"&&m===G&&Q(G)}),Es(n,ze.services,ze.health,ze.models)):i("Fehler",`Fehler beim Neustart: ${Ie.err||"Unbekannter Fehler"}`)}catch(Ie){i("Fehler",`Fehler beim Neustart: ${Ie.message}`)}finally{_(Ie=>({...Ie,[G]:!1}))}}async function lt(G){try{await Te(`/api/jobs/${G}/cancel`,{method:"POST"}),K()}catch(Ie){i("Fehler",`Fehler beim Abbrechen: ${Ie.message}`)}}const Re=f.find(G=>(G.state==="running"||G.state==="queued")&&G.group==="maintenance"),Ee=(u?(u.os>0?1:0)+(u.engine?1:0)+(u.swap?1:0):0)+(((or=u==null?void 0:u.components)==null?void 0:or.filter(G=>G.update===!0).length)??0),vt=(h==null?void 0:h.backups)??[];return w.jsxs(w.Fragment,{children:[w.jsx("div",{className:De("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",e?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:t}),w.jsxs("div",{className:De("fixed inset-y-0 right-0 w-full sm:w-[640px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",e?"translate-x-0":"translate-x-full"),children:[w.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),w.jsx("button",{onClick:t,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex border-b border-border/40 px-6",children:["maintenance","logs","settings"].map(G=>w.jsx("button",{onClick:()=>C(G),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",N===G?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:G==="maintenance"?"System-Wartung":G==="logs"?"System-Logs":"Einstellungen"},G))}),w.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[N==="maintenance"&&w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"space-y-2.5",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),w.jsxs("div",{className:"flex items-center gap-3",children:[Ee>0&&w.jsxs("button",{onClick:ye,disabled:!!Re,className:"flex items-center gap-1 rounded-md border border-primary/40 bg-primary/10 px-2 py-1 text-[10px] font-bold text-primary transition-colors hover:bg-primary/20 disabled:opacity-50",children:[w.jsx(tT,{className:"h-3 w-3"})," Alle aktualisieren (",Ee,")"]}),w.jsxs("button",{onClick:_e,disabled:D||!!Re,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[w.jsx(Ho,{className:De("h-3 w-3",D&&"animate-spin")})," Nach Updates suchen"]})]})]}),(u==null?void 0:u.last_check)&&w.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",ie(u.last_check)]}),Re&&w.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-300",children:[w.jsx(Ho,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),w.jsxs("span",{children:["Update läuft: ",w.jsx("span",{className:"font-semibold",children:Re.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),w.jsxs("div",{className:"space-y-1.5",children:[w.jsx(Ps,{icon:Hy,iconClass:"text-cyan-400",name:"OS-Pakete (apt)",available:!!(u!=null&&u.os),status:u!=null&&u.os?`${u.os} verfügbar`:"aktuell",actionLabel:"Anzeigen",onAction:()=>te("os")}),w.jsx(Ps,{icon:Of,iconClass:"text-violet-400",name:"Inferenz-Engine (llama.cpp)",available:!!(u!=null&&u.engine),status:u!=null&&u.engine?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("engine")}),w.jsx(Ps,{icon:BP,iconClass:"text-fuchsia-400",name:"Router (llama-swap)",available:!!(u!=null&&u.swap),status:u!=null&&u.swap?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("swap")}),(()=>{var Ie;const G=(Ie=u==null?void 0:u.components)==null?void 0:Ie.find(Xe=>Xe.key==="hermes_agent");return w.jsx(Ps,{icon:Gs,iconClass:"text-amber-400",name:"Hermes-Agent",available:(G==null?void 0:G.update)===!0,busy:ue,status:(G==null?void 0:G.update)===!0?`Update: ${G.latest}`:(G==null?void 0:G.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("hermes")})})(),(fi=u==null?void 0:u.model_list)==null?void 0:fi.map(G=>w.jsx(Ps,{icon:GM,iconClass:"text-emerald-400",name:`Modell · ${G.role}`,available:!0,status:G.title,actionLabel:"Upgrade",onAction:()=>Z(G.repo,G.role)},G.role))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),w.jsxs("div",{className:"space-y-1.5",children:[de.length===0&&w.jsx("div",{className:"rounded-lg border border-dashed border-border/50 p-4 text-center text-xs text-muted-foreground",children:"Dienste-Liste wird geladen …"}),de.map(G=>w.jsx(E3,{label:G.name,system:G.scope==="system",ok:G.ok,busy:j[G.unit],onRestart:()=>ne(G.unit),onLogs:()=>{v(G.unit),C("logs")}},G.unit))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),w.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:vt[0]?`Letztes: ${vt[0].snapshot}`:"Noch kein Backup"}),w.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[vt.length," Snapshots · Wiederherstellen: Chronik → Zeitmaschine"]})]}),w.jsxs("button",{onClick:Pe,disabled:X,className:"flex items-center gap-1.5 text-[11px] font-semibold rounded-lg px-2.5 py-1 bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50 shrink-0",children:[w.jsx(QM,{className:De("h-3.5 w-3.5",X&&"animate-pulse")})," Snapshot"]})]}),z&&w.jsx("div",{className:"text-[10px] font-mono text-primary bg-primary/5 p-2 rounded-lg border border-primary/20 break-all leading-normal",children:z})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),w.jsxs("button",{onClick:we,className:"flex w-full items-center gap-3 p-3 rounded-lg border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[w.jsx(vT,{className:"h-4.5 w-4.5"}),w.jsxs("div",{children:[w.jsx("div",{children:"Host-System neu starten"}),w.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),w.jsxs("div",{className:"space-y-3",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),w.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(G=>G.state==="running"||G.state==="queued").length," Aktiv"]})]}),w.jsx("div",{className:"space-y-3",children:f.length===0?w.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):f.map(G=>{const Ie=G.state==="running"||G.state==="queued";return w.jsxs("div",{className:De("p-3 rounded-xl border transition-all duration-300",Ie?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[w.jsxs("div",{className:"flex items-start justify-between gap-3",children:[w.jsxs("div",{className:"space-y-1",children:[w.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[Ie&&w.jsxs("span",{className:"flex h-2 w-2 relative",children:[w.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),w.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),G.label]}),w.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[w.jsxs("span",{children:["ID: ",G.id]}),w.jsx("span",{children:"•"}),w.jsx("span",{className:De(G.state==="done"&&"text-emerald-400",G.state==="failed"&&"text-red-400",G.state==="running"&&"text-primary",G.state==="queued"&&"text-amber-400",G.state==="canceled"&&"text-muted-foreground"),children:G.state})]})]}),Ie&&w.jsx("button",{onClick:()=>lt(G.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),G.state==="running"&&w.jsxs("div",{className:"mt-3 space-y-1",children:[w.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:w.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${G.progress??0}%`}})}),w.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[w.jsxs("span",{children:[G.progress??0,"%"]}),G.done_bytes!=null&&G.total_bytes!=null&&w.jsxs("span",{children:[Nm(G.done_bytes)," / ",Nm(G.total_bytes),G.rate_bps!=null&&` (${Nm(G.rate_bps)}/s)`]}),G.eta_s!=null&&w.jsxs("span",{children:["ETA: ",G.eta_s,"s"]})]})]})]},G.id)})})]})]}),N==="logs"&&w.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("select",{value:m,onChange:G=>v(G.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:de.map(G=>w.jsxs("option",{value:G.unit,children:[G.name," (",G.scope==="system"?"systemd-root":"user",")"]},G.unit))}),w.jsxs("button",{onClick:()=>ne(m),disabled:j[m],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[w.jsx(Ho,{className:De("h-3.5 w-3.5",j[m]&&"animate-spin")}),"Restart"]})]}),w.jsx(_3,{service:m,text:x,loading:S,logStatus:P,onRefresh:()=>Q(m),onOpenSettings:()=>C("settings")})]}),N==="settings"&&w.jsx(j3,{open:e,showAlert:i})]})]}),le&&w.jsx(N3,{detail:le,maintenanceJob:Re,onClose:()=>fe(null),onApply:ce}),s]})}let Tv=[],Dv=[];const Rv=new Set,DA=()=>Rv.forEach(e=>e());function RA(e){return Rv.add(e),()=>{Rv.delete(e)}}function M3(e){Tv=[...Tv,e].slice(-40),DA()}function T3(e){Dv=[...Dv,e].slice(-40),DA()}const D3=()=>g.useSyncExternalStore(RA,()=>Tv),R3=()=>g.useSyncExternalStore(RA,()=>Dv);function $3(){const{data:e,dataUpdatedAt:t}=Df(),{data:r,dataUpdatedAt:n}=MA(),i=g.useRef(null);g.useEffect(()=>{var o,s,u,d;e&&M3({t:Date.now(),cpu:((o=e.cpu)==null?void 0:o.percent)??0,ram:((s=e.ram)==null?void 0:s.percent)??0,gpu:((u=e.gpu)==null?void 0:u.busy_percent)??null,disk:((d=e.disk)==null?void 0:d.percent)??null})},[t]),g.useEffect(()=>{if(!r)return;const o=Date.now(),s=r.prompt_tokens,u=r.completion_tokens;if(i.current){const d=Math.max((o-i.current.t)/1e3,.001);T3({t:o,prompt:Math.max(0,(s-i.current.p)/d),completion:Math.max(0,(u-i.current.c)/d)})}i.current={p:s,c:u,t:o}},[n])}function L3(){var F,z,q,X,B,ue;const{data:e,isError:t}=jA(),{data:r,isError:n}=Qy(),{data:i}=IA(),{data:o}=Df(),s=t||n,u=!!e&&!!r,d=Y=>{var le;return(le=r==null?void 0:r.services.find(fe=>fe.unit===Y))==null?void 0:le.ok},f=Y=>!!(r!=null&&r.services.some(le=>le.unit===Y)),h=e==null?void 0:e.engine_reachable,m=(F=e==null?void 0:e.brain)==null?void 0:F.ready,v=((z=e==null?void 0:e.brain)==null?void 0:z.model)||((q=i==null?void 0:i.models.find(Y=>Y.role==="hermes"))==null?void 0:q.name)||"",x=[];s&&x.push({id:"mc2",label:"Steuerpult (MC2)",icon:Of,critical:!0,status:"down",detail:"Die Zentrale antwortet nicht — alle Anzeigen hier können veraltet sein. Läuft die Box? Deploy aktiv?"}),x.push((()=>{const Y={id:"brain",label:"Lucys Hirn",icon:YM,critical:!0};return u?h===!1?{...Y,status:"down",detail:"Die Motor-Maschine (Engine) läuft nicht — Lucy kann gerade gar nicht denken.",repair:{kind:"restart",service:"llama-swap",label:"Motor neu starten",needsSudo:!0}}:m===!1?{...Y,status:"down",detail:"Lucys Hirn ist gerade eingeschlafen — einmal aufwecken.",repair:v?{kind:"loadModel",model:v,label:"Hirn aufwecken"}:void 0}:{...Y,status:"ok",detail:"Wach und ansprechbar."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"vision",label:"Lucys Augen",icon:Ov,critical:!1};if(!u||!i)return{...Y,status:"loading",detail:"Wird geprüft …"};const le=i.models.find(de=>de.role==="vision");return le?(i.running??[]).includes(le.name)?{...Y,status:"ok",detail:"Sieht gerade zu (geladen, solange Lucy sie nutzt)."}:{...Y,status:"ok",detail:"Augen ruhen — sie laden von selbst, sobald Lucy startet oder ein Bild kommt.",repair:{kind:"loadModel",model:le.name,label:"Augen wecken"}}:{...Y,status:"warn",detail:"Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen."}})()),x.push((()=>{const Y={id:"memory",label:"Lucys Gedächtnis",icon:qM,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Hermes-Natives Gedächtnis aktiv (SQLite & Embeddings)."}:{...Y,status:"down",detail:"Lucy kann sich gerade nichts merken — das Gateway antwortet nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Gateway neu starten"}}})()),x.push((()=>{const Y={id:"gateway",label:"Verbindung (Gateway)",icon:Uy,critical:!0},le=e?e.gateway_reachable:d("mc2-gateway");if(!u||le===void 0)return{...Y,status:"loading",detail:"Wird geprüft …"};const fe=f("mc2-gateway")?"mc2-gateway":"mission-control-2";return le?{...Y,status:"ok",detail:"Apps und IDEs können Lucy erreichen."}:{...Y,status:"down",detail:"Der Modell-Gateway antwortet nicht — Lucy und die IDEs erreichen kein Modell.",repair:{kind:"restart",service:fe,label:"Gateway neu starten"}}})()),x.push((()=>{const Y={id:"steward",label:"Wächter (Steward)",icon:Wy,critical:!1};return u?f("mc2-steward")?d("mc2-steward")?{...Y,status:"ok",detail:"Wacht über Warm-Set, Dienste und Gedächtnis."}:{...Y,status:"warn",detail:"Der Wächter schläft — niemand meldet gerade Ausfälle oder wärmt Modelle nach.",repair:{kind:"restart",service:"mc2-steward",label:"Wächter neu starten"}}:{...Y,status:"ok",detail:"Auf dieser Installation nicht eingerichtet."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"agent",label:"Lucys Agent (Hermes)",icon:Gs,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy ist bereit zu reden und zu handeln."}:{...Y,status:"down",detail:"Lucys Agent ist offline — sie reagiert gerade nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Agent neu starten"}}})()),x.push((()=>{const Y={id:"voice",label:"Lucys Stimme",icon:mT,critical:!1},le=d("voice-service");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy kann hören und sprechen."}:{...Y,status:"warn",detail:"Sprechen ist gerade aus — Tippen geht weiter normal.",repair:{kind:"restart",service:"voice-service",label:"Stimme neu starten"}}})());const k=((X=o==null?void 0:o.ram)==null?void 0:X.total)??0,S=((B=o==null?void 0:o.ram)==null?void 0:B.used)??0,E=((ue=o==null?void 0:o.ram)==null?void 0:ue.percent)??(k>0?Math.min(100,S/k*100):0),P=1024**3,O=k?E>=93?{status:"full",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher fast voll — Lucy könnte langsamer werden."}:E>=85?{status:"warn",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher gut gefüllt — noch okay."}:{status:"ok",usedGb:S/P,totalGb:k/P,pct:E,text:"Genug Speicher frei."}:{status:"unknown",usedGb:0,totalGb:0,pct:0,text:"Speicher-Auslastung unbekannt."},j=x.some(Y=>Y.status==="loading"),_=x.filter(Y=>Y.critical&&Y.status==="down"),N=x.filter(Y=>Y.status==="warn"||!Y.critical&&Y.status==="down"),C=O.status==="full";return{verdict:j&&!_.length?"loading":_.length?"problem":N.length||C?"warn":"gut",checks:x,memory:O,problems:_,warns:N,unreachable:s}}const z3={ok:"bg-emerald-500",warn:"bg-amber-500",alert:"bg-red-500",muted:"bg-muted-foreground/40",loading:"bg-muted-foreground/40 animate-pulse"},F3={ok:"hover:border-emerald-500/40",warn:"hover:border-amber-500/50",alert:"hover:border-red-500/50",muted:"hover:border-primary/40",loading:"hover:border-border/60"};function As({icon:e,title:t,value:r,unit:n,tone:i="muted",hint:o,onClick:s}){return w.jsxs("button",{onClick:s,className:De("group relative flex flex-col items-start mc-card p-5 text-left cursor-pointer",F3[i]),children:[w.jsxs("div",{className:"mb-4 flex w-full items-center justify-between",children:[w.jsx("span",{className:"flex h-10 w-10 items-center justify-center rounded-xl border border-border/40 bg-background/30 text-foreground/80 transition-colors group-hover:text-primary",children:w.jsx(e,{className:"h-5 w-5"})}),w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",z3[i]),title:o})]}),w.jsxs("div",{className:"flex items-baseline gap-1.5",children:[w.jsx("span",{className:"text-2xl font-bold tracking-tight text-foreground font-space tabular-nums",children:r}),n&&w.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n})]}),w.jsxs("div",{className:"mt-1 flex w-full items-center justify-between",children:[w.jsx("span",{className:"text-sm font-semibold text-foreground/90",children:t}),w.jsx(Bs,{className:"h-4 w-4 text-muted-foreground/40 transition-all group-hover:translate-x-0.5 group-hover:text-primary"})]}),o&&w.jsx("span",{className:"mt-0.5 text-[11px] text-muted-foreground",children:o})]})}function B3(){const{data:e,error:t}=Df(),r=D3();return{sys:e,hist:r,error:t}}var U3=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function Xy(e){if(typeof e!="string")return!1;var t=U3;return t.includes(e)}var W3=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],H3=new Set(W3);function $A(e){return typeof e!="string"?!1:H3.has(e)}function LA(e){return typeof e=="string"&&e.startsWith("data-")}function on(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r))&&(t[r]=e[r]);return t}function Rf(e){if(e==null)return null;if(g.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return on(t)}return typeof e=="object"&&!Array.isArray(e)?on(e):null}function Br(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r)||Xy(r))&&(t[r]=e[r]);return t}function K3(e){return e==null?null:g.isValidElement(e)?Br(e.props):typeof e=="object"&&!Array.isArray(e)?Br(e):null}var V3=["children","width","height","viewBox","className","style","title","desc"];function $v(){return $v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.width,i=e.height,o=e.viewBox,s=e.className,u=e.style,d=e.title,f=e.desc,h=q3(e,V3),m=o||{width:n,height:i,x:0,y:0},v=Qe("recharts-surface",s);return g.createElement("svg",$v({},Br(h),{className:v,width:n,height:i,style:u,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),g.createElement("title",null,d),g.createElement("desc",null,f),r)}),Y3=["children","className"];function Lv(){return Lv=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,i=Q3(e,Y3),o=Qe("recharts-layer",n);return g.createElement("g",Lv({className:o},Br(i),{ref:t}),r)}),Z3=g.createContext(null);function ft(e){return function(){return e}}const zv=Math.PI,Fv=2*zv,ba=1e-6,J3=Fv-ba;function FA(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return FA;const r=10**t;return function(n){this._+=n[0];for(let i=1,o=n.length;iba)if(!(Math.abs(m*d-f*h)>ba)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let x=n-s,k=i-u,S=d*d+f*f,E=x*x+k*k,P=Math.sqrt(S),O=Math.sqrt(v),j=o*Math.tan((zv-Math.acos((S+v-E)/(2*P*O)))/2),_=j/O,N=j/P;Math.abs(_-1)>ba&&this._append`L${t+_*h},${r+_*m}`,this._append`A${o},${o},0,0,${+(m*x>h*k)},${this._x1=t+N*d},${this._y1=r+N*f}`}}arc(t,r,n,i,o,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),d=n*Math.sin(i),f=t+u,h=r+d,m=1^s,v=s?i-o:o-i;this._x1===null?this._append`M${f},${h}`:(Math.abs(this._x1-f)>ba||Math.abs(this._y1-h)>ba)&&this._append`L${f},${h}`,n&&(v<0&&(v=v%Fv+Fv),v>J3?this._append`A${n},${n},0,1,${m},${t-u},${r-d}A${n},${n},0,1,${m},${this._x1=f},${this._y1=h}`:v>ba&&this._append`A${n},${n},0,${+(v>=zv)},${m},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function BA(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new t$(t)}function Zy(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function UA(e){this._context=e}UA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function $f(e){return new UA(e)}function WA(e){return e[0]}function HA(e){return e[1]}function KA(e,t){var r=ft(!0),n=null,i=$f,o=null,s=BA(u);e=typeof e=="function"?e:e===void 0?WA:ft(e),t=typeof t=="function"?t:t===void 0?HA:ft(t);function u(d){var f,h=(d=Zy(d)).length,m,v=!1,x;for(n==null&&(o=i(x=s())),f=0;f<=h;++f)!(f=x;--k)u.point(j[k],_[k]);u.lineEnd(),u.areaEnd()}P&&(j[v]=+e(E,v,m),_[v]=+t(E,v,m),u.point(n?+n(E,v,m):j[v],r?+r(E,v,m):_[v]))}if(O)return u=null,O+""||null}function h(){return KA().defined(i).curve(s).context(o)}return f.x=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),n=null,f):e},f.x0=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),f):e},f.x1=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:ft(+m),f):n},f.y=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),r=null,f):t},f.y0=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),f):t},f.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:ft(+m),f):r},f.lineX0=f.lineY0=function(){return h().x(e).y(t)},f.lineY1=function(){return h().x(e).y(r)},f.lineX1=function(){return h().x(n).y(t)},f.defined=function(m){return arguments.length?(i=typeof m=="function"?m:ft(!!m),f):i},f.curve=function(m){return arguments.length?(s=m,o!=null&&(u=s(o)),f):s},f.context=function(m){return arguments.length?(m==null?o=u=null:u=s(o=m),f):o},f}class VA{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function r$(e){return new VA(e,!0)}function n$(e){return new VA(e,!1)}function _d(){}function jd(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:jd(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:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function i$(e){return new qA(e)}function GA(e){this._context=e}GA.prototype={areaStart:_d,areaEnd:_d,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:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function a$(e){return new GA(e)}function YA(e){this._context=e}YA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function o$(e){return new YA(e)}function QA(e){this._context=e}QA.prototype={areaStart:_d,areaEnd:_d,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function l$(e){return new QA(e)}function dw(e){return e<0?-1:1}function fw(e,t,r){var n=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(n||i<0&&-0),s=(r-e._y1)/(i||n<0&&-0),u=(o*i+s*n)/(n+i);return(dw(o)+dw(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function hw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Im(e,t,r){var n=e._x0,i=e._y0,o=e._x1,s=e._y1,u=(o-n)/3;e._context.bezierCurveTo(n+u,i+u*t,o-u,s-u*r,o,s)}function Nd(e){this._context=e}Nd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Im(this,this._t0,hw(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Im(this,hw(this,r=fw(this,e,t)),r);break;default:Im(this,this._t0,r=fw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function XA(e){this._context=new ZA(e)}(XA.prototype=Object.create(Nd.prototype)).point=function(e,t){Nd.prototype.point.call(this,t,e)};function ZA(e){this._context=e}ZA.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,o){this._context.bezierCurveTo(t,e,n,r,o,i)}};function s$(e){return new Nd(e)}function u$(e){return new XA(e)}function JA(e){this._context=e}JA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pw(e),i=pw(t),o=0,s=1;s=0;--t)i[t]=(s[t]-i[t+1])/o[t];for(o[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function d$(e){return new Lf(e,.5)}function f$(e){return new Lf(e,0)}function h$(e){return new Lf(e,1)}function Wa(e,t){if((s=e.length)>1)for(var r=1,n,i,o=e[t[0]],s,u=o.length;r=0;)r[t]=t;return r}function p$(e,t){return e[t]}function m$(e){const t=[];return t.key=e,t}function v$(){var e=ft([]),t=Bv,r=Wa,n=p$;function i(o){var s=Array.from(e.apply(this,arguments),m$),u,d=s.length,f=-1,h;for(const m of o)for(u=0,++f;u0){for(var r,n,i=0,o=e[0].length,s;i0){for(var r=0,n=e[t[0]],i,o=n.length;r0)||!((o=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,o,s;n1&&arguments[1]!==void 0?arguments[1]:w$,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Lt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var u=r[s-1];return typeof u=="string"?i+u+o:u!==void 0?i+Gi(u)+o:i+o},"")}var Lr=e=>e===0?0:e>0?1:-1,On=e=>typeof e=="number"&&e!=+e,Ha=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,be=e=>(typeof e=="number"||e instanceof Number)&&!On(e),Cn=e=>be(e)||typeof e=="string",S$=0,Zs=e=>{var t=++S$;return"".concat(e||"").concat(t)},ea=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!be(t)&&typeof t!="string")return n;var o;if(Ha(t)){if(r==null)return n;var s=t.indexOf("%");o=r*parseFloat(t.slice(0,s))/100}else o=+t;return On(o)&&(o=n),i&&r!=null&&o>r&&(o=r),o},rO=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Za(n,t))===r)}var Ut=e=>e===null||typeof e>"u",tg=e=>Ut(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function mr(e){return e!=null}function kl(){}var iO=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,rg=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(g.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(i=>{Xy(i)&&typeof r[i]=="function"&&(n[i]=(o=>r[i](r,o)))}),n},k$=(e,t,r)=>n=>(e(t,r,n),null),E$=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(i=>{var o=e[i];Xy(i)&&typeof o=="function"&&(n||(n={}),n[i]=k$(o,t,r))}),n};function mw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function P$(e){for(var t=1;t(s[u]===void 0&&n[u]!==void 0&&(s[u]=n[u]),s),r);return o}function _$(e,t){const r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ng(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const T$="[object RegExp]",oO="[object String]",lO="[object Number]",sO="[object Boolean]",uO="[object Arguments]",D$="[object Symbol]",R$="[object Date]",$$="[object Map]",L$="[object Set]",z$="[object Array]",F$="[object ArrayBuffer]",B$="[object Object]",U$="[object DataView]",W$="[object Uint8Array]",H$="[object Uint8ClampedArray]",K$="[object Uint16Array]",V$="[object Uint32Array]",q$="[object Int8Array]",G$="[object Int16Array]",Y$="[object Int32Array]",Q$="[object Float32Array]",X$="[object Float64Array]",vw=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function Z$(e){return typeof vw.Buffer<"u"&&vw.Buffer.isBuffer(e)}function J$(e,t){return Ea(e,void 0,e,new Map,t)}function Ea(e,t,r,n=new Map,i=void 0){const o=i==null?void 0:i(e,t,r,n);if(o!==void 0)return o;if(Wv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){const s=new Array(e.length);n.set(e,s);for(let u=0;u{}):Hv(e,t,function n(i,o,s,u,d,f){const h=r(i,o,s,u,d,f);return h!==void 0?!!h:Hv(i,o,n,f,!1)},new Map,!0)}function Hv(e,t,r,n,i=!1){if(t===e)return!0;switch(typeof t){case"object":return r5(e,t,r,n);case"function":return Object.keys(t).length>0?Hv(e,{...t},r,n,i):bd(e,t);default:return cO(e)&&i?typeof t=="string"?t==="":!0:bd(e,t)}}function r5(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return fO(e,t,r,n);if(t instanceof Map)return n5(e,t,r,n);if(t instanceof Set)return i5(e,t,r,n);const i=Object.keys(t);if(e==null||Wv(e))return i.length===0;if(i.length===0)return!0;if(n!=null&&n.has(t))return n.get(t)===e;n==null||n.set(t,e);try{for(let o=0;o{})}function a5(e){return e=t5(e),t=>hO(t,e)}function o5(e,t){return J$(e,(r,n,i,o)=>{if(typeof e=="object"){if(ng(e)==="[object Object]"&&typeof e.constructor!="function"){const s={};return o.set(e,s),en(s,e,i,o),s}switch(Object.prototype.toString.call(e)){case lO:case oO:case sO:{const s=new e.constructor(e==null?void 0:e.valueOf());return en(s,e),s}case uO:{const s={};return en(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function l5(e){return o5(e)}const s5=/^(?:0|[1-9]\d*)$/;function pO(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function mO(e){return e!=null&&typeof e!="function"&&h5(e.length)}function p5(e){return typeof e=="object"&&e!==null}function m5(e){return p5(e)&&mO(e)}function yw(e,t=aO){return m5(e)?_$(Array.from(e),j$(f5(t),1)):[]}function v5(e,t,r){return t===!0?yw(e,r):typeof t=="function"?yw(e,t):e}var Mm={exports:{}},Tm={},Dm={exports:{}},Rm={};/** +`)},ZD=0,Oo=[];function JD(e){var t=g.useRef([]),r=g.useRef([0,0]),n=g.useRef(),i=g.useState(ZD++)[0],o=g.useState(ZP)[0],s=g.useRef(e);g.useEffect(function(){s.current=e},[e]),g.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var S=bD([e.lockRef.current],(e.shards||[]).map(ow),!0).filter(Boolean);return S.forEach(function(E){return E.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),S.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=g.useCallback(function(S,E){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!s.current.allowPinchZoom;var P=Zc(S),O=r.current,j="deltaX"in S?S.deltaX:O[0]-P[0],_="deltaY"in S?S.deltaY:O[1]-P[1],N,C=S.target,D=Math.abs(j)>Math.abs(_)?"h":"v";if("touches"in S&&D==="h"&&C.type==="range")return!1;var F=window.getSelection(),z=F&&F.anchorNode,q=z?z===C||z.contains(C):!1;if(q)return!1;var X=iw(D,C);if(!X)return!0;if(X?N=D:(N=D==="v"?"h":"v",X=iw(D,C)),!X)return!1;if(!n.current&&"changedTouches"in S&&(j||_)&&(n.current=N),!N)return!0;var B=n.current||N;return YD(B,E,S,B==="h"?j:_)},[]),d=g.useCallback(function(S){var E=S;if(!(!Oo.length||Oo[Oo.length-1]!==o)){var P="deltaY"in E?aw(E):Zc(E),O=t.current.filter(function(N){return N.name===E.type&&(N.target===E.target||E.target===N.shadowParent)&&QD(N.delta,P)})[0];if(O&&O.should){E.cancelable&&E.preventDefault();return}if(!O){var j=(s.current.shards||[]).map(ow).filter(Boolean).filter(function(N){return N.contains(E.target)}),_=j.length>0?u(E,j[0]):!s.current.noIsolation;_&&E.cancelable&&E.preventDefault()}}},[]),f=g.useCallback(function(S,E,P,O){var j={name:S,delta:E,target:P,should:O,shadowParent:eR(P)};t.current.push(j),setTimeout(function(){t.current=t.current.filter(function(_){return _!==j})},1)},[]),h=g.useCallback(function(S){r.current=Zc(S),n.current=void 0},[]),m=g.useCallback(function(S){f(S.type,aw(S),S.target,u(S,e.lockRef.current))},[]),v=g.useCallback(function(S){f(S.type,Zc(S),S.target,u(S,e.lockRef.current))},[]);g.useEffect(function(){return Oo.push(o),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",d,Ao),document.addEventListener("touchmove",d,Ao),document.addEventListener("touchstart",h,Ao),function(){Oo=Oo.filter(function(S){return S!==o}),document.removeEventListener("wheel",d,Ao),document.removeEventListener("touchmove",d,Ao),document.removeEventListener("touchstart",h,Ao)}},[]);var x=e.removeScrollBar,k=e.inert;return g.createElement(g.Fragment,null,k?g.createElement(o,{styles:XD(i)}):null,x?g.createElement(UD,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function eR(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const tR=_D(XP,JD);var rA=g.forwardRef(function(e,t){return g.createElement(Nf,Sn({},e,{ref:t,sideCar:tR}))});rA.classNames=Nf.classNames;var rR=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Co=new WeakMap,Jc=new WeakMap,ed={},Cm=0,nA=function(e){return e&&(e.host||nA(e.parentNode))},nR=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=nA(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},iR=function(e,t,r,n){var i=nR(t,Array.isArray(e)?e:[e]);ed[r]||(ed[r]=new WeakMap);var o=ed[r],s=[],u=new Set,d=new Set(i),f=function(m){!m||u.has(m)||(u.add(m),f(m.parentNode))};i.forEach(f);var h=function(m){!m||d.has(m)||Array.prototype.forEach.call(m.children,function(v){if(u.has(v))h(v);else try{var x=v.getAttribute(n),k=x!==null&&x!=="false",S=(Co.get(v)||0)+1,E=(o.get(v)||0)+1;Co.set(v,S),o.set(v,E),s.push(v),S===1&&k&&Jc.set(v,!0),E===1&&v.setAttribute(r,"true"),k||v.setAttribute(n,"true")}catch(P){console.error("aria-hidden: cannot operate on ",v,P)}})};return h(t),u.clear(),Cm++,function(){s.forEach(function(m){var v=Co.get(m)-1,x=o.get(m)-1;Co.set(m,v),o.set(m,x),v||(Jc.has(m)||m.removeAttribute(n),Jc.delete(m)),x||m.removeAttribute(r)}),Cm--,Cm||(Co=new WeakMap,Co=new WeakMap,Jc=new WeakMap,ed={})}},aR=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=rR(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),iR(n,i,r,"aria-hidden")):function(){return null}},If="Dialog",[iA]=MT(If),[oR,sn]=iA(If),aA=e=>{const{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:o,modal:s=!0}=e,u=g.useRef(null),d=g.useRef(null),[f,h]=LT({prop:n,defaultProp:i??!1,onChange:o,caller:If});return w.jsx(oR,{scope:t,triggerRef:u,contentRef:d,contentId:Zn(),titleId:Zn(),descriptionId:Zn(),open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),modal:s,children:r})};aA.displayName=If;var oA="DialogTrigger",lR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(oA,r),o=Qa(t,i.triggerRef);return w.jsx(Wt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":qy(i.open),...n,ref:o,onClick:Qi(e.onClick,i.onOpenToggle)})});lR.displayName=oA;var Vy="DialogPortal",[sR,lA]=iA(Vy,{forceMount:void 0}),sA=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,o=sn(Vy,t);return w.jsx(sR,{scope:t,forceMount:r,children:g.Children.map(n,s=>w.jsx(jf,{present:r||o.open,children:w.jsx(GP,{asChild:!0,container:i,children:s})}))})};sA.displayName=Vy;var Cd="DialogOverlay",uA=g.forwardRef((e,t)=>{const r=lA(Cd,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(Cd,e.__scopeDialog);return o.modal?w.jsx(jf,{present:n||o.open,children:w.jsx(cR,{...i,ref:t})}):null});uA.displayName=Cd;var uR=WP("DialogOverlay.RemoveScroll"),cR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(Cd,r),o=iD(),s=Qa(t,o);return w.jsx(rA,{as:uR,allowPinchZoom:!0,shards:[i.contentRef],children:w.jsx(Wt.div,{"data-state":qy(i.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})}),cl="DialogContent",cA=g.forwardRef((e,t)=>{const r=lA(cl,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,o=sn(cl,e.__scopeDialog);return w.jsx(jf,{present:n||o.open,children:o.modal?w.jsx(dR,{...i,ref:t}):w.jsx(fR,{...i,ref:t})})});cA.displayName=cl;var dR=g.forwardRef((e,t)=>{const r=sn(cl,e.__scopeDialog),n=g.useRef(null),i=Qa(t,r.contentRef,n);return g.useEffect(()=>{const o=n.current;if(o)return aR(o)},[]),w.jsx(dA,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Qi(e.onCloseAutoFocus,o=>{var s;o.preventDefault(),(s=r.triggerRef.current)==null||s.focus()}),onPointerDownOutside:Qi(e.onPointerDownOutside,o=>{const s=o.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0;(s.button===2||u)&&o.preventDefault()}),onFocusOutside:Qi(e.onFocusOutside,o=>o.preventDefault())})}),fR=g.forwardRef((e,t)=>{const r=sn(cl,e.__scopeDialog),n=g.useRef(!1),i=g.useRef(!1);return w.jsx(dA,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var s,u;(s=e.onCloseAutoFocus)==null||s.call(e,o),o.defaultPrevented||(n.current||(u=r.triggerRef.current)==null||u.focus(),o.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:o=>{var d,f;(d=e.onInteractOutside)==null||d.call(e,o),o.defaultPrevented||(n.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const s=o.target;((f=r.triggerRef.current)==null?void 0:f.contains(s))&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),dA=g.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:o,...s}=e,u=sn(cl,r);return xD(),w.jsx(w.Fragment,{children:w.jsx(VP,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:o,children:w.jsx(HP,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":qy(u.open),...s,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),fA="DialogTitle",hR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(fA,r);return w.jsx(Wt.h2,{id:i.titleId,...n,ref:t})});hR.displayName=fA;var hA="DialogDescription",pR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(hA,r);return w.jsx(Wt.p,{id:i.descriptionId,...n,ref:t})});pR.displayName=hA;var pA="DialogClose",mR=g.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=sn(pA,r);return w.jsx(Wt.button,{type:"button",...n,ref:t,onClick:Qi(e.onClick,()=>i.onOpenChange(!1))})});mR.displayName=pA;function qy(e){return e?"open":"closed"}var bs='[cmdk-group=""]',_m='[cmdk-group-items=""]',vR='[cmdk-group-heading=""]',mA='[cmdk-item=""]',lw=`${mA}:not([aria-disabled="true"])`,Nv="cmdk-item-select",Lo="data-value",yR=(e,t,r)=>IT(e,t,r),vA=g.createContext(void 0),bu=()=>g.useContext(vA),yA=g.createContext(void 0),Gy=()=>g.useContext(yA),gA=g.createContext(void 0),xA=g.forwardRef((e,t)=>{let r=zo(()=>{var M,J;return{search:"",value:(J=(M=e.value)!=null?M:e.defaultValue)!=null?J:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=zo(()=>new Set),i=zo(()=>new Map),o=zo(()=>new Map),s=zo(()=>new Set),u=bA(e),{label:d,children:f,value:h,onValueChange:m,filter:v,shouldFilter:x,loop:k,disablePointerSelection:S=!1,vimBindings:E=!0,...P}=e,O=Zn(),j=Zn(),_=Zn(),N=g.useRef(null),C=CR();Ba(()=>{if(h!==void 0){let M=h.trim();r.current.value=M,D.emit()}},[h]),Ba(()=>{C(6,ue)},[]);let D=g.useMemo(()=>({subscribe:M=>(s.current.add(M),()=>s.current.delete(M)),snapshot:()=>r.current,setState:(M,J,se)=>{var te,ce,ye,_e;if(!Object.is(r.current[M],J)){if(r.current[M]=J,M==="search")B(),q(),C(1,X);else if(M==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(_);Z?Z.focus():(te=document.getElementById(O))==null||te.focus()}if(C(7,()=>{var Z;r.current.selectedItemId=(Z=Y())==null?void 0:Z.id,D.emit()}),se||C(5,ue),((ce=u.current)==null?void 0:ce.value)!==void 0){let Z=J??"";(_e=(ye=u.current).onValueChange)==null||_e.call(ye,Z);return}}D.emit()}},emit:()=>{s.current.forEach(M=>M())}}),[]),F=g.useMemo(()=>({value:(M,J,se)=>{var te;J!==((te=o.current.get(M))==null?void 0:te.value)&&(o.current.set(M,{value:J,keywords:se}),r.current.filtered.items.set(M,z(J,se)),C(2,()=>{q(),D.emit()}))},item:(M,J)=>(n.current.add(M),J&&(i.current.has(J)?i.current.get(J).add(M):i.current.set(J,new Set([M]))),C(3,()=>{B(),q(),r.current.value||X(),D.emit()}),()=>{o.current.delete(M),n.current.delete(M),r.current.filtered.items.delete(M);let se=Y();C(4,()=>{B(),(se==null?void 0:se.getAttribute("id"))===M&&X(),D.emit()})}),group:M=>(i.current.has(M)||i.current.set(M,new Set),()=>{o.current.delete(M),i.current.delete(M)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:O,inputId:_,labelId:j,listInnerRef:N}),[]);function z(M,J){var se,te;let ce=(te=(se=u.current)==null?void 0:se.filter)!=null?te:yR;return M?ce(M,r.current.search,J):0}function q(){if(!r.current.search||u.current.shouldFilter===!1)return;let M=r.current.filtered.items,J=[];r.current.filtered.groups.forEach(te=>{let ce=i.current.get(te),ye=0;ce.forEach(_e=>{let Z=M.get(_e);ye=Math.max(Z,ye)}),J.push([te,ye])});let se=N.current;le().sort((te,ce)=>{var ye,_e;let Z=te.getAttribute("id"),we=ce.getAttribute("id");return((ye=M.get(we))!=null?ye:0)-((_e=M.get(Z))!=null?_e:0)}).forEach(te=>{let ce=te.closest(_m);ce?ce.appendChild(te.parentElement===ce?te:te.closest(`${_m} > *`)):se.appendChild(te.parentElement===se?te:te.closest(`${_m} > *`))}),J.sort((te,ce)=>ce[1]-te[1]).forEach(te=>{var ce;let ye=(ce=N.current)==null?void 0:ce.querySelector(`${bs}[${Lo}="${encodeURIComponent(te[0])}"]`);ye==null||ye.parentElement.appendChild(ye)})}function X(){let M=le().find(se=>se.getAttribute("aria-disabled")!=="true"),J=M==null?void 0:M.getAttribute(Lo);D.setState("value",J||void 0)}function B(){var M,J,se,te;if(!r.current.search||u.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let ce=0;for(let ye of n.current){let _e=(J=(M=o.current.get(ye))==null?void 0:M.value)!=null?J:"",Z=(te=(se=o.current.get(ye))==null?void 0:se.keywords)!=null?te:[],we=z(_e,Z);r.current.filtered.items.set(ye,we),we>0&&ce++}for(let[ye,_e]of i.current)for(let Z of _e)if(r.current.filtered.items.get(Z)>0){r.current.filtered.groups.add(ye);break}r.current.filtered.count=ce}function ue(){var M,J,se;let te=Y();te&&(((M=te.parentElement)==null?void 0:M.firstChild)===te&&((se=(J=te.closest(bs))==null?void 0:J.querySelector(vR))==null||se.scrollIntoView({block:"nearest"})),te.scrollIntoView({block:"nearest"}))}function Y(){var M;return(M=N.current)==null?void 0:M.querySelector(`${mA}[aria-selected="true"]`)}function le(){var M;return Array.from(((M=N.current)==null?void 0:M.querySelectorAll(lw))||[])}function fe(M){let J=le()[M];J&&D.setState("value",J.getAttribute(Lo))}function de(M){var J;let se=Y(),te=le(),ce=te.findIndex(_e=>_e===se),ye=te[ce+M];(J=u.current)!=null&&J.loop&&(ye=ce+M<0?te[te.length-1]:ce+M===te.length?te[0]:te[ce+M]),ye&&D.setState("value",ye.getAttribute(Lo))}function K(M){let J=Y(),se=J==null?void 0:J.closest(bs),te;for(;se&&!te;)se=M>0?AR(se,bs):OR(se,bs),te=se==null?void 0:se.querySelector(lw);te?D.setState("value",te.getAttribute(Lo)):de(M)}let ie=()=>fe(le().length-1),Q=M=>{M.preventDefault(),M.metaKey?ie():M.altKey?K(1):de(1)},R=M=>{M.preventDefault(),M.metaKey?fe(0):M.altKey?K(-1):de(-1)};return g.createElement(Wt.div,{ref:t,tabIndex:-1,...P,"cmdk-root":"",onKeyDown:M=>{var J;(J=P.onKeyDown)==null||J.call(P,M);let se=M.nativeEvent.isComposing||M.keyCode===229;if(!(M.defaultPrevented||se))switch(M.key){case"n":case"j":{E&&M.ctrlKey&&Q(M);break}case"ArrowDown":{Q(M);break}case"p":case"k":{E&&M.ctrlKey&&R(M);break}case"ArrowUp":{R(M);break}case"Home":{M.preventDefault(),fe(0);break}case"End":{M.preventDefault(),ie();break}case"Enter":{M.preventDefault();let te=Y();if(te){let ce=new Event(Nv);te.dispatchEvent(ce)}}}}},g.createElement("label",{"cmdk-label":"",htmlFor:F.inputId,id:F.labelId,style:jR},d),Mf(e,M=>g.createElement(yA.Provider,{value:D},g.createElement(vA.Provider,{value:F},M))))}),gR=g.forwardRef((e,t)=>{var r,n;let i=Zn(),o=g.useRef(null),s=g.useContext(gA),u=bu(),d=bA(e),f=(n=(r=d.current)==null?void 0:r.forceMount)!=null?n:s==null?void 0:s.forceMount;Ba(()=>{if(!f)return u.item(i,s==null?void 0:s.id)},[f]);let h=wA(i,o,[e.value,e.children,o],e.keywords),m=Gy(),v=Ji(C=>C.value&&C.value===h.current),x=Ji(C=>f||u.filter()===!1?!0:C.search?C.filtered.items.get(i)>0:!0);g.useEffect(()=>{let C=o.current;if(!(!C||e.disabled))return C.addEventListener(Nv,k),()=>C.removeEventListener(Nv,k)},[x,e.onSelect,e.disabled]);function k(){var C,D;S(),(D=(C=d.current).onSelect)==null||D.call(C,h.current)}function S(){m.setState("value",h.current,!0)}if(!x)return null;let{disabled:E,value:P,onSelect:O,forceMount:j,keywords:_,...N}=e;return g.createElement(Wt.div,{ref:ul(o,t),...N,id:i,"cmdk-item":"",role:"option","aria-disabled":!!E,"aria-selected":!!v,"data-disabled":!!E,"data-selected":!!v,onPointerMove:E||u.getDisablePointerSelection()?void 0:S,onClick:E?void 0:k},e.children)}),xR=g.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:i,...o}=e,s=Zn(),u=g.useRef(null),d=g.useRef(null),f=Zn(),h=bu(),m=Ji(x=>i||h.filter()===!1?!0:x.search?x.filtered.groups.has(s):!0);Ba(()=>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:ul(u,t),...o,"cmdk-group":"",role:"presentation",hidden:m?void 0:!0},r&&g.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},r),Mf(e,x=>g.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},g.createElement(gA.Provider,{value:v},x))))}),bR=g.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,i=g.useRef(null),o=Ji(s=>!s.search);return!r&&!o?null:g.createElement(Wt.div,{ref:ul(i,t),...n,"cmdk-separator":"",role:"separator"})}),wR=g.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,i=e.value!=null,o=Gy(),s=Ji(f=>f.search),u=Ji(f=>f.selectedItemId),d=bu();return g.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),g.createElement(Wt.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:i?e.value:s,onChange:f=>{i||o.setState("search",f.target.value),r==null||r(f.target.value)}})}),SR=g.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...i}=e,o=g.useRef(null),s=g.useRef(null),u=Ji(f=>f.selectedItemId),d=bu();return g.useEffect(()=>{if(s.current&&o.current){let f=s.current,h=o.current,m,v=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let x=f.offsetHeight;h.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return v.observe(f),()=>{cancelAnimationFrame(m),v.unobserve(f)}}},[]),g.createElement(Wt.div,{ref:ul(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":n,id:d.listId},Mf(e,f=>g.createElement("div",{ref:ul(s,d.listInnerRef),"cmdk-list-sizer":""},f)))}),kR=g.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:i,contentClassName:o,container:s,...u}=e;return g.createElement(aA,{open:r,onOpenChange:n},g.createElement(sA,{container:s},g.createElement(uA,{"cmdk-overlay":"",className:i}),g.createElement(cA,{"aria-label":e.label,"cmdk-dialog":"",className:o},g.createElement(xA,{ref:t,...u}))))}),ER=g.forwardRef((e,t)=>Ji(r=>r.filtered.count===0)?g.createElement(Wt.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),PR=g.forwardRef((e,t)=>{let{progress:r,children:n,label:i="Loading...",...o}=e;return g.createElement(Wt.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Mf(e,s=>g.createElement("div",{"aria-hidden":!0},s)))}),_o=Object.assign(xA,{List:SR,Item:gR,Input:wR,Group:xR,Separator:bR,Dialog:kR,Empty:ER,Loading:PR});function AR(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function OR(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function bA(e){let t=g.useRef(e);return Ba(()=>{t.current=e}),t}var Ba=typeof window>"u"?g.useEffect:g.useLayoutEffect;function zo(e){let t=g.useRef();return t.current===void 0&&(t.current=e()),t}function Ji(e){let t=Gy(),r=()=>e(t.snapshot());return g.useSyncExternalStore(t.subscribe,r,r)}function wA(e,t,r,n=[]){let i=g.useRef(),o=bu();return Ba(()=>{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(Lo,u),i.current=u}),i}var CR=()=>{let[e,t]=g.useState(),r=zo(()=>new Map);return Ba(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,i)=>{r.current.set(n,i),t({})}};function _R(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Mf({asChild:e,children:t},r){return e&&g.isValidElement(t)?g.cloneElement(_R(t),{ref:t.ref},r(t.props.children)):r(t)}var jR={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function NR({onNavigate:e}){const[t,r]=g.useState(!1);return g.useEffect(()=>{const n=i=>{(i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="k"&&(i.preventDefault(),r(o=>!o))};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[]),w.jsx(_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:w.jsxs("div",{className:"w-full max-w-lg overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:n=>n.stopPropagation(),children:[w.jsx(_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"}),w.jsxs(_o.List,{className:"max-h-80 overflow-y-auto p-2",children:[w.jsx(_o.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),w.jsx(_o.Group,{heading:"Bereiche",className:"px-1 py-1 text-xs text-muted-foreground",children:Ho.map(n=>w.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:[w.jsx(n.icon,{className:"h-4 w-4 text-primary"}),w.jsx("span",{children:n.label}),w.jsx("span",{className:"ml-auto truncate text-xs text-muted-foreground",children:n.hint})]},n.id))})]})]})})}const SA="mc_expert_mode",Iv="mc-expert-mode-change",IR=()=>{try{return localStorage.getItem(SA)==="true"}catch{return!1}};function MR(e){return window.addEventListener(Iv,e),window.addEventListener("storage",e),()=>{window.removeEventListener(Iv,e),window.removeEventListener("storage",e)}}function sw(e){localStorage.setItem(SA,String(e)),window.dispatchEvent(new Event(Iv))}function TR(){return g.useSyncExternalStore(MR,IR,()=>!1)}function kA(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t{const t=$R(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{const u=s.split(Yy);return u[0]===""&&u.length!==1&&u.shift(),EA(u,t)||RR(s)},getConflictingClassGroupIds:(s,u)=>{const d=r[s]||[];return u&&n[s]?[...d,...n[s]]:d}}},EA=(e,t)=>{var s;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),i=n?EA(e.slice(1),n):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(Yy);return(s=t.validators.find(({validator:u})=>u(o)))==null?void 0:s.classGroupId},uw=/^\[(.+)\]$/,RR=e=>{if(uw.test(e)){const t=uw.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},$R=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return zR(Object.entries(e.classGroups),r).forEach(([o,s])=>{Mv(s,n,o,t)}),n},Mv=(e,t,r,n)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:cw(t,i);o.classGroupId=r;return}if(typeof i=="function"){if(LR(i)){Mv(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([o,s])=>{Mv(s,cw(t,o),r,n)})})},cw=(e,t)=>{let r=e;return t.split(Yy).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},LR=e=>e.isThemeGetter,zR=(e,t)=>t?e.map(([r,n])=>{const i=n.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([s,u])=>[t+s,u])):o);return[r,i]}):e,FR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;const i=(o,s)=>{r.set(o,s),t++,t>e&&(t=0,n=r,r=new Map)};return{get(o){let s=r.get(o);if(s!==void 0)return s;if((s=n.get(o))!==void 0)return i(o,s),s},set(o,s){r.has(o)?r.set(o,s):i(o,s)}}},PA="!",BR=e=>{const{separator:t,experimentalParseClassName:r}=e,n=t.length===1,i=t[0],o=t.length,s=u=>{const d=[];let f=0,h=0,m;for(let E=0;Eh?m-h:void 0;return{modifiers:d,hasImportantModifier:x,baseClassName:k,maybePostfixModifierPosition:S}};return r?u=>r({className:u,parseClassName:s}):s},UR=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t},WR=e=>({cache:FR(e.cacheSize),parseClassName:BR(e),...DR(e)}),HR=/\s+/,KR=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,o=[],s=e.trim().split(HR);let u="";for(let d=s.length-1;d>=0;d-=1){const f=s[d],{modifiers:h,hasImportantModifier:m,baseClassName:v,maybePostfixModifierPosition:x}=r(f);let k=!!x,S=n(k?v.substring(0,x):v);if(!S){if(!k){u=f+(u.length>0?" "+u:u);continue}if(S=n(v),!S){u=f+(u.length>0?" "+u:u);continue}k=!1}const E=UR(h).join(":"),P=m?E+PA:E,O=P+S;if(o.includes(O))continue;o.push(O);const j=i(S,k);for(let _=0;_0?" "+u:u)}return u};function VR(){let e=0,t,r,n="";for(;e{if(typeof e=="string")return e;let t,r="";for(let n=0;nm(h),e());return r=WR(f),n=r.cache.get,i=r.cache.set,o=u,u(d)}function u(d){const f=n(d);if(f)return f;const h=KR(d,r);return i(d,h),h}return function(){return o(VR.apply(null,arguments))}}const et=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},OA=/^\[(?:([a-z-]+):)?(.+)\]$/i,GR=/^\d+\/\d+$/,YR=new Set(["px","full","screen"]),QR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,JR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Wn=e=>Vo(e)||YR.has(e)||GR.test(e),Ii=e=>wl(e,"length",s3),Vo=e=>!!e&&!Number.isNaN(Number(e)),jm=e=>wl(e,"number",Vo),ws=e=>!!e&&Number.isInteger(Number(e)),t3=e=>e.endsWith("%")&&Vo(e.slice(0,-1)),Me=e=>OA.test(e),Mi=e=>QR.test(e),r3=new Set(["length","size","percentage"]),n3=e=>wl(e,r3,CA),i3=e=>wl(e,"position",CA),a3=new Set(["image","url"]),o3=e=>wl(e,a3,c3),l3=e=>wl(e,"",u3),Ss=()=>!0,wl=(e,t,r)=>{const n=OA.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},s3=e=>XR.test(e)&&!ZR.test(e),CA=()=>!1,u3=e=>JR.test(e),c3=e=>e3.test(e),d3=()=>{const e=et("colors"),t=et("spacing"),r=et("blur"),n=et("brightness"),i=et("borderColor"),o=et("borderRadius"),s=et("borderSpacing"),u=et("borderWidth"),d=et("contrast"),f=et("grayscale"),h=et("hueRotate"),m=et("invert"),v=et("gap"),x=et("gradientColorStops"),k=et("gradientColorStopPositions"),S=et("inset"),E=et("margin"),P=et("opacity"),O=et("padding"),j=et("saturate"),_=et("scale"),N=et("sepia"),C=et("skew"),D=et("space"),F=et("translate"),z=()=>["auto","contain","none"],q=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto",Me,t],B=()=>[Me,t],ue=()=>["",Wn,Ii],Y=()=>["auto",Vo,Me],le=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],fe=()=>["solid","dashed","dotted","double","none"],de=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>["start","end","center","between","around","evenly","stretch"],ie=()=>["","0",Me],Q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>[Vo,Me];return{cacheSize:500,separator:":",theme:{colors:[Ss],spacing:[Wn,Ii],blur:["none","",Mi,Me],brightness:R(),borderColor:[e],borderRadius:["none","","full",Mi,Me],borderSpacing:B(),borderWidth:ue(),contrast:R(),grayscale:ie(),hueRotate:R(),invert:ie(),gap:B(),gradientColorStops:[e],gradientColorStopPositions:[t3,Ii],inset:X(),margin:X(),opacity:R(),padding:B(),saturate:R(),scale:R(),sepia:ie(),skew:R(),space:B(),translate:B()},classGroups:{aspect:[{aspect:["auto","square","video",Me]}],container:["container"],columns:[{columns:[Mi]}],"break-after":[{"break-after":Q()}],"break-before":[{"break-before":Q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...le(),Me]}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[S]}],"inset-x":[{"inset-x":[S]}],"inset-y":[{"inset-y":[S]}],start:[{start:[S]}],end:[{end:[S]}],top:[{top:[S]}],right:[{right:[S]}],bottom:[{bottom:[S]}],left:[{left:[S]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ws,Me]}],basis:[{basis:X()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Me]}],grow:[{grow:ie()}],shrink:[{shrink:ie()}],order:[{order:["first","last","none",ws,Me]}],"grid-cols":[{"grid-cols":[Ss]}],"col-start-end":[{col:["auto",{span:["full",ws,Me]},Me]}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":[Ss]}],"row-start-end":[{row:["auto",{span:[ws,Me]},Me]}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Me]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Me]}],gap:[{gap:[v]}],"gap-x":[{"gap-x":[v]}],"gap-y":[{"gap-y":[v]}],"justify-content":[{justify:["normal",...K()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...K(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...K(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[O]}],px:[{px:[O]}],py:[{py:[O]}],ps:[{ps:[O]}],pe:[{pe:[O]}],pt:[{pt:[O]}],pr:[{pr:[O]}],pb:[{pb:[O]}],pl:[{pl:[O]}],m:[{m:[E]}],mx:[{mx:[E]}],my:[{my:[E]}],ms:[{ms:[E]}],me:[{me:[E]}],mt:[{mt:[E]}],mr:[{mr:[E]}],mb:[{mb:[E]}],ml:[{ml:[E]}],"space-x":[{"space-x":[D]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[D]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Me,t]}],"min-w":[{"min-w":[Me,t,"min","max","fit"]}],"max-w":[{"max-w":[Me,t,"none","full","min","max","fit","prose",{screen:[Mi]},Mi]}],h:[{h:[Me,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Me,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Me,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Mi,Ii]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",jm]}],"font-family":[{font:[Ss]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Me]}],"line-clamp":[{"line-clamp":["none",Vo,jm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Wn,Me]}],"list-image":[{"list-image":["none",Me]}],"list-style-type":[{list:["none","disc","decimal",Me]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[P]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[P]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Wn,Ii]}],"underline-offset":[{"underline-offset":["auto",Wn,Me]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[P]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...le(),i3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",n3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},o3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[x]}],"gradient-via":[{via:[x]}],"gradient-to":[{to:[x]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[u]}],"border-w-x":[{"border-x":[u]}],"border-w-y":[{"border-y":[u]}],"border-w-s":[{"border-s":[u]}],"border-w-e":[{"border-e":[u]}],"border-w-t":[{"border-t":[u]}],"border-w-r":[{"border-r":[u]}],"border-w-b":[{"border-b":[u]}],"border-w-l":[{"border-l":[u]}],"border-opacity":[{"border-opacity":[P]}],"border-style":[{border:[...fe(),"hidden"]}],"divide-x":[{"divide-x":[u]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[u]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[P]}],"divide-style":[{divide:fe()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...fe()]}],"outline-offset":[{"outline-offset":[Wn,Me]}],"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,l3]}],"shadow-color":[{shadow:[Ss]}],opacity:[{opacity:[P]}],"mix-blend":[{"mix-blend":[...de(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":de()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",Mi,Me]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[j]}],sepia:[{sepia:[N]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[P]}],"backdrop-saturate":[{"backdrop-saturate":[j]}],"backdrop-sepia":[{"backdrop-sepia":[N]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Me]}],duration:[{duration:R()}],ease:[{ease:["linear","in","out","in-out",Me]}],delay:[{delay:R()}],animate:[{animate:["none","spin","ping","pulse","bounce",Me]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[_]}],"scale-x":[{"scale-x":[_]}],"scale-y":[{"scale-y":[_]}],rotate:[{rotate:[ws,Me]}],"translate-x":[{"translate-x":[F]}],"translate-y":[{"translate-y":[F]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Me]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Me]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Me]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Wn,Ii,jm]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},f3=qR(d3);function De(...e){return f3(Qe(e))}function CQ(e){return e?e.replace(/127\.0\.0\.1|localhost/g,"192.168.178.151"):""}function h3(){const e=TR();return w.jsxs("div",{className:"flex items-center rounded-md border border-border/40 bg-background/40 p-0.5",role:"group","aria-label":"Ansichtsmodus",title:"Einfach zeigt nur das Wichtigste. Experte zeigt alle technischen Details.",children:[w.jsxs("button",{onClick:()=>sw(!1),"aria-pressed":!e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"text-muted-foreground hover:text-foreground":"bg-primary/15 text-primary shadow-sm"),children:[w.jsx(bT,{className:"h-3.5 w-3.5"})," Einfach"]}),w.jsxs("button",{onClick:()=>sw(!0),"aria-pressed":e,className:De("flex items-center gap-1 rounded px-2 py-1 text-xs font-semibold transition-all cursor-pointer",e?"bg-primary/15 text-primary shadow-sm":"text-muted-foreground hover:text-foreground"),children:[w.jsx(xT,{className:"h-3.5 w-3.5"})," Experte"]})]})}async function Te(e,t){var d;const r={"Content-Type":"application/json",...t==null?void 0:t.headers},n=((d=t==null?void 0:t.method)==null?void 0:d.toUpperCase())||"GET",i=n==="GET"?null:localStorage.getItem("mc_sudo_password"),o=n==="GET"?null:localStorage.getItem("mc_hf_token");i&&(r["X-Sudo-Password"]=i);let s=t==null?void 0:t.body;if(n==="POST"){if(typeof s=="string")try{const f=JSON.parse(s);let h=!1;i&&!("sudo_password"in f)&&(f.sudo_password=i,h=!0),o&&!("hf_token"in f)&&(f.hf_token=o,h=!0),h&&(s=JSON.stringify(f))}catch{}else if(!s){const f={};i&&(f.sudo_password=i),o&&(f.hf_token=o),Object.keys(f).length>0&&(s=JSON.stringify(f))}}const u=await fetch(e,{...t,headers:r,body:s});if(!u.ok)throw new Error(`${u.status} ${u.statusText}`);return u.json()}const _Q=(e,t,r=!1,n=!0)=>Te("/api/groups",{method:"PUT",body:JSON.stringify({group:e,members:t,swap:r,persist:n})}),jQ=e=>Te("/api/routing/policy",{method:"PUT",body:JSON.stringify(e)});function p3({type:e,title:t,message:r,defaultValue:n,autoValue:i,autoLabel:o,onConfirm:s,onCancel:u}){const d=g.useRef(null);return w.jsx("div",{className:"fixed inset-0 z-[99] bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 overscroll-contain",role:"dialog","aria-modal":"true","aria-label":t,children:w.jsxs("div",{className:"w-full max-w-sm rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[w.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:t}),w.jsx("button",{onClick:u||(()=>s()),"aria-label":"Schließen",className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"max-h-72 overflow-y-auto whitespace-pre-line text-xs text-muted-foreground leading-relaxed scrollbar-thin",children:r}),e==="prompt"&&w.jsxs("div",{className:"flex gap-2",children:[w.jsx("input",{ref:d,type:"text",defaultValue:n,"aria-label":t,className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground",autoFocus:!0,onKeyDown:f=>{var h;f.key==="Enter"&&s((h=d.current)==null?void 0:h.value)}}),i!==void 0&&w.jsx("button",{type:"button",onClick:()=>{d.current&&(d.current.value=i)},title:"Setup-bewussten Optimalwert eintragen",className:"h-9 px-3 shrink-0 text-xs font-semibold text-primary border border-primary/50 bg-primary/10 hover:bg-primary/20 rounded-lg transition-colors cursor-pointer",children:o||"Auto"})]}),w.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[(e==="confirm"||e==="prompt")&&w.jsx("button",{onClick:u,className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Abbrechen"}),w.jsx("button",{onClick:()=>{var h;const f=e==="prompt"?(h=d.current)==null?void 0:h.value:void 0;s(f)},className:"h-8 px-4 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/95 rounded-lg transition-colors cursor-pointer",children:e==="confirm"?"Ja, fortfahren":e==="prompt"?"Übernehmen":"OK"})]})]})})}function _A(){const[e,t]=g.useState(null),r=g.useCallback(()=>t(null),[]),n=g.useCallback((u,d,f)=>{t({type:"alert",title:u,message:d,onConfirm:()=>{t(null),f==null||f()}})},[]),i=g.useCallback((u,d,f,h)=>{t({type:"confirm",title:u,message:d,onConfirm:()=>{t(null),f()},onCancel:()=>{t(null),h==null||h()}})},[]),o=g.useCallback((u,d,f,h,m,v)=>{t({type:"prompt",title:u,message:d,defaultValue:f,autoValue:v==null?void 0:v.autoValue,autoLabel:v==null?void 0:v.autoLabel,onConfirm:x=>{t(null),h(x)},onCancel:()=>{t(null),m==null||m()}})},[]),s=e?w.jsx(p3,{...e}):null;return{showAlert:n,showConfirm:i,showPrompt:o,close:r,dialogElement:s}}let xd=!1;const m3=()=>xd;function v3(){const e=Af();g.useEffect(()=>{const t=new EventSource("/api/events");return t.onopen=()=>{xd=!0},t.onerror=()=>{xd=!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{}}),()=>{xd=!1,t.close()}},[e])}const ze={health:["health"],systemStatus:["system-status"],services:["services"],models:["models"],groups:["groups"],routing:["routing"],routingPolicy:["routing-policy"],jobs:["jobs"],tokenStats:["token-stats"],agentStatus:["agent-status"],hermesBrain:["hermes-brain"],updates:["updates"],discover:["discover"],drafts:e=>["drafts",e??""],connect:e=>["connect",e??""],connectHealth:["connect-health"],memoryGraph:["memory-graph"],voiceTrace:["voice-trace"],auftragsbuch:["auftragsbuch"],ideen:["ideen"],chronik:["chronik"],wissen:["wissen"],zeitmaschine:["zeitmaschine"],reminders:["reminders"]},yr={graph:3e3,schnell:8e3,normal:1e4,gemuetlich:3e4,traege:6e4},Tf=e=>()=>m3()?e*5:e,y3=(e=yr.schnell)=>at({queryKey:ze.auftragsbuch,queryFn:()=>Te("/api/auftragsbuch"),refetchInterval:Tf(e)}),g3=(e=yr.gemuetlich)=>at({queryKey:ze.ideen,queryFn:()=>Te("/api/ideen"),refetchInterval:Tf(e)}),NQ=(e,t=!1)=>at({queryKey:["ideen-log",e],queryFn:()=>Te(`/api/ideen/${e}/log`),enabled:t,refetchInterval:4e3,staleTime:0}),IQ=(e=150,t=yr.gemuetlich)=>at({queryKey:[...ze.chronik,e],queryFn:()=>Te(`/api/chronik?limit=${e}`),refetchInterval:Tf(t),select:r=>r.items??[]}),MQ=()=>at({queryKey:ze.wissen,queryFn:()=>Te("/api/wissen")}),x3=(e=yr.traege,t=!0)=>at({queryKey:ze.zeitmaschine,queryFn:()=>Te("/api/zeitmaschine"),refetchInterval:e,enabled:t}),b3=(e=12,t=yr.schnell)=>at({queryKey:ze.voiceTrace,queryFn:()=>Te(`/api/voice/trace?limit=${e}`),refetchInterval:t,select:r=>r.turns??[]}),TQ=(e=!0)=>at({queryKey:ze.memoryGraph,queryFn:()=>Te("/api/wissen/graph"),enabled:e,staleTime:60*1e3}),jA=()=>at({queryKey:ze.health,queryFn:()=>Te("/api/health"),refetchInterval:yr.normal}),Df=(e=yr.graph)=>at({queryKey:ze.systemStatus,queryFn:()=>Te("/api/system/status"),refetchInterval:e}),NA=(e,t=!0)=>at({queryKey:["metrics-history",e],queryFn:()=>Te(`/api/system/history?minutes=${e}`),enabled:t,refetchInterval:6e4}),Qy=(e=yr.normal)=>at({queryKey:ze.services,queryFn:()=>Te("/api/system/services"),refetchInterval:e}),IA=(e=yr.schnell)=>at({queryKey:ze.models,queryFn:()=>Te("/api/models"),refetchInterval:Tf(e)}),DQ=(e=yr.normal)=>at({queryKey:ze.groups,queryFn:()=>Te("/api/groups"),refetchInterval:e}),RQ=()=>at({queryKey:ze.routingPolicy,queryFn:()=>Te("/api/routing/policy")}),w3=(e=3e3,t=!0)=>at({queryKey:ze.jobs,queryFn:()=>Te("/api/jobs"),refetchInterval:e,enabled:t,select:r=>r.jobs??[]}),MA=(e=yr.graph)=>at({queryKey:ze.tokenStats,queryFn:()=>Te("/api/system/token-stats"),refetchInterval:e}),S3=(e=yr.normal)=>at({queryKey:ze.agentStatus,queryFn:()=>Te("/api/agent/status"),refetchInterval:e}),$Q=(e=yr.traege)=>at({queryKey:ze.hermesBrain,queryFn:()=>Te("/api/agent/brain"),refetchInterval:e}),TA=(e=yr.traege)=>at({queryKey:ze.updates,queryFn:()=>Te("/api/maintenance/updates"),refetchInterval:e}),LQ=()=>at({queryKey:ze.discover,queryFn:()=>Te("/api/discover")}),zQ=e=>at({queryKey:ze.drafts(e),queryFn:()=>Te(`/api/models/drafts?target=${encodeURIComponent(e??"")}`),enabled:!!e}),FQ=e=>at({queryKey:ze.connect(e),queryFn:()=>Te(e?`/api/connect?${e}`:"/api/connect")}),k3=()=>at({queryKey:ze.connectHealth,queryFn:()=>Te("/api/connect/health"),refetchInterval:15e3});function ks(e,...t){for(const r of t)e.invalidateQueries({queryKey:r})}function jo(e){return(e/1024**3).toFixed(1)}function Nm(e){return e?e>1024**3?`${(e/1024**3).toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`:""}function BQ(e){if(!e)return"—";const t=e/1024**3;return t>=1?`${t.toFixed(1)} GB`:`${(e/1024**2).toFixed(0)} MB`}function UQ(e){if(!e)return"";const t=Math.floor(e/60);return t>0?`${t} min`:`${e} s`}function WQ(e){return e?`${Math.round(e/1024)}k`:"—"}function HQ(e){return e?new Date(e*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"}):"—"}function Es({icon:e,iconClass:t,name:r,status:n,available:i,busy:o,actionLabel:s,onAction:u}){return w.jsxs("div",{className:De("flex items-center gap-3 rounded-lg border px-3 py-2",i?"border-amber-500/30 bg-amber-500/5":"border-border/50 bg-background/20"),children:[w.jsx(e,{className:De("h-4 w-4 shrink-0",t)}),w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:r}),w.jsx("div",{className:De("text-[10px] truncate",i?"text-amber-400/90":"text-muted-foreground"),children:n})]}),w.jsx("button",{onClick:u,disabled:!i||o,className:De("text-[11px] font-semibold rounded-lg px-2.5 py-1 transition-colors shrink-0",i?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer":"border border-border/50 text-muted-foreground/40 cursor-default"),children:o?"…":s})]})}function E3({label:e,ok:t,system:r,busy:n,onRestart:i,onLogs:o}){return w.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[w.jsx("span",{className:De("w-1.5 h-1.5 rounded-full shrink-0",t===!0?"bg-emerald-500":t===!1?"bg-red-500":"bg-muted-foreground/40")}),w.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[e,r&&w.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),w.jsx("button",{onClick:i,disabled:n,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:w.jsx(Wo,{className:De("h-3.5 w-3.5",n&&"animate-spin")})}),w.jsx("button",{onClick:o,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:w.jsx(iT,{className:"h-3.5 w-3.5"})})]})}const P3=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,A3=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function O3(e){return P3.test(e)?"error":A3.test(e)?"warn":"info"}const C3={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function _3({service:e,text:t,loading:r,logStatus:n,onRefresh:i,onOpenSettings:o}){const[s,u]=g.useState(!1),[d,f]=g.useState(""),h=g.useRef(null),m=g.useMemo(()=>t?t.split(` +`).map(E=>({t:E,level:O3(E)})):[],[t]),v=g.useMemo(()=>m.filter(E=>E.level!=="info").length,[m]),x=d.trim().toLowerCase(),k=m.filter(E=>(!s||E.level!=="info")&&(!x||E.t.toLowerCase().includes(x))),S=n==="password_required"||n==="incorrect_password";return w.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[w.jsxs("div",{className:"flex h-10 items-center justify-between gap-2 px-3 border-b border-border/40 bg-black/30 shrink-0",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[w.jsx(ST,{className:"h-3 w-3 text-primary"}),w.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",e]}),w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsxs("div",{className:"relative",children:[w.jsx(yT,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),w.jsx("input",{value:d,onChange:E=>f(E.target.value),placeholder:"filtern…",className:"h-7 w-24 sm:w-36 rounded-md border border-border/50 bg-background/40 pl-6 pr-2 text-[10px] text-foreground outline-none focus:border-primary/50"})]}),w.jsxs("button",{onClick:()=>u(E=>!E),title:"Nur Fehler und Warnungen zeigen",className:De("flex h-7 items-center gap-1 rounded-md border px-2 text-[10px] font-semibold transition-colors",s?"border-amber-500/50 bg-amber-500/15 text-amber-300":"border-border/50 bg-background/20 text-muted-foreground hover:text-foreground"),children:[w.jsx(Ys,{className:"h-3 w-3"}),"Nur Probleme",v>0?` (${v})`:""]}),w.jsx("button",{onClick:i,disabled:r,title:"Neu laden",className:"flex h-7 w-7 items-center justify-center rounded-md border border-border/50 bg-background/20 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50",children:w.jsx(Wo,{className:De("h-3 w-3",r&&"animate-spin")})})]})]}),w.jsx("div",{ref:h,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:S?w.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[w.jsx(Ys,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),w.jsx("div",{className:"text-xs font-semibold text-amber-300",children:n==="incorrect_password"?"Falsches Sudo-Passwort hinterlegt.":"Sudo-Passwort für systemd-Dienste erforderlich."}),w.jsxs("p",{className:"max-w-xs text-[10px] leading-normal text-muted-foreground",children:["Für das Auslesen der systemd-Logs von ",e," werden Root-Rechte benötigt. Hinterlege dein Passwort in den Einstellungen."]}),w.jsx("button",{onClick:o,className:"mt-2 rounded-md bg-primary px-3 py-1.5 text-[10px] font-semibold text-primary-foreground transition-colors hover:bg-primary/95",children:"Sudo-Passwort eintragen"})]}):r&&!t?w.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):m.length===0?w.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):k.length===0?w.jsx("span",{className:"text-muted-foreground",children:s?"Keine Fehler oder Warnungen — der Dienst läuft sauber. ✓":"Kein Treffer für den Filter."}):k.map((E,P)=>w.jsx("div",{className:De("whitespace-pre-wrap",C3[E.level]),children:E.t||" "},P))})]})}function j3({open:e,showAlert:t}){const[r,n]=g.useState(""),[i,o]=g.useState(""),[s,u]=g.useState(!1),[d,f]=g.useState(!1);return g.useEffect(()=>{e&&(n(localStorage.getItem("mc_sudo_password")||""),o(localStorage.getItem("mc_hf_token")||""))},[e]),w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{className:"space-y-2",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Daten werden ausschließlich lokal in deinem Browser (localStorage) gespeichert und bei Bedarf an das Backend übertragen."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(Hy,{className:"h-4 w-4 text-amber-400"}),"Host Sudo-Passwort"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:s?"text":"password",value:r,onChange:h=>n(h.target.value),"aria-label":"Host Sudo-Passwort",name:"sudo-password",autoComplete:"off",spellCheck:!1,placeholder:"Sudo-Passwort für System-Operationen",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>u(!s),"aria-label":s?"Passwort verbergen":"Passwort anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:s?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Wird benötigt für systemd-Dienste (Llama Swap logs/restart), OS-Update (apt) und Reboot."})]}),w.jsxs("div",{className:"space-y-2",children:[w.jsxs("label",{className:"text-xs font-semibold flex items-center gap-1.5",children:[w.jsx(cT,{className:"h-4 w-4 text-violet-400"}),"HuggingFace API Token"]}),w.jsxs("div",{className:"relative",children:[w.jsx("input",{type:d?"text":"password",value:i,onChange:h=>o(h.target.value),"aria-label":"HuggingFace API Token",name:"hf-token",autoComplete:"off",spellCheck:!1,placeholder:"hf_…",className:"w-full h-10 pl-3 pr-10 text-xs bg-background/40 border border-border/60 rounded-lg outline-none focus:border-primary transition-colors text-foreground"}),w.jsx("button",{type:"button",onClick:()=>f(!d),"aria-label":d?"Token verbergen":"Token anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground hover:text-foreground transition-colors",children:d?w.jsx(U1,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(Ov,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("p",{className:"text-[9px] text-muted-foreground leading-normal",children:"Erlaubt das Herunterladen von geschützten oder Gate-restricted Modellen direkt über Mission Control."})]}),w.jsxs("div",{className:"flex gap-3 pt-2",children:[w.jsx("button",{onClick:()=>{localStorage.setItem("mc_sudo_password",r),localStorage.setItem("mc_hf_token",i),t("Erfolgreich","Einstellungen erfolgreich lokal gespeichert.")},className:"flex-1 h-9 flex items-center justify-center text-xs font-semibold text-primary-foreground bg-primary hover:bg-primary/90 rounded-lg transition-colors shadow shadow-primary/10 cursor-pointer",children:"Speichern"}),w.jsx("button",{onClick:()=>{n(""),o(""),localStorage.removeItem("mc_sudo_password"),localStorage.removeItem("mc_hf_token"),t("Gelöscht","Zugangsdaten gelöscht.")},className:"h-9 px-4 flex items-center justify-center text-xs font-semibold text-muted-foreground border border-border/60 bg-background/20 hover:bg-accent rounded-lg transition-colors cursor-pointer",children:"Zurücksetzen"})]})]})}function N3({detail:e,maintenanceJob:t,onClose:r,onApply:n}){var d,f;const i=e.data,o={os:{icon:Hy,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:Of,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:BP,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:Gs,cls:"text-amber-400",title:"Hermes-Agent"}}[e.kind],s=o.icon,u=i?e.kind==="os"?(i.count??0)===0:e.kind==="hermes"?(i.behind??0)===0:i.installed_build!=null&&i.latest_build!=null&&i.latest_build<=i.installed_build:!0;return w.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[w.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:r}),w.jsxs("div",{className:"relative w-full max-w-lg max-h-[80vh] flex flex-col rounded-2xl border border-border/60 bg-card shadow-2xl font-sans text-foreground",children:[w.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(s,{className:De("h-4.5 w-4.5",o.cls)}),w.jsx("h3",{className:"text-sm font-semibold",children:o.title})]}),w.jsx("button",{onClick:r,className:"flex h-7 w-7 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:e.loading?w.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[w.jsx(Wo,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):i!=null&&i.error?w.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:i.error}):w.jsxs(w.Fragment,{children:[(i==null?void 0:i.action_needed)!=null&&w.jsxs("div",{className:De("flex items-start gap-2 rounded-lg border p-3",i.action_needed?"border-amber-500/40 bg-amber-500/10":"border-emerald-500/40 bg-emerald-500/10"),children:[i.action_needed?w.jsx(Ys,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):w.jsx(JM,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsxs("div",{className:De("text-xs font-semibold",i.action_needed?"text-amber-300":"text-emerald-300"),children:["Musst du etwas tun? ",i.action_needed?"Ja":"Nein — die Box regelt das (Fangnetz)"]}),i.action_needed&&i.action_text&&w.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:i.action_text})]})]}),(i==null?void 0:i.summary)&&w.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[w.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),w.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:i.summary})]}),e.kind==="os"?w.jsxs(w.Fragment,{children:[((i==null?void 0:i.count)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.count," Paket(e) werden aktualisiert:"]}),w.jsx("div",{className:"space-y-1",children:i.packages.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-cyan-400 shrink-0"}),h.name]}),w.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[w.jsx("span",{children:h.current}),w.jsx(B1,{className:"h-3 w-3"}),w.jsx("span",{className:"text-emerald-400",children:h.candidate})]})]},h.name))})]}),(((d=i==null?void 0:i.held_back)==null?void 0:d.length)??0)>0&&w.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[w.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[w.jsx(eT,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),w.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Pakete gäbe es bereits, Ubuntu spielt sie aber gestaffelt aus (Phasen-Rollout) bzw. hält sie kurz zurück. Sie kommen bei einem der nächsten automatischen Läufe von selbst — das ist kein Fehler und nichts hängt fest."}),w.jsx("div",{className:"space-y-1",children:i.held_back.map(h=>w.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/30 bg-background/30 px-2.5 py-1.5",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[w.jsx(W1,{className:"h-3 w-3 text-muted-foreground shrink-0"}),h.name]}),w.jsx("span",{className:"text-[9px] text-muted-foreground shrink-0",children:h.reason==="phasing"?"Phasen-Rollout":"vorerst zurückgehalten"})]},h.name))})]})]}):e.kind==="engine"||e.kind==="swap"?w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[w.jsxs("span",{className:"rounded-md border border-border/40 bg-background/30 px-2 py-1",children:["Build ",(i==null?void 0:i.installed_build)??"?"]}),w.jsx(B1,{className:"h-3.5 w-3.5 text-muted-foreground"}),w.jsxs("span",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/5 px-2 py-1 text-emerald-400",children:["Build ",(i==null?void 0:i.latest_build)??"?"]})]}),((i==null?void 0:i.name)||(i==null?void 0:i.latest_tag))&&w.jsxs("div",{className:"text-muted-foreground",children:["Release: ",w.jsx("span",{className:"text-foreground",children:i==null?void 0:i.name}),i!=null&&i.latest_tag?` (${i.latest_tag})`:""]}),(i==null?void 0:i.url)&&w.jsxs("a",{href:i.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-primary hover:underline",children:["Original-Release-Notes auf GitHub ",w.jsx(nT,{className:"h-3 w-3"})]}),(i==null?void 0:i.body)&&w.jsxs("details",{className:"group",children:[w.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),w.jsx("pre",{className:"mt-1.5 whitespace-pre-wrap rounded-lg border border-border/40 bg-background/30 p-3 text-[10px] leading-relaxed text-muted-foreground max-h-60 overflow-y-auto scrollbar-thin",children:i.body})]})]}):(((f=i==null?void 0:i.commits)==null?void 0:f.length)??0)===0?w.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"text-muted-foreground",children:[i.behind," neue Commit(s) auf ",w.jsxs("span",{className:"font-mono text-foreground",children:["origin/",i.branch]}),":"]}),w.jsx("div",{className:"space-y-1",children:i.commits.map(h=>w.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[w.jsx(oT,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("div",{className:"text-[11px] truncate",children:h.subject}),w.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[h.hash," · ",h.when]})]})]},h.hash))})]}),e.kind!=="os"&&!u&&w.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[w.jsx(gT,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),w.jsxs("p",{className:"text-[10px] text-muted-foreground leading-normal",children:["Vor dem Update sichert die Box automatisch den alten Stand. Danach prüft sie den ganzen Stack per echter Anfrage — läuft etwas nicht, rollt sie von selbst zurück",e.kind==="hermes"?" und startet den Gateway neu":"","."]})]})]})}),w.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[w.jsx("button",{onClick:r,className:"h-9 flex-1 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold text-muted-foreground hover:bg-accent transition-colors cursor-pointer",children:"Schließen"}),w.jsx("button",{onClick:n,disabled:e.loading||u||!!t,title:t?`Update läuft bereits: ${t.label}`:void 0,className:"h-9 flex-1 rounded-lg bg-primary text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-40 disabled:cursor-default",children:t?"Update läuft…":"Jetzt aktualisieren"})]})]})]})}function I3({open:e,onClose:t,defaultTab:r="maintenance"}){var or,fi;const n=Af(),{showAlert:i,showConfirm:o,dialogElement:s}=_A(),{data:u}=TA(),{data:d}=Qy(),f=w3(3e3,e).data??[],{data:h}=x3(void 0,e),[m,v]=g.useState("llama-swap"),[x,k]=g.useState(""),[S,E]=g.useState(!1),[P,O]=g.useState(null),[j,_]=g.useState({}),[N,C]=g.useState("maintenance"),[D,F]=g.useState(!1),[z,q]=g.useState(""),[X,B]=g.useState(!1),[ue,Y]=g.useState(!1),[le,fe]=g.useState(null),de=(d==null?void 0:d.services)??[],K=()=>ks(n,ze.jobs);function ie(G){return G?new Date(G*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"Nie"}g.useEffect(()=>{e&&r&&C(r)},[e,r]),g.useEffect(()=>{e&&ks(n,ze.updates,ze.services,ze.jobs,ze.zeitmaschine)},[e]);function Q(G){E(!0),O(null),Te(`/api/maintenance/logs?service=${G}&lines=150`).then(Ie=>{Ie.ok?k(Ie.text):(k(`Fehler beim Laden der Logs: ${Ie.err||"Unbekannter Fehler"}`),(Ie.status==="incorrect_password"||Ie.status==="password_required")&&O(Ie.status))}).catch(Ie=>k(`Fehler: ${Ie.message}`)).finally(()=>E(!1))}g.useEffect(()=>{!e||N!=="logs"||Q(m)},[e,N,m]);function R(G){return(G==null?void 0:G.status)==="busy"?(i("Update läuft bereits",`Es läuft gerade „${G.running}". Bitte warte, bis es fertig ist.`),K(),!0):!1}function M(G){return(G==null?void 0:G.status)==="password_required"||(G==null?void 0:G.status)==="incorrect_password"?(i("Box-Passwort nötig",(G.status==="incorrect_password"?"Das gespeicherte Box-Passwort stimmt nicht. ":"Für dieses Update braucht die Box dein Passwort. ")+"Bitte oben im Reiter „Einstellungen“ setzen bzw. korrigieren."),!0):G&&G.ok===!1?(i("Update fehlgeschlagen",G.err||"Unbekannter Fehler."),!0):!1}async function J(G){const Ie={os:"os-update",engine:"engine-update",swap:"swap-update"}[G];try{const Xe=await Te(`/api/maintenance/${Ie}`,{method:"POST"});if(R(Xe)||M(Xe))return;K(),C("maintenance")}catch(Xe){i("Fehler",`Update konnte nicht starten: ${Xe.message}`)}}async function se(){Y(!0);try{const G=await Te("/api/maintenance/hermes-update",{method:"POST"});if(R(G))return;K()}catch(G){i("Fehler",`Hermes-Update fehlgeschlagen: ${G.message}`)}finally{Y(!1)}}async function te(G){fe({kind:G,loading:!0,data:null});try{const Ie=await Te(`/api/maintenance/update-details?kind=${G}`);fe({kind:G,loading:!1,data:Ie})}catch(Ie){fe({kind:G,loading:!1,data:{kind:G,error:Ie.message}})}}function ce(){const G=le==null?void 0:le.kind;fe(null),G==="os"||G==="engine"||G==="swap"?J(G):G==="hermes"&&se()}function ye(){var Ie;const G=[u!=null&&u.engine?"Engine":null,u!=null&&u.swap?"Router":null,(Ie=u==null?void 0:u.components)!=null&&Ie.some(Xe=>Xe.update===!0)?"Hermes-Agent":null,u!=null&&u.os?`OS (${u.os} Pakete)`:null].filter(Boolean);o("Alle Updates einspielen?",`Nacheinander in einem Job: ${G.join(" → ")}. Jeder Schritt sichert und prüft sich selbst; schlägt einer fehl, stoppt der Rest. (OS braucht das Box-Passwort aus den Einstellungen — fehlt es, wird OS übersprungen.)`,async()=>{try{const Xe=await Te("/api/maintenance/update-all",{method:"POST"});if(R(Xe)||M(Xe))return;if((Xe==null?void 0:Xe.status)==="nothing"){i("Nichts zu tun","Es stehen keine Updates aus.");return}K(),C("maintenance")}catch(Xe){i("Fehler",`„Alle aktualisieren" konnte nicht starten: ${Xe.message}`)}})}async function _e(){F(!0);try{await Te("/api/maintenance/check-updates",{method:"POST"}),ks(n,ze.jobs,ze.updates),C("maintenance")}catch(G){i("Fehler",`Fehler bei der Update-Suche: ${G.message}`)}finally{F(!1)}}async function Z(G,Ie){try{await Te("/api/models/install",{method:"POST",body:JSON.stringify({repo:G,role:Ie})}),i("Gestartet",`Modell-Upgrade für '${Ie}' (${G}) gestartet.`),K(),C("maintenance")}catch(Xe){i("Fehler",`Fehler beim Starten des Modell-Upgrades: ${Xe.message}`)}}async function we(){o("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await Te("/api/maintenance/reboot",{method:"POST"}),i("Reboot","Reboot ausgelöst. System startet neu...",()=>t())}catch(G){i("Fehler",`Fehler beim Reboot: ${G.message}`)}})}async function Pe(){B(!0),q("Snapshot wird erzeugt...");try{const G=await Te("/api/system/backup",{method:"POST"});q(G.ok?`Snapshot erzeugt: ${G.snapshot} (${G.files.length} Komponenten)`:"Backup fehlgeschlagen."),ks(n,ze.zeitmaschine)}catch(G){q(`Fehler: ${G.message}`)}finally{B(!1)}}async function ne(G){_(Ie=>({...Ie,[G]:!0}));try{const Ie=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:G})});Ie.ok?(i("Dienst neu gestartet",`Dienst ${G} wurde erfolgreich neu gestartet.`,()=>{N==="logs"&&m===G&&Q(G)}),ks(n,ze.services,ze.health,ze.models)):i("Fehler",`Fehler beim Neustart: ${Ie.err||"Unbekannter Fehler"}`)}catch(Ie){i("Fehler",`Fehler beim Neustart: ${Ie.message}`)}finally{_(Ie=>({...Ie,[G]:!1}))}}async function lt(G){try{await Te(`/api/jobs/${G}/cancel`,{method:"POST"}),K()}catch(Ie){i("Fehler",`Fehler beim Abbrechen: ${Ie.message}`)}}const Re=f.find(G=>(G.state==="running"||G.state==="queued")&&G.group==="maintenance"),Ee=(u?(u.os>0?1:0)+(u.engine?1:0)+(u.swap?1:0):0)+(((or=u==null?void 0:u.components)==null?void 0:or.filter(G=>G.update===!0).length)??0),vt=(h==null?void 0:h.backups)??[];return w.jsxs(w.Fragment,{children:[w.jsx("div",{className:De("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",e?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:t}),w.jsxs("div",{className:De("fixed inset-y-0 right-0 w-full sm:w-[640px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",e?"translate-x-0":"translate-x-full"),children:[w.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),w.jsx("button",{onClick:t,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:w.jsx(Cf,{className:"h-4 w-4"})})]}),w.jsx("div",{className:"flex border-b border-border/40 px-6",children:["maintenance","logs","settings"].map(G=>w.jsx("button",{onClick:()=>C(G),className:De("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",N===G?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:G==="maintenance"?"System-Wartung":G==="logs"?"System-Logs":"Einstellungen"},G))}),w.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[N==="maintenance"&&w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"space-y-2.5",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),w.jsxs("div",{className:"flex items-center gap-3",children:[Ee>0&&w.jsxs("button",{onClick:ye,disabled:!!Re,className:"flex items-center gap-1 rounded-md border border-primary/40 bg-primary/10 px-2 py-1 text-[10px] font-bold text-primary transition-colors hover:bg-primary/20 disabled:opacity-50",children:[w.jsx(tT,{className:"h-3 w-3"})," Alle aktualisieren (",Ee,")"]}),w.jsxs("button",{onClick:_e,disabled:D||!!Re,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[w.jsx(Wo,{className:De("h-3 w-3",D&&"animate-spin")})," Nach Updates suchen"]})]})]}),(u==null?void 0:u.last_check)&&w.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",ie(u.last_check)]}),Re&&w.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-300",children:[w.jsx(Wo,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),w.jsxs("span",{children:["Update läuft: ",w.jsx("span",{className:"font-semibold",children:Re.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),w.jsxs("div",{className:"space-y-1.5",children:[w.jsx(Es,{icon:Hy,iconClass:"text-cyan-400",name:"OS-Pakete (apt)",available:!!(u!=null&&u.os),status:u!=null&&u.os?`${u.os} verfügbar`:"aktuell",actionLabel:"Anzeigen",onAction:()=>te("os")}),w.jsx(Es,{icon:Of,iconClass:"text-violet-400",name:"Inferenz-Engine (llama.cpp)",available:!!(u!=null&&u.engine),status:u!=null&&u.engine?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("engine")}),w.jsx(Es,{icon:BP,iconClass:"text-fuchsia-400",name:"Router (llama-swap)",available:!!(u!=null&&u.swap),status:u!=null&&u.swap?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("swap")}),(()=>{var Ie;const G=(Ie=u==null?void 0:u.components)==null?void 0:Ie.find(Xe=>Xe.key==="hermes_agent");return w.jsx(Es,{icon:Gs,iconClass:"text-amber-400",name:"Hermes-Agent",available:(G==null?void 0:G.update)===!0,busy:ue,status:(G==null?void 0:G.update)===!0?`Update: ${G.latest}`:(G==null?void 0:G.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>te("hermes")})})(),(fi=u==null?void 0:u.model_list)==null?void 0:fi.map(G=>w.jsx(Es,{icon:GM,iconClass:"text-emerald-400",name:`Modell · ${G.role}`,available:!0,status:G.title,actionLabel:"Upgrade",onAction:()=>Z(G.repo,G.role)},G.role))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),w.jsxs("div",{className:"space-y-1.5",children:[de.length===0&&w.jsx("div",{className:"rounded-lg border border-dashed border-border/50 p-4 text-center text-xs text-muted-foreground",children:"Dienste-Liste wird geladen …"}),de.map(G=>w.jsx(E3,{label:G.name,system:G.scope==="system",ok:G.ok,busy:j[G.unit],onRestart:()=>ne(G.unit),onLogs:()=>{v(G.unit),C("logs")}},G.unit))]})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),w.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[w.jsxs("div",{className:"flex-1 min-w-0",children:[w.jsx("div",{className:"text-xs text-foreground truncate",children:vt[0]?`Letztes: ${vt[0].snapshot}`:"Noch kein Backup"}),w.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[vt.length," Snapshots · Wiederherstellen: Chronik → Zeitmaschine"]})]}),w.jsxs("button",{onClick:Pe,disabled:X,className:"flex items-center gap-1.5 text-[11px] font-semibold rounded-lg px-2.5 py-1 bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50 shrink-0",children:[w.jsx(QM,{className:De("h-3.5 w-3.5",X&&"animate-pulse")})," Snapshot"]})]}),z&&w.jsx("div",{className:"text-[10px] font-mono text-primary bg-primary/5 p-2 rounded-lg border border-primary/20 break-all leading-normal",children:z})]}),w.jsxs("div",{className:"space-y-2.5",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),w.jsxs("button",{onClick:we,className:"flex w-full items-center gap-3 p-3 rounded-lg border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[w.jsx(vT,{className:"h-4.5 w-4.5"}),w.jsxs("div",{children:[w.jsx("div",{children:"Host-System neu starten"}),w.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),w.jsxs("div",{className:"space-y-3",children:[w.jsxs("div",{className:"flex items-center justify-between",children:[w.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),w.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[f.filter(G=>G.state==="running"||G.state==="queued").length," Aktiv"]})]}),w.jsx("div",{className:"space-y-3",children:f.length===0?w.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):f.map(G=>{const Ie=G.state==="running"||G.state==="queued";return w.jsxs("div",{className:De("p-3 rounded-xl border transition-all duration-300",Ie?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[w.jsxs("div",{className:"flex items-start justify-between gap-3",children:[w.jsxs("div",{className:"space-y-1",children:[w.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[Ie&&w.jsxs("span",{className:"flex h-2 w-2 relative",children:[w.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),w.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),G.label]}),w.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[w.jsxs("span",{children:["ID: ",G.id]}),w.jsx("span",{children:"•"}),w.jsx("span",{className:De(G.state==="done"&&"text-emerald-400",G.state==="failed"&&"text-red-400",G.state==="running"&&"text-primary",G.state==="queued"&&"text-amber-400",G.state==="canceled"&&"text-muted-foreground"),children:G.state})]})]}),Ie&&w.jsx("button",{onClick:()=>lt(G.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),G.state==="running"&&w.jsxs("div",{className:"mt-3 space-y-1",children:[w.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:w.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${G.progress??0}%`}})}),w.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[w.jsxs("span",{children:[G.progress??0,"%"]}),G.done_bytes!=null&&G.total_bytes!=null&&w.jsxs("span",{children:[Nm(G.done_bytes)," / ",Nm(G.total_bytes),G.rate_bps!=null&&` (${Nm(G.rate_bps)}/s)`]}),G.eta_s!=null&&w.jsxs("span",{children:["ETA: ",G.eta_s,"s"]})]})]})]},G.id)})})]})]}),N==="logs"&&w.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("select",{value:m,onChange:G=>v(G.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:de.map(G=>w.jsxs("option",{value:G.unit,children:[G.name," (",G.scope==="system"?"systemd-root":"user",")"]},G.unit))}),w.jsxs("button",{onClick:()=>ne(m),disabled:j[m],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[w.jsx(Wo,{className:De("h-3.5 w-3.5",j[m]&&"animate-spin")}),"Restart"]})]}),w.jsx(_3,{service:m,text:x,loading:S,logStatus:P,onRefresh:()=>Q(m),onOpenSettings:()=>C("settings")})]}),N==="settings"&&w.jsx(j3,{open:e,showAlert:i})]})]}),le&&w.jsx(N3,{detail:le,maintenanceJob:Re,onClose:()=>fe(null),onApply:ce}),s]})}let Tv=[],Dv=[];const Rv=new Set,DA=()=>Rv.forEach(e=>e());function RA(e){return Rv.add(e),()=>{Rv.delete(e)}}function M3(e){Tv=[...Tv,e].slice(-40),DA()}function T3(e){Dv=[...Dv,e].slice(-40),DA()}const D3=()=>g.useSyncExternalStore(RA,()=>Tv),R3=()=>g.useSyncExternalStore(RA,()=>Dv);function $3(){const{data:e,dataUpdatedAt:t}=Df(),{data:r,dataUpdatedAt:n}=MA(),i=g.useRef(null);g.useEffect(()=>{var o,s,u,d;e&&M3({t:Date.now(),cpu:((o=e.cpu)==null?void 0:o.percent)??0,ram:((s=e.ram)==null?void 0:s.percent)??0,gpu:((u=e.gpu)==null?void 0:u.busy_percent)??null,disk:((d=e.disk)==null?void 0:d.percent)??null})},[t]),g.useEffect(()=>{if(!r)return;const o=Date.now(),s=r.prompt_tokens,u=r.completion_tokens;if(i.current){const d=Math.max((o-i.current.t)/1e3,.001);T3({t:o,prompt:Math.max(0,(s-i.current.p)/d),completion:Math.max(0,(u-i.current.c)/d)})}i.current={p:s,c:u,t:o}},[n])}function L3(){var F,z,q,X,B,ue;const{data:e,isError:t}=jA(),{data:r,isError:n}=Qy(),{data:i}=IA(),{data:o}=Df(),s=t||n,u=!!e&&!!r,d=Y=>{var le;return(le=r==null?void 0:r.services.find(fe=>fe.unit===Y))==null?void 0:le.ok},f=Y=>!!(r!=null&&r.services.some(le=>le.unit===Y)),h=e==null?void 0:e.engine_reachable,m=(F=e==null?void 0:e.brain)==null?void 0:F.ready,v=((z=e==null?void 0:e.brain)==null?void 0:z.model)||((q=i==null?void 0:i.models.find(Y=>Y.role==="hermes"))==null?void 0:q.name)||"",x=[];s&&x.push({id:"mc2",label:"Steuerpult (MC2)",icon:Of,critical:!0,status:"down",detail:"Die Zentrale antwortet nicht — alle Anzeigen hier können veraltet sein. Läuft die Box? Deploy aktiv?"}),x.push((()=>{const Y={id:"brain",label:"Lucys Hirn",icon:YM,critical:!0};return u?h===!1?{...Y,status:"down",detail:"Die Motor-Maschine (Engine) läuft nicht — Lucy kann gerade gar nicht denken.",repair:{kind:"restart",service:"llama-swap",label:"Motor neu starten",needsSudo:!0}}:m===!1?{...Y,status:"down",detail:"Lucys Hirn ist gerade eingeschlafen — einmal aufwecken.",repair:v?{kind:"loadModel",model:v,label:"Hirn aufwecken"}:void 0}:{...Y,status:"ok",detail:"Wach und ansprechbar."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"vision",label:"Lucys Augen",icon:Ov,critical:!1};if(!u||!i)return{...Y,status:"loading",detail:"Wird geprüft …"};const le=i.models.find(de=>de.role==="vision");return le?(i.running??[]).includes(le.name)?{...Y,status:"ok",detail:"Sieht gerade zu (geladen, solange Lucy sie nutzt)."}:{...Y,status:"ok",detail:"Augen ruhen — sie laden von selbst, sobald Lucy startet oder ein Bild kommt.",repair:{kind:"loadModel",model:le.name,label:"Augen wecken"}}:{...Y,status:"warn",detail:"Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen."}})()),x.push((()=>{const Y={id:"memory",label:"Lucys Gedächtnis",icon:qM,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Hermes-Natives Gedächtnis aktiv (SQLite & Embeddings)."}:{...Y,status:"down",detail:"Lucy kann sich gerade nichts merken — das Gateway antwortet nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Gateway neu starten"}}})()),x.push((()=>{const Y={id:"gateway",label:"Verbindung (Gateway)",icon:Uy,critical:!0},le=e?e.gateway_reachable:d("mc2-gateway");if(!u||le===void 0)return{...Y,status:"loading",detail:"Wird geprüft …"};const fe=f("mc2-gateway")?"mc2-gateway":"mission-control-2";return le?{...Y,status:"ok",detail:"Apps und IDEs können Lucy erreichen."}:{...Y,status:"down",detail:"Der Modell-Gateway antwortet nicht — Lucy und die IDEs erreichen kein Modell.",repair:{kind:"restart",service:fe,label:"Gateway neu starten"}}})()),x.push((()=>{const Y={id:"steward",label:"Wächter (Steward)",icon:Wy,critical:!1};return u?f("mc2-steward")?d("mc2-steward")?{...Y,status:"ok",detail:"Wacht über Warm-Set, Dienste und Gedächtnis."}:{...Y,status:"warn",detail:"Der Wächter schläft — niemand meldet gerade Ausfälle oder wärmt Modelle nach.",repair:{kind:"restart",service:"mc2-steward",label:"Wächter neu starten"}}:{...Y,status:"ok",detail:"Auf dieser Installation nicht eingerichtet."}:{...Y,status:"loading",detail:"Wird geprüft …"}})()),x.push((()=>{const Y={id:"agent",label:"Lucys Agent (Hermes)",icon:Gs,critical:!0},le=d("hermes-gateway");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy ist bereit zu reden und zu handeln."}:{...Y,status:"down",detail:"Lucys Agent ist offline — sie reagiert gerade nicht.",repair:{kind:"restart",service:"hermes-gateway",label:"Agent neu starten"}}})()),x.push((()=>{const Y={id:"voice",label:"Lucys Stimme",icon:mT,critical:!1},le=d("voice-service");return!u||le===void 0?{...Y,status:"loading",detail:"Wird geprüft …"}:le?{...Y,status:"ok",detail:"Lucy kann hören und sprechen."}:{...Y,status:"warn",detail:"Sprechen ist gerade aus — Tippen geht weiter normal.",repair:{kind:"restart",service:"voice-service",label:"Stimme neu starten"}}})());const k=((X=o==null?void 0:o.ram)==null?void 0:X.total)??0,S=((B=o==null?void 0:o.ram)==null?void 0:B.used)??0,E=((ue=o==null?void 0:o.ram)==null?void 0:ue.percent)??(k>0?Math.min(100,S/k*100):0),P=1024**3,O=k?E>=93?{status:"full",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher fast voll — Lucy könnte langsamer werden."}:E>=85?{status:"warn",usedGb:S/P,totalGb:k/P,pct:E,text:"Speicher gut gefüllt — noch okay."}:{status:"ok",usedGb:S/P,totalGb:k/P,pct:E,text:"Genug Speicher frei."}:{status:"unknown",usedGb:0,totalGb:0,pct:0,text:"Speicher-Auslastung unbekannt."},j=x.some(Y=>Y.status==="loading"),_=x.filter(Y=>Y.critical&&Y.status==="down"),N=x.filter(Y=>Y.status==="warn"||!Y.critical&&Y.status==="down"),C=O.status==="full";return{verdict:j&&!_.length?"loading":_.length?"problem":N.length||C?"warn":"gut",checks:x,memory:O,problems:_,warns:N,unreachable:s}}const z3={ok:"bg-emerald-500",warn:"bg-amber-500",alert:"bg-red-500",muted:"bg-muted-foreground/40",loading:"bg-muted-foreground/40 animate-pulse"},F3={ok:"hover:border-emerald-500/40",warn:"hover:border-amber-500/50",alert:"hover:border-red-500/50",muted:"hover:border-primary/40",loading:"hover:border-border/60"};function Ps({icon:e,title:t,value:r,unit:n,tone:i="muted",hint:o,onClick:s}){return w.jsxs("button",{onClick:s,className:De("group relative flex flex-col items-start mc-card p-5 text-left cursor-pointer",F3[i]),children:[w.jsxs("div",{className:"mb-4 flex w-full items-center justify-between",children:[w.jsx("span",{className:"flex h-10 w-10 items-center justify-center rounded-xl border border-border/40 bg-background/30 text-foreground/80 transition-colors group-hover:text-primary",children:w.jsx(e,{className:"h-5 w-5"})}),w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",z3[i]),title:o})]}),w.jsxs("div",{className:"flex items-baseline gap-1.5",children:[w.jsx("span",{className:"text-2xl font-bold tracking-tight text-foreground font-space tabular-nums",children:r}),n&&w.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n})]}),w.jsxs("div",{className:"mt-1 flex w-full items-center justify-between",children:[w.jsx("span",{className:"text-sm font-semibold text-foreground/90",children:t}),w.jsx(Fs,{className:"h-4 w-4 text-muted-foreground/40 transition-all group-hover:translate-x-0.5 group-hover:text-primary"})]}),o&&w.jsx("span",{className:"mt-0.5 text-[11px] text-muted-foreground",children:o})]})}function B3(){const{data:e,error:t}=Df(),r=D3();return{sys:e,hist:r,error:t}}var U3=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function Xy(e){if(typeof e!="string")return!1;var t=U3;return t.includes(e)}var W3=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],H3=new Set(W3);function $A(e){return typeof e!="string"?!1:H3.has(e)}function LA(e){return typeof e=="string"&&e.startsWith("data-")}function on(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r))&&(t[r]=e[r]);return t}function Rf(e){if(e==null)return null;if(g.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return on(t)}return typeof e=="object"&&!Array.isArray(e)?on(e):null}function Br(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&($A(r)||LA(r)||Xy(r))&&(t[r]=e[r]);return t}function K3(e){return e==null?null:g.isValidElement(e)?Br(e.props):typeof e=="object"&&!Array.isArray(e)?Br(e):null}var V3=["children","width","height","viewBox","className","style","title","desc"];function $v(){return $v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.width,i=e.height,o=e.viewBox,s=e.className,u=e.style,d=e.title,f=e.desc,h=q3(e,V3),m=o||{width:n,height:i,x:0,y:0},v=Qe("recharts-surface",s);return g.createElement("svg",$v({},Br(h),{className:v,width:n,height:i,style:u,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),g.createElement("title",null,d),g.createElement("desc",null,f),r)}),Y3=["children","className"];function Lv(){return Lv=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,i=Q3(e,Y3),o=Qe("recharts-layer",n);return g.createElement("g",Lv({className:o},Br(i),{ref:t}),r)}),Z3=g.createContext(null);function ft(e){return function(){return e}}const zv=Math.PI,Fv=2*zv,ba=1e-6,J3=Fv-ba;function FA(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return FA;const r=10**t;return function(n){this._+=n[0];for(let i=1,o=n.length;iba)if(!(Math.abs(m*d-f*h)>ba)||!o)this._append`L${this._x1=t},${this._y1=r}`;else{let x=n-s,k=i-u,S=d*d+f*f,E=x*x+k*k,P=Math.sqrt(S),O=Math.sqrt(v),j=o*Math.tan((zv-Math.acos((S+v-E)/(2*P*O)))/2),_=j/O,N=j/P;Math.abs(_-1)>ba&&this._append`L${t+_*h},${r+_*m}`,this._append`A${o},${o},0,0,${+(m*x>h*k)},${this._x1=t+N*d},${this._y1=r+N*f}`}}arc(t,r,n,i,o,s){if(t=+t,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),d=n*Math.sin(i),f=t+u,h=r+d,m=1^s,v=s?i-o:o-i;this._x1===null?this._append`M${f},${h}`:(Math.abs(this._x1-f)>ba||Math.abs(this._y1-h)>ba)&&this._append`L${f},${h}`,n&&(v<0&&(v=v%Fv+Fv),v>J3?this._append`A${n},${n},0,1,${m},${t-u},${r-d}A${n},${n},0,1,${m},${this._x1=f},${this._y1=h}`:v>ba&&this._append`A${n},${n},0,${+(v>=zv)},${m},${this._x1=t+n*Math.cos(o)},${this._y1=r+n*Math.sin(o)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function BA(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new t$(t)}function Zy(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function UA(e){this._context=e}UA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function $f(e){return new UA(e)}function WA(e){return e[0]}function HA(e){return e[1]}function KA(e,t){var r=ft(!0),n=null,i=$f,o=null,s=BA(u);e=typeof e=="function"?e:e===void 0?WA:ft(e),t=typeof t=="function"?t:t===void 0?HA:ft(t);function u(d){var f,h=(d=Zy(d)).length,m,v=!1,x;for(n==null&&(o=i(x=s())),f=0;f<=h;++f)!(f=x;--k)u.point(j[k],_[k]);u.lineEnd(),u.areaEnd()}P&&(j[v]=+e(E,v,m),_[v]=+t(E,v,m),u.point(n?+n(E,v,m):j[v],r?+r(E,v,m):_[v]))}if(O)return u=null,O+""||null}function h(){return KA().defined(i).curve(s).context(o)}return f.x=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),n=null,f):e},f.x0=function(m){return arguments.length?(e=typeof m=="function"?m:ft(+m),f):e},f.x1=function(m){return arguments.length?(n=m==null?null:typeof m=="function"?m:ft(+m),f):n},f.y=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),r=null,f):t},f.y0=function(m){return arguments.length?(t=typeof m=="function"?m:ft(+m),f):t},f.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:ft(+m),f):r},f.lineX0=f.lineY0=function(){return h().x(e).y(t)},f.lineY1=function(){return h().x(e).y(r)},f.lineX1=function(){return h().x(n).y(t)},f.defined=function(m){return arguments.length?(i=typeof m=="function"?m:ft(!!m),f):i},f.curve=function(m){return arguments.length?(s=m,o!=null&&(u=s(o)),f):s},f.context=function(m){return arguments.length?(m==null?o=u=null:u=s(o=m),f):o},f}class VA{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function r$(e){return new VA(e,!0)}function n$(e){return new VA(e,!1)}function _d(){}function jd(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:jd(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:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function i$(e){return new qA(e)}function GA(e){this._context=e}GA.prototype={areaStart:_d,areaEnd:_d,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:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function a$(e){return new GA(e)}function YA(e){this._context=e}YA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:jd(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function o$(e){return new YA(e)}function QA(e){this._context=e}QA.prototype={areaStart:_d,areaEnd:_d,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function l$(e){return new QA(e)}function dw(e){return e<0?-1:1}function fw(e,t,r){var n=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(n||i<0&&-0),s=(r-e._y1)/(i||n<0&&-0),u=(o*i+s*n)/(n+i);return(dw(o)+dw(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(u))||0}function hw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Im(e,t,r){var n=e._x0,i=e._y0,o=e._x1,s=e._y1,u=(o-n)/3;e._context.bezierCurveTo(n+u,i+u*t,o-u,s-u*r,o,s)}function Nd(e){this._context=e}Nd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Im(this,this._t0,hw(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Im(this,hw(this,r=fw(this,e,t)),r);break;default:Im(this,this._t0,r=fw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function XA(e){this._context=new ZA(e)}(XA.prototype=Object.create(Nd.prototype)).point=function(e,t){Nd.prototype.point.call(this,t,e)};function ZA(e){this._context=e}ZA.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,o){this._context.bezierCurveTo(t,e,n,r,o,i)}};function s$(e){return new Nd(e)}function u$(e){return new XA(e)}function JA(e){this._context=e}JA.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pw(e),i=pw(t),o=0,s=1;s=0;--t)i[t]=(s[t]-i[t+1])/o[t];for(o[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function d$(e){return new Lf(e,.5)}function f$(e){return new Lf(e,0)}function h$(e){return new Lf(e,1)}function Ua(e,t){if((s=e.length)>1)for(var r=1,n,i,o=e[t[0]],s,u=o.length;r=0;)r[t]=t;return r}function p$(e,t){return e[t]}function m$(e){const t=[];return t.key=e,t}function v$(){var e=ft([]),t=Bv,r=Ua,n=p$;function i(o){var s=Array.from(e.apply(this,arguments),m$),u,d=s.length,f=-1,h;for(const m of o)for(u=0,++f;u0){for(var r,n,i=0,o=e[0].length,s;i0){for(var r=0,n=e[t[0]],i,o=n.length;r0)||!((o=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,o,s;n1&&arguments[1]!==void 0?arguments[1]:w$,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function Lt(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var u=r[s-1];return typeof u=="string"?i+u+o:u!==void 0?i+Gi(u)+o:i+o},"")}var Lr=e=>e===0?0:e>0?1:-1,On=e=>typeof e=="number"&&e!=+e,Wa=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,be=e=>(typeof e=="number"||e instanceof Number)&&!On(e),Cn=e=>be(e)||typeof e=="string",S$=0,Zs=e=>{var t=++S$;return"".concat(e||"").concat(t)},ea=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!be(t)&&typeof t!="string")return n;var o;if(Wa(t)){if(r==null)return n;var s=t.indexOf("%");o=r*parseFloat(t.slice(0,s))/100}else o=+t;return On(o)&&(o=n),i&&r!=null&&o>r&&(o=r),o},rO=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):Xa(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 Sl(){}var iO=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,rg=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(g.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(i=>{Xy(i)&&typeof r[i]=="function"&&(n[i]=(o=>r[i](r,o)))}),n},k$=(e,t,r)=>n=>(e(t,r,n),null),E$=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(i=>{var o=e[i];Xy(i)&&typeof o=="function"&&(n||(n={}),n[i]=k$(o,t,r))}),n};function mw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function P$(e){for(var t=1;t(s[u]===void 0&&n[u]!==void 0&&(s[u]=n[u]),s),r);return o}function _$(e,t){const r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function ng(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const T$="[object RegExp]",oO="[object String]",lO="[object Number]",sO="[object Boolean]",uO="[object Arguments]",D$="[object Symbol]",R$="[object Date]",$$="[object Map]",L$="[object Set]",z$="[object Array]",F$="[object ArrayBuffer]",B$="[object Object]",U$="[object DataView]",W$="[object Uint8Array]",H$="[object Uint8ClampedArray]",K$="[object Uint16Array]",V$="[object Uint32Array]",q$="[object Int8Array]",G$="[object Int16Array]",Y$="[object Int32Array]",Q$="[object Float32Array]",X$="[object Float64Array]",vw=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function Z$(e){return typeof vw.Buffer<"u"&&vw.Buffer.isBuffer(e)}function J$(e,t){return Ea(e,void 0,e,new Map,t)}function Ea(e,t,r,n=new Map,i=void 0){const o=i==null?void 0:i(e,t,r,n);if(o!==void 0)return o;if(Wv(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){const s=new Array(e.length);n.set(e,s);for(let u=0;u{}):Hv(e,t,function n(i,o,s,u,d,f){const h=r(i,o,s,u,d,f);return h!==void 0?!!h:Hv(i,o,n,f,!1)},new Map,!0)}function Hv(e,t,r,n,i=!1){if(t===e)return!0;switch(typeof t){case"object":return rL(e,t,r,n);case"function":return Object.keys(t).length>0?Hv(e,{...t},r,n,i):bd(e,t);default:return cO(e)&&i?typeof t=="string"?t==="":!0:bd(e,t)}}function rL(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return fO(e,t,r,n);if(t instanceof Map)return nL(e,t,r,n);if(t instanceof Set)return iL(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 aL(e){return e=tL(e),t=>hO(t,e)}function oL(e,t){return J$(e,(r,n,i,o)=>{if(typeof e=="object"){if(ng(e)==="[object Object]"&&typeof e.constructor!="function"){const s={};return o.set(e,s),en(s,e,i,o),s}switch(Object.prototype.toString.call(e)){case lO:case oO:case sO:{const s=new e.constructor(e==null?void 0:e.valueOf());return en(s,e),s}case uO:{const s={};return en(s,e),s.length=e.length,s[Symbol.iterator]=e[Symbol.iterator],s}default:return}}})}function lL(e){return oL(e)}const sL=/^(?:0|[1-9]\d*)$/;function pO(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function mO(e){return e!=null&&typeof e!="function"&&hL(e.length)}function pL(e){return typeof e=="object"&&e!==null}function mL(e){return pL(e)&&mO(e)}function yw(e,t=aO){return mL(e)?_$(Array.from(e),j$(fL(t),1)):[]}function vL(e,t,r){return t===!0?yw(e,r):typeof t=="function"?yw(e,t):e}var Mm={exports:{}},Tm={},Dm={exports:{}},Rm={};/** * @license React * use-sync-external-store-shim.production.js * @@ -362,7 +362,7 @@ Error generating stack: `+b.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var gw;function y5(){if(gw)return Rm;gw=1;var e=wl();function t(m,v){return m===v&&(m!==0||1/m===1/v)||m!==m&&v!==v}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,i=e.useEffect,o=e.useLayoutEffect,s=e.useDebugValue;function u(m,v){var x=v(),k=n({inst:{value:x,getSnapshot:v}}),S=k[0].inst,E=k[1];return o(function(){S.value=x,S.getSnapshot=v,d(S)&&E({inst:S})},[m,x,v]),i(function(){return d(S)&&E({inst:S}),m(function(){d(S)&&E({inst:S})})},[m]),s(x),x}function d(m){var v=m.getSnapshot;m=m.value;try{var x=v();return!r(m,x)}catch{return!0}}function f(m,v){return v()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return Rm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Rm}var xw;function g5(){return xw||(xw=1,Dm.exports=y5()),Dm.exports}/** + */var gw;function yL(){if(gw)return Rm;gw=1;var e=bl();function t(m,v){return m===v&&(m!==0||1/m===1/v)||m!==m&&v!==v}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,i=e.useEffect,o=e.useLayoutEffect,s=e.useDebugValue;function u(m,v){var x=v(),k=n({inst:{value:x,getSnapshot:v}}),S=k[0].inst,E=k[1];return o(function(){S.value=x,S.getSnapshot=v,d(S)&&E({inst:S})},[m,x,v]),i(function(){return d(S)&&E({inst:S}),m(function(){d(S)&&E({inst:S})})},[m]),s(x),x}function d(m){var v=m.getSnapshot;m=m.value;try{var x=v();return!r(m,x)}catch{return!0}}function f(m,v){return v()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return Rm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Rm}var xw;function gL(){return xw||(xw=1,Dm.exports=yL()),Dm.exports}/** * @license React * use-sync-external-store-shim/with-selector.production.js * @@ -370,12 +370,12 @@ Error generating stack: `+b.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var bw;function x5(){if(bw)return Tm;bw=1;var e=wl(),t=g5();function r(f,h){return f===h&&(f!==0||1/f===1/h)||f!==f&&h!==h}var n=typeof Object.is=="function"?Object.is:r,i=t.useSyncExternalStore,o=e.useRef,s=e.useEffect,u=e.useMemo,d=e.useDebugValue;return Tm.useSyncExternalStoreWithSelector=function(f,h,m,v,x){var k=o(null);if(k.current===null){var S={hasValue:!1,value:null};k.current=S}else S=k.current;k=u(function(){function P(C){if(!O){if(O=!0,j=C,C=v(C),x!==void 0&&S.hasValue){var D=S.value;if(x(D,C))return _=D}return _=C}if(D=_,n(j,C))return D;var F=v(C);return x!==void 0&&x(D,F)?(j=C,D):(j=C,_=F)}var O=!1,j,_,N=m===void 0?null:m;return[function(){return P(h())},N===null?void 0:function(){return P(N())}]},[h,m,v,x]);var E=i(f,k[0],k[1]);return s(function(){S.hasValue=!0,S.value=E},[E]),d(E),E},Tm}var ww;function b5(){return ww||(ww=1,Mm.exports=x5()),Mm.exports}var w5=b5(),ig=g.createContext(null),S5=e=>e,xt=()=>{var e=g.useContext(ig);return e?e.store.dispatch:S5},wd=()=>{},k5=()=>wd,E5=(e,t)=>e===t;function ke(e){var t=g.useContext(ig),r=g.useMemo(()=>t?n=>{if(n!=null)return e(n)}:wd,[t,e]);return w5.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:k5,t?t.store.getState:wd,t?t.store.getState:wd,r,E5)}function P5(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function A5(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var Sw=e=>Array.isArray(e)?e:[e];function O5(e){const t=Array.isArray(e[0])?e[0]:e;return A5(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function C5(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?_5:WeakRef,vO=j5(),N5=0,kw=1;function rd(){return{s:N5,v:void 0,o:null,p:null}}function I5(e){return e instanceof vO?e.deref():e}function yO(e,t={}){let r=rd();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=rd(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function M5(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...i)=>{let o=0,s=0,u,d={},f=i.pop();typeof f=="object"&&(d=f,f=i.pop()),P5(f,`createSelector expects an output function after the inputs, but received: [${typeof f}]`);const h={...r,...d},{memoize:m,memoizeOptions:v=[],argsMemoize:x=yO,argsMemoizeOptions:k=[]}=h,S=Sw(v),E=Sw(k),P=O5(i),O=m(function(){return o++,f.apply(null,arguments)},...S),j=x(function(){s++;const N=C5(P,arguments);return u=O.apply(null,N),u},...E);return Object.assign(j,{resultFunc:f,memoizedResultFunc:O,dependencies:P,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>u,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:x})};return Object.assign(n,{withTypes:()=>n}),n}var H=M5(yO);function T5(e,t=1){const r=[],n=Math.floor(t),i=(o,s)=>{for(let u=0;u{if(e!==t){const n=Ew(e),i=Ew(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function gO(e){return typeof e=="symbol"||e instanceof Symbol}const R5=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$5=/^\w*$/;function L5(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||gO(e)?!0:typeof e=="string"&&($5.test(e)||!R5.test(e))||t!=null}function z5(e,t,r,n){if(e==null)return[];r=r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(u=>String(u));const i=(u,d)=>{let f=u;for(let h=0;hd==null||u==null?d:typeof u=="object"&&"key"in u?Object.hasOwn(d,u.key)?d[u.key]:i(d,u.path):typeof u=="function"?u(d):Array.isArray(u)?i(d,u):typeof d=="object"?d[u]:d,s=t.map(u=>(Array.isArray(u)&&u.length===1&&(u=u[0]),u==null||typeof u=="function"||Array.isArray(u)||L5(u)?u:{key:u,path:eg(u)}));return e.map(u=>({original:u,criteria:s.map(d=>o(d,u))})).slice().sort((u,d)=>{for(let f=0;fu.original)}function zf(e,...t){const r=t.length;return r>1&&Kv(e,t[0],t[1])?t=[]:r>2&&Kv(t[0],t[1],t[2])&&(t=[t[0]]),z5(e,T5(t),["asc"])}var xO=e=>e.legend.settings,F5=e=>e.legend.size,B5=e=>e.legend.payload;H([B5,xO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?zf(n,r):n});function U5(e,t){return V5(e)||K5(e,t)||H5(e,t)||W5()}function W5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function H5(e,t){if(e){if(typeof e=="string")return Pw(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pw(e,t):void 0}}function Pw(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rnd||Math.abs(e.left-t.left)>nd||Math.abs(e.top-t.top)>nd||Math.abs(e.width-t.width)>nd}function Ow(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function q5(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=g.useState({height:0,left:0,top:0,width:0}),r=U5(t,2),n=r[0],i=r[1],o=g.useRef(null),s=g.useRef(n);s.current=n;var u=g.useCallback(d=>{if(o.current!=null&&(o.current.disconnect(),o.current=null),d!=null){var f=Ow(d);if(Aw(f,s.current)&&i(f),typeof ResizeObserver<"u"){var h=new ResizeObserver(()=>{var m=Ow(d);Aw(m,s.current)&&i(m)});h.observe(d),o.current=h}}},[...e]);return g.useEffect(()=>()=>{var d;(d=o.current)===null||d===void 0||d.disconnect()},[]),[n,u]}function $t(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var G5=typeof Symbol=="function"&&Symbol.observable||"@@observable",Cw=G5,$m=()=>Math.random().toString(36).substring(7).split("").join("."),Y5={INIT:`@@redux/INIT${$m()}`,REPLACE:`@@redux/REPLACE${$m()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${$m()}`},Id=Y5;function ag(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function bO(e,t,r){if(typeof e!="function")throw new Error($t(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error($t(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error($t(1));return r(bO)(e,t)}let n=e,i=t,o=new Map,s=o,u=0,d=!1;function f(){s===o&&(s=new Map,o.forEach((E,P)=>{s.set(P,E)}))}function h(){if(d)throw new Error($t(3));return i}function m(E){if(typeof E!="function")throw new Error($t(4));if(d)throw new Error($t(5));let P=!0;f();const O=u++;return s.set(O,E),function(){if(P){if(d)throw new Error($t(6));P=!1,f(),s.delete(O),o=null}}}function v(E){if(!ag(E))throw new Error($t(7));if(typeof E.type>"u")throw new Error($t(8));if(typeof E.type!="string")throw new Error($t(17));if(d)throw new Error($t(9));try{d=!0,i=n(i,E)}finally{d=!1}return(o=s).forEach(O=>{O()}),E}function x(E){if(typeof E!="function")throw new Error($t(10));n=E,v({type:Id.REPLACE})}function k(){const E=m;return{subscribe(P){if(typeof P!="object"||P===null)throw new Error($t(11));function O(){const _=P;_.next&&_.next(h())}return O(),{unsubscribe:E(O)}},[Cw](){return this}}}return v({type:Id.INIT}),{dispatch:v,subscribe:m,getState:h,replaceReducer:x,[Cw]:k}}function Q5(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Id.INIT})>"u")throw new Error($t(12));if(typeof r(void 0,{type:Id.PROBE_UNKNOWN_ACTION()})>"u")throw new Error($t(13))})}function wO(e){const t=Object.keys(e),r={};for(let o=0;o"u")throw u&&u.type,new Error($t(14));f[m]=k,d=d||k!==x}return d=d||n.length!==Object.keys(s).length,d?f:s}}function Md(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function X5(...e){return t=>(r,n)=>{const i=t(r,n);let o=()=>{throw new Error($t(15))};const s={getState:i.getState,dispatch:(d,...f)=>o(d,...f)},u=e.map(d=>d(s));return o=Md(...u)(i.dispatch),{...i,dispatch:o}}}function SO(e){return ag(e)&&"type"in e&&typeof e.type=="string"}var kO=Symbol.for("immer-nothing"),_w=Symbol.for("immer-draftable"),ir=Symbol.for("immer-state");function rn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Ar=Object,fl=Ar.getPrototypeOf,Td="constructor",Ff="prototype",Vv="configurable",Dd="enumerable",Sd="writable",Js="value",ti=e=>!!e&&!!e[ir];function ln(e){var t;return e?EO(e)||Uf(e)||!!e[_w]||!!((t=e[Td])!=null&&t[_w])||Wf(e)||Hf(e):!1}var Z5=Ar[Ff][Td].toString(),jw=new WeakMap;function EO(e){if(!e||!og(e))return!1;const t=fl(e);if(t===null||t===Ar[Ff])return!0;const r=Ar.hasOwnProperty.call(t,Td)&&t[Td];if(r===Object)return!0;if(!Bo(r))return!1;let n=jw.get(r);return n===void 0&&(n=Function.toString.call(r),jw.set(r,n)),n===Z5}function Bf(e,t,r=!0){wu(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 wu(e){const t=e[ir];return t?t.type_:Uf(e)?1:Wf(e)?2:Hf(e)?3:0}var Nw=(e,t,r=wu(e))=>r===2?e.has(t):Ar[Ff].hasOwnProperty.call(e,t),qv=(e,t,r=wu(e))=>r===2?e.get(t):e[t],Rd=(e,t,r,n=wu(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function J5(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Uf=Array.isArray,Wf=e=>e instanceof Map,Hf=e=>e instanceof Set,og=e=>typeof e=="object",Bo=e=>typeof e=="function",Lm=e=>typeof e=="boolean";function eL(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Kn=e=>e.copy_||e.base_,lg=e=>e.modified_?e.copy_:e.base_;function Gv(e,t){if(Wf(e))return new Map(e);if(Hf(e))return new Set(e);if(Uf(e))return Array[Ff].slice.call(e);const r=EO(e);if(t===!0||t==="class_only"&&!r){const n=Ar.getOwnPropertyDescriptors(e);delete n[ir];let i=Reflect.ownKeys(n);for(let o=0;o1&&Ar.defineProperties(e,{set:id,add:id,clear:id,delete:id}),Ar.freeze(e),t&&Bf(e,(r,n)=>{sg(n,!0)},!1)),e}function tL(){rn(2)}var id={[Js]:tL};function Kf(e){return e===null||!og(e)?!0:Ar.isFrozen(e)}var $d="MapSet",Yv="Patches",Iw="ArrayMethods",PO={};function Ka(e){const t=PO[e];return t||rn(0,e),t}var Mw=e=>!!PO[e],eu,AO=()=>eu,rL=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Mw($d)?Ka($d):void 0,arrayMethodsPlugin_:Mw(Iw)?Ka(Iw):void 0});function Tw(e,t){t&&(e.patchPlugin_=Ka(Yv),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Qv(e){Xv(e),e.drafts_.forEach(nL),e.drafts_=null}function Xv(e){e===eu&&(eu=e.parent_)}var Dw=e=>eu=rL(eu,e);function nL(e){const t=e[ir];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Rw(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[ir].modified_&&(Qv(t),rn(4)),ln(e)&&(e=$w(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[ir].base_,e,t)}else e=$w(t,r);return iL(t,e,!0),Qv(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==kO?e:void 0}function $w(e,t){if(Kf(t))return t;const r=t[ir];if(!r)return Ld(t,e.handledSet_,e);if(!Vf(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);_O(r,e)}return r.copy_}function iL(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sg(t,r)}function OO(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Vf=(e,t)=>e.scope_===t,aL=[];function CO(e,t,r,n){const i=Kn(e),o=e.type_;if(n!==void 0&&qv(i,n,o)===t){Rd(i,n,r,o);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;Bf(i,(d,f)=>{if(ti(f)){const h=u.get(f)||[];h.push(d),u.set(f,h)}})}const s=e.draftLocations_.get(t)??aL;for(const u of s)Rd(i,u,r,o)}function oL(e,t,r){e.callbacks_.push(function(i){var u;const o=t;if(!o||!Vf(o,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(o);const s=lg(o);CO(e,o.draft_??o,s,r),_O(o,i)})}function _O(e,t){var n;if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(((n=e.assigned_)==null?void 0:n.size)??0)>0)){const{patchPlugin_:i}=t;if(i){const o=i.getPath(e);o&&i.generatePatches_(e,o,t)}OO(e)}}function lL(e,t,r){const{scope_:n}=e;if(ti(r)){const i=r[ir];Vf(i,n)&&i.callbacks_.push(function(){kd(e);const s=lg(i);CO(e,r,s,t)})}else ln(r)&&e.callbacks_.push(function(){const o=Kn(e);e.type_===3?o.has(r)&&Ld(r,n.handledSet_,n):qv(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Ld(qv(e.copy_,t,e.type_),n.handledSet_,n)})}function Ld(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ti(e)||t.has(e)||!ln(e)||Kf(e)||(t.add(e),Bf(e,(n,i)=>{if(ti(i)){const o=i[ir];if(Vf(o,r)){const s=lg(o);Rd(e,n,s,e.type_),OO(o)}}else ln(i)&&Ld(i,t,r)})),e}function sL(e,t){const r=Uf(e),n={type_:r?1:0,scope_:t?t.scope_:AO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=n,o=zd;r&&(i=[n],o=tu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,[u,n]}var zd={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=Kn(e);if(!Nw(i,t,e.type_))return uL(e,i,t);const o=i[t];if(e.finalized_||!ln(o)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&eL(t))return o;if(o===zm(e.base_,t)){kd(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=jO(Kn(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=zm(Kn(e),t),o=i==null?void 0:i[ir];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(J5(r,i)&&(r!==void 0||Nw(e.base_,t,e.type_)))return!0;kd(e),Zv(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),lL(e,t,r)),!0},deleteProperty(e,t){return kd(e),zm(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Zv(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Kn(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Sd]:!0,[Vv]:e.type_!==1||t!=="length",[Dd]:n[Dd],[Js]:r[t]}},defineProperty(){rn(11)},getPrototypeOf(e){return fl(e.base_)},setPrototypeOf(){rn(12)}},tu={};for(let e in zd){let t=zd[e];tu[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}tu.deleteProperty=function(e,t){return tu.set.call(this,e,t,void 0)};tu.set=function(e,t,r){return zd.set.call(this,e[0],t,r,e[0])};function zm(e,t){const r=e[ir];return(r?Kn(r):e)[t]}function uL(e,t,r){var i;const n=jO(t,r);return n?Js in n?n[Js]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function jO(e,t){if(!(t in e))return;let r=fl(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=fl(r)}}function Zv(e){e.modified_||(e.modified_=!0,e.parent_&&Zv(e.parent_))}function kd(e){e.copy_||(e.assigned_=new Map,e.copy_=Gv(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var cL=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Bo(r)&&!Bo(n)){const s=n;n=r;const u=this;return function(f=s,...h){return u.produce(f,m=>n.call(this,m,...h))}}Bo(n)||rn(6),i!==void 0&&!Bo(i)&&rn(7);let o;if(ln(r)){const s=Dw(this),u=Jv(s,r,void 0);let d=!0;try{o=n(u),d=!1}finally{d?Qv(s):Xv(s)}return Tw(s,i),Rw(o,s)}else if(!r||!og(r)){if(o=n(r),o===void 0&&(o=r),o===kO&&(o=void 0),this.autoFreeze_&&sg(o,!0),i){const s=[],u=[];Ka(Yv).generateReplacementPatches_(r,o,{patches_:s,inversePatches_:u}),i(s,u)}return o}else rn(1,r)},this.produceWithPatches=(r,n)=>{if(Bo(r))return(u,...d)=>this.produceWithPatches(u,f=>r(f,...d));let i,o;return[this.produce(r,n,(u,d)=>{i=u,o=d}),i,o]},Lm(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Lm(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Lm(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){ln(t)||rn(8),ti(t)&&(t=zr(t));const r=Dw(this),n=Jv(r,t,void 0);return n[ir].isManual_=!0,Xv(r),n}finishDraft(t,r){const n=t&&t[ir];(!n||!n.isManual_)&&rn(9);const{scope_:i}=n;return Tw(i,r),Rw(void 0,i)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const o=r[n];if(o.path.length===0&&o.op==="replace"){t=o.value;break}}n>-1&&(r=r.slice(n+1));const i=Ka(Yv).applyPatches_;return ti(t)?i(t,r):this.produce(t,o=>i(o,r))}};function Jv(e,t,r,n){const[i,o]=Wf(t)?Ka($d).proxyMap_(t,r):Hf(t)?Ka($d).proxySet_(t,r):sL(t,r);return((r==null?void 0:r.scope_)??AO()).drafts_.push(i),o.callbacks_=(r==null?void 0:r.callbacks_)??[],o.key_=n,r&&n!==void 0?oL(r,o,n):o.callbacks_.push(function(d){var h;(h=d.mapSetPlugin_)==null||h.fixSetContents(o);const{patchPlugin_:f}=d;o.modified_&&f&&f.generatePatches_(o,[],d)}),i}function zr(e){return ti(e)||rn(10,e),NO(e)}function NO(e){if(!ln(e)||Kf(e))return e;const t=e[ir];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Gv(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Gv(e,!0);return Bf(r,(i,o)=>{Rd(r,i,NO(o))},n),t&&(t.finalized_=!1),r}var dL=new cL,IO=dL.produce;function MO(e){return({dispatch:r,getState:n})=>i=>o=>typeof o=="function"?o(r,n,e):i(o)}var fL=MO(),hL=MO,pL=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Md:Md.apply(null,arguments)};function Cr(e,t){function r(...n){if(t){let i=t(...n);if(!i)throw new Error(Or(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>SO(n)&&n.type===e,r}var TO=class Ls extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,Ls.prototype)}static get[Symbol.species](){return Ls}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new Ls(...t[0].concat(this)):new Ls(...t.concat(this))}};function Lw(e){return ln(e)?IO(e,()=>{}):e}function ad(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function mL(e){return typeof e=="boolean"}var vL=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let s=new TO;return r&&(mL(r)?s.push(fL):s.push(hL(r.extraArgument))),s},DO="RTK_autoBatch",tt=()=>e=>({payload:e,meta:{[DO]:!0}}),zw=e=>t=>{setTimeout(t,e)},yL=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(s),r())},o=e(i),s=setTimeout(i,t)},RO=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let i=!0,o=!1,s=!1;const u=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?yL(window.requestAnimationFrame,100):zw(10):e.type==="callback"?e.queueNotification:zw(e.timeout),f=()=>{s=!1,o&&(o=!1,u.forEach(h=>h()))};return Object.assign({},n,{subscribe(h){const m=()=>i&&h(),v=n.subscribe(m);return u.add(h),()=>{v(),u.delete(h)}},dispatch(h){var m;try{return i=!((m=h==null?void 0:h.meta)!=null&&m[DO]),o=!i,o&&(s||(s=!0,d(f))),n.dispatch(h)}finally{i=!0}}})},gL=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new TO(e);return n&&i.push(RO(typeof n=="object"?n:void 0)),i};function xL(e){const t=vL(),{reducer:r=void 0,middleware:n,devTools:i=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{};let u;if(typeof r=="function")u=r;else if(ag(r))u=wO(r);else throw new Error(Or(1));let d;typeof n=="function"?d=n(t):d=t();let f=Md;i&&(f=pL({trace:!1,...typeof i=="object"&&i}));const h=X5(...d),m=gL(h);let v=typeof s=="function"?s(m):m();const x=f(...v);return bO(u,o,x)}function $O(e){const t={},r=[];let n;const i={addCase(o,s){const u=typeof o=="string"?o:o.type;if(!u)throw new Error(Or(28));if(u in t)throw new Error(Or(29));return t[u]=s,i},addAsyncThunk(o,s){return s.pending&&(t[o.pending.type]=s.pending),s.rejected&&(t[o.rejected.type]=s.rejected),s.fulfilled&&(t[o.fulfilled.type]=s.fulfilled),s.settled&&r.push({matcher:o.settled,reducer:s.settled}),i},addMatcher(o,s){return r.push({matcher:o,reducer:s}),i},addDefaultCase(o){return n=o,i}};return e(i),[t,r,n]}function bL(e){return typeof e=="function"}function wL(e,t){let[r,n,i]=$O(t),o;if(bL(e))o=()=>Lw(e());else{const u=Lw(e);o=()=>u}function s(u=o(),d){let f=[r[d.type],...n.filter(({matcher:h})=>h(d)).map(({reducer:h})=>h)];return f.filter(h=>!!h).length===0&&(f=[i]),f.reduce((h,m)=>{if(m)if(ti(h)){const x=m(h,d);return x===void 0?h:x}else{if(ln(h))return IO(h,v=>m(v,d));{const v=m(h,d);if(v===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return v}}return h},u)}return s.getInitialState=o,s}var SL="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",kL=(e=21)=>{let t="",r=e;for(;r--;)t+=SL[Math.random()*64|0];return t},EL=Symbol.for("rtk-slice-createasyncthunk");function PL(e,t){return`${e}/${t}`}function AL({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[EL];return function(i){const{name:o,reducerPath:s=o}=i;if(!o)throw new Error(Or(11));const u=(typeof i.reducers=="function"?i.reducers(CL()):i.reducers)||{},d=Object.keys(u),f={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(_,N){const C=typeof _=="string"?_:_.type;if(!C)throw new Error(Or(12));if(C in f.sliceCaseReducersByType)throw new Error(Or(13));return f.sliceCaseReducersByType[C]=N,h},addMatcher(_,N){return f.sliceMatchers.push({matcher:_,reducer:N}),h},exposeAction(_,N){return f.actionCreators[_]=N,h},exposeCaseReducer(_,N){return f.sliceCaseReducersByName[_]=N,h}};d.forEach(_=>{const N=u[_],C={reducerName:_,type:PL(o,_),createNotation:typeof i.reducers=="function"};jL(N)?IL(C,N,h,t):_L(C,N,h)});function m(){const[_={},N=[],C=void 0]=typeof i.extraReducers=="function"?$O(i.extraReducers):[i.extraReducers],D={..._,...f.sliceCaseReducersByType};return wL(i.initialState,F=>{for(let z in D)F.addCase(z,D[z]);for(let z of f.sliceMatchers)F.addMatcher(z.matcher,z.reducer);for(let z of N)F.addMatcher(z.matcher,z.reducer);C&&F.addDefaultCase(C)})}const v=_=>_,x=new Map,k=new WeakMap;let S;function E(_,N){return S||(S=m()),S(_,N)}function P(){return S||(S=m()),S.getInitialState()}function O(_,N=!1){function C(F){let z=F[_];return typeof z>"u"&&N&&(z=ad(k,C,P)),z}function D(F=v){const z=ad(x,N,()=>new WeakMap);return ad(z,F,()=>{const q={};for(const[X,B]of Object.entries(i.selectors??{}))q[X]=OL(B,F,()=>ad(k,F,P),N);return q})}return{reducerPath:_,getSelectors:D,get selectors(){return D(C)},selectSlice:C}}const j={name:o,reducer:E,actions:f.actionCreators,caseReducers:f.sliceCaseReducersByName,getInitialState:P,...O(s),injectInto(_,{reducerPath:N,...C}={}){const D=N??s;return _.inject({reducerPath:D,reducer:E},C),{...j,...O(D,!0)}}};return j}}function OL(e,t,r,n){function i(o,...s){let u=t(o);return typeof u>"u"&&n&&(u=r()),e(u,...s)}return i.unwrapped=e,i}var Zt=AL();function CL(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function _L({type:e,reducerName:t,createNotation:r},n,i){let o,s;if("reducer"in n){if(r&&!NL(n))throw new Error(Or(17));o=n.reducer,s=n.prepare}else o=n;i.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,s?Cr(e,s):Cr(e))}function jL(e){return e._reducerDefinitionType==="asyncThunk"}function NL(e){return e._reducerDefinitionType==="reducerWithPrepare"}function IL({type:e,reducerName:t},r,n,i){if(!i)throw new Error(Or(18));const{payloadCreator:o,fulfilled:s,pending:u,rejected:d,settled:f,options:h}=r,m=i(e,o,h);n.exposeAction(t,m),s&&n.addCase(m.fulfilled,s),u&&n.addCase(m.pending,u),d&&n.addCase(m.rejected,d),f&&n.addMatcher(m.settled,f),n.exposeCaseReducer(t,{fulfilled:s||od,pending:u||od,rejected:d||od,settled:f||od})}function od(){}var ML="task",LO="listener",zO="completed",ug="cancelled",TL=`task-${ug}`,DL=`task-${zO}`,ey=`${LO}-${ug}`,RL=`${LO}-${zO}`,qf=class{constructor(e){xs(this,"code");xs(this,"name","TaskAbortError");xs(this,"message");this.code=e,this.message=`${ML} ${ug} (reason: ${e})`}},cg=(e,t)=>{if(typeof e!="function")throw new TypeError(Or(32))},Fd=()=>{},FO=(e,t=Fd)=>(e.catch(t),e),BO=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),za=e=>{if(e.aborted)throw new qf(e.reason)};function UO(e,t){let r=Fd;return new Promise((n,i)=>{const o=()=>i(new qf(e.reason));if(e.aborted){o();return}r=BO(e,o),t.finally(()=>r()).then(n,i)}).finally(()=>{r=Fd})}var $L=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof qf?"cancelled":"rejected",error:r}}finally{t==null||t()}},Bd=e=>t=>FO(UO(e,t).then(r=>(za(e),r))),WO=e=>{const t=Bd(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:Go}=Object,Fw={},Gf="listenerMiddleware",LL=(e,t)=>{const r=n=>BO(e,()=>n.abort(e.reason));return(n,i)=>{cg(n);const o=new AbortController;r(o);const s=$L(async()=>{za(e),za(o.signal);const u=await n({pause:Bd(o.signal),delay:WO(o.signal),signal:o.signal});return za(o.signal),u},()=>o.abort(DL));return i!=null&&i.autoJoin&&t.push(s.catch(Fd)),{result:Bd(e)(s),cancel(){o.abort(TL)}}}},zL=(e,t)=>{const r=async(n,i)=>{za(t);let o=()=>{};const u=[new Promise((d,f)=>{let h=e({predicate:n,effect:(m,v)=>{v.unsubscribe(),d([m,v.getState(),v.getOriginalState()])}});o=()=>{h(),f()}})];i!=null&&u.push(new Promise(d=>setTimeout(d,i,null)));try{const d=await UO(t,Promise.race(u));return za(t),d}finally{o()}};return((n,i)=>FO(r(n,i)))},HO=e=>{let{type:t,actionCreator:r,matcher:n,predicate:i,effect:o}=e;if(t)i=Cr(t).match;else if(r)t=r.type,i=r.match;else if(n)i=n;else if(!i)throw new Error(Or(21));return cg(o),{predicate:i,type:t,effect:o}},KO=Go(e=>{const{type:t,predicate:r,effect:n}=HO(e);return{id:kL(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Or(22))}}},{withTypes:()=>KO}),Bw=(e,t)=>{const{type:r,effect:n,predicate:i}=HO(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===i)&&o.effect===n)},ty=e=>{e.pending.forEach(t=>{t.abort(ey)})},FL=(e,t)=>()=>{for(const r of t.keys())ty(r);e.clear()},Uw=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},VO=Go(Cr(`${Gf}/add`),{withTypes:()=>VO}),BL=Cr(`${Gf}/removeAll`),qO=Go(Cr(`${Gf}/remove`),{withTypes:()=>qO}),UL=(...e)=>{console.error(`${Gf}/error`,...e)},Su=(e={})=>{const t=new Map,r=new Map,n=x=>{const k=r.get(x)??0;r.set(x,k+1)},i=x=>{const k=r.get(x)??1;k===1?r.delete(x):r.set(x,k-1)},{extra:o,onError:s=UL}=e;cg(s);const u=x=>(x.unsubscribe=()=>t.delete(x.id),t.set(x.id,x),k=>{x.unsubscribe(),k!=null&&k.cancelActive&&ty(x)}),d=(x=>{const k=Bw(t,x)??KO(x);return u(k)});Go(d,{withTypes:()=>d});const f=x=>{const k=Bw(t,x);return k&&(k.unsubscribe(),x.cancelActive&&ty(k)),!!k};Go(f,{withTypes:()=>f});const h=async(x,k,S,E)=>{const P=new AbortController,O=zL(d,P.signal),j=[];try{x.pending.add(P),n(x),await Promise.resolve(x.effect(k,Go({},S,{getOriginalState:E,condition:(_,N)=>O(_,N).then(Boolean),take:O,delay:WO(P.signal),pause:Bd(P.signal),extra:o,signal:P.signal,fork:LL(P.signal,j),unsubscribe:x.unsubscribe,subscribe:()=>{t.set(x.id,x)},cancelActiveListeners:()=>{x.pending.forEach((_,N,C)=>{_!==P&&(_.abort(ey),C.delete(_))})},cancel:()=>{P.abort(ey),x.pending.delete(P)},throwIfCancelled:()=>{za(P.signal)}})))}catch(_){_ instanceof qf||Uw(s,_,{raisedBy:"effect"})}finally{await Promise.all(j),P.abort(RL),i(x),x.pending.delete(P)}},m=FL(t,r);return{middleware:x=>k=>S=>{if(!SO(S))return k(S);if(VO.match(S))return d(S.payload);if(BL.match(S)){m();return}if(qO.match(S))return f(S.payload);let E=x.getState();const P=()=>{if(E===Fw)throw new Error(Or(23));return E};let O;try{if(O=k(S),t.size>0){const j=x.getState(),_=Array.from(t.values());for(const N of _){let C=!1;try{C=N.predicate(S,j,E)}catch(D){C=!1,Uw(s,D,{raisedBy:"predicate"})}C&&h(N,S,x,P)}}}finally{E=Fw}return O},startListening:d,stopListening:f,clearListeners:m}};function Or(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var WL={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},GO=Zt({name:"chartLayout",initialState:WL,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,i,o;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(i=t.payload.bottom)!==null&&i!==void 0?i:0,e.margin.left=(o=t.payload.left)!==null&&o!==void 0?o:0},setScale(e,t){e.scale=t.payload}}}),Yf=GO.actions,HL=Yf.setMargin,KL=Yf.setLayout,VL=Yf.setChartSize,qL=Yf.setScale,GL=GO.reducer;function YO(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Fe(e){return Number.isFinite(e)}function _n(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Ww(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Uo(e){for(var t=1;t{if(t&&r){var n=r.width,i=r.height,o=t.align,s=t.verticalAlign,u=t.layout;if((u==="vertical"||u==="horizontal"&&s==="middle")&&o!=="center"&&be(e[o]))return Uo(Uo({},e),{},{[o]:e[o]+(n||0)});if((u==="horizontal"||u==="vertical"&&o==="center")&&s!=="middle"&&be(e[s]))return Uo(Uo({},e),{},{[s]:e[s]+(i||0)})}return e},Mn=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",QO=(e,t,r,n)=>{if(n)return e.map(u=>u.coordinate);var i,o,s=e.map(u=>(u.coordinate===t&&(i=!0),u.coordinate===r&&(o=!0),u.coordinate));return i||s.push(t),o||s.push(r),s},XO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,i=e.type,o=e.range,s=e.scale,u=e.realScaleType,d=e.isCategorical,f=e.categoricalDomain,h=e.tickCount,m=e.ticks,v=e.niceTicks,x=e.axisType;if(!s)return null;var k=u==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,S=i==="category"&&s.bandwidth?s.bandwidth()/k:0;if(S=x==="angleAxis"&&o&&o.length>=2?Lr(o[0]-o[1])*2*S:S,m||v){var E=(m||v||[]).map((P,O)=>{var j=n?n.indexOf(P):P,_=s.map(j);return Fe(_)?{coordinate:_+S,value:P,offset:S,index:O}:null}).filter(mr);return E}return d&&f?f.map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.ticks&&h!=null?s.ticks(h).map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.domain().map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:n?n[P]:P,index:O,offset:S}:null}).filter(mr)},JL=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(f[0]=o,o+=v,f[1]=o):(f[0]=s,s+=v,f[1]=s)}}}},e4=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(d[0]=o,o+=f,d[1]=o):(d[0]=0,d[1]=0)}}}},t4={sign:JL,expand:y$,none:Wa,silhouette:g$,wiggle:x$,positive:e4},r4=(e,t,r)=>{var n,i=(n=t4[r])!==null&&n!==void 0?n:Wa,o=v$().keys(t).value((u,d)=>Number(Nt(u,d,0))).order(Bv).offset(i),s=o(e);return s.forEach((u,d)=>{u.forEach((f,h)=>{var m=Nt(e[h],t[d],0);Array.isArray(m)&&m.length===2&&be(m[0])&&be(m[1])&&(f[0]=m[0],f[1]=m[1])})}),s};function n4(e){return e==null?void 0:String(e)}function Hw(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,o=e.index,s=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ut(i[t.dataKey])){var u=nO(r,"value",i[t.dataKey]);if(u)return u.coordinate+n/2}return r!=null&&r[o]?r[o].coordinate+n/2:null}var d=Nt(i,Ut(s)?t.dataKey:s),f=t.scale.map(d);return be(f)?f:null}var i4=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},a4=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],o4=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return a4(Object.keys(e).reduce((n,i)=>{var o=e[i];if(!o)return n;var s=o.stackedData,u=s.reduce((d,f)=>{var h=YO(f,t,r),m=i4(h);return!Fe(m[0])||!Fe(m[1])?d:[Math.min(d[0],m[0]),Math.max(d[1],m[1])]},[1/0,-1/0]);return[Math.min(u[0],n[0]),Math.max(u[1],n[1])]},[1/0,-1/0]))},Kw=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Vw=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ud=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var i=zf(t,h=>h.coordinate),o=1/0,s=1,u=i.length;s{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},s4=(e,t)=>t==="centric"?e.angle:e.radius,ai=e=>e.layout.width,oi=e=>e.layout.height,u4=e=>e.layout.scale,JO=e=>e.layout.margin,Qf=H(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Xf=H(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),c4="data-recharts-item-index",d4="data-recharts-item-id",ku=60;function Gw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ld(e){for(var t=1;te.brush.height;function v4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ku;return r+i}return r},0)}function y4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ku;return r+i}return r},0)}function g4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function x4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Ht=H([ai,oi,JO,m4,v4,y4,g4,x4,xO,F5],(e,t,r,n,i,o,s,u,d,f)=>{var h={left:(r.left||0)+i,right:(r.right||0)+o},m={top:(r.top||0)+s,bottom:(r.bottom||0)+u},v=ld(ld({},m),h),x=v.bottom;v.bottom+=n,v=ZL(v,d,f);var k=e-v.left-v.right,S=t-v.top-v.bottom;return ld(ld({brushBottom:x},v),{},{width:Math.max(k,0),height:Math.max(S,0)})}),b4=H(Ht,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),e2=H(ai,oi,(e,t)=>({x:0,y:0,width:e,height:t})),w4=g.createContext(null),gr=()=>g.useContext(w4)!=null,Zf=e=>e.brush,Jf=H([Zf,Ht,JO],(e,t,r)=>({height:e.height,x:be(e.x)?e.x:t.left,y:be(e.y)?e.y:t.top+t.height+t.brushBottom-((r==null?void 0:r.bottom)||0),width:be(e.width)?e.width:t.width}));function S4(e,t,{signal:r,edges:n}={}){let i,o=null;const s=n!=null&&n.includes("leading"),u=n==null||n.includes("trailing"),d=()=>{o!==null&&(e.apply(i,o),i=void 0,o=null)},f=()=>{u&&d(),x()};let h=null;const m=()=>{h!=null&&clearTimeout(h),h=setTimeout(()=>{h=null,f()},t)},v=()=>{h!==null&&(clearTimeout(h),h=null)},x=()=>{v(),i=void 0,o=null},k=()=>{d()},S=function(...E){if(r!=null&&r.aborted)return;i=this,o=E;const P=h==null;m(),s&&P&&d()};return S.schedule=m,S.cancel=x,S.flush=k,r==null||r.addEventListener("abort",x,{once:!0}),S}function k4(e,t=0,r={}){typeof r!="object"&&(r={});const{leading:n=!1,trailing:i=!0,maxWait:o}=r,s=Array(2);n&&(s[0]="leading"),i&&(s[1]="trailing");let u,d=null;const f=S4(function(...v){u=e.apply(this,v),d=null},t,{edges:s}),h=function(...v){return o!=null&&(d===null&&(d=Date.now()),Date.now()-d>=o)?(u=e.apply(this,v),d=Date.now(),f.cancel(),f.schedule(),u):(f.apply(this,v),u)},m=()=>(f.flush(),u);return h.cancel=f.cancel,h.flush=m,h}function E4(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return k4(e,t,{leading:n,maxWait:t,trailing:i})}var Wd=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;oi[s++]))}},kn={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},t2=(e,t,r)=>{var n=r.width,i=n===void 0?kn.width:n,o=r.height,s=o===void 0?kn.height:o,u=r.aspect,d=r.maxHeight,f=Ha(i)?e:Number(i),h=Ha(s)?t:Number(s);return u&&u>0&&(f?h=f/u:h&&(f=h*u),d&&h!=null&&h>d&&(h=d)),{calculatedWidth:f,calculatedHeight:h}},P4={width:0,height:0,overflow:"visible"},A4={width:0,overflowX:"visible"},O4={height:0,overflowY:"visible"},C4={},_4=e=>{var t=e.width,r=e.height,n=Ha(t),i=Ha(r);return n&&i?P4:n?A4:i?O4:C4};function j4(e){var t=e.width,r=e.height,n=e.aspect,i=t,o=r;return i===void 0&&o===void 0?(i=kn.width,o=kn.height):i===void 0?i=n&&n>0?void 0:kn.width:o===void 0&&(o=n&&n>0?void 0:kn.height),{width:i,height:o}}var N4=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Hd(){return Hd=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return U4(i)?g.createElement(r2.Provider,{value:i},t):null}var dg=()=>g.useContext(r2),W4=g.forwardRef((e,t)=>{var r=e.aspect,n=e.initialDimension,i=n===void 0?kn.initialDimension:n,o=e.width,s=e.height,u=e.minWidth,d=u===void 0?kn.minWidth:u,f=e.minHeight,h=e.maxHeight,m=e.children,v=e.debounce,x=v===void 0?kn.debounce:v,k=e.id,S=e.className,E=e.onResize,P=e.style,O=P===void 0?{}:P,j=F4(e,N4),_=g.useRef(null),N=g.useRef();N.current=E,g.useImperativeHandle(t,()=>_.current);var C=g.useState({containerWidth:i.width,containerHeight:i.height}),D=D4(C,2),F=D[0],z=D[1],q=g.useCallback((fe,de)=>{z(K=>{var ie=Math.round(fe),Q=Math.round(de);return K.containerWidth===ie&&K.containerHeight===Q?K:{containerWidth:ie,containerHeight:Q}})},[]);g.useEffect(()=>{if(_.current==null||typeof ResizeObserver>"u")return kl;var fe=R=>{var M,J=R[0];if(J!=null){var se=J.contentRect,te=se.width,ce=se.height;q(te,ce),(M=N.current)===null||M===void 0||M.call(N,te,ce)}};x>0&&(fe=E4(fe,x,{trailing:!0,leading:!1}));var de=new ResizeObserver(fe),K=_.current.getBoundingClientRect(),ie=K.width,Q=K.height;return q(ie,Q),de.observe(_.current),()=>{de.disconnect()}},[q,x]);var X=F.containerWidth,B=F.containerHeight;Wd(!r||r>0,"The aspect(%s) must be greater than zero.",r);var ue=t2(X,B,{width:o,height:s,aspect:r,maxHeight:h}),Y=ue.calculatedWidth,le=ue.calculatedHeight;return Wd(X<0||B<0||Y!=null&&Y>0||le!=null&&le>0,`The width(%s) and height(%s) of chart should be greater than 0, + */var bw;function xL(){if(bw)return Tm;bw=1;var e=bl(),t=gL();function r(f,h){return f===h&&(f!==0||1/f===1/h)||f!==f&&h!==h}var n=typeof Object.is=="function"?Object.is:r,i=t.useSyncExternalStore,o=e.useRef,s=e.useEffect,u=e.useMemo,d=e.useDebugValue;return Tm.useSyncExternalStoreWithSelector=function(f,h,m,v,x){var k=o(null);if(k.current===null){var S={hasValue:!1,value:null};k.current=S}else S=k.current;k=u(function(){function P(C){if(!O){if(O=!0,j=C,C=v(C),x!==void 0&&S.hasValue){var D=S.value;if(x(D,C))return _=D}return _=C}if(D=_,n(j,C))return D;var F=v(C);return x!==void 0&&x(D,F)?(j=C,D):(j=C,_=F)}var O=!1,j,_,N=m===void 0?null:m;return[function(){return P(h())},N===null?void 0:function(){return P(N())}]},[h,m,v,x]);var E=i(f,k[0],k[1]);return s(function(){S.hasValue=!0,S.value=E},[E]),d(E),E},Tm}var ww;function bL(){return ww||(ww=1,Mm.exports=xL()),Mm.exports}var wL=bL(),ig=g.createContext(null),SL=e=>e,xt=()=>{var e=g.useContext(ig);return e?e.store.dispatch:SL},wd=()=>{},kL=()=>wd,EL=(e,t)=>e===t;function ke(e){var t=g.useContext(ig),r=g.useMemo(()=>t?n=>{if(n!=null)return e(n)}:wd,[t,e]);return wL.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:kL,t?t.store.getState:wd,t?t.store.getState:wd,r,EL)}function PL(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function AL(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var Sw=e=>Array.isArray(e)?e:[e];function OL(e){const t=Array.isArray(e[0])?e[0]:e;return AL(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function CL(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?_L:WeakRef,vO=jL(),NL=0,kw=1;function rd(){return{s:NL,v:void 0,o:null,p:null}}function IL(e){return e instanceof vO?e.deref():e}function yO(e,t={}){let r=rd();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=rd(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function ML(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()),PL(f,`createSelector expects an output function after the inputs, but received: [${typeof f}]`);const h={...r,...d},{memoize:m,memoizeOptions:v=[],argsMemoize:x=yO,argsMemoizeOptions:k=[]}=h,S=Sw(v),E=Sw(k),P=OL(i),O=m(function(){return o++,f.apply(null,arguments)},...S),j=x(function(){s++;const N=CL(P,arguments);return u=O.apply(null,N),u},...E);return Object.assign(j,{resultFunc:f,memoizedResultFunc:O,dependencies:P,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>u,recomputations:()=>o,resetRecomputations:()=>{o=0},memoize:m,argsMemoize:x})};return Object.assign(n,{withTypes:()=>n}),n}var H=ML(yO);function TL(e,t=1){const r=[],n=Math.floor(t),i=(o,s)=>{for(let u=0;u{if(e!==t){const n=Ew(e),i=Ew(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function gO(e){return typeof e=="symbol"||e instanceof Symbol}const RL=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$L=/^\w*$/;function LL(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||gO(e)?!0:typeof e=="string"&&($L.test(e)||!RL.test(e))||t!=null}function zL(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)||LL(u)?u:{key:u,path:eg(u)}));return e.map(u=>({original:u,criteria:s.map(d=>o(d,u))})).slice().sort((u,d)=>{for(let f=0;fu.original)}function zf(e,...t){const r=t.length;return r>1&&Kv(e,t[0],t[1])?t=[]:r>2&&Kv(t[0],t[1],t[2])&&(t=[t[0]]),zL(e,TL(t),["asc"])}var xO=e=>e.legend.settings,FL=e=>e.legend.size,BL=e=>e.legend.payload;H([BL,xO],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?zf(n,r):n});function UL(e,t){return VL(e)||KL(e,t)||HL(e,t)||WL()}function WL(){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 HL(e,t){if(e){if(typeof e=="string")return Pw(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pw(e,t):void 0}}function Pw(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rnd||Math.abs(e.left-t.left)>nd||Math.abs(e.top-t.top)>nd||Math.abs(e.width-t.width)>nd}function Ow(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function qL(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=g.useState({height:0,left:0,top:0,width:0}),r=UL(t,2),n=r[0],i=r[1],o=g.useRef(null),s=g.useRef(n);s.current=n;var u=g.useCallback(d=>{if(o.current!=null&&(o.current.disconnect(),o.current=null),d!=null){var f=Ow(d);if(Aw(f,s.current)&&i(f),typeof ResizeObserver<"u"){var h=new ResizeObserver(()=>{var m=Ow(d);Aw(m,s.current)&&i(m)});h.observe(d),o.current=h}}},[...e]);return g.useEffect(()=>()=>{var d;(d=o.current)===null||d===void 0||d.disconnect()},[]),[n,u]}function $t(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var GL=typeof Symbol=="function"&&Symbol.observable||"@@observable",Cw=GL,$m=()=>Math.random().toString(36).substring(7).split("").join("."),YL={INIT:`@@redux/INIT${$m()}`,REPLACE:`@@redux/REPLACE${$m()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${$m()}`},Id=YL;function ag(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function bO(e,t,r){if(typeof e!="function")throw new Error($t(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error($t(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error($t(1));return r(bO)(e,t)}let n=e,i=t,o=new Map,s=o,u=0,d=!1;function f(){s===o&&(s=new Map,o.forEach((E,P)=>{s.set(P,E)}))}function h(){if(d)throw new Error($t(3));return i}function m(E){if(typeof E!="function")throw new Error($t(4));if(d)throw new Error($t(5));let P=!0;f();const O=u++;return s.set(O,E),function(){if(P){if(d)throw new Error($t(6));P=!1,f(),s.delete(O),o=null}}}function v(E){if(!ag(E))throw new Error($t(7));if(typeof E.type>"u")throw new Error($t(8));if(typeof E.type!="string")throw new Error($t(17));if(d)throw new Error($t(9));try{d=!0,i=n(i,E)}finally{d=!1}return(o=s).forEach(O=>{O()}),E}function x(E){if(typeof E!="function")throw new Error($t(10));n=E,v({type:Id.REPLACE})}function k(){const E=m;return{subscribe(P){if(typeof P!="object"||P===null)throw new Error($t(11));function O(){const _=P;_.next&&_.next(h())}return O(),{unsubscribe:E(O)}},[Cw](){return this}}}return v({type:Id.INIT}),{dispatch:v,subscribe:m,getState:h,replaceReducer:x,[Cw]:k}}function QL(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:Id.INIT})>"u")throw new Error($t(12));if(typeof r(void 0,{type:Id.PROBE_UNKNOWN_ACTION()})>"u")throw new Error($t(13))})}function wO(e){const t=Object.keys(e),r={};for(let o=0;o"u")throw u&&u.type,new Error($t(14));f[m]=k,d=d||k!==x}return d=d||n.length!==Object.keys(s).length,d?f:s}}function Md(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function XL(...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=Md(...u)(i.dispatch),{...i,dispatch:o}}}function SO(e){return ag(e)&&"type"in e&&typeof e.type=="string"}var kO=Symbol.for("immer-nothing"),_w=Symbol.for("immer-draftable"),ir=Symbol.for("immer-state");function rn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Ar=Object,dl=Ar.getPrototypeOf,Td="constructor",Ff="prototype",Vv="configurable",Dd="enumerable",Sd="writable",Js="value",ti=e=>!!e&&!!e[ir];function ln(e){var t;return e?EO(e)||Uf(e)||!!e[_w]||!!((t=e[Td])!=null&&t[_w])||Wf(e)||Hf(e):!1}var ZL=Ar[Ff][Td].toString(),jw=new WeakMap;function EO(e){if(!e||!og(e))return!1;const t=dl(e);if(t===null||t===Ar[Ff])return!0;const r=Ar.hasOwnProperty.call(t,Td)&&t[Td];if(r===Object)return!0;if(!Fo(r))return!1;let n=jw.get(r);return n===void 0&&(n=Function.toString.call(r),jw.set(r,n)),n===ZL}function Bf(e,t,r=!0){wu(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 wu(e){const t=e[ir];return t?t.type_:Uf(e)?1:Wf(e)?2:Hf(e)?3:0}var Nw=(e,t,r=wu(e))=>r===2?e.has(t):Ar[Ff].hasOwnProperty.call(e,t),qv=(e,t,r=wu(e))=>r===2?e.get(t):e[t],Rd=(e,t,r,n=wu(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function JL(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var Uf=Array.isArray,Wf=e=>e instanceof Map,Hf=e=>e instanceof Set,og=e=>typeof e=="object",Fo=e=>typeof e=="function",Lm=e=>typeof e=="boolean";function e5(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(Wf(e))return new Map(e);if(Hf(e))return new Set(e);if(Uf(e))return Array[Ff].slice.call(e);const r=EO(e);if(t===!0||t==="class_only"&&!r){const n=Ar.getOwnPropertyDescriptors(e);delete n[ir];let i=Reflect.ownKeys(n);for(let o=0;o1&&Ar.defineProperties(e,{set:id,add:id,clear:id,delete:id}),Ar.freeze(e),t&&Bf(e,(r,n)=>{sg(n,!0)},!1)),e}function t5(){rn(2)}var id={[Js]:t5};function Kf(e){return e===null||!og(e)?!0:Ar.isFrozen(e)}var $d="MapSet",Yv="Patches",Iw="ArrayMethods",PO={};function Ha(e){const t=PO[e];return t||rn(0,e),t}var Mw=e=>!!PO[e],eu,AO=()=>eu,r5=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Mw($d)?Ha($d):void 0,arrayMethodsPlugin_:Mw(Iw)?Ha(Iw):void 0});function Tw(e,t){t&&(e.patchPlugin_=Ha(Yv),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Qv(e){Xv(e),e.drafts_.forEach(n5),e.drafts_=null}function Xv(e){e===eu&&(eu=e.parent_)}var Dw=e=>eu=r5(eu,e);function n5(e){const t=e[ir];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Rw(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[ir].modified_&&(Qv(t),rn(4)),ln(e)&&(e=$w(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[ir].base_,e,t)}else e=$w(t,r);return i5(t,e,!0),Qv(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==kO?e:void 0}function $w(e,t){if(Kf(t))return t;const r=t[ir];if(!r)return Ld(t,e.handledSet_,e);if(!Vf(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);_O(r,e)}return r.copy_}function i5(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&sg(t,r)}function OO(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Vf=(e,t)=>e.scope_===t,a5=[];function CO(e,t,r,n){const i=Kn(e),o=e.type_;if(n!==void 0&&qv(i,n,o)===t){Rd(i,n,r,o);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;Bf(i,(d,f)=>{if(ti(f)){const h=u.get(f)||[];h.push(d),u.set(f,h)}})}const s=e.draftLocations_.get(t)??a5;for(const u of s)Rd(i,u,r,o)}function o5(e,t,r){e.callbacks_.push(function(i){var u;const o=t;if(!o||!Vf(o,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(o);const s=lg(o);CO(e,o.draft_??o,s,r),_O(o,i)})}function _O(e,t){var n;if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(((n=e.assigned_)==null?void 0:n.size)??0)>0)){const{patchPlugin_:i}=t;if(i){const o=i.getPath(e);o&&i.generatePatches_(e,o,t)}OO(e)}}function l5(e,t,r){const{scope_:n}=e;if(ti(r)){const i=r[ir];Vf(i,n)&&i.callbacks_.push(function(){kd(e);const s=lg(i);CO(e,r,s,t)})}else ln(r)&&e.callbacks_.push(function(){const o=Kn(e);e.type_===3?o.has(r)&&Ld(r,n.handledSet_,n):qv(o,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Ld(qv(e.copy_,t,e.type_),n.handledSet_,n)})}function Ld(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ti(e)||t.has(e)||!ln(e)||Kf(e)||(t.add(e),Bf(e,(n,i)=>{if(ti(i)){const o=i[ir];if(Vf(o,r)){const s=lg(o);Rd(e,n,s,e.type_),OO(o)}}else ln(i)&&Ld(i,t,r)})),e}function s5(e,t){const r=Uf(e),n={type_:r?1:0,scope_:t?t.scope_:AO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=n,o=zd;r&&(i=[n],o=tu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,[u,n]}var zd={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=Kn(e);if(!Nw(i,t,e.type_))return u5(e,i,t);const o=i[t];if(e.finalized_||!ln(o)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&e5(t))return o;if(o===zm(e.base_,t)){kd(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=jO(Kn(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=zm(Kn(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(JL(r,i)&&(r!==void 0||Nw(e.base_,t,e.type_)))return!0;kd(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),l5(e,t,r)),!0},deleteProperty(e,t){return kd(e),zm(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Zv(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Kn(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[Sd]:!0,[Vv]:e.type_!==1||t!=="length",[Dd]:n[Dd],[Js]:r[t]}},defineProperty(){rn(11)},getPrototypeOf(e){return dl(e.base_)},setPrototypeOf(){rn(12)}},tu={};for(let e in zd){let t=zd[e];tu[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}tu.deleteProperty=function(e,t){return tu.set.call(this,e,t,void 0)};tu.set=function(e,t,r){return zd.set.call(this,e[0],t,r,e[0])};function zm(e,t){const r=e[ir];return(r?Kn(r):e)[t]}function u5(e,t,r){var i;const n=jO(t,r);return n?Js in n?n[Js]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function jO(e,t){if(!(t in e))return;let r=dl(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=dl(r)}}function Zv(e){e.modified_||(e.modified_=!0,e.parent_&&Zv(e.parent_))}function kd(e){e.copy_||(e.assigned_=new Map,e.copy_=Gv(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var c5=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Fo(r)&&!Fo(n)){const s=n;n=r;const u=this;return function(f=s,...h){return u.produce(f,m=>n.call(this,m,...h))}}Fo(n)||rn(6),i!==void 0&&!Fo(i)&&rn(7);let o;if(ln(r)){const s=Dw(this),u=Jv(s,r,void 0);let d=!0;try{o=n(u),d=!1}finally{d?Qv(s):Xv(s)}return Tw(s,i),Rw(o,s)}else if(!r||!og(r)){if(o=n(r),o===void 0&&(o=r),o===kO&&(o=void 0),this.autoFreeze_&&sg(o,!0),i){const s=[],u=[];Ha(Yv).generateReplacementPatches_(r,o,{patches_:s,inversePatches_:u}),i(s,u)}return o}else rn(1,r)},this.produceWithPatches=(r,n)=>{if(Fo(r))return(u,...d)=>this.produceWithPatches(u,f=>r(f,...d));let i,o;return[this.produce(r,n,(u,d)=>{i=u,o=d}),i,o]},Lm(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),Lm(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),Lm(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){ln(t)||rn(8),ti(t)&&(t=zr(t));const r=Dw(this),n=Jv(r,t,void 0);return n[ir].isManual_=!0,Xv(r),n}finishDraft(t,r){const n=t&&t[ir];(!n||!n.isManual_)&&rn(9);const{scope_:i}=n;return Tw(i,r),Rw(void 0,i)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const o=r[n];if(o.path.length===0&&o.op==="replace"){t=o.value;break}}n>-1&&(r=r.slice(n+1));const i=Ha(Yv).applyPatches_;return ti(t)?i(t,r):this.produce(t,o=>i(o,r))}};function Jv(e,t,r,n){const[i,o]=Wf(t)?Ha($d).proxyMap_(t,r):Hf(t)?Ha($d).proxySet_(t,r):s5(t,r);return((r==null?void 0:r.scope_)??AO()).drafts_.push(i),o.callbacks_=(r==null?void 0:r.callbacks_)??[],o.key_=n,r&&n!==void 0?o5(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),NO(e)}function NO(e){if(!ln(e)||Kf(e))return e;const t=e[ir];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Gv(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Gv(e,!0);return Bf(r,(i,o)=>{Rd(r,i,NO(o))},n),t&&(t.finalized_=!1),r}var d5=new c5,IO=d5.produce;function MO(e){return({dispatch:r,getState:n})=>i=>o=>typeof o=="function"?o(r,n,e):i(o)}var f5=MO(),h5=MO,p5=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Md:Md.apply(null,arguments)};function Cr(e,t){function r(...n){if(t){let i=t(...n);if(!i)throw new Error(Or(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>SO(n)&&n.type===e,r}var TO=class $s extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,$s.prototype)}static get[Symbol.species](){return $s}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new $s(...t[0].concat(this)):new $s(...t.concat(this))}};function Lw(e){return ln(e)?IO(e,()=>{}):e}function ad(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function m5(e){return typeof e=="boolean"}var v5=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:o=!0}=t??{};let s=new TO;return r&&(m5(r)?s.push(f5):s.push(h5(r.extraArgument))),s},DO="RTK_autoBatch",tt=()=>e=>({payload:e,meta:{[DO]:!0}}),zw=e=>t=>{setTimeout(t,e)},y5=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(o),clearTimeout(s),r())},o=e(i),s=setTimeout(i,t)},RO=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let i=!0,o=!1,s=!1;const u=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?y5(window.requestAnimationFrame,100):zw(10):e.type==="callback"?e.queueNotification:zw(e.timeout),f=()=>{s=!1,o&&(o=!1,u.forEach(h=>h()))};return Object.assign({},n,{subscribe(h){const m=()=>i&&h(),v=n.subscribe(m);return u.add(h),()=>{v(),u.delete(h)}},dispatch(h){var m;try{return i=!((m=h==null?void 0:h.meta)!=null&&m[DO]),o=!i,o&&(s||(s=!0,d(f))),n.dispatch(h)}finally{i=!0}}})},g5=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new TO(e);return n&&i.push(RO(typeof n=="object"?n:void 0)),i};function x5(e){const t=v5(),{reducer:r=void 0,middleware:n,devTools:i=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{};let u;if(typeof r=="function")u=r;else if(ag(r))u=wO(r);else throw new Error(Or(1));let d;typeof n=="function"?d=n(t):d=t();let f=Md;i&&(f=p5({trace:!1,...typeof i=="object"&&i}));const h=XL(...d),m=g5(h);let v=typeof s=="function"?s(m):m();const x=f(...v);return bO(u,o,x)}function $O(e){const t={},r=[];let n;const i={addCase(o,s){const u=typeof o=="string"?o:o.type;if(!u)throw new Error(Or(28));if(u in t)throw new Error(Or(29));return t[u]=s,i},addAsyncThunk(o,s){return s.pending&&(t[o.pending.type]=s.pending),s.rejected&&(t[o.rejected.type]=s.rejected),s.fulfilled&&(t[o.fulfilled.type]=s.fulfilled),s.settled&&r.push({matcher:o.settled,reducer:s.settled}),i},addMatcher(o,s){return r.push({matcher:o,reducer:s}),i},addDefaultCase(o){return n=o,i}};return e(i),[t,r,n]}function b5(e){return typeof e=="function"}function w5(e,t){let[r,n,i]=$O(t),o;if(b5(e))o=()=>Lw(e());else{const u=Lw(e);o=()=>u}function s(u=o(),d){let f=[r[d.type],...n.filter(({matcher:h})=>h(d)).map(({reducer:h})=>h)];return f.filter(h=>!!h).length===0&&(f=[i]),f.reduce((h,m)=>{if(m)if(ti(h)){const x=m(h,d);return x===void 0?h:x}else{if(ln(h))return IO(h,v=>m(v,d));{const v=m(h,d);if(v===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return v}}return h},u)}return s.getInitialState=o,s}var S5="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",k5=(e=21)=>{let t="",r=e;for(;r--;)t+=S5[Math.random()*64|0];return t},E5=Symbol.for("rtk-slice-createasyncthunk");function P5(e,t){return`${e}/${t}`}function A5({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[E5];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(C5()):i.reducers)||{},d=Object.keys(u),f={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(_,N){const C=typeof _=="string"?_:_.type;if(!C)throw new Error(Or(12));if(C in f.sliceCaseReducersByType)throw new Error(Or(13));return f.sliceCaseReducersByType[C]=N,h},addMatcher(_,N){return f.sliceMatchers.push({matcher:_,reducer:N}),h},exposeAction(_,N){return f.actionCreators[_]=N,h},exposeCaseReducer(_,N){return f.sliceCaseReducersByName[_]=N,h}};d.forEach(_=>{const N=u[_],C={reducerName:_,type:P5(o,_),createNotation:typeof i.reducers=="function"};j5(N)?I5(C,N,h,t):_5(C,N,h)});function m(){const[_={},N=[],C=void 0]=typeof i.extraReducers=="function"?$O(i.extraReducers):[i.extraReducers],D={..._,...f.sliceCaseReducersByType};return w5(i.initialState,F=>{for(let z in D)F.addCase(z,D[z]);for(let z of f.sliceMatchers)F.addMatcher(z.matcher,z.reducer);for(let z of N)F.addMatcher(z.matcher,z.reducer);C&&F.addDefaultCase(C)})}const v=_=>_,x=new Map,k=new WeakMap;let S;function E(_,N){return S||(S=m()),S(_,N)}function P(){return S||(S=m()),S.getInitialState()}function O(_,N=!1){function C(F){let z=F[_];return typeof z>"u"&&N&&(z=ad(k,C,P)),z}function D(F=v){const z=ad(x,N,()=>new WeakMap);return ad(z,F,()=>{const q={};for(const[X,B]of Object.entries(i.selectors??{}))q[X]=O5(B,F,()=>ad(k,F,P),N);return q})}return{reducerPath:_,getSelectors:D,get selectors(){return D(C)},selectSlice:C}}const j={name:o,reducer:E,actions:f.actionCreators,caseReducers:f.sliceCaseReducersByName,getInitialState:P,...O(s),injectInto(_,{reducerPath:N,...C}={}){const D=N??s;return _.inject({reducerPath:D,reducer:E},C),{...j,...O(D,!0)}}};return j}}function O5(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=A5();function C5(){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 _5({type:e,reducerName:t,createNotation:r},n,i){let o,s;if("reducer"in n){if(r&&!N5(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 j5(e){return e._reducerDefinitionType==="asyncThunk"}function N5(e){return e._reducerDefinitionType==="reducerWithPrepare"}function I5({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||od,pending:u||od,rejected:d||od,settled:f||od})}function od(){}var M5="task",LO="listener",zO="completed",ug="cancelled",T5=`task-${ug}`,D5=`task-${zO}`,ey=`${LO}-${ug}`,R5=`${LO}-${zO}`,qf=class{constructor(e){gs(this,"code");gs(this,"name","TaskAbortError");gs(this,"message");this.code=e,this.message=`${M5} ${ug} (reason: ${e})`}},cg=(e,t)=>{if(typeof e!="function")throw new TypeError(Or(32))},Fd=()=>{},FO=(e,t=Fd)=>(e.catch(t),e),BO=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),La=e=>{if(e.aborted)throw new qf(e.reason)};function UO(e,t){let r=Fd;return new Promise((n,i)=>{const o=()=>i(new qf(e.reason));if(e.aborted){o();return}r=BO(e,o),t.finally(()=>r()).then(n,i)}).finally(()=>{r=Fd})}var $5=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof qf?"cancelled":"rejected",error:r}}finally{t==null||t()}},Bd=e=>t=>FO(UO(e,t).then(r=>(La(e),r))),WO=e=>{const t=Bd(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:qo}=Object,Fw={},Gf="listenerMiddleware",L5=(e,t)=>{const r=n=>BO(e,()=>n.abort(e.reason));return(n,i)=>{cg(n);const o=new AbortController;r(o);const s=$5(async()=>{La(e),La(o.signal);const u=await n({pause:Bd(o.signal),delay:WO(o.signal),signal:o.signal});return La(o.signal),u},()=>o.abort(D5));return i!=null&&i.autoJoin&&t.push(s.catch(Fd)),{result:Bd(e)(s),cancel(){o.abort(T5)}}}},z5=(e,t)=>{const r=async(n,i)=>{La(t);let o=()=>{};const u=[new Promise((d,f)=>{let h=e({predicate:n,effect:(m,v)=>{v.unsubscribe(),d([m,v.getState(),v.getOriginalState()])}});o=()=>{h(),f()}})];i!=null&&u.push(new Promise(d=>setTimeout(d,i,null)));try{const d=await UO(t,Promise.race(u));return La(t),d}finally{o()}};return((n,i)=>FO(r(n,i)))},HO=e=>{let{type:t,actionCreator:r,matcher:n,predicate:i,effect:o}=e;if(t)i=Cr(t).match;else if(r)t=r.type,i=r.match;else if(n)i=n;else if(!i)throw new Error(Or(21));return cg(o),{predicate:i,type:t,effect:o}},KO=qo(e=>{const{type:t,predicate:r,effect:n}=HO(e);return{id:k5(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Or(22))}}},{withTypes:()=>KO}),Bw=(e,t)=>{const{type:r,effect:n,predicate:i}=HO(t);return Array.from(e.values()).find(o=>(typeof r=="string"?o.type===r:o.predicate===i)&&o.effect===n)},ty=e=>{e.pending.forEach(t=>{t.abort(ey)})},F5=(e,t)=>()=>{for(const r of t.keys())ty(r);e.clear()},Uw=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},VO=qo(Cr(`${Gf}/add`),{withTypes:()=>VO}),B5=Cr(`${Gf}/removeAll`),qO=qo(Cr(`${Gf}/remove`),{withTypes:()=>qO}),U5=(...e)=>{console.error(`${Gf}/error`,...e)},Su=(e={})=>{const t=new Map,r=new Map,n=x=>{const k=r.get(x)??0;r.set(x,k+1)},i=x=>{const k=r.get(x)??1;k===1?r.delete(x):r.set(x,k-1)},{extra:o,onError:s=U5}=e;cg(s);const u=x=>(x.unsubscribe=()=>t.delete(x.id),t.set(x.id,x),k=>{x.unsubscribe(),k!=null&&k.cancelActive&&ty(x)}),d=(x=>{const k=Bw(t,x)??KO(x);return u(k)});qo(d,{withTypes:()=>d});const f=x=>{const k=Bw(t,x);return k&&(k.unsubscribe(),x.cancelActive&&ty(k)),!!k};qo(f,{withTypes:()=>f});const h=async(x,k,S,E)=>{const P=new AbortController,O=z5(d,P.signal),j=[];try{x.pending.add(P),n(x),await Promise.resolve(x.effect(k,qo({},S,{getOriginalState:E,condition:(_,N)=>O(_,N).then(Boolean),take:O,delay:WO(P.signal),pause:Bd(P.signal),extra:o,signal:P.signal,fork:L5(P.signal,j),unsubscribe:x.unsubscribe,subscribe:()=>{t.set(x.id,x)},cancelActiveListeners:()=>{x.pending.forEach((_,N,C)=>{_!==P&&(_.abort(ey),C.delete(_))})},cancel:()=>{P.abort(ey),x.pending.delete(P)},throwIfCancelled:()=>{La(P.signal)}})))}catch(_){_ instanceof qf||Uw(s,_,{raisedBy:"effect"})}finally{await Promise.all(j),P.abort(R5),i(x),x.pending.delete(P)}},m=F5(t,r);return{middleware:x=>k=>S=>{if(!SO(S))return k(S);if(VO.match(S))return d(S.payload);if(B5.match(S)){m();return}if(qO.match(S))return f(S.payload);let E=x.getState();const P=()=>{if(E===Fw)throw new Error(Or(23));return E};let O;try{if(O=k(S),t.size>0){const j=x.getState(),_=Array.from(t.values());for(const N of _){let C=!1;try{C=N.predicate(S,j,E)}catch(D){C=!1,Uw(s,D,{raisedBy:"predicate"})}C&&h(N,S,x,P)}}}finally{E=Fw}return O},startListening:d,stopListening:f,clearListeners:m}};function Or(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var W5={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},GO=Zt({name:"chartLayout",initialState:W5,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,i,o;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(i=t.payload.bottom)!==null&&i!==void 0?i:0,e.margin.left=(o=t.payload.left)!==null&&o!==void 0?o:0},setScale(e,t){e.scale=t.payload}}}),Yf=GO.actions,H5=Yf.setMargin,K5=Yf.setLayout,V5=Yf.setChartSize,q5=Yf.setScale,G5=GO.reducer;function YO(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function Fe(e){return Number.isFinite(e)}function _n(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Ww(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Bo(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 Bo(Bo({},e),{},{[o]:e[o]+(n||0)});if((u==="horizontal"||u==="vertical"&&o==="center")&&s!=="middle"&&be(e[s]))return Bo(Bo({},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",QO=(e,t,r,n)=>{if(n)return e.map(u=>u.coordinate);var i,o,s=e.map(u=>(u.coordinate===t&&(i=!0),u.coordinate===r&&(o=!0),u.coordinate));return i||s.push(t),o||s.push(r),s},XO=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,i=e.type,o=e.range,s=e.scale,u=e.realScaleType,d=e.isCategorical,f=e.categoricalDomain,h=e.tickCount,m=e.ticks,v=e.niceTicks,x=e.axisType;if(!s)return null;var k=u==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,S=i==="category"&&s.bandwidth?s.bandwidth()/k:0;if(S=x==="angleAxis"&&o&&o.length>=2?Lr(o[0]-o[1])*2*S:S,m||v){var E=(m||v||[]).map((P,O)=>{var j=n?n.indexOf(P):P,_=s.map(j);return Fe(_)?{coordinate:_+S,value:P,offset:S,index:O}:null}).filter(mr);return E}return d&&f?f.map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.ticks&&h!=null?s.ticks(h).map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:P,index:O,offset:S}:null}).filter(mr):s.domain().map((P,O)=>{var j=s.map(P);return Fe(j)?{coordinate:j+S,value:n?n[P]:P,index:O,offset:S}:null}).filter(mr)},J5=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(f[0]=o,o+=v,f[1]=o):(f[0]=s,s+=v,f[1]=s)}}}},e4=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(d[0]=o,o+=f,d[1]=o):(d[0]=0,d[1]=0)}}}},t4={sign:J5,expand:y$,none:Ua,silhouette:g$,wiggle:x$,positive:e4},r4=(e,t,r)=>{var n,i=(n=t4[r])!==null&&n!==void 0?n:Ua,o=v$().keys(t).value((u,d)=>Number(Nt(u,d,0))).order(Bv).offset(i),s=o(e);return s.forEach((u,d)=>{u.forEach((f,h)=>{var m=Nt(e[h],t[d],0);Array.isArray(m)&&m.length===2&&be(m[0])&&be(m[1])&&(f[0]=m[0],f[1]=m[1])})}),s};function n4(e){return e==null?void 0:String(e)}function Hw(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,o=e.index,s=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ut(i[t.dataKey])){var u=nO(r,"value",i[t.dataKey]);if(u)return u.coordinate+n/2}return r!=null&&r[o]?r[o].coordinate+n/2:null}var d=Nt(i,Ut(s)?t.dataKey:s),f=t.scale.map(d);return be(f)?f:null}var i4=e=>{var t=e.flat(2).filter(be);return[Math.min(...t),Math.max(...t)]},a4=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],o4=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return a4(Object.keys(e).reduce((n,i)=>{var o=e[i];if(!o)return n;var s=o.stackedData,u=s.reduce((d,f)=>{var h=YO(f,t,r),m=i4(h);return!Fe(m[0])||!Fe(m[1])?d:[Math.min(d[0],m[0]),Math.max(d[1],m[1])]},[1/0,-1/0]);return[Math.min(u[0],n[0]),Math.max(u[1],n[1])]},[1/0,-1/0]))},Kw=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Vw=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ud=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var i=zf(t,h=>h.coordinate),o=1/0,s=1,u=i.length;s{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},s4=(e,t)=>t==="centric"?e.angle:e.radius,ai=e=>e.layout.width,oi=e=>e.layout.height,u4=e=>e.layout.scale,JO=e=>e.layout.margin,Qf=H(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Xf=H(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),c4="data-recharts-item-index",d4="data-recharts-item-id",ku=60;function Gw(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ld(e){for(var t=1;te.brush.height;function v4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ku;return r+i}return r},0)}function y4(e){var t=Xf(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:ku;return r+i}return r},0)}function g4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function x4(e){var t=Qf(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Ht=H([ai,oi,JO,m4,v4,y4,g4,x4,xO,FL],(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=ld(ld({},m),h),x=v.bottom;v.bottom+=n,v=Z5(v,d,f);var k=e-v.left-v.right,S=t-v.top-v.bottom;return ld(ld({brushBottom:x},v),{},{width:Math.max(k,0),height:Math.max(S,0)})}),b4=H(Ht,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),e2=H(ai,oi,(e,t)=>({x:0,y:0,width:e,height:t})),w4=g.createContext(null),gr=()=>g.useContext(w4)!=null,Zf=e=>e.brush,Jf=H([Zf,Ht,JO],(e,t,r)=>({height:e.height,x:be(e.x)?e.x:t.left,y:be(e.y)?e.y:t.top+t.height+t.brushBottom-((r==null?void 0:r.bottom)||0),width:be(e.width)?e.width:t.width}));function S4(e,t,{signal:r,edges:n}={}){let i,o=null;const s=n!=null&&n.includes("leading"),u=n==null||n.includes("trailing"),d=()=>{o!==null&&(e.apply(i,o),i=void 0,o=null)},f=()=>{u&&d(),x()};let h=null;const m=()=>{h!=null&&clearTimeout(h),h=setTimeout(()=>{h=null,f()},t)},v=()=>{h!==null&&(clearTimeout(h),h=null)},x=()=>{v(),i=void 0,o=null},k=()=>{d()},S=function(...E){if(r!=null&&r.aborted)return;i=this,o=E;const P=h==null;m(),s&&P&&d()};return S.schedule=m,S.cancel=x,S.flush=k,r==null||r.addEventListener("abort",x,{once:!0}),S}function k4(e,t=0,r={}){typeof r!="object"&&(r={});const{leading:n=!1,trailing:i=!0,maxWait:o}=r,s=Array(2);n&&(s[0]="leading"),i&&(s[1]="trailing");let u,d=null;const f=S4(function(...v){u=e.apply(this,v),d=null},t,{edges:s}),h=function(...v){return o!=null&&(d===null&&(d=Date.now()),Date.now()-d>=o)?(u=e.apply(this,v),d=Date.now(),f.cancel(),f.schedule(),u):(f.apply(this,v),u)},m=()=>(f.flush(),u);return h.cancel=f.cancel,h.flush=m,h}function E4(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return k4(e,t,{leading:n,maxWait:t,trailing:i})}var Wd=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;oi[s++]))}},kn={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},t2=(e,t,r)=>{var n=r.width,i=n===void 0?kn.width:n,o=r.height,s=o===void 0?kn.height:o,u=r.aspect,d=r.maxHeight,f=Wa(i)?e:Number(i),h=Wa(s)?t:Number(s);return u&&u>0&&(f?h=f/u:h&&(f=h*u),d&&h!=null&&h>d&&(h=d)),{calculatedWidth:f,calculatedHeight:h}},P4={width:0,height:0,overflow:"visible"},A4={width:0,overflowX:"visible"},O4={height:0,overflowY:"visible"},C4={},_4=e=>{var t=e.width,r=e.height,n=Wa(t),i=Wa(r);return n&&i?P4:n?A4:i?O4:C4};function j4(e){var t=e.width,r=e.height,n=e.aspect,i=t,o=r;return i===void 0&&o===void 0?(i=kn.width,o=kn.height):i===void 0?i=n&&n>0?void 0:kn.width:o===void 0&&(o=n&&n>0?void 0:kn.height),{width:i,height:o}}var N4=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Hd(){return Hd=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return U4(i)?g.createElement(r2.Provider,{value:i},t):null}var dg=()=>g.useContext(r2),W4=g.forwardRef((e,t)=>{var r=e.aspect,n=e.initialDimension,i=n===void 0?kn.initialDimension:n,o=e.width,s=e.height,u=e.minWidth,d=u===void 0?kn.minWidth:u,f=e.minHeight,h=e.maxHeight,m=e.children,v=e.debounce,x=v===void 0?kn.debounce:v,k=e.id,S=e.className,E=e.onResize,P=e.style,O=P===void 0?{}:P,j=F4(e,N4),_=g.useRef(null),N=g.useRef();N.current=E,g.useImperativeHandle(t,()=>_.current);var C=g.useState({containerWidth:i.width,containerHeight:i.height}),D=D4(C,2),F=D[0],z=D[1],q=g.useCallback((fe,de)=>{z(K=>{var ie=Math.round(fe),Q=Math.round(de);return K.containerWidth===ie&&K.containerHeight===Q?K:{containerWidth:ie,containerHeight:Q}})},[]);g.useEffect(()=>{if(_.current==null||typeof ResizeObserver>"u")return Sl;var fe=R=>{var M,J=R[0];if(J!=null){var se=J.contentRect,te=se.width,ce=se.height;q(te,ce),(M=N.current)===null||M===void 0||M.call(N,te,ce)}};x>0&&(fe=E4(fe,x,{trailing:!0,leading:!1}));var de=new ResizeObserver(fe),K=_.current.getBoundingClientRect(),ie=K.width,Q=K.height;return q(ie,Q),de.observe(_.current),()=>{de.disconnect()}},[q,x]);var X=F.containerWidth,B=F.containerHeight;Wd(!r||r>0,"The aspect(%s) must be greater than zero.",r);var ue=t2(X,B,{width:o,height:s,aspect:r,maxHeight:h}),Y=ue.calculatedWidth,le=ue.calculatedHeight;return Wd(X<0||B<0||Y!=null&&Y>0||le!=null&&le>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,Y,le,o,s,d,f,r),g.createElement("div",Hd({id:k?"".concat(k):void 0,className:Qe("recharts-responsive-container",S),style:Qw(Qw({},O),{},{width:o,height:s,minWidth:d,minHeight:f,maxHeight:h}),ref:_},j),g.createElement("div",{style:_4({width:o,height:s})},g.createElement(n2,{width:Y,height:le},m)))}),H4=g.forwardRef((e,t)=>{var r=dg();if(_n(r.width)&&_n(r.height))return e.children;var n=j4({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,o=n.height,s=t2(void 0,void 0,{width:i,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),u=s.calculatedWidth,d=s.calculatedHeight;return be(u)&&be(d)?g.createElement(n2,{width:u,height:d},e.children):g.createElement(W4,Hd({},e,{width:i,height:o,ref:t}))});function fg(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var eh=()=>{var e,t=gr(),r=ke(b4),n=ke(Jf),i=(e=ke(Zf))===null||e===void 0?void 0:e.padding;return!t||!n||!i?r:{width:n.width-i.left-i.right,height:n.height-i.top-i.bottom,x:i.left,y:i.top}},K4={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},i2=()=>{var e;return(e=ke(Ht))!==null&&e!==void 0?e:K4},a2=()=>ke(ai),o2=()=>ke(oi),ot=e=>e.layout.layoutType,El=()=>ke(ot),hg=()=>{var e=El();if(e==="horizontal"||e==="vertical")return e},l2=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},V4=()=>{var e=El();return e!==void 0},Eu=e=>{var t=xt(),r=gr(),n=e.width,i=e.height,o=dg(),s=n,u=i;return o&&(s=o.width>0?o.width:n,u=o.height>0?o.height:i),g.useEffect(()=>{!r&&_n(s)&&_n(u)&&t(VL({width:s,height:u}))},[t,r,s,u]),null},s2=Symbol.for("immer-nothing"),Zw=Symbol.for("immer-draftable"),_r=Symbol.for("immer-state");function nn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ru=Object.getPrototypeOf;function hl(e){return!!e&&!!e[_r]}function Va(e){var t;return e?u2(e)||Array.isArray(e)||!!e[Zw]||!!((t=e.constructor)!=null&&t[Zw])||Pu(e)||rh(e):!1}var q4=Object.prototype.constructor.toString(),Jw=new WeakMap;function u2(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Jw.get(r);return n===void 0&&(n=Function.toString.call(r),Jw.set(r,n)),n===q4}function Kd(e,t,r=!0){th(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function th(e){const t=e[_r];return t?t.type_:Array.isArray(e)?1:Pu(e)?2:rh(e)?3:0}function ry(e,t){return th(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c2(e,t,r){const n=th(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function G4(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Pu(e){return e instanceof Map}function rh(e){return e instanceof Set}function wa(e){return e.copy_||e.base_}function ny(e,t){if(Pu(e))return new Map(e);if(rh(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=u2(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[_r];let i=Reflect.ownKeys(n);for(let o=0;o1&&Object.defineProperties(e,{set:sd,add:sd,clear:sd,delete:sd}),Object.freeze(e),t&&Object.values(e).forEach(r=>pg(r,!0))),e}function Y4(){nn(2)}var sd={value:Y4};function nh(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var Q4={};function qa(e){const t=Q4[e];return t||nn(0,e),t}var nu;function d2(){return nu}function X4(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function eS(e,t){t&&(qa("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function iy(e){ay(e),e.drafts_.forEach(Z4),e.drafts_=null}function ay(e){e===nu&&(nu=e.parent_)}function tS(e){return nu=X4(nu,e)}function Z4(e){const t=e[_r];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rS(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[_r].modified_&&(iy(t),nn(4)),Va(e)&&(e=Vd(t,e),t.parent_||qd(t,e)),t.patches_&&qa("Patches").generateReplacementPatches_(r[_r].base_,e,t.patches_,t.inversePatches_)):e=Vd(t,r,[]),iy(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==s2?e:void 0}function Vd(e,t,r){if(nh(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[_r];if(!i)return Kd(t,(o,s)=>nS(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),Kd(s,(d,f)=>nS(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 nS(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;const u=nh(i);if(!(u&&!s)){if(hl(i)){const d=o&&t&&t.type_!==3&&!ry(t.assigned_,n)?o.concat(n):void 0,f=Vd(e,i,d);if(c2(r,n,f),hl(f))e.canAutoFreeze_=!1;else return}else s&&r.add(i);if(Va(i)&&!u){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&u)return;Vd(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Pu(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 J4(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:d2(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,o=mg;r&&(i=[n],o=iu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,u}var mg={get(e,t){if(t===_r)return e;const r=wa(e);if(!ry(r,t))return ez(e,r,t);const n=r[t];return e.finalized_||!Va(n)?n:n===Fm(e.base_,t)?(Bm(e),e.copy_[t]=ly(n,e)):n},has(e,t){return t in wa(e)},ownKeys(e){return Reflect.ownKeys(wa(e))},set(e,t,r){const n=f2(wa(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Fm(wa(e),t),o=i==null?void 0:i[_r];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(G4(r,i)&&(r!==void 0||ry(e.base_,t)))return!0;Bm(e),oy(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return Fm(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Bm(e),oy(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=wa(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){nn(11)},getPrototypeOf(e){return ru(e.base_)},setPrototypeOf(){nn(12)}},iu={};Kd(mg,(e,t)=>{iu[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});iu.deleteProperty=function(e,t){return iu.set.call(this,e,t,void 0)};iu.set=function(e,t,r){return mg.set.call(this,e[0],t,r,e[0])};function Fm(e,t){const r=e[_r];return(r?wa(r):e)[t]}function ez(e,t,r){var i;const n=f2(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function f2(e,t){if(!(t in e))return;let r=ru(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=ru(r)}}function oy(e){e.modified_||(e.modified_=!0,e.parent_&&oy(e.parent_))}function Bm(e){e.copy_||(e.copy_=ny(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var tz=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const o=r;r=t;const s=this;return function(d=o,...f){return s.produce(d,h=>r.call(this,h,...f))}}typeof r!="function"&&nn(6),n!==void 0&&typeof n!="function"&&nn(7);let i;if(Va(t)){const o=tS(this),s=ly(t,void 0);let u=!0;try{i=r(s),u=!1}finally{u?iy(o):ay(o)}return eS(o,n),rS(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===s2&&(i=void 0),this.autoFreeze_&&pg(i,!0),n){const o=[],s=[];qa("Patches").generateReplacementPatches_(t,i,o,s),n(o,s)}return i}else nn(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(s,...u)=>this.produceWithPatches(s,d=>t(d,...u));let n,i;return[this.produce(t,r,(s,u)=>{n=s,i=u}),n,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Va(e)||nn(8),hl(e)&&(e=rz(e));const t=tS(this),r=ly(e,void 0);return r[_r].isManual_=!0,ay(t),r}finishDraft(e,t){const r=e&&e[_r];(!r||!r.isManual_)&&nn(9);const{scope_:n}=r;return eS(n,t),rS(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));const n=qa("Patches").applyPatches_;return hl(e)?n(e,t):this.produce(e,i=>n(i,t))}};function ly(e,t){const r=Pu(e)?qa("MapSet").proxyMap_(e,t):rh(e)?qa("MapSet").proxySet_(e,t):J4(e,t);return(t?t.scope_:d2()).drafts_.push(r),r}function rz(e){return hl(e)||nn(10,e),h2(e)}function h2(e){if(!Va(e)||nh(e))return e;const t=e[_r];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=ny(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=ny(e,!0);return Kd(r,(i,o)=>{c2(r,i,h2(o))},n),t&&(t.finalized_=!1),r}var nz=new tz;nz.produce;var iz={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},p2=Zt({name:"legend",initialState:iz,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:tt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).payload.indexOf(n);o>-1&&(e.payload[o]=i)},prepare:tt()},removeLegendPayload:{reducer(e,t){var r=zr(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:tt()}}}),Au=p2.actions;Au.setLegendSize;Au.setLegendSettings;var az=Au.addLegendPayload,oz=Au.replaceLegendPayload,lz=Au.removeLegendPayload,sz=p2.reducer,Um={exports:{}},Wm={};/** + height and width.`,Y,le,o,s,d,f,r),g.createElement("div",Hd({id:k?"".concat(k):void 0,className:Qe("recharts-responsive-container",S),style:Qw(Qw({},O),{},{width:o,height:s,minWidth:d,minHeight:f,maxHeight:h}),ref:_},j),g.createElement("div",{style:_4({width:o,height:s})},g.createElement(n2,{width:Y,height:le},m)))}),H4=g.forwardRef((e,t)=>{var r=dg();if(_n(r.width)&&_n(r.height))return e.children;var n=j4({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,o=n.height,s=t2(void 0,void 0,{width:i,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),u=s.calculatedWidth,d=s.calculatedHeight;return be(u)&&be(d)?g.createElement(n2,{width:u,height:d},e.children):g.createElement(W4,Hd({},e,{width:i,height:o,ref:t}))});function fg(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var eh=()=>{var e,t=gr(),r=ke(b4),n=ke(Jf),i=(e=ke(Zf))===null||e===void 0?void 0:e.padding;return!t||!n||!i?r:{width:n.width-i.left-i.right,height:n.height-i.top-i.bottom,x:i.left,y:i.top}},K4={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},i2=()=>{var e;return(e=ke(Ht))!==null&&e!==void 0?e:K4},a2=()=>ke(ai),o2=()=>ke(oi),ot=e=>e.layout.layoutType,kl=()=>ke(ot),hg=()=>{var e=kl();if(e==="horizontal"||e==="vertical")return e},l2=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},V4=()=>{var e=kl();return e!==void 0},Eu=e=>{var t=xt(),r=gr(),n=e.width,i=e.height,o=dg(),s=n,u=i;return o&&(s=o.width>0?o.width:n,u=o.height>0?o.height:i),g.useEffect(()=>{!r&&_n(s)&&_n(u)&&t(V5({width:s,height:u}))},[t,r,s,u]),null},s2=Symbol.for("immer-nothing"),Zw=Symbol.for("immer-draftable"),_r=Symbol.for("immer-state");function nn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ru=Object.getPrototypeOf;function fl(e){return!!e&&!!e[_r]}function Ka(e){var t;return e?u2(e)||Array.isArray(e)||!!e[Zw]||!!((t=e.constructor)!=null&&t[Zw])||Pu(e)||rh(e):!1}var q4=Object.prototype.constructor.toString(),Jw=new WeakMap;function u2(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Jw.get(r);return n===void 0&&(n=Function.toString.call(r),Jw.set(r,n)),n===q4}function Kd(e,t,r=!0){th(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function th(e){const t=e[_r];return t?t.type_:Array.isArray(e)?1:Pu(e)?2:rh(e)?3:0}function ry(e,t){return th(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c2(e,t,r){const n=th(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function G4(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Pu(e){return e instanceof Map}function rh(e){return e instanceof Set}function wa(e){return e.copy_||e.base_}function ny(e,t){if(Pu(e))return new Map(e);if(rh(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=u2(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[_r];let i=Reflect.ownKeys(n);for(let o=0;o1&&Object.defineProperties(e,{set:sd,add:sd,clear:sd,delete:sd}),Object.freeze(e),t&&Object.values(e).forEach(r=>pg(r,!0))),e}function Y4(){nn(2)}var sd={value:Y4};function nh(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var Q4={};function Va(e){const t=Q4[e];return t||nn(0,e),t}var nu;function d2(){return nu}function X4(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function eS(e,t){t&&(Va("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function iy(e){ay(e),e.drafts_.forEach(Z4),e.drafts_=null}function ay(e){e===nu&&(nu=e.parent_)}function tS(e){return nu=X4(nu,e)}function Z4(e){const t=e[_r];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rS(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[_r].modified_&&(iy(t),nn(4)),Ka(e)&&(e=Vd(t,e),t.parent_||qd(t,e)),t.patches_&&Va("Patches").generateReplacementPatches_(r[_r].base_,e,t.patches_,t.inversePatches_)):e=Vd(t,r,[]),iy(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==s2?e:void 0}function Vd(e,t,r){if(nh(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[_r];if(!i)return Kd(t,(o,s)=>nS(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),Kd(s,(d,f)=>nS(e,i,o,d,f,r,u),n),qd(e,o,!1),r&&e.patches_&&Va("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function nS(e,t,r,n,i,o,s){if(i==null||typeof i!="object"&&!s)return;const u=nh(i);if(!(u&&!s)){if(fl(i)){const d=o&&t&&t.type_!==3&&!ry(t.assigned_,n)?o.concat(n):void 0,f=Vd(e,i,d);if(c2(r,n,f),fl(f))e.canAutoFreeze_=!1;else return}else s&&r.add(i);if(Ka(i)&&!u){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&u)return;Vd(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Pu(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 J4(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:d2(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,o=mg;r&&(i=[n],o=iu);const{revoke:s,proxy:u}=Proxy.revocable(i,o);return n.draft_=u,n.revoke_=s,u}var mg={get(e,t){if(t===_r)return e;const r=wa(e);if(!ry(r,t))return ez(e,r,t);const n=r[t];return e.finalized_||!Ka(n)?n:n===Fm(e.base_,t)?(Bm(e),e.copy_[t]=ly(n,e)):n},has(e,t){return t in wa(e)},ownKeys(e){return Reflect.ownKeys(wa(e))},set(e,t,r){const n=f2(wa(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Fm(wa(e),t),o=i==null?void 0:i[_r];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(G4(r,i)&&(r!==void 0||ry(e.base_,t)))return!0;Bm(e),oy(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return Fm(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Bm(e),oy(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=wa(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){nn(11)},getPrototypeOf(e){return ru(e.base_)},setPrototypeOf(){nn(12)}},iu={};Kd(mg,(e,t)=>{iu[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});iu.deleteProperty=function(e,t){return iu.set.call(this,e,t,void 0)};iu.set=function(e,t,r){return mg.set.call(this,e[0],t,r,e[0])};function Fm(e,t){const r=e[_r];return(r?wa(r):e)[t]}function ez(e,t,r){var i;const n=f2(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function f2(e,t){if(!(t in e))return;let r=ru(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=ru(r)}}function oy(e){e.modified_||(e.modified_=!0,e.parent_&&oy(e.parent_))}function Bm(e){e.copy_||(e.copy_=ny(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var tz=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const o=r;r=t;const s=this;return function(d=o,...f){return s.produce(d,h=>r.call(this,h,...f))}}typeof r!="function"&&nn(6),n!==void 0&&typeof n!="function"&&nn(7);let i;if(Ka(t)){const o=tS(this),s=ly(t,void 0);let u=!0;try{i=r(s),u=!1}finally{u?iy(o):ay(o)}return eS(o,n),rS(i,o)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===s2&&(i=void 0),this.autoFreeze_&&pg(i,!0),n){const o=[],s=[];Va("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){Ka(e)||nn(8),fl(e)&&(e=rz(e));const t=tS(this),r=ly(e,void 0);return r[_r].isManual_=!0,ay(t),r}finishDraft(e,t){const r=e&&e[_r];(!r||!r.isManual_)&&nn(9);const{scope_:n}=r;return eS(n,t),rS(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));const n=Va("Patches").applyPatches_;return fl(e)?n(e,t):this.produce(e,i=>n(i,t))}};function ly(e,t){const r=Pu(e)?Va("MapSet").proxyMap_(e,t):rh(e)?Va("MapSet").proxySet_(e,t):J4(e,t);return(t?t.scope_:d2()).drafts_.push(r),r}function rz(e){return fl(e)||nn(10,e),h2(e)}function h2(e){if(!Ka(e)||nh(e))return e;const t=e[_r];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=ny(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=ny(e,!0);return Kd(r,(i,o)=>{c2(r,i,h2(o))},n),t&&(t.finalized_=!1),r}var nz=new tz;nz.produce;var iz={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},p2=Zt({name:"legend",initialState:iz,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:tt()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).payload.indexOf(n);o>-1&&(e.payload[o]=i)},prepare:tt()},removeLegendPayload:{reducer(e,t){var r=zr(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:tt()}}}),Au=p2.actions;Au.setLegendSize;Au.setLegendSettings;var az=Au.addLegendPayload,oz=Au.replaceLegendPayload,lz=Au.removeLegendPayload,sz=p2.reducer,Um={exports:{}},Wm={};/** * @license React * use-sync-external-store-with-selector.production.js * @@ -383,11 +383,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var iS;function uz(){if(iS)return Wm;iS=1;var e=wl();function t(d,f){return d===f&&(d!==0||1/d===1/f)||d!==d&&f!==f}var r=typeof Object.is=="function"?Object.is:t,n=e.useSyncExternalStore,i=e.useRef,o=e.useEffect,s=e.useMemo,u=e.useDebugValue;return Wm.useSyncExternalStoreWithSelector=function(d,f,h,m,v){var x=i(null);if(x.current===null){var k={hasValue:!1,value:null};x.current=k}else k=x.current;x=s(function(){function E(N){if(!P){if(P=!0,O=N,N=m(N),v!==void 0&&k.hasValue){var C=k.value;if(v(C,N))return j=C}return j=N}if(C=j,r(O,N))return C;var D=m(N);return v!==void 0&&v(C,D)?(O=N,C):(O=N,j=D)}var P=!1,O,j,_=h===void 0?null:h;return[function(){return E(f())},_===null?void 0:function(){return E(_())}]},[f,h,m,v]);var S=n(d,x[0],x[1]);return o(function(){k.hasValue=!0,k.value=S},[S]),u(S),S},Wm}var aS;function cz(){return aS||(aS=1,Um.exports=uz()),Um.exports}cz();function dz(e){e()}function fz(){let e=null,t=null;return{clear(){e=null,t=null},notify(){dz(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const i=t={callback:r,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!n||e===null||(n=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var oS={notify(){},get:()=>[]};function hz(e,t){let r,n=oS,i=0,o=!1;function s(S){h();const E=n.subscribe(S);let P=!1;return()=>{P||(P=!0,E(),m())}}function u(){n.notify()}function d(){k.onStateChange&&k.onStateChange()}function f(){return o}function h(){i++,r||(r=e.subscribe(d),n=fz())}function m(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=oS)}function v(){o||(o=!0,h())}function x(){o&&(o=!1,m())}const k={addNestedSub:s,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:f,trySubscribe:v,tryUnsubscribe:x,getListeners:()=>n};return k}var pz=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",mz=pz(),vz=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yz=vz(),gz=()=>mz||yz?g.useLayoutEffect:g.useEffect,xz=gz();function lS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function bz(e,t){if(lS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i=0;i{const d=hz(i);return{store:i,subscription:d,getServerState:n?()=>n:void 0}},[i,n]),s=g.useMemo(()=>i.getState(),[i]);xz(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),s!==i.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,s]);const u=r||Sz;return g.createElement(u.Provider,{value:o},t)}var Ez=kz,Pz=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Az(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ih(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Pz.has(n)){if(e[n]==null&&t[n]==null)continue;if(!bz(e[n],t[n]))return!1}else if(!Az(e[n],t[n]))return!1;return!0}function sy(){return sy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?Io.separator:t,n=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?Io.labelStyle:o,u=e.payload,d=e.formatter,f=e.itemSorter,h=e.wrapperClassName,m=e.labelClassName,v=e.label,x=e.labelFormatter,k=e.accessibilityLayer,S=k===void 0?Io.accessibilityLayer:k,E=()=>{if(u&&u.length){var F={padding:0,margin:0},z=Rz(u,f),q=z.map((X,B)=>{if(!X||X.type==="none")return null;var ue=X.formatter||d||Dz,Y=X.value,le=X.name,fe=Y,de=le;if(ue){var K=ue(Y,le,X,B,u);if(Array.isArray(K)){var ie=jz(K,2);fe=ie[0],de=ie[1]}else if(K!=null)fe=K;else return null}var Q=Os(Os({},Io.itemStyle),{},{color:X.color||Io.itemStyle.color},i);return g.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(B),style:Q},Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-name"},de):null,Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,g.createElement("span",{className:"recharts-tooltip-item-value"},fe),g.createElement("span",{className:"recharts-tooltip-item-unit"},X.unit||""))});return g.createElement("ul",{className:"recharts-tooltip-item-list",style:F},q)}return null},P=Os(Os({},Io.contentStyle),n),O=Os({margin:0},s),j=!Ut(v),_=j?v:"",N=Qe("recharts-default-tooltip",h),C=Qe("recharts-tooltip-label",m);j&&x&&u!==void 0&&u!==null&&(_=x(v,u));var D=S?{role:"status","aria-live":"assertive"}:{};return g.createElement("div",sy({className:N,style:P},D),g.createElement("p",{className:C,style:O},g.isValidElement(_)?_:"".concat(_)),E())},Cs="recharts-tooltip-wrapper",Lz={visibility:"hidden"};function zz(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Qe(Cs,{["".concat(Cs,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(Cs,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(Cs,"-top")]:be(n)&&t&&be(t.y)&&n0?i:0),m=r[n]+i;if(t[n])return s[n]?h:m;var v=d[n];if(v==null)return 0;if(s[n]){var x=h,k=v;return xE?Math.max(h,v):Math.max(m,v)}function Fz(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function Bz(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,i=e.offsetLeft,o=e.position,s=e.reverseDirection,u=e.tooltipBox,d=e.useTranslate3d,f=e.viewBox,h,m,v;return u.height>0&&u.width>0&&r?(m=cS({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:o,reverseDirection:s,tooltipDimension:u.width,viewBox:f,viewBoxDimension:f.width}),v=cS({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:s,tooltipDimension:u.height,viewBox:f,viewBoxDimension:f.height}),h=Fz({translateX:m,translateY:v,useTranslate3d:d})):h=Lz,{cssProperties:h,cssClasses:zz({translateX:m,translateY:v,coordinate:r})}}var Uz=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Ou={isSsr:Uz()};function Wz(e,t){return qz(e)||Vz(e,t)||Kz(e,t)||Hz()}function Hz(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Kz(e,t){if(e){if(typeof e=="string")return dS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dS(e,t):void 0}}function dS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rOu.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Wz(e,2),r=t[0],n=t[1];return g.useEffect(()=>{if(window.matchMedia){var i=window.matchMedia("(prefers-reduced-motion: reduce)"),o=()=>{n(i.matches)};return i.addEventListener("change",o),()=>{i.removeEventListener("change",o)}}},[]),r}function fS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Mo(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),f=Xz(d,2),h=f[0],m=f[1];g.useEffect(()=>{var P=O=>{if(O.key==="Escape"){var j,_,N,C;m({dismissed:!0,dismissedAtCoordinate:{x:(j=(_=e.coordinate)===null||_===void 0?void 0:_.x)!==null&&j!==void 0?j:0,y:(N=(C=e.coordinate)===null||C===void 0?void 0:C.y)!==null&&N!==void 0?N:0}})}};return document.addEventListener("keydown",P),()=>{document.removeEventListener("keydown",P)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),h.dismissed&&(((n=(i=e.coordinate)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)!==h.dismissedAtCoordinate.x||((o=(s=e.coordinate)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:0)!==h.dismissedAtCoordinate.y)&&m(Mo(Mo({},h),{},{dismissed:!1}));var v=Bz({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),x=v.cssClasses,k=v.cssProperties,S=e.hasPortalFromProps?{}:Mo(Mo({transition:rF({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},k),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),E=Mo(Mo({},S),{},{visibility:!h.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return g.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:x,style:E,ref:e.innerRef},e.children)}var iF=g.memo(nF),v2=()=>{var e;return(e=ke(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function uy(){return uy=Object.assign?Object.assign.bind():function(e){for(var t=1;tFe(e.x)&&Fe(e.y),yS=e=>e.base!=null&&Gd(e.base)&&Gd(e),_s=e=>e.x,js=e=>e.y,sF=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(tg(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=vS["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return vS[r]||$f},gS={connectNulls:!1,type:"linear"},uF=e=>{var t=e.type,r=t===void 0?gS.type:t,n=e.points,i=n===void 0?[]:n,o=e.baseLine,s=e.layout,u=e.connectNulls,d=u===void 0?gS.connectNulls:u,f=sF(r,s),h=d?i.filter(Gd):i;if(Array.isArray(o)){var m,v=i.map((P,O)=>mS(mS({},P),{},{base:o[O]}));s==="vertical"?m=td().y(js).x1(_s).x0(P=>P.base.x):m=td().x(_s).y1(js).y0(P=>P.base.y);var x=m.defined(yS).curve(f),k=d?v.filter(yS):v;return x(k)}var S;s==="vertical"&&be(o)?S=td().y(js).x1(_s).x0(o):be(o)?S=td().x(_s).y1(js).y0(o):S=KA().x(_s).y(js);var E=S.defined(Gd).curve(f);return E(h)},Ed=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,o=El();if((!r||!r.length)&&!n)return null;var s={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},u=r&&r.length?uF(s):n;return g.createElement("path",uy({},on(e),rg(e),{className:Qe("recharts-curve",t),d:u===null?void 0:u,ref:i}))},cF=["x","y","top","left","width","height","className"];function cy(){return cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(i,"v").concat(n,"M").concat(o,",").concat(t,"h").concat(r),gF=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,i=n===void 0?0:n,o=e.top,s=o===void 0?0:o,u=e.left,d=u===void 0?0:u,f=e.width,h=f===void 0?0:f,m=e.height,v=m===void 0?0:m,x=e.className,k=mF(e,cF),S=dF({x:r,y:i,top:s,left:d,width:h,height:v},k);return!be(r)||!be(i)||!be(h)||!be(v)||!be(s)||!be(d)?null:g.createElement("path",cy({},Br(S),{className:Qe("recharts-cross",x),d:yF(r,i,h,v,s,d)}))};function xF(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var Yd=1e-4,y2=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],g2=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),bS=(e,t)=>r=>{var n=y2(e,t);return g2(n,r)},bF=(e,t)=>r=>{var n=y2(e,t),i=[...n.map((o,s)=>o*s).slice(1),0];return g2(i,r)},wF=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var i=n.map(o=>parseFloat(o));return[i[0],i[1],i[2],i[3]]},SF=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=bS(e,r),o=bS(t,n),s=bF(e,r),u=f=>f>1?1:f<0?0:f,d=f=>{for(var h=f>1?1:f,m=h,v=0;v<8;++v){var x=i(m)-h,k=s(m);if(Math.abs(x-h)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,o=i===void 0?8:i,s=t.dt,u=s===void 0?16.67:s,d=1,f=[0],h=0,m=0,v=1e4,x=0;x{var O,j,_;if(P<=0)return 0;if(P>=1)return d;var N=P*E,C=Math.floor(N),D=N-C;return((O=f[C])!==null&&O!==void 0?O:0)+(((j=f[C+1])!==null&&j!==void 0?j:0)-((_=f[C])!==null&&_!==void 0?_:0))*D}},PF=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return wS(e);case"spring":return EF();default:if(e.split("(")[0]==="cubic-bezier")return wS(e)}return typeof e=="function"?e:null},AF=(e,t,r)=>{var n,i=o=>{var s=t.tick(o);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(i,s);return}n=e.setTimeout(i,s)};return n=e.setTimeout(i,0),()=>{var o;return(o=n)===null||o===void 0?void 0:o()}},x2=g.createContext(AF);x2.Provider;function OF(e){var t=g.useContext(x2);return g.useMemo(()=>e??t,[e,t])}function CF(e,t,r){return(t=_F(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _F(e){var t=jF(e,"string");return typeof t=="symbol"?t:t+""}function jF(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var SS="init",kS="pending",ES="active",NF="completed";function Vm(e){return Math.max(0,e)}class IF{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;CF(this,"state",SS),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Vm(t.animationDuration),this.animationBegin=Vm(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===SS)return this.state=kS,this.beginStartedTime=t,this.animationBegin;if(this.getState()===kS){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=ES,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Vm(this.animationBegin-r)}if(this.getState()===ES){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=NF}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class MF extends IF{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Yn(this.getFrom(),this.getTo(),this.getProgress()))}}class TF{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),i=null,o=s=>{s-n>=r?t(s):i=requestAnimationFrame(o)};return i=requestAnimationFrame(o),()=>{i!=null&&cancelAnimationFrame(i)}}}function DF(e,t){return zF(e)||LF(e,t)||$F(e,t)||RF()}function RF(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $F(e,t){if(e){if(typeof e=="string")return PS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?PS(e,t):void 0}}function PS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},AS=0,qm=1;function b2(e){var t=Hr(e,FF),r=t.animationId,n=t.isActive,i=t.canBegin,o=t.duration,s=t.easing,u=t.begin,d=t.onAnimationEnd,f=t.onAnimationStart,h=t.children,m=m2(),v=n==="auto"?!Ou.isSsr&&!m:n,x=OF(t.animationController),k=g.useState(v?AS:qm),S=DF(k,2),E=S[0],P=S[1];return g.useEffect(()=>{v||P(qm)},[v]),g.useEffect(()=>{var O=PF(s);if(!v||!i||O==null)return kl;var j=new TF,_=new MF({animationId:r,easing:O,animationDuration:o,animationBegin:u,onAnimationStart:f,onAnimationEnd:d,from:AS,to:qm});return x(j,_,P)},[x,r,v,i,o,s,u,f,d]),h(Number(E))}function w2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=g.useRef(Zs(t)),n=g.useRef(e);return n.current!==e&&(r.current=Zs(t),n.current=e),r.current}var BF=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),UF=(e,t,r)=>e.map(n=>"".concat(BF(n)," ").concat(t,"ms ").concat(r)).join(","),WF=["radius"],HF=["radius"],OS,CS,_S,jS,NS,IS,MS,TS,DS,RS;function $S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LS(e){for(var t=1;t{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const i=t={callback:r,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!n||e===null||(n=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var oS={notify(){},get:()=>[]};function hz(e,t){let r,n=oS,i=0,o=!1;function s(S){h();const E=n.subscribe(S);let P=!1;return()=>{P||(P=!0,E(),m())}}function u(){n.notify()}function d(){k.onStateChange&&k.onStateChange()}function f(){return o}function h(){i++,r||(r=e.subscribe(d),n=fz())}function m(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=oS)}function v(){o||(o=!0,h())}function x(){o&&(o=!1,m())}const k={addNestedSub:s,notifyNestedSubs:u,handleChangeWrapper:d,isSubscribed:f,trySubscribe:v,tryUnsubscribe:x,getListeners:()=>n};return k}var pz=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",mz=pz(),vz=()=>typeof navigator<"u"&&navigator.product==="ReactNative",yz=vz(),gz=()=>mz||yz?g.useLayoutEffect:g.useEffect,xz=gz();function lS(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function bz(e,t){if(lS(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i=0;i{const d=hz(i);return{store:i,subscription:d,getServerState:n?()=>n:void 0}},[i,n]),s=g.useMemo(()=>i.getState(),[i]);xz(()=>{const{subscription:d}=o;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),s!==i.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[o,s]);const u=r||Sz;return g.createElement(u.Provider,{value:o},t)}var Ez=kz,Pz=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function Az(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function ih(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Pz.has(n)){if(e[n]==null&&t[n]==null)continue;if(!bz(e[n],t[n]))return!1}else if(!Az(e[n],t[n]))return!1;return!0}function sy(){return sy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?No.separator:t,n=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?No.labelStyle:o,u=e.payload,d=e.formatter,f=e.itemSorter,h=e.wrapperClassName,m=e.labelClassName,v=e.label,x=e.labelFormatter,k=e.accessibilityLayer,S=k===void 0?No.accessibilityLayer:k,E=()=>{if(u&&u.length){var F={padding:0,margin:0},z=Rz(u,f),q=z.map((X,B)=>{if(!X||X.type==="none")return null;var ue=X.formatter||d||Dz,Y=X.value,le=X.name,fe=Y,de=le;if(ue){var K=ue(Y,le,X,B,u);if(Array.isArray(K)){var ie=jz(K,2);fe=ie[0],de=ie[1]}else if(K!=null)fe=K;else return null}var Q=As(As({},No.itemStyle),{},{color:X.color||No.itemStyle.color},i);return g.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(B),style:Q},Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-name"},de):null,Cn(de)?g.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,g.createElement("span",{className:"recharts-tooltip-item-value"},fe),g.createElement("span",{className:"recharts-tooltip-item-unit"},X.unit||""))});return g.createElement("ul",{className:"recharts-tooltip-item-list",style:F},q)}return null},P=As(As({},No.contentStyle),n),O=As({margin:0},s),j=!Ut(v),_=j?v:"",N=Qe("recharts-default-tooltip",h),C=Qe("recharts-tooltip-label",m);j&&x&&u!==void 0&&u!==null&&(_=x(v,u));var D=S?{role:"status","aria-live":"assertive"}:{};return g.createElement("div",sy({className:N,style:P},D),g.createElement("p",{className:C,style:O},g.isValidElement(_)?_:"".concat(_)),E())},Os="recharts-tooltip-wrapper",Lz={visibility:"hidden"};function zz(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return Qe(Os,{["".concat(Os,"-right")]:be(r)&&t&&be(t.x)&&r>=t.x,["".concat(Os,"-left")]:be(r)&&t&&be(t.x)&&r=t.y,["".concat(Os,"-top")]:be(n)&&t&&be(t.y)&&n0?i:0),m=r[n]+i;if(t[n])return s[n]?h:m;var v=d[n];if(v==null)return 0;if(s[n]){var x=h,k=v;return xE?Math.max(h,v):Math.max(m,v)}function Fz(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function Bz(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,i=e.offsetLeft,o=e.position,s=e.reverseDirection,u=e.tooltipBox,d=e.useTranslate3d,f=e.viewBox,h,m,v;return u.height>0&&u.width>0&&r?(m=cS({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:o,reverseDirection:s,tooltipDimension:u.width,viewBox:f,viewBoxDimension:f.width}),v=cS({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:o,reverseDirection:s,tooltipDimension:u.height,viewBox:f,viewBoxDimension:f.height}),h=Fz({translateX:m,translateY:v,useTranslate3d:d})):h=Lz,{cssProperties:h,cssClasses:zz({translateX:m,translateY:v,coordinate:r})}}var Uz=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Ou={isSsr:Uz()};function Wz(e,t){return qz(e)||Vz(e,t)||Kz(e,t)||Hz()}function Hz(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Kz(e,t){if(e){if(typeof e=="string")return dS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dS(e,t):void 0}}function dS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rOu.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Wz(e,2),r=t[0],n=t[1];return g.useEffect(()=>{if(window.matchMedia){var i=window.matchMedia("(prefers-reduced-motion: reduce)"),o=()=>{n(i.matches)};return i.addEventListener("change",o),()=>{i.removeEventListener("change",o)}}},[]),r}function fS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Io(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),f=Xz(d,2),h=f[0],m=f[1];g.useEffect(()=>{var P=O=>{if(O.key==="Escape"){var j,_,N,C;m({dismissed:!0,dismissedAtCoordinate:{x:(j=(_=e.coordinate)===null||_===void 0?void 0:_.x)!==null&&j!==void 0?j:0,y:(N=(C=e.coordinate)===null||C===void 0?void 0:C.y)!==null&&N!==void 0?N:0}})}};return document.addEventListener("keydown",P),()=>{document.removeEventListener("keydown",P)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),h.dismissed&&(((n=(i=e.coordinate)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)!==h.dismissedAtCoordinate.x||((o=(s=e.coordinate)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:0)!==h.dismissedAtCoordinate.y)&&m(Io(Io({},h),{},{dismissed:!1}));var v=Bz({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),x=v.cssClasses,k=v.cssProperties,S=e.hasPortalFromProps?{}:Io(Io({transition:rF({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},k),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),E=Io(Io({},S),{},{visibility:!h.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return g.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:x,style:E,ref:e.innerRef},e.children)}var iF=g.memo(nF),v2=()=>{var e;return(e=ke(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function uy(){return uy=Object.assign?Object.assign.bind():function(e){for(var t=1;tFe(e.x)&&Fe(e.y),yS=e=>e.base!=null&&Gd(e.base)&&Gd(e),Cs=e=>e.x,_s=e=>e.y,sF=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(tg(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=vS["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return vS[r]||$f},gS={connectNulls:!1,type:"linear"},uF=e=>{var t=e.type,r=t===void 0?gS.type:t,n=e.points,i=n===void 0?[]:n,o=e.baseLine,s=e.layout,u=e.connectNulls,d=u===void 0?gS.connectNulls:u,f=sF(r,s),h=d?i.filter(Gd):i;if(Array.isArray(o)){var m,v=i.map((P,O)=>mS(mS({},P),{},{base:o[O]}));s==="vertical"?m=td().y(_s).x1(Cs).x0(P=>P.base.x):m=td().x(Cs).y1(_s).y0(P=>P.base.y);var x=m.defined(yS).curve(f),k=d?v.filter(yS):v;return x(k)}var S;s==="vertical"&&be(o)?S=td().y(_s).x1(Cs).x0(o):be(o)?S=td().x(Cs).y1(_s).y0(o):S=KA().x(Cs).y(_s);var E=S.defined(Gd).curve(f);return E(h)},Ed=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,o=kl();if((!r||!r.length)&&!n)return null;var s={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},u=r&&r.length?uF(s):n;return g.createElement("path",uy({},on(e),rg(e),{className:Qe("recharts-curve",t),d:u===null?void 0:u,ref:i}))},cF=["x","y","top","left","width","height","className"];function cy(){return cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(i,"v").concat(n,"M").concat(o,",").concat(t,"h").concat(r),gF=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,i=n===void 0?0:n,o=e.top,s=o===void 0?0:o,u=e.left,d=u===void 0?0:u,f=e.width,h=f===void 0?0:f,m=e.height,v=m===void 0?0:m,x=e.className,k=mF(e,cF),S=dF({x:r,y:i,top:s,left:d,width:h,height:v},k);return!be(r)||!be(i)||!be(h)||!be(v)||!be(s)||!be(d)?null:g.createElement("path",cy({},Br(S),{className:Qe("recharts-cross",x),d:yF(r,i,h,v,s,d)}))};function xF(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var Yd=1e-4,y2=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],g2=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),bS=(e,t)=>r=>{var n=y2(e,t);return g2(n,r)},bF=(e,t)=>r=>{var n=y2(e,t),i=[...n.map((o,s)=>o*s).slice(1),0];return g2(i,r)},wF=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var i=n.map(o=>parseFloat(o));return[i[0],i[1],i[2],i[3]]},SF=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=bS(e,r),o=bS(t,n),s=bF(e,r),u=f=>f>1?1:f<0?0:f,d=f=>{for(var h=f>1?1:f,m=h,v=0;v<8;++v){var x=i(m)-h,k=s(m);if(Math.abs(x-h)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,o=i===void 0?8:i,s=t.dt,u=s===void 0?16.67:s,d=1,f=[0],h=0,m=0,v=1e4,x=0;x{var O,j,_;if(P<=0)return 0;if(P>=1)return d;var N=P*E,C=Math.floor(N),D=N-C;return((O=f[C])!==null&&O!==void 0?O:0)+(((j=f[C+1])!==null&&j!==void 0?j:0)-((_=f[C])!==null&&_!==void 0?_:0))*D}},PF=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return wS(e);case"spring":return EF();default:if(e.split("(")[0]==="cubic-bezier")return wS(e)}return typeof e=="function"?e:null},AF=(e,t,r)=>{var n,i=o=>{var s=t.tick(o);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(i,s);return}n=e.setTimeout(i,s)};return n=e.setTimeout(i,0),()=>{var o;return(o=n)===null||o===void 0?void 0:o()}},x2=g.createContext(AF);x2.Provider;function OF(e){var t=g.useContext(x2);return g.useMemo(()=>e??t,[e,t])}function CF(e,t,r){return(t=_F(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _F(e){var t=jF(e,"string");return typeof t=="symbol"?t:t+""}function jF(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var SS="init",kS="pending",ES="active",NF="completed";function Vm(e){return Math.max(0,e)}class IF{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;CF(this,"state",SS),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=Vm(t.animationDuration),this.animationBegin=Vm(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===SS)return this.state=kS,this.beginStartedTime=t,this.animationBegin;if(this.getState()===kS){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=ES,this.animationStartedTime=t,this.nextAnimationUpdate(0)):Vm(this.animationBegin-r)}if(this.getState()===ES){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=NF}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class MF extends IF{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Yn(this.getFrom(),this.getTo(),this.getProgress()))}}class TF{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),i=null,o=s=>{s-n>=r?t(s):i=requestAnimationFrame(o)};return i=requestAnimationFrame(o),()=>{i!=null&&cancelAnimationFrame(i)}}}function DF(e,t){return zF(e)||LF(e,t)||$F(e,t)||RF()}function RF(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $F(e,t){if(e){if(typeof e=="string")return PS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?PS(e,t):void 0}}function PS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},AS=0,qm=1;function b2(e){var t=Hr(e,FF),r=t.animationId,n=t.isActive,i=t.canBegin,o=t.duration,s=t.easing,u=t.begin,d=t.onAnimationEnd,f=t.onAnimationStart,h=t.children,m=m2(),v=n==="auto"?!Ou.isSsr&&!m:n,x=OF(t.animationController),k=g.useState(v?AS:qm),S=DF(k,2),E=S[0],P=S[1];return g.useEffect(()=>{v||P(qm)},[v]),g.useEffect(()=>{var O=PF(s);if(!v||!i||O==null)return Sl;var j=new TF,_=new MF({animationId:r,easing:O,animationDuration:o,animationBegin:u,onAnimationStart:f,onAnimationEnd:d,from:AS,to:qm});return x(j,_,P)},[x,r,v,i,o,s,u,f,d]),h(Number(E))}function w2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=g.useRef(Zs(t)),n=g.useRef(e);return n.current!==e&&(r.current=Zs(t),n.current=e),r.current}var BF=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),UF=(e,t,r)=>e.map(n=>"".concat(BF(n)," ").concat(t,"ms ").concat(r)).join(","),WF=["radius"],HF=["radius"],OS,CS,_S,jS,NS,IS,MS,TS,DS,RS;function $S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LS(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var o=Gi(r),s=Gi(n),u=Math.min(Math.abs(o)/2,Math.abs(s)/2),d=s>=0?1:-1,f=o>=0?1:-1,h=s>=0&&o>=0||s<0&&o<0?1:0,m;if(u>0&&Array.isArray(i)){for(var v=[0,0,0,0],x=0,k=4;xu?u:E}m=Lt(OS||(OS=vn(["M",",",""])),e,t+d*v[0]),v[0]>0&&(m+=Lt(CS||(CS=vn(["A ",",",",0,0,",",",",",""])),v[0],v[0],h,e+f*v[0],t)),m+=Lt(_S||(_S=vn(["L ",",",""])),e+r-f*v[1],t),v[1]>0&&(m+=Lt(jS||(jS=vn(["A ",",",",0,0,",`, `,",",""])),v[1],v[1],h,e+r,t+d*v[1])),m+=Lt(NS||(NS=vn(["L ",",",""])),e+r,t+n-d*v[2]),v[2]>0&&(m+=Lt(IS||(IS=vn(["A ",",",",0,0,",`, `,",",""])),v[2],v[2],h,e+r-f*v[2],t+n)),m+=Lt(MS||(MS=vn(["L ",",",""])),e+f*v[3],t+n),v[3]>0&&(m+=Lt(TS||(TS=vn(["A ",",",",0,0,",`, @@ -416,20 +416,20 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho A`,",",",0,0,",",",",",` A`,",",",0,",",",",",",",` A`,",",",0,0,",",",",","Z"])),X.x,X.y,o,o,+(h<0),q.x,q.y,n,n,+(ue>180),+(h>0),C.x,C.y,o,o,+(h<0),D.x,D.y)}else _+=Lt(XS||(XS=Pa(["L",",","Z"])),t,r);return _},h6={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},p6=e=>{var t=Hr(e,h6),r=t.cx,n=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,h=t.endAngle,m=t.className;if(o0&&Math.abs(f-h)<360?S=f6({cx:r,cy:n,innerRadius:i,outerRadius:o,cornerRadius:Math.min(k,x/2),forceCornerRadius:u,cornerIsExternal:d,startAngle:f,endAngle:h}):S=k2({cx:r,cy:n,innerRadius:i,outerRadius:o,startAngle:f,endAngle:h}),g.createElement("path",dy({},Br(t),{className:v,d:S}))};function m6(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(iO(t)){if(e==="centric"){var n=t.cx,i=t.cy,o=t.innerRadius,s=t.outerRadius,u=t.angle,d=Bt(n,i,o,u),f=Bt(n,i,s,u);return[{x:d.x,y:d.y},{x:f.x,y:f.y}]}return S2(t)}}function v6(e){return gO(e)?NaN:Number(e)}function Gm(e){return e?(e=v6(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function E2(e,t,r){r&&typeof r!="number"&&Kv(e,t,r)&&(t=r=void 0),e=Gm(e),t===void 0?(t=e,e=0):t=Gm(t),r=r===void 0?ee.chartData,vg=H([un],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),ah=(e,t,r,n)=>n?vg(e):un(e),y6=(e,t,r)=>r?vg(e):un(e),g6=H([ah],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});H([vg],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});var x6=H([un],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function yg(e,t){return k6(e)||S6(e,t)||w6(e,t)||b6()}function b6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w6(e,t){if(e){if(typeof e=="string")return ZS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ZS(e,t):void 0}}function ZS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.e^o.s<0?1:-1;for(n=o.d.length,i=e.d.length,t=0,r=ne.d[t]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};ve.decimalPlaces=ve.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*rt;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};ve.dividedBy=ve.div=function(e){return 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):(it=!1,t=Jn(au(r,o),au(e,o),o),it=!0,Ge(t,i))};ve.minus=ve.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_2(t,e):O2(t,(e.s=-e.s,e))};ve.modulo=ve.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Wr+"NaN");return r.s?(it=!1,t=Jn(r,e,0,1).times(e),it=!0,r.minus(t)):Ge(new n(r),i)};ve.naturalExponential=ve.exp=function(){return C2(this)};ve.naturalLogarithm=ve.ln=function(){return au(this)};ve.negated=ve.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};ve.plus=ve.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O2(t,e):_2(t,(e.s=-e.s,e))};ve.precision=ve.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Fa+e);if(t=gt(i)+1,n=i.d.length-1,r=n*rt+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};ve.squareRoot=ve.sqrt=function(){var e,t,r,n,i,o,s,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Wr+"NaN")}for(e=gt(u),it=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=En(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Al((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new d(t)):n=new d(i.toString()),r=d.precision,i=s=r+3;;)if(o=n,n=o.plus(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 it=!0,Ge(n,r)};ve.times=ve.mul=function(e){var t,r,n,i,o,s,u,d,f,h=this,m=h.constructor,v=h.d,x=(e=new m(e)).d;if(!h.s||!e.s)return new m(0);for(e.s*=h.s,r=h.e+e.e,d=v.length,f=x.length,d=0;){for(t=0,i=d+n;i>n;)u=o[i]+x[n]*v[i-n-1]+t,o[i--]=u%jt|0,t=u/jt|0;o[i]=(o[i]+t)%jt|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,it?Ge(e,m.precision):e};ve.toDecimalPlaces=ve.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(jn(e,0,Pl),t===void 0?t=n.rounding:jn(t,0,8),Ge(r,e+gt(r)+1,t))};ve.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=Ga(n,!0):(jn(e,0,Pl),t===void 0?t=i.rounding:jn(t,0,8),n=Ge(new i(n),e+1,t),r=Ga(n,!0,e+1)),r};ve.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?Ga(i):(jn(e,0,Pl),t===void 0?t=o.rounding:jn(t,0,8),n=Ge(new o(i),e+gt(i)+1,t),r=Ga(n.abs(),!1,e+gt(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};ve.toInteger=ve.toint=function(){var e=this,t=e.constructor;return Ge(new t(e),gt(e)+1,t.rounding)};ve.toNumber=function(){return+this};ve.toPower=ve.pow=function(e){var t,r,n,i,o,s,u=this,d=u.constructor,f=12,h=+(e=new d(e));if(!e.s)return new d(Pr);if(u=new d(u),!u.s){if(e.s<1)throw Error(Wr+"Infinity");return u}if(u.eq(Pr))return u;if(n=d.precision,e.eq(Pr))return Ge(u,n);if(t=e.e,r=e.d.length-1,s=t>=r,o=u.s,s){if((r=h<0?-h:h)<=A2){for(i=new d(Pr),t=Math.ceil(n/rt+4),it=!1;r%2&&(i=i.times(u),tk(i.d,t)),r=Al(r/2),r!==0;)u=u.times(u),tk(u.d,t);return it=!0,e.s<0?new d(Pr).div(i):Ge(i,n)}}else if(o<0)throw Error(Wr+"NaN");return o=o<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,it=!1,i=e.times(au(u,n+f)),it=!0,i=C2(i),i.s=o,i};ve.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?(r=gt(i),n=Ga(i,r<=o.toExpNeg||r>=o.toExpPos)):(jn(e,1,Pl),t===void 0?t=o.rounding:jn(t,0,8),i=Ge(new o(i),e,t),r=gt(i),n=Ga(i,e<=r||r<=o.toExpNeg,e)),n};ve.toSignificantDigits=ve.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(jn(e,1,Pl),t===void 0?t=n.rounding:jn(t,0,8)),Ge(new n(r),e,t)};ve.toString=ve.valueOf=ve.val=ve.toJSON=ve[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gt(e),r=e.constructor;return Ga(e,t<=r.toExpNeg||t>=r.toExpPos)};function O2(e,t){var r,n,i,o,s,u,d,f,h=e.constructor,m=h.precision;if(!e.s||!t.s)return t.s||(t=new h(e)),it?Ge(t,m):t;if(d=e.d,f=t.d,s=e.e,i=t.e,d=d.slice(),o=s-i,o){for(o<0?(n=d,o=-o,u=f.length):(n=f,i=s,u=d.length),s=Math.ceil(m/rt),u=s>u?s+1:u+1,o>u&&(o=u,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(u=d.length,o=f.length,u-o<0&&(o=u,n=f,f=d,d=n),r=0;o;)r=(d[--o]=d[o]+f[o]+r)/jt|0,d[o]%=jt;for(r&&(d.unshift(r),++i),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=i,it?Ge(t,m):t}function jn(e,t,r){if(e!==~~e||er)throw Error(Fa+e)}function En(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;ts?1:-1;else for(u=d=0;ui[u]?1:-1;break}return d}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D,F,z=n.constructor,q=n.s==i.s?1:-1,X=n.d,B=i.d;if(!n.s)return new z(n);if(!i.s)throw Error(Wr+"Division by zero");for(d=n.e-i.e,D=B.length,N=X.length,x=new z(q),k=x.d=[],f=0;B[f]==(X[f]||0);)++f;if(B[f]>(X[f]||0)&&--d,o==null?O=o=z.precision:s?O=o+(gt(n)-gt(i))+1:O=o,O<0)return new z(0);if(O=O/rt+2|0,f=0,D==1)for(h=0,B=B[0],O++;(f1&&(B=e(B,h),X=e(X,h),D=B.length,N=X.length),_=D,S=X.slice(0,D),E=S.length;E=jt/2&&++C;do h=0,u=t(B,S,D,E),u<0?(P=S[0],D!=E&&(P=P*jt+(S[1]||0)),h=P/C|0,h>1?(h>=jt&&(h=jt-1),m=e(B,h),v=m.length,E=S.length,u=t(m,S,v,E),u==1&&(h--,r(m,D16)throw Error(gg+gt(e));if(!e.s)return new h(Pr);for(it=!1,u=m,s=new h(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(n=Math.log(Sa(2,f))/Math.LN10*2+5|0,u+=n,r=i=o=new h(Pr),h.precision=u;;){if(i=Ge(i.times(e),u),r=r.times(++d),s=o.plus(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?(it=!0,Ge(o,m)):o}o=s}}function gt(e){for(var t=e.e*rt,r=e.d[0];r>=10;r/=10)t++;return t}function Ym(e,t,r){if(t>e.LN10.sd())throw it=!0,r&&(e.precision=r),Error(Wr+"LN10 precision limit exceeded");return Ge(new e(e.LN10),t)}function $i(e){for(var t="";e--;)t+="0";return t}function au(e,t){var r,n,i,o,s,u,d,f,h,m=1,v=10,x=e,k=x.d,S=x.constructor,E=S.precision;if(x.s<1)throw Error(Wr+(x.s?"NaN":"-Infinity"));if(x.eq(Pr))return new S(0);if(t==null?(it=!1,f=E):f=t,x.eq(10))return t==null&&(it=!0),Ym(S,f);if(f+=v,S.precision=f,r=En(k),n=r.charAt(0),o=gt(x),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)x=x.times(e),r=En(x.d),n=r.charAt(0),m++;o=gt(x),n>1?(x=new S("0."+r),o++):x=new S(n+"."+r.slice(1))}else return d=Ym(S,f+2,E).times(o+""),x=au(new S(n+"."+r.slice(1)),f-v).plus(d),S.precision=E,t==null?(it=!0,Ge(x,E)):x;for(u=s=x=Jn(x.minus(Pr),x.plus(Pr),f),h=Ge(x.times(x),f),i=3;;){if(s=Ge(s.times(h),f),d=u.plus(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(Ym(S,f+2,E).times(o+""))),u=Jn(u,new S(m),f),S.precision=E,t==null?(it=!0,Ge(u,E)):u;u=d,i+=2}}function ek(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Al(r/rt),e.d=[],n=(r+1)%rt,r<0&&(n+=rt),nZd||e.e<-Zd))throw Error(gg+r)}else e.s=0,e.e=0,e.d=[0];return e}function Ge(e,t,r){var n,i,o,s,u,d,f,h,m=e.d;for(s=1,o=m[0];o>=10;o/=10)s++;if(n=t-s,n<0)n+=rt,i=t,f=m[h=0];else{if(h=Math.ceil((n+1)/rt),o=m.length,h>=o)return e;for(f=o=m[h],s=1;o>=10;o/=10)s++;n%=rt,i=n-rt+s}if(r!==void 0&&(o=Sa(10,s-i-1),u=f/o%10|0,d=t<0||m[h+1]!==void 0||f%o,d=r<4?(u||d)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||d||r==6&&(n>0?i>0?f/Sa(10,s-i):0:m[h-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return d?(o=gt(e),m.length=1,t=t-o-1,m[0]=Sa(10,(rt-t%rt)%rt),e.e=Al(-t/rt)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(n==0?(m.length=h,o=1,h--):(m.length=h+1,o=Sa(10,rt-n),m[h]=i>0?(f/Sa(10,s-i)%Sa(10,i)|0)*o:0),d)for(;;)if(h==0){(m[0]+=o)==jt&&(m[0]=1,++e.e);break}else{if(m[h]+=o,m[h]!=jt)break;m[h--]=0,o=1}for(n=m.length;m[--n]===0;)m.pop();if(it&&(e.e>Zd||e.e<-Zd))throw Error(gg+gt(e));return e}function _2(e,t){var r,n,i,o,s,u,d,f,h,m,v=e.constructor,x=v.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new v(e),it?Ge(t,x):t;if(d=e.d,m=t.d,n=t.e,f=e.e,d=d.slice(),s=f-n,s){for(h=s<0,h?(r=d,s=-s,u=m.length):(r=m,n=f,u=d.length),i=Math.max(Math.ceil(x/rt),u)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=d.length,u=m.length,h=i0;--i)d[u++]=0;for(i=m.length;i>s;){if(d[--i]0?o=o.charAt(0)+"."+o.slice(1)+$i(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+$i(-i-1)+o,r&&(n=r-s)>0&&(o+=$i(n))):i>=s?(o+=$i(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+$i(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=$i(n))),e.s<0?"-"+o:o}function tk(e,t){if(e.length>t)return e.length=t,!0}function j2(e){var t,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Fa+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return ek(s,o.toString())}else if(typeof o!="string")throw Error(Fa+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,A6.test(o))ek(s,o);else throw Error(Fa+o)}if(i.prototype=ve,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j2,i.config=i.set=O6,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Fa+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Fa+r+": "+n);return this}var xg=j2(P6);Pr=new xg(1);const Ue=xg;function N2(e){var t;return e===0?t=1:t=Math.floor(new Ue(e).abs().log(10).toNumber())+1,t}function I2(e,t,r){for(var n=new Ue(e),i=0,o=[];n.lt(t)&&i<1e5;)o.push(n.toNumber()),n=n.add(r),i++;return o}function ou(e,t){return N6(e)||j6(e,t)||_6(e,t)||C6()}function C6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _6(e,t){if(e){if(typeof e=="string")return rk(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rk(e,t):void 0}}function rk(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=ou(e,2),r=t[0],n=t[1],i=r,o=n;return r>n&&(i=n,o=r),[i,o]},bg=(e,t,r)=>{if(e.lte(0))return new Ue(0);var n=N2(e.toNumber()),i=new Ue(10).pow(n),o=e.div(i),s=n!==1?.05:.1,u=new Ue(Math.ceil(o.div(s).toNumber())).add(r).mul(s),d=u.mul(i);return t?new Ue(d.toNumber()):new Ue(Math.ceil(d.toNumber()))},T2=(e,t,r)=>{var n;if(e.lte(0))return new Ue(0);var i=[1,2,2.5,5],o=e.toNumber(),s=Math.floor(new Ue(o).abs().log(10).toNumber()),u=new Ue(10).pow(s),d=e.div(u).toNumber(),f=i.findIndex(x=>x>=d-1e-10);if(f===-1&&(u=u.mul(10),f=0),f+=r,f>=i.length){var h=Math.floor(f/i.length);f%=i.length,u=u.mul(new Ue(10).pow(h))}var m=(n=i[f])!==null&&n!==void 0?n:1,v=new Ue(m).mul(u);return t?v:new Ue(Math.ceil(v.toNumber()))},I6=(e,t,r)=>{var n=new Ue(1),i=new Ue(e);if(!i.isint()&&r){var o=Math.abs(e);o<1?(n=new Ue(10).pow(N2(e)-1),i=new Ue(Math.floor(i.div(n).toNumber())).mul(n)):o>1&&(i=new Ue(Math.floor(e)))}else e===0?i=new Ue(Math.floor((t-1)/2)):r||(i=new Ue(Math.floor(e)));for(var s=Math.floor((t-1)/2),u=[],d=0;d4&&arguments[4]!==void 0?arguments[4]:0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:bg;if(!Number.isFinite((r-t)/(n-1)))return{step:new Ue(0),tickMin:new Ue(0),tickMax:new Ue(0)};var u=s(new Ue(r).sub(t).div(n-1),i,o),d;t<=0&&r>=0?d=new Ue(0):(d=new Ue(t).add(r).div(2),d=d.sub(new Ue(d).mod(u)));var f=Math.ceil(d.sub(t).div(u).toNumber()),h=Math.ceil(new Ue(r).sub(d).div(u).toNumber()),m=f+h+1;return m>n?D2(t,r,n,i,o+1,s):(m0?h+(n-m):h,f=r>0?f:f+(n-m)),{step:u,tickMin:d.sub(new Ue(f).mul(u)),tickMax:d.add(new Ue(h).mul(u))})},nk=function(t){var r=ou(t,2),n=r[0],i=r[1],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=Math.max(o,2),f=M2([n,i]),h=ou(f,2),m=h[0],v=h[1];if(m===-1/0||v===1/0){var x=v===1/0?[m,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),v];return n>i?x.reverse():x}if(m===v)return I6(m,o,s);var k=u==="snap125"?T2:bg,S=D2(m,v,d,s,0,k),E=S.step,P=S.tickMin,O=S.tickMax,j=I2(P,O.add(new Ue(.1).mul(E)),E);return n>i?j.reverse():j},ik=function(t,r){var n=ou(t,2),i=n[0],o=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=M2([i,o]),f=ou(d,2),h=f[0],m=f[1];if(h===-1/0||m===1/0)return[i,o];if(h===m)return[h];var v=u==="snap125"?T2:bg,x=Math.max(r,2),k=v(new Ue(m).sub(h).div(x-1),s,0),S=[...I2(new Ue(h),new Ue(m),k),m];return s===!1&&(S=S.map(E=>Math.round(E))),i>o?S.reverse():S},M6=e=>e.rootProps.barCategoryGap,oh=e=>e.rootProps.stackOffset,R2=e=>e.rootProps.reverseStackOrder,wg=e=>e.options.chartName,Sg=e=>e.rootProps.syncId,$2=e=>e.rootProps.syncMethod,kg=e=>e.options.eventEmitter,T6=e=>e.rootProps.baseValue,rr={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},va={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},yn={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},lh=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function sh(e,t,r){if(r!=="auto")return r;if(e!=null)return Mn(e,t)?"category":"number"}function ak(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Jd(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Eg=H([L6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"angleAxis",ok.type))!==null&&r!==void 0?r:"category";return Jd(Jd({},ok),{},{type:n})}),z6=(e,t)=>e.polarAxis.radiusAxis[t],Pg=H([z6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"radiusAxis",lk.type))!==null&&r!==void 0?r:"category";return Jd(Jd({},lk),{},{type:n})}),uh=e=>e.polarOptions,Ag=H([ai,oi,Ht],a6),L2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.innerRadius,t,0)}),z2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.outerRadius,t,t*.8)}),F6=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},F2=H([uh],F6);H([Eg,F2],lh);var B2=H([Ag,L2,z2],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});H([Pg,B2],lh);var U2=H([ot,uh,L2,z2,ai,oi],(e,t,r,n,i,o)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var s=t.cx,u=t.cy,d=t.startAngle,f=t.endAngle;return{cx:ea(s,i,i/2),cy:ea(u,o,o/2),innerRadius:r,outerRadius:n,startAngle:d,endAngle:f,clockWise:!1}}}),It=(e,t)=>t,ch=(e,t,r)=>r;function Og(e){return e==null?void 0:e.id}function W2(e,t,r){var n=t.chartData,i=n===void 0?[]:n,o=r.allowDuplicatedCategory,s=r.dataKey,u=new Map;return e.forEach(d=>{var f,h=(f=d.data)!==null&&f!==void 0?f:i;if(!(h==null||h.length===0)){var m=Og(d);h.forEach((v,x)=>{var k=s==null||o?x:String(Nt(v,s,null)),S=Nt(v,d.dataKey,0),E;u.has(k)?E=u.get(k):E={},Object.assign(E,{[m]:S}),u.set(k,E)})}}),Array.from(u.values())}function Cg(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var dh=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function fh(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function B6(e,t){if(e.length===t.length){for(var r=0;r{var t=ot(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Ol=e=>e.tooltip.settings.axisId;function _g(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),i=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(o){function s(){return o.apply(this,arguments)}return s.toString=function(){return o.toString()},s})(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(o){var s=i[0],u=i[1];return s<=u?o>=s&&o<=u:o>=u&&o<=s},bandwidth:r?()=>r.call(e):void 0,ticks:t?o=>t.call(e,o):void 0,map:(o,s)=>{var u=e(o);if(u!=null){if(e.bandwidth&&s!==null&&s!==void 0&&s.position){var d=e.bandwidth();switch(s.position){case"middle":u+=d/2;break;case"end":u+=d;break}}return u}}}}}var U6=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Pn(t)){for(var r,n,i=0;in)&&(n=o))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};function Xi(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function W6(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function jg(e){let t,r,n;e.length!==2?(t=Xi,r=(u,d)=>Xi(e(u),d),n=(u,d)=>e(u)-d):(t=e===Xi||e===W6?e:H6,r=e,n=e);function i(u,d,f=0,h=u.length){if(f>>1;r(u[m],d)<0?f=m+1:h=m}while(f>>1;r(u[m],d)<=0?f=m+1:h=m}while(ff&&n(u[m-1],d)>-n(u[m],d)?m-1:m}return{left:i,center:s,right:o}}function H6(){return 0}function H2(e){return e===null?NaN:+e}function*K6(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const V6=jg(Xi),Cu=V6.right;jg(H2).center;class sk extends Map{constructor(t,r=Y6){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(uk(this,t))}has(t){return super.has(uk(this,t))}set(t,r){return super.set(q6(this,t),r)}delete(t){return super.delete(G6(this,t))}}function uk({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function q6({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function G6({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function Y6(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Q6(e=Xi){if(e===Xi)return K2;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function K2(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const X6=Math.sqrt(50),Z6=Math.sqrt(10),J6=Math.sqrt(2);function ef(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),s=o>=X6?10:o>=Z6?5:o>=J6?2:1;let u,d,f;return i<0?(f=Math.pow(10,-i)/s,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,i)*s,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const n=t=i))return[];const u=o-i+1,d=new Array(u);if(n)if(s<0)for(let f=0;f=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r=i)&&(r=i)}return r}function dk(e,t){let r;if(t===void 0)for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function V2(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?K2:Q6(i);n>r;){if(n-r>600){const d=n-r+1,f=t-r+1,h=Math.log(d),m=.5*Math.exp(2*h/3),v=.5*Math.sqrt(h*m*(d-m)/d)*(f-d/2<0?-1:1),x=Math.max(r,Math.floor(t-f*m/d+v)),k=Math.min(n,Math.floor(t+(d-f)*m/d+v));V2(e,t,x,k,i)}const o=e[t];let s=r,u=n;for(Ns(e,r,t),i(e[n],o)>0&&Ns(e,r,n);s0;)--u}i(e[r],o)===0?Ns(e,r,u):(++u,Ns(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function Ns(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function e8(e,t,r){if(e=Float64Array.from(K6(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return dk(e);if(t>=1)return ck(e);var n,i=(n-1)*t,o=Math.floor(i),s=ck(V2(e,o).subarray(0,o+1)),u=dk(e.subarray(o+1));return s+(u-s)*(i-o)}}function t8(e,t,r=H2){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,o=Math.floor(i),s=+r(e[o],o,e),u=+r(e[o+1],o+1,e);return s+(u-s)*(i-o)}}function r8(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?cd(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?cd(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=a8.exec(e))?new vr(t[1],t[2],t[3],1):(t=o8.exec(e))?new vr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=l8.exec(e))?cd(t[1],t[2],t[3],t[4]):(t=s8.exec(e))?cd(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=u8.exec(e))?gk(t[1],t[2]/100,t[3]/100,1):(t=c8.exec(e))?gk(t[1],t[2]/100,t[3]/100,t[4]):fk.hasOwnProperty(e)?mk(fk[e]):e==="transparent"?new vr(NaN,NaN,NaN,0):null}function mk(e){return new vr(e>>16&255,e>>8&255,e&255,1)}function cd(e,t,r,n){return n<=0&&(e=t=r=NaN),new vr(e,t,r,n)}function h8(e){return e instanceof _u||(e=uu(e)),e?(e=e.rgb(),new vr(e.r,e.g,e.b,e.opacity)):new vr}function vy(e,t,r,n){return arguments.length===1?h8(e):new vr(e,t,r,n??1)}function vr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Mg(vr,vy,G2(_u,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?lu:Math.pow(lu,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new vr(Ba(this.r),Ba(this.g),Ba(this.b),rf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vk,formatHex:vk,formatHex8:p8,formatRgb:yk,toString:yk}));function vk(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function p8(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function yk(){const e=rf(this.opacity);return`${e===1?"rgb(":"rgba("}${Ba(this.r)}, ${Ba(this.g)}, ${Ba(this.b)}${e===1?")":`, ${e})`}`}function rf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ba(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Aa(e){return e=Ba(e),(e<16?"0":"")+e.toString(16)}function gk(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new an(e,t,r,n)}function Y2(e){if(e instanceof an)return new an(e.h,e.s,e.l,e.opacity);if(e instanceof _u||(e=uu(e)),!e)return new an;if(e instanceof an)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=NaN,u=o-i,d=(o+i)/2;return u?(t===o?s=(r-n)/u+(r0&&d<1?0:s,new an(s,u,d,e.opacity)}function m8(e,t,r,n){return arguments.length===1?Y2(e):new an(e,t,r,n??1)}function an(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Mg(an,m8,G2(_u,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new an(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?lu:Math.pow(lu,e),new an(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new vr(Qm(e>=240?e-240:e+120,i,n),Qm(e,i,n),Qm(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new an(xk(this.h),dd(this.s),dd(this.l),rf(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=rf(this.opacity);return`${e===1?"hsl(":"hsla("}${xk(this.h)}, ${dd(this.s)*100}%, ${dd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xk(e){return e=(e||0)%360,e<0?e+360:e}function dd(e){return Math.max(0,Math.min(1,e||0))}function Qm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Tg=e=>()=>e;function v8(e,t){return function(r){return e+r*t}}function y8(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function g8(e){return(e=+e)==1?Q2:function(t,r){return r-t?y8(t,r,e):Tg(isNaN(t)?r:t)}}function Q2(e,t){var r=t-e;return r?v8(e,r):Tg(isNaN(e)?t:e)}const bk=(function e(t){var r=g8(t);function n(i,o){var s=r((i=vy(i)).r,(o=vy(o)).r),u=r(i.g,o.g),d=r(i.b,o.b),f=Q2(i.opacity,o.opacity);return function(h){return i.r=s(h),i.g=u(h),i.b=d(h),i.opacity=f(h),i+""}}return n.gamma=e,n})(1);function x8(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(o){for(i=0;ir&&(o=t.slice(r,o),u[s]?u[s]+=o:u[++s]=o),(n=n[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,d.push({i:s,x:nf(n,i)})),r=Xm.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function j8(e,t,r){var n=e[0],i=e[1],o=t[0],s=t[1];return i2?N8:j8,d=f=null,m}function m(v){return v==null||isNaN(v=+v)?o:(d||(d=u(e.map(n),t,r)))(n(s(v)))}return m.invert=function(v){return s(i((f||(f=u(t,e.map(n),nf)))(v)))},m.domain=function(v){return arguments.length?(e=Array.from(v,af),h()):e.slice()},m.range=function(v){return arguments.length?(t=Array.from(v),h()):t.slice()},m.rangeRound=function(v){return t=Array.from(v),r=Dg,h()},m.clamp=function(v){return arguments.length?(s=v?!0:nr,h()):s!==nr},m.interpolate=function(v){return arguments.length?(r=v,h()):r},m.unknown=function(v){return arguments.length?(o=v,m):o},function(v,x){return n=v,i=x,h()}}function Rg(){return hh()(nr,nr)}function I8(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function of(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function pl(e){return e=of(Math.abs(e)),e?e[1]:NaN}function M8(e,t){return function(r,n){for(var i=r.length,o=[],s=0,u=e[0],d=0;i>0&&u>0&&(d+u+1>n&&(u=Math.max(1,n-d)),o.push(r.substring(i-=u,i+u)),!((d+=u+1)>n));)u=e[s=(s+1)%e.length];return o.reverse().join(t)}}function T8(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var D8=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cu(e){if(!(t=D8.exec(e)))throw new Error("invalid format: "+e);var t;return new $g({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}cu.prototype=$g.prototype;function $g(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}$g.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function R8(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var lf;function $8(e,t){var r=of(e,t);if(!r)return lf=void 0,e.toPrecision(t);var n=r[0],i=r[1],o=i-(lf=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")+of(e,Math.max(0,t+o-1))[0]}function Sk(e,t){var r=of(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const kk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:I8,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Sk(e*100,t),r:Sk,s:$8,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ek(e){return e}var Pk=Array.prototype.map,Ak=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function L8(e){var t=e.grouping===void 0||e.thousands===void 0?Ek:M8(Pk.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Ek:T8(Pk.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(m,v){m=cu(m);var x=m.fill,k=m.align,S=m.sign,E=m.symbol,P=m.zero,O=m.width,j=m.comma,_=m.precision,N=m.trim,C=m.type;C==="n"?(j=!0,C="g"):kk[C]||(_===void 0&&(_=12),N=!0,C="g"),(P||x==="0"&&k==="=")&&(P=!0,x="0",k="=");var D=(v&&v.prefix!==void 0?v.prefix:"")+(E==="$"?r:E==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),F=(E==="$"?n:/[%p]/.test(C)?s:"")+(v&&v.suffix!==void 0?v.suffix:""),z=kk[C],q=/[defgprs%]/.test(C);_=_===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function X(B){var ue=D,Y=F,le,fe,de;if(C==="c")Y=z(B)+Y,B="";else{B=+B;var K=B<0||1/B<0;if(B=isNaN(B)?d:z(Math.abs(B),_),N&&(B=R8(B)),K&&+B==0&&S!=="+"&&(K=!1),ue=(K?S==="("?S:u:S==="-"||S==="("?"":S)+ue,Y=(C==="s"&&!isNaN(B)&&lf!==void 0?Ak[8+lf/3]:"")+Y+(K&&S==="("?")":""),q){for(le=-1,fe=B.length;++lede||de>57){Y=(de===46?i+B.slice(le+1):B.slice(le))+Y,B=B.slice(0,le);break}}}j&&!P&&(B=t(B,1/0));var ie=ue.length+B.length+Y.length,Q=ie>1)+ue+B+Y+Q.slice(ie);break;default:B=Q+ue+B+Y;break}return o(B)}return X.toString=function(){return m+""},X}function h(m,v){var x=Math.max(-8,Math.min(8,Math.floor(pl(v)/3)))*3,k=Math.pow(10,-x),S=f((m=cu(m),m.type="f",m),{suffix:Ak[8+x/3]});return function(E){return S(k*E)}}return{format:f,formatPrefix:h}}var fd,Lg,X2;z8({thousands:",",grouping:[3],currency:["$",""]});function z8(e){return fd=L8(e),Lg=fd.format,X2=fd.formatPrefix,fd}function F8(e){return Math.max(0,-pl(Math.abs(e)))}function B8(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pl(t)/3)))*3-pl(Math.abs(e)))}function U8(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,pl(t)-pl(e))+1}function Z2(e,t,r,n){var i=py(e,t,r),o;switch(n=cu(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=B8(i,s))&&(n.precision=o),X2(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=U8(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=F8(i))&&(n.precision=o-(n.type==="%")*2);break}}return Lg(n)}function ta(e){var t=e.domain;return e.ticks=function(r){var n=t();return fy(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return Z2(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,o=n.length-1,s=n[i],u=n[o],d,f,h=10;for(u0;){if(f=hy(s,u,r),f===d)return n[i]=s,n[o]=u,t(n);if(f>0)s=Math.floor(s/f)*f,u=Math.ceil(u/f)*f;else if(f<0)s=Math.ceil(s*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function J2(){var e=Rg();return e.copy=function(){return ju(e,J2())},Kr.apply(e,arguments),ta(e)}function eC(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,af),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,af):[0,1],ta(r)}function tC(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],o=e[n],s;return oMath.pow(e,t)}function q8(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function _k(e){return(t,r)=>-e(-t,r)}function zg(e){const t=e(Ok,Ck),r=t.domain;let n=10,i,o;function s(){return i=q8(n),o=V8(n),r()[0]<0?(i=_k(i),o=_k(o),e(W8,H8)):e(Ok,Ck),t}return t.base=function(u){return arguments.length?(n=+u,s()):n},t.domain=function(u){return arguments.length?(r(u),s()):r()},t.ticks=u=>{const d=r();let f=d[0],h=d[d.length-1];const m=h0){for(;v<=x;++v)for(k=1;kh)break;P.push(S)}}else for(;v<=x;++v)for(k=n-1;k>=1;--k)if(S=v>0?k/o(-v):k*o(v),!(Sh)break;P.push(S)}P.length*2{if(u==null&&(u=10),d==null&&(d=n===10?"s":","),typeof d!="function"&&(!(n%1)&&(d=cu(d)).precision==null&&(d.trim=!0),d=Lg(d)),u===1/0)return d;const f=Math.max(1,n*u/t.ticks().length);return h=>{let m=h/o(Math.round(i(h)));return m*nr(tC(r(),{floor:u=>o(Math.floor(i(u))),ceil:u=>o(Math.ceil(i(u)))})),t}function rC(){const e=zg(hh()).domain([1,10]);return e.copy=()=>ju(e,rC()).base(e.base()),Kr.apply(e,arguments),e}function jk(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Nk(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Fg(e){var t=1,r=e(jk(t),Nk(t));return r.constant=function(n){return arguments.length?e(jk(t=+n),Nk(t)):t},ta(r)}function nC(){var e=Fg(hh());return e.copy=function(){return ju(e,nC()).constant(e.constant())},Kr.apply(e,arguments)}function Ik(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function G8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Y8(e){return e<0?-e*e:e*e}function Bg(e){var t=e(nr,nr),r=1;function n(){return r===1?e(nr,nr):r===.5?e(G8,Y8):e(Ik(r),Ik(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},ta(t)}function Ug(){var e=Bg(hh());return e.copy=function(){return ju(e,Ug()).exponent(e.exponent())},Kr.apply(e,arguments),e}function Q8(){return Ug.apply(null,arguments).exponent(.5)}function Mk(e){return Math.sign(e)*e*e}function X8(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function iC(){var e=Rg(),t=[0,1],r=!1,n;function i(o){var s=X8(e(o));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(o){return e.invert(Mk(o))},i.domain=function(o){return arguments.length?(e.domain(o),i):e.domain()},i.range=function(o){return arguments.length?(e.range((t=Array.from(o,af)).map(Mk)),i):t.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(r=!!o,i):r},i.clamp=function(o){return arguments.length?(e.clamp(o),i):e.clamp()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return iC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Kr.apply(i,arguments),ta(i)}function aC(){var e=[],t=[],r=[],n;function i(){var s=0,u=Math.max(1,t.length);for(r=new Array(u-1);++s0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[f-1],n[f]]},s.unknown=function(d){return arguments.length&&(o=d),s},s.thresholds=function(){return n.slice()},s.copy=function(){return oC().domain([e,t]).range(i).unknown(o)},Kr.apply(ta(s),arguments)}function lC(){var e=[.5],t=[0,1],r,n=1;function i(o){return o!=null&&o<=o?t[Cu(e,o,0,n)]:r}return i.domain=function(o){return arguments.length?(e=Array.from(o),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return lC().domain(e).range(t).unknown(r)},Kr.apply(i,arguments)}const Zm=new Date,Jm=new Date;function Et(e,t,r,n){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),u=i.ceil(o);return o-s(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,u)=>{const d=[];if(o=i.ceil(o),u=u==null?1:Math.floor(u),!(o0))return d;let f;do d.push(f=new Date(+o)),t(o,u),e(o);while(fEt(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!o(s););else for(;--u>=0;)for(;t(s,1),!o(s););}),r&&(i.count=(o,s)=>(Zm.setTime(+o),Jm.setTime(+s),e(Zm),e(Jm),Math.floor(r(Zm,Jm))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(n?s=>n(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const sf=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);sf.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):sf);sf.range;const Qn=1e3,Fr=Qn*60,Xn=Fr*60,ri=Xn*24,Wg=ri*7,Tk=ri*30,ev=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 Nu=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);Nu.range;const ph=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>e.getUTCDate()-1);ph.range;const sC=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>Math.floor(e/ri));sC.range;function Ja(e){return Et(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Fr)/Wg)}const mh=Ja(0),uf=Ja(1),Z8=Ja(2),J8=Ja(3),ml=Ja(4),eB=Ja(5),tB=Ja(6);mh.range;uf.range;Z8.range;J8.range;ml.range;eB.range;tB.range;function eo(e){return Et(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/Wg)}const vh=eo(0),cf=eo(1),rB=eo(2),nB=eo(3),vl=eo(4),iB=eo(5),aB=eo(6);vh.range;cf.range;rB.range;nB.range;vl.range;iB.range;aB.range;const Gg=Et(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Gg.range;const Yg=Et(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Yg.range;const 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 uC(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,Tk],[t,3,3*Tk],[e,1,ev]];function u(f,h,m){const v=hE).right(s,v);if(x===s.length)return e.every(py(f/ev,h/ev,m));if(x===0)return sf.every(Math.max(py(f,h,m),1));const[k,S]=s[v/s[x-1][2]53)return null;"w"in ne||(ne.w=1),"Z"in ne?(Re=rv(Is(ne.y,0,1)),Ee=Re.getUTCDay(),Re=Ee>4||Ee===0?cf.ceil(Re):cf(Re),Re=ph.offset(Re,(ne.V-1)*7),ne.y=Re.getUTCFullYear(),ne.m=Re.getUTCMonth(),ne.d=Re.getUTCDate()+(ne.w+6)%7):(Re=tv(Is(ne.y,0,1)),Ee=Re.getDay(),Re=Ee>4||Ee===0?uf.ceil(Re):uf(Re),Re=Nu.offset(Re,(ne.V-1)*7),ne.y=Re.getFullYear(),ne.m=Re.getMonth(),ne.d=Re.getDate()+(ne.w+6)%7)}else("W"in ne||"U"in ne)&&("w"in ne||(ne.w="u"in ne?ne.u%7:"W"in ne?1:0),Ee="Z"in ne?rv(Is(ne.y,0,1)).getUTCDay():tv(Is(ne.y,0,1)).getDay(),ne.m=0,ne.d="W"in ne?(ne.w+6)%7+ne.W*7-(Ee+5)%7:ne.w+ne.U*7-(Ee+6)%7);return"Z"in ne?(ne.H+=ne.Z/100|0,ne.M+=ne.Z%100,rv(ne)):tv(ne)}}function F(Z,we,Pe,ne){for(var lt=0,Re=we.length,Ee=Pe.length,vt,or;lt=Ee)return-1;if(vt=we.charCodeAt(lt++),vt===37){if(vt=we.charAt(lt++),or=N[vt in Dk?we.charAt(lt++):vt],!or||(ne=or(Z,Pe,ne))<0)return-1}else if(vt!=Pe.charCodeAt(ne++))return-1}return ne}function z(Z,we,Pe){var ne=f.exec(we.slice(Pe));return ne?(Z.p=h.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function q(Z,we,Pe){var ne=x.exec(we.slice(Pe));return ne?(Z.w=k.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function X(Z,we,Pe){var ne=m.exec(we.slice(Pe));return ne?(Z.w=v.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function B(Z,we,Pe){var ne=P.exec(we.slice(Pe));return ne?(Z.m=O.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function ue(Z,we,Pe){var ne=S.exec(we.slice(Pe));return ne?(Z.m=E.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function Y(Z,we,Pe){return F(Z,t,we,Pe)}function le(Z,we,Pe){return F(Z,r,we,Pe)}function fe(Z,we,Pe){return F(Z,n,we,Pe)}function de(Z){return s[Z.getDay()]}function K(Z){return o[Z.getDay()]}function ie(Z){return d[Z.getMonth()]}function Q(Z){return u[Z.getMonth()]}function R(Z){return i[+(Z.getHours()>=12)]}function M(Z){return 1+~~(Z.getMonth()/3)}function J(Z){return s[Z.getUTCDay()]}function se(Z){return o[Z.getUTCDay()]}function te(Z){return d[Z.getUTCMonth()]}function ce(Z){return u[Z.getUTCMonth()]}function ye(Z){return i[+(Z.getUTCHours()>=12)]}function _e(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var we=C(Z+="",j);return we.toString=function(){return Z},we},parse:function(Z){var we=D(Z+="",!1);return we.toString=function(){return Z},we},utcFormat:function(Z){var we=C(Z+="",_);return we.toString=function(){return Z},we},utcParse:function(Z){var we=D(Z+="",!0);return we.toString=function(){return Z},we}}}var Dk={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,dB=/^%/,fB=/[\\^$*+?|[\]().{}]/g;function Ke(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",o=i.length;return n+(o[t.toLowerCase(),r]))}function pB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function mB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function vB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function yB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function gB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Rk(e,t,r){var n=Tt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function $k(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function xB(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function bB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function wB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Lk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function SB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function zk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function kB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function EB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function PB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function AB(e,t,r){var n=Tt.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function OB(e,t,r){var n=dB.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function CB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function _B(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function Fk(e,t){return Ke(e.getDate(),t,2)}function jB(e,t){return Ke(e.getHours(),t,2)}function NB(e,t){return Ke(e.getHours()%12||12,t,2)}function IB(e,t){return Ke(1+Nu.count(ni(e),e),t,3)}function cC(e,t){return Ke(e.getMilliseconds(),t,3)}function MB(e,t){return cC(e,t)+"000"}function TB(e,t){return Ke(e.getMonth()+1,t,2)}function DB(e,t){return Ke(e.getMinutes(),t,2)}function RB(e,t){return Ke(e.getSeconds(),t,2)}function $B(e){var t=e.getDay();return t===0?7:t}function LB(e,t){return Ke(mh.count(ni(e)-1,e),t,2)}function dC(e){var t=e.getDay();return t>=4||t===0?ml(e):ml.ceil(e)}function zB(e,t){return e=dC(e),Ke(ml.count(ni(e),e)+(ni(e).getDay()===4),t,2)}function FB(e){return e.getDay()}function BB(e,t){return Ke(uf.count(ni(e)-1,e),t,2)}function UB(e,t){return Ke(e.getFullYear()%100,t,2)}function WB(e,t){return e=dC(e),Ke(e.getFullYear()%100,t,2)}function HB(e,t){return Ke(e.getFullYear()%1e4,t,4)}function KB(e,t){var r=e.getDay();return e=r>=4||r===0?ml(e):ml.ceil(e),Ke(e.getFullYear()%1e4,t,4)}function VB(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ke(t/60|0,"0",2)+Ke(t%60,"0",2)}function Bk(e,t){return Ke(e.getUTCDate(),t,2)}function qB(e,t){return Ke(e.getUTCHours(),t,2)}function GB(e,t){return Ke(e.getUTCHours()%12||12,t,2)}function YB(e,t){return Ke(1+ph.count(ii(e),e),t,3)}function fC(e,t){return Ke(e.getUTCMilliseconds(),t,3)}function QB(e,t){return fC(e,t)+"000"}function XB(e,t){return Ke(e.getUTCMonth()+1,t,2)}function ZB(e,t){return Ke(e.getUTCMinutes(),t,2)}function JB(e,t){return Ke(e.getUTCSeconds(),t,2)}function eU(e){var t=e.getUTCDay();return t===0?7:t}function tU(e,t){return Ke(vh.count(ii(e)-1,e),t,2)}function hC(e){var t=e.getUTCDay();return t>=4||t===0?vl(e):vl.ceil(e)}function rU(e,t){return e=hC(e),Ke(vl.count(ii(e),e)+(ii(e).getUTCDay()===4),t,2)}function nU(e){return e.getUTCDay()}function iU(e,t){return Ke(cf.count(ii(e)-1,e),t,2)}function aU(e,t){return Ke(e.getUTCFullYear()%100,t,2)}function oU(e,t){return e=hC(e),Ke(e.getUTCFullYear()%100,t,2)}function lU(e,t){return Ke(e.getUTCFullYear()%1e4,t,4)}function sU(e,t){var r=e.getUTCDay();return e=r>=4||r===0?vl(e):vl.ceil(e),Ke(e.getUTCFullYear()%1e4,t,4)}function uU(){return"+0000"}function Uk(){return"%"}function Wk(e){return+e}function Hk(e){return Math.floor(+e/1e3)}var To,pC,mC;cU({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function cU(e){return To=cB(e),pC=To.format,To.parse,mC=To.utcFormat,To.utcParse,To}function dU(e){return new Date(e)}function fU(e){return e instanceof Date?+e:+new Date(+e)}function Qg(e,t,r,n,i,o,s,u,d,f){var h=Rg(),m=h.invert,v=h.domain,x=f(".%L"),k=f(":%S"),S=f("%I:%M"),E=f("%I %p"),P=f("%a %d"),O=f("%b %d"),j=f("%B"),_=f("%Y");function N(C){return(d(C)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,o)=>e8(e,o/n))},r.copy=function(){return xC(t).domain(e)},li.apply(r,arguments)}function gh(){var e=0,t=.5,r=1,n=1,i,o,s,u,d,f=nr,h,m=!1,v;function x(S){return isNaN(S=+S)?v:(S=.5+((S=+h(S))-o)*(n*S{if(e!=null){var n=e.scale,i=e.type;if(n==="auto")return i==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":i==="category"?"band":"linear";if(typeof n=="string")return xU(n)?n:"point"}};function bU(e,t){for(var r=0,n=e.length,i=e[0]t)?r=o+1:n=o}return r}function PC(e,t){if(e){var r=t??e.domain(),n=r.map(o=>{var s;return(s=e(o))!==null&&s!==void 0?s:0}),i=e.range();if(!(r.length===0||i.length<2))return o=>{var s,u,d=bU(n,o);if(d<=0)return r[0];if(d>=r.length)return r[r.length-1];var f=(s=n[d-1])!==null&&s!==void 0?s:0,h=(u=n[d])!==null&&u!==void 0?u:0;return Math.abs(o-f)<=Math.abs(o-h)?r[d-1]:r[d]}}}function wU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):PC(e,void 0)}function Vk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function df(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],si=(e,t)=>{var r=OC(e,t);return r??St},kt={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:xy,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:ku},CC=(e,t)=>e.cartesianAxis.yAxis[t],ui=(e,t)=>{var r=CC(e,t);return r??kt},_U={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},e0=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??_U},ar=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"zAxis":return e0(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},jU=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Iu=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},_C=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function jC(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var NC=e=>e.graphicalItems.cartesianItems,NU=H([It,ch],jC),IC=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),_l=H([NC,ar,NU],IC,{memoizeOptions:{resultEqualityCheck:fh}}),MC=H([_l],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Cg)),TC=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),IU=H([_l],TC),DC=e=>e.map(t=>t.data).filter(Boolean).flat(1),MU=H([_l],e=>e.some(t=>!t.data)),RC=H([_l],DC,{memoizeOptions:{resultEqualityCheck:fh}}),$C=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,i=t.dataStartIndex,o=t.dataEndIndex;return e.length>0?e:n.slice(i,o+1)},t0=H([RC,ah],$C),TU=(e,t,r)=>(t==null?void 0:t.dataKey)!=null?e.map(n=>({value:Nt(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(i=>({value:Nt(i,n)}))):e.map(n=>({value:n})),LC=(e,t,r,n,i,o)=>{var s=n.chartData,u=s===void 0?[]:s,d=n.dataStartIndex,f=n.dataEndIndex,h=TU(e,t,r);if(i&&(t==null?void 0:t.dataKey)!=null&&o.length>0){var m=u.slice(d,f+1),v=m.map(x=>({value:Nt(x,t.dataKey)})).filter(x=>x.value!=null);return[...v,...h]}return h},Mu=H([t0,ar,_l,ah,MU,RC],LC);function Qo(e){if(Cn(e)||e instanceof Date){var t=Number(e);if(Fe(t))return t}}function Gk(e){if(Array.isArray(e)){var t=[Qo(e[0]),Qo(e[1])];return Pn(t)?t:void 0}var r=Qo(e);if(r!=null)return[r,r]}function Nn(e){return e.map(Qo).filter(mr)}function DU(e,t){var r=Qo(e),n=Qo(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var RU=H([Mu],e=>e==null?void 0:e.map(t=>t.value).sort(DU));function zC(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function $U(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!On(t))n=t;else if(Array.isArray(t)){var i=Nn(t);i.length>0&&(n=Math.max(...i))}return n==null?[]:Nn(r.flatMap(o=>{var s=Nt(e,o.dataKey),u,d;if(Array.isArray(s)){var f=AC(s,2);u=f[0],d=f[1]}else u=d=s;if(!(!Fe(u)||!Fe(d)))return[n-u,n+d]}))}var Pt=e=>{var t=Mt(e),r=Ol(e);return Iu(e,t,r)},yl=H([Pt],e=>e==null?void 0:e.dataKey),LU=H([MC,ah,Pt],W2),FC=(e,t,r,n)=>{var i={},o=t.reduce((s,u)=>{if(u.stackId==null)return s;var d=s[u.stackId];return d==null&&(d=[]),d.push(u),s[u.stackId]=d,s},i);return Object.fromEntries(Object.entries(o).map(s=>{var u=AC(s,2),d=u[0],f=u[1],h=n?[...f].reverse():f,m=h.map(Og);return[d,{stackedData:r4(e,m,r),graphicalItems:h}]}))},BC=H([LU,MC,oh,R2],FC),UC=(e,t,r,n)=>{var i=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return o4(e,i,o)},zU=H([ar],e=>e.allowDataOverflow),r0=e=>{var t;if(e==null||!("domain"in e))return xy;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Nn(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e==null?void 0:e.domain)!==null&&t!==void 0?t:xy},WC=H([ar],r0),HC=H([WC,zU],P2),FU=H([BC,un,It,HC],UC,{memoizeOptions:{resultEqualityCheck:dh}}),n0=e=>e.errorBars,BU=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>zC(r,n)),ff=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],u,d;if(n.length>0&&n.forEach(f=>{var h,m=f.data!=null?[...f.data]:s,v=(h=i[f.id])===null||h===void 0?void 0:h.filter(x=>zC(o,x));m.forEach(x=>{var k,S=Nt(x,(k=r.dataKey)!==null&&k!==void 0?k:f.dataKey),E=$U(x,S,v);if(E.length>=2){var P=Math.min(...E),O=Math.max(...E);(u==null||Pd)&&(d=O)}var j=Gk(S);j!=null&&(u=u==null?j[0]:Math.min(u,j[0]),d=d==null?j[1]:Math.max(d,j[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(f=>{var h=Gk(Nt(f,r.dataKey));h!=null&&(u=u==null?h[0]:Math.min(u,h[0]),d=d==null?h[1]:Math.max(d,h[1]))}),Fe(u)&&Fe(d))return[u,d]},UU=H([t0,ar,IU,n0,It,g6],KC,{memoizeOptions:{resultEqualityCheck:dh}});function WU(e){var t=e.value;if(Cn(t)||t instanceof Date)return t}var HU=(e,t,r)=>{var n=e.map(WU).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&rO(n))?E2(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},VC=e=>e.referenceElements.dots,jl=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),KU=H([VC,It,ch],jl),qC=e=>e.referenceElements.areas,VU=H([qC,It,ch],jl),GC=e=>e.referenceElements.lines,qU=H([GC,It,ch],jl),YC=(e,t)=>{if(e!=null){var r=Nn(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},GU=H(KU,It,YC),QC=(e,t)=>{if(e!=null){var r=Nn(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},YU=H([VU,It],QC);function QU(e){var t;if(e.x!=null)return Nn([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Nn(r)}function XU(e){var t;if(e.y!=null)return Nn([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Nn(r)}var XC=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?QU(n):XU(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},ZU=H([qU,It],XC),JU=H(GU,ZU,YU,(e,t,r)=>ff(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?ff(n,o,i):ff(o,i);return E6(t,f,e.allowDataOverflow)},e7=H([ar,WC,HC,FU,UU,JU,ot,It],ZC,{memoizeOptions:{resultEqualityCheck:dh}}),t7=[0,1],JC=(e,t,r,n,i,o,s)=>{if(!((e==null||r==null||r.length===0)&&s===void 0)){var u=e.dataKey,d=e.type,f=Mn(t,o);if(f&&u==null){var h;return E2(0,(h=r==null?void 0:r.length)!==null&&h!==void 0?h:0)}return d==="category"?HU(n,e,f):i==="expand"&&!f?t7:s}},i0=H([ar,ot,t0,Mu,oh,It,e7],JC),Nl=H([ar,_C,wg],EC),e_=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var i=r0(t),o=Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Pn(e)){if(o)return nk(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ik(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Pn(e))return nk(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Pn(e))return ik(e,t.tickCount,t.allowDecimals,"adaptive")}}},a0=H([i0,Iu,Nl],e_),t_=(e,t,r,n)=>{if(n!=="angleAxis"&&(e==null?void 0:e.type)==="number"&&Pn(t)&&Array.isArray(r)&&r.length>0){var i,o,s=t[0],u=(i=r[0])!==null&&i!==void 0?i:0,d=t[1],f=(o=r[r.length-1])!==null&&o!==void 0?o:0;return[Math.min(s,u),Math.max(d,f)]}return t},r7=H([ar,i0,a0,It],t_),n7=H(Mu,ar,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Nn(e.map(m=>m.value))).sort((m,v)=>m-v),i=n[0],o=n[n.length-1];if(i==null||o==null)return 1/0;var s=o-i;if(s===0)return 1/0;for(var u=0;ui,(e,t,r,n,i)=>{if(!Fe(e))return 0;var o=t==="vertical"?n.height:n.width;if(i==="gap")return e*o/2;if(i==="no-gap"){var s=ea(r,e*o),u=e*o/2;return u-s-(u-s)/o*s}return 0}),i7=(e,t,r)=>{var n=si(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"xAxis",t,r,n.padding)},a7=(e,t,r)=>{var n=ui(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"yAxis",t,r,n.padding)},o7=H(si,i7,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var i=e.padding;return typeof i=="string"?{left:t,right:t}:{left:((r=i.left)!==null&&r!==void 0?r:0)+t,right:((n=i.right)!==null&&n!==void 0?n:0)+t}}),l7=H(ui,a7,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var i=e.padding;return typeof i=="string"?{top:t,bottom:t}:{top:((r=i.top)!==null&&r!==void 0?r:0)+t,bottom:((n=i.bottom)!==null&&n!==void 0?n:0)+t}}),n_=H([Ht,o7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i)=>{var o=n.padding;return i?[o.left,r.width-o.right]:[e.left+t.left,e.left+e.width-t.right]}),i_=H([Ht,ot,l7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i,o)=>{var s=i.padding;return o?[n.height-s.bottom,s.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Tu=(e,t,r,n)=>{var i;switch(t){case"xAxis":return n_(e,r,n);case"yAxis":return i_(e,r,n);case"zAxis":return(i=e0(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return F2(e);case"radiusAxis":return B2(e,r);default:return}},a_=H([ar,Tu],lh),s7=H([Nl,r7],U6),o0=H([ar,Nl,s7,a_],Jg),o_=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var i=r.type,o=r.scale,s=Mn(e,n);if(s&&(i==="number"||o!=="auto"))return t.map(u=>u.value)}},l0=H([ot,Mu,Iu,It],o_),xh=H([o0],_g);H([o0],wU);H([o0,RU],PC);H([_l,n0,It],BU);function l_(e,t){return e.idt.id?1:0}var bh=(e,t)=>t,wh=(e,t,r)=>r,u7=H(Qf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),c7=H(Xf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),s_=(e,t)=>({width:e.width,height:t.height}),d7=(e,t)=>{var r=typeof t.width=="number"?t.width:ku;return{width:r,height:e.height}},f7=H(Ht,si,s_),h7=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},p7=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},m7=H(oi,Ht,u7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=s_(t,u);s==null&&(s=h7(t,n,e));var f=n==="top"&&!i||n==="bottom"&&i;o[u.id]=s-Number(f)*d.height,s+=(f?-1:1)*d.height}),o}),v7=H(ai,Ht,c7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=d7(t,u);s==null&&(s=p7(t,n,e));var f=n==="left"&&!i||n==="right"&&i;o[u.id]=s-Number(f)*d.width,s+=(f?-1:1)*d.width}),o}),y7=(e,t)=>{var r=si(e,t);if(r!=null)return m7(e,r.orientation,r.mirror)},g7=H([Ht,si,y7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),x7=(e,t)=>{var r=ui(e,t);if(r!=null)return v7(e,r.orientation,r.mirror)},b7=H([Ht,ui,x7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),w7=H(Ht,ui,(e,t)=>{var r=typeof t.width=="number"?t.width:ku;return{width:r,height:e.height}}),u_=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,o=r.type,s=r.dataKey,u=Mn(e,n),d=t.map(h=>h.value),f=d.filter(h=>h!=null);if(s&&u&&o==="category"&&i&&rO(f))return d}},s0=H([ot,Mu,ar,It],u_),Yk=H([ot,jU,Nl,xh,s0,l0,Tu,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}}}),S7=(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,x=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,k=h==="category"&&n.bandwidth?n.bandwidth()/x:0;k=d==="angleAxis"&&o!=null&&o.length>=2?Lr(o[0]-o[1])*2*k:k;var S=m||i;return S?S.map((E,P)=>{var O=s?s.indexOf(E):E,j=n.map(O);return Fe(j)?{index:P,coordinate:j+k,value:E,offset:k}:null}).filter(mr):f&&u?u.map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.ticks?n.ticks(v).map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.domain().map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:s?s[E]:E,index:P,offset:k}:null}).filter(mr)}},c_=H([ot,Iu,Nl,xh,a0,Tu,s0,l0,It],S7),k7=(e,t,r,n,i,o,s)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=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 Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.ticks?r.ticks(d).map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.domain().map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:i?i[h]:h,index:m,offset:f}:null}).filter(mr)}},d_=H([ot,Iu,xh,Tu,s0,l0,It],k7),f_=H(ar,xh,(e,t)=>{if(!(e==null||t==null))return df(df({},e),{},{scale:t})}),E7=H([ar,Nl,i0,a_],Jg),P7=H([E7],_g);H((e,t,r)=>e0(e,r),P7,(e,t)=>{if(!(e==null||t==null))return df(df({},e),{},{scale:t})});var A7=H([ot,Qf,Xf],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),O7=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};H([O7],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,i=e[0];for(var o of e){var s=Math.abs(o.coordinate-t);se.options.defaultTooltipEventType,p_=e=>e.options.validateTooltipEventTypes;function m_(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Du(e,t){var r=h_(e),n=p_(e);return m_(t,r,n)}function C7(e){return ke(t=>Du(t,e))}var v_=(e,t)=>{var r,n=Number(t);if(!(On(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},_7=e=>e.tooltip.settings,zi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},j7={itemInteraction:{click:zi,hover:zi},axisInteraction:{click:zi,hover:zi},keyboardInteraction:zi,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},y_=Zt({name:"tooltip",initialState:j7,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:tt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).tooltipItemPayloads.indexOf(n);o>-1&&(e.tooltipItemPayloads[o]=i)},prepare:tt()},removeTooltipEntrySettings:{reducer(e,t){var r=zr(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:tt()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Vr=y_.actions,N7=Vr.addTooltipEntrySettings,I7=Vr.replaceTooltipEntrySettings,M7=Vr.removeTooltipEntrySettings,T7=Vr.setTooltipSettingsState,D7=Vr.setActiveMouseOverItemIndex;Vr.mouseLeaveItem;var g_=Vr.mouseLeaveChart;Vr.setActiveClickItemIndex;var x_=Vr.setMouseOverAxisIndex,R7=Vr.setMouseClickAxisIndex,zs=Vr.setSyncInteraction,hf=Vr.setKeyboardInteraction,$7=y_.reducer;function Qk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function hd(e){for(var t=1;t{if(t==null)return zi;var i=B7(e,t,r);if(i==null)return zi;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var o=e.settings.active===!0;if(U7(i)){if(o)return hd(hd({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return hd(hd({},zi),{},{coordinate:i.coordinate})};function W7(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function H7(e,t){var r=W7(e),n=t[0],i=t[1];if(r===void 0)return!1;var o=Math.min(n,i),s=Math.max(n,i);return r>=o&&r<=s}function K7(e,t,r){if(r==null||t==null)return!0;var n=Nt(e,t);return n==null||!Pn(r)?!0:H7(n,r)}var Us=(e,t,r,n)=>{var i=e==null?void 0:e.index;if(i==null)return null;var o=Number(i);if(!Fe(o))return i;var s=0,u=1/0;t.length>0&&(u=t.length-1);var d=Math.max(s,Math.min(o,u)),f=t[d];return f==null||K7(f,r,n)?String(d):null},w_=(e,t,r,n,i,o,s)=>{if(o!=null){var u=s[0],d=u==null?void 0:u.getPosition(o);if(d!=null)return d;var f=i==null?void 0:i[Number(o)];if(f)switch(r){case"horizontal":return{x:f.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:f.coordinate}}}},S_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i;if(r==="hover"?i=e.itemInteraction.hover.graphicalItemId:i=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(n!=null||e.keyboardInteraction.active)){var o=e.tooltipItemPayloads[0];return o!=null?[o]:[]}return e.tooltipItemPayloads.filter(s=>{var u;return((u=s.settings)===null||u===void 0?void 0:u.graphicalItemId)===i})},k_=e=>e.options.tooltipPayloadSearcher,Il=e=>e.tooltip;function Xk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zk(e){for(var t=1;te(t)}function Jk(e){if(typeof e=="string")return e}function Z7(e){if(!(e==null||typeof e!="object")){var t="name"in e?Y7(e.name):void 0,r="unit"in e?Q7(e.unit):void 0,n="dataKey"in e?X7(e.dataKey):void 0,i="payload"in e?e.payload:void 0,o="color"in e?Jk(e.color):void 0,s="fill"in e?Jk(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:o,fill:s}}}function J7(e,t){return e??t}var E_=(e,t,r,n,i,o,s)=>{if(!(t==null||o==null)){var u=r.chartData,d=r.computedData,f=r.dataStartIndex,h=r.dataEndIndex,m=[];return e.reduce((v,x)=>{var k,S=x.dataDefinedOnItem,E=x.settings,P=J7(S,u),O=Array.isArray(P)?YO(P,f,h):P,j=(k=E==null?void 0:E.dataKey)!==null&&k!==void 0?k:n,_=E==null?void 0:E.nameKey,N;if(n&&Array.isArray(O)&&!Array.isArray(O[0])&&s==="axis"?N=nO(O,n,i):N=o(O,t,d,_),Array.isArray(N))N.forEach(D=>{var F,z,q=Z7(D),X=q==null?void 0:q.name,B=q==null?void 0:q.dataKey,ue=q==null?void 0:q.payload,Y=Zk(Zk({},E),{},{name:X,unit:q==null?void 0:q.unit,color:(F=q==null?void 0:q.color)!==null&&F!==void 0?F:E==null?void 0:E.color,fill:(z=q==null?void 0:q.fill)!==null&&z!==void 0?z:E==null?void 0:E.fill});v.push(qw({tooltipEntrySettings:Y,dataKey:B,payload:ue,value:Nt(ue,B),name:X==null?void 0:String(X)}))});else{var C;v.push(qw({tooltipEntrySettings:E,dataKey:j,payload:N,value:Nt(N,j),name:(C=Nt(N,_))!==null&&C!==void 0?C:E==null?void 0:E.name}))}return v},m)}},u0=H([Pt,_C,wg],EC),e9=H([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),t9=H([Mt,Ol],jC),to=H([e9,Pt,t9],IC,{memoizeOptions:{resultEqualityCheck:fh}}),r9=H([to],e=>e.filter(Cg)),P_=H([to],DC,{memoizeOptions:{resultEqualityCheck:fh}}),n9=H([to],e=>e.some(t=>!t.data)),Ya=H([P_,un],$C),i9=H([r9,un,Pt],W2),c0=H([Ya,Pt,to,un,n9,P_],LC),A_=H([Pt],r0),a9=H([Pt],e=>e.allowDataOverflow),O_=H([A_,a9],P2),o9=H([to],e=>e.filter(Cg)),l9=H([i9,o9,oh,R2],FC),s9=H([l9,un,Mt,O_],UC),u9=H([to],TC),c9=H([Ya,Pt,u9,n0,Mt,x6],KC,{memoizeOptions:{resultEqualityCheck:dh}}),d9=H([VC,Mt,Ol],jl),f9=H([d9,Mt],YC),h9=H([qC,Mt,Ol],jl),p9=H([h9,Mt],QC),m9=H([GC,Mt,Ol],jl),v9=H([m9,Mt],XC),y9=H([f9,v9,p9],ff),g9=H([Pt,A_,O_,s9,c9,y9,ot,Mt],ZC),gl=H([Pt,ot,Ya,c0,oh,Mt,g9],JC),x9=H([gl,Pt,u0],e_),b9=H([Pt,gl,x9,Mt],t_),C_=e=>{var t=Mt(e),r=Ol(e),n=!1;return Tu(e,t,r,n)},__=H([Pt,C_],lh),w9=H([Pt,u0,b9,__],Jg),j_=H([w9],_g),S9=H([ot,c0,Pt,Mt],u_),k9=H([ot,c0,Pt,Mt],o_),E9=(e,t,r,n,i,o,s,u)=>{if(t){var d=t.type,f=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,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:v,index:x,offset:m}:null}).filter(mr):n.domain().map((v,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:o?o[v]:v,index:x,offset:m}:null}).filter(mr)}}},ci=H([ot,Pt,u0,j_,C_,S9,k9,Mt],E9),d0=H([h_,p_,_7],(e,t,r)=>m_(r.shared,e,t)),N_=e=>e.tooltip.settings.trigger,f0=e=>e.tooltip.settings.defaultIndex,Ru=H([Il,d0,N_,f0],b_),du=H([Ru,Ya,yl,gl],Us),I_=H([ci,du],v_),P9=H([Ru],e=>{if(e)return e.dataKey}),A9=H([Ru],e=>{if(e)return e.graphicalItemId}),M_=H([Il,d0,N_,f0],S_),O9=H([ai,oi,ot,Ht,ci,f0,M_],w_),C9=H([Ru,O9],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),_9=H([Ru],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),j9=H([M_,du,un,yl,I_,k_,d0],E_),N9=H([j9],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function eE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function tE(e){for(var t=1;tke(Pt),R9=()=>{var e=D9(),t=ke(ci),r=ke(j_);return Ud(!e||!r?void 0:tE(tE({},e),{},{scale:r}),t)};function rE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Do(e){for(var t=1;t{var i=t.find(o=>o&&o.index===r);if(i){if(e==="horizontal")return{x:i.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:i.coordinate}}return{x:0,y:0}},B9=(e,t,r,n)=>{var i=t.find(f=>f&&f.index===r);if(i){if(e==="centric"){var o=i.coordinate,s=n.radius;return Do(Do(Do({},n),Bt(n.cx,n.cy,s,o)),{},{angle:o,radius:s})}var u=i.coordinate,d=n.angle;return Do(Do(Do({},n),Bt(n.cx,n.cy,u,d)),{},{angle:d,radius:u})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function U9(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var T_=(e,t,r,n,i)=>{var o,s=(o=t==null?void 0:t.length)!==null&&o!==void 0?o:0;if(s<=1||e==null)return 0;if(n==="angleAxis"&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var u=0;u0?(d=r[u-1])===null||d===void 0?void 0:d.coordinate:(f=r[s-1])===null||f===void 0?void 0:f.coordinate,k=(h=r[u])===null||h===void 0?void 0:h.coordinate,S=u>=s-1?(m=r[0])===null||m===void 0?void 0:m.coordinate:(v=r[u+1])===null||v===void 0?void 0:v.coordinate,E=void 0;if(!(x==null||k==null||S==null))if(Lr(k-x)!==Lr(S-k)){var P=[];if(Lr(S-k)===Lr(i[1]-i[0])){E=S;var O=k+i[1]-i[0];P[0]=Math.min(O,(O+x)/2),P[1]=Math.max(O,(O+x)/2)}else{E=x;var j=S+i[1]-i[0];P[0]=Math.min(k,(j+k)/2),P[1]=Math.max(k,(j+k)/2)}var _=[Math.min(k,(E+k)/2),Math.max(k,(E+k)/2)];if(e>_[0]&&e<=_[1]||e>=P[0]&&e<=P[1]){var N;return(N=r[u])===null||N===void 0?void 0:N.index}}else{var C=Math.min(x,S),D=Math.max(x,S);if(e>(C+k)/2&&e<=(D+k)/2){var F;return(F=r[u])===null||F===void 0?void 0:F.index}}}else if(t)for(var z=0;z(q.coordinate+B.coordinate)/2||z>0&&z(q.coordinate+B.coordinate)/2&&e<=(q.coordinate+X.coordinate)/2)return q.index}}return-1},D_=()=>ke(wg),h0=(e,t)=>t,R_=(e,t,r)=>r,p0=(e,t,r,n)=>n,W9=H(ci,e=>zf(e,t=>t.coordinate)),m0=H([Il,h0,R_,p0],b_),v0=H([m0,Ya,yl,gl],Us),H9=(e,t,r)=>{if(t!=null){var n=Il(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},$_=H([Il,h0,R_,p0],S_),pf=H([ai,oi,ot,Ht,ci,p0,$_],w_),K9=H([m0,pf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),L_=H([ci,v0],v_),V9=H([$_,v0,un,yl,L_,k_,h0],E_),q9=H([m0,v0],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),G9=(e,t,r,n,i,o,s)=>{if(!(!e||!r||!n||!i)&&U9(e,s)){var u=l4(e,t),d=T_(u,o,i,r,n),f=F9(t,i,d,e);return{activeIndex:String(d),activeCoordinate:f}}},Y9=(e,t,r,n,i,o,s)=>{if(!(!e||!n||!i||!o||!r)){var u=c6(e,r);if(u){var d=s4(u,t),f=T_(d,s,o,n,i),h=B9(t,o,f,u);return{activeIndex:String(f),activeCoordinate:h}}}},Q9=(e,t,r,n,i,o,s,u)=>{if(!(!e||!t||!n||!i||!o))return t==="horizontal"||t==="vertical"?G9(e,t,n,i,o,s,u):Y9(e,t,r,n,i,o,s)},X9=H(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),Z9=H(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(rr)),r=Array.from(new Set(t));return r.sort((n,i)=>n-i)},{memoizeOptions:{resultEqualityCheck:B6}});function nE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function iE(e){for(var t=1;tiE(iE({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),rW)},iW=new Set(Object.values(rr));function aW(e){return iW.has(e)}var z_=Zt({name:"zIndex",initialState:nW,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:tt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!aW(r)&&delete e.zIndexMap[r])},prepare:tt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,i=r.element,o=r.isPanorama;e.zIndexMap[n]?o?e.zIndexMap[n].panoramaElement=i:e.zIndexMap[n].element=i:e.zIndexMap[n]={consumers:0,element:o?void 0:i,panoramaElement:o?i:void 0}},prepare:tt()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:tt()}}}),Sh=z_.actions,oW=Sh.registerZIndexPortal,nv=Sh.unregisterZIndexPortal,lW=Sh.registerZIndexPortalElement,sW=Sh.unregisterZIndexPortalElement,uW=z_.reducer;function di(e){var t=e.zIndex,r=e.children,n=V4(),i=n&&t!==void 0&&t!==0,o=gr(),s=g.useRef(void 0),u=g.useRef(new Set),d=xt(),f=ke(m=>X9(m,t,o));if(g.useLayoutEffect(()=>{if(!i){var m=u.current;m.forEach(x=>{d(nv({zIndex:x}))}),m.clear(),s.current=void 0;return}if(u.current.has(t)||(d(oW({zIndex:t})),u.current.add(t)),f){s.current=f;var v=u.current;v.forEach(x=>{x!==t&&(d(nv({zIndex:x})),v.delete(x))})}},[d,t,i,f]),g.useLayoutEffect(()=>{var m=u.current;return()=>{m.forEach(v=>{d(nv({zIndex:v}))}),m.clear()}},[d]),!i)return r;var h=f??s.current;return h?_f.createPortal(r,h):null}function by(){return by=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.useContext(F_),iv={exports:{}},oE;function yW(){return oE||(oE=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(d,f,h){this.fn=d,this.context=f,this.once=h||!1}function o(d,f,h,m,v){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||d,v),k=r?r+f:f;return d._events[k]?d._events[k].fn?d._events[k]=[d._events[k],x]:d._events[k].push(x):(d._events[k]=x,d._eventsCount++),d}function s(d,f){--d._eventsCount===0?d._events=new n:delete d._events[f]}function u(){this._events=new n,this._eventsCount=0}u.prototype.eventNames=function(){var f=[],h,m;if(this._eventsCount===0)return f;for(m in h=this._events)t.call(h,m)&&f.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(h)):f},u.prototype.listeners=function(f){var h=r?r+f:f,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var v=0,x=m.length,k=new Array(x);v{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!On(r))return e[r]}},wW={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},B_=Zt({name:"options",initialState:wW,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),SW=B_.reducer,kW=B_.actions.createEventEmitter;function EW(e){return e.tooltip.syncInteraction}var PW={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},U_=Zt({name:"chartData",initialState:PW,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,i=r.endIndex;n!=null&&(e.dataStartIndex=n),i!=null&&(e.dataEndIndex=i)}}}),y0=U_.actions,sE=y0.setChartData,AW=y0.setDataStartEndIndexes;y0.setComputedData;var OW=U_.reducer,CW=["x","y"];function uE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ro(e){for(var t=1;td.rootProps.className);g.useEffect(()=>{if(e==null)return kl;var d=(f,h,m)=>{if(t!==m&&e===f){if(h.payload.active===!1){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var v;if(s&&h!==null&&h!==void 0&&(v=h.payload)!==null&&v!==void 0&&v.coordinate&&h.payload.sourceViewBox){var x=h.payload.coordinate,k=x.x,S=x.y,E=IW(x,CW),P=h.payload.sourceViewBox,O=P.x,j=P.y,_=P.width,N=P.height,C=Ro(Ro({},E),{},{x:s.x+(_?(k-O)/_:0)*s.width,y:s.y+(N?(S-j)/N:0)*s.height});r(Ro(Ro({},h),{},{payload:Ro(Ro({},h.payload),{},{coordinate:C})}))}else r(h);return}if(i!=null){var D;if(typeof n=="function"){var F={activeTooltipIndex:h.payload.index==null?void 0:Number(h.payload.index),isTooltipActive:h.payload.active,activeIndex:h.payload.index==null?void 0:Number(h.payload.index),activeLabel:h.payload.label,activeDataKey:h.payload.dataKey,activeCoordinate:h.payload.coordinate},z=n(i,F);D=i[z]}else n==="value"&&(D=i.find(de=>String(de.value)===h.payload.label));var q=h.payload.coordinate;if(q==null||s==null){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(D==null){r(zs({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:void 0}));return}var X=q.x,B=q.y,ue=Math.min(X,s.x+s.width),Y=Math.min(B,s.y+s.height),le={x:o==="horizontal"?D.coordinate:ue,y:o==="horizontal"?Y:D.coordinate},fe=zs({active:h.payload.active,coordinate:le,dataKey:h.payload.dataKey,index:String(D.index),label:h.payload.label,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:h.payload.graphicalItemId});r(fe)}}};return fu.on(wy,d),()=>{fu.off(wy,d)}},[u,r,t,e,n,i,o,s])}function DW(){var e=ke(Sg),t=ke(kg),r=xt();g.useEffect(()=>{if(e==null)return kl;var n=(i,o,s)=>{t!==s&&e===i&&r(AW(o))};return fu.on(lE,n),()=>{fu.off(lE,n)}},[r,t,e])}function RW(){var e=xt();g.useEffect(()=>{e(kW())},[e]),TW(),DW()}function $W(e,t,r,n,i,o){var s=ke(k=>H9(k,e,t)),u=ke(A9),d=ke(kg),f=ke(Sg),h=ke($2),m=ke(EW),v=(m==null?void 0:m.sourceViewBox)!=null,x=eh();g.useEffect(()=>{if(!v&&f!=null&&d!=null){var k=zs({active:o,coordinate:r,dataKey:s,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:x,graphicalItemId:u});fu.emit(wy,f,k,d)}},[v,r,s,u,i,n,d,f,h,o,x])}function cE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{D(T7({shared:O,trigger:j,axisId:C,active:i,defaultIndex:F}))},[D,O,j,C,i,F]);var z=eh(),q=v2(),X=C7(O),B=(t=ke(Pe=>q9(Pe,X,j,F)))!==null&&t!==void 0?t:{},ue=B.activeIndex,Y=B.isActive,le=ke(Pe=>V9(Pe,X,j,F)),fe=ke(Pe=>L_(Pe,X,j,F)),de=ke(Pe=>K9(Pe,X,j,F)),K=le,ie=vW(),Q=(r=i??Y)!==null&&r!==void 0?r:!1,R=q5([K,Q]),M=BW(R,2),J=M[0],se=M[1],te=X==="axis"?fe:void 0;$W(X,j,de,te,ue,Q);var ce=N??ie;if(ce==null||z==null||X==null)return null;var ye=K??hE;Q||(ye=hE),f&&ye.length&&(ye=v5(ye.filter(Pe=>Pe.value!=null&&(Pe.hide!==!0||n.includeHidden)),v,VW));var _e=ye.length>0,Z=dE(dE({},n),{},{payload:ye,label:te,active:Q,activeIndex:ue,coordinate:de,accessibilityLayer:q}),we=g.createElement(iF,{allowEscapeViewBox:o,animationDuration:s,animationEasing:u,isAnimationActive:h,active:Q,coordinate:de,hasPayload:_e,offset:m,position:x,reverseDirection:k,useTranslate3d:S,viewBox:z,wrapperStyle:E,lastBoundingBox:J,innerRef:se,hasPortalFromProps:!!N},qW(d,Z));return g.createElement(g.Fragment,null,_f.createPortal(we,ce),Q&&g.createElement(mW,{cursor:P,tooltipEventType:X,coordinate:de,payload:ye,index:ue}))}function QW(e,t,r){return(t=XW(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function XW(e){var t=ZW(e,"string");return typeof t=="symbol"?t:t+""}function ZW(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class JW{constructor(t){QW(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function pE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function eH(e){for(var t=1;t{try{var r=document.getElementById(vE);r||(r=document.createElement("span"),r.setAttribute("id",vE),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,aH,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Ws=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ou.isSsr)return{width:0,height:0};if(!W_.enableCache)return yE(t,r);var n=oH(t,r),i=mE.get(n);if(i)return i;var o=yE(t,r);return mE.set(n,o),o},H_;function mf(e,t){return cH(e)||uH(e,t)||sH(e,t)||lH()}function lH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sH(e,t){if(e){if(typeof e=="string")return gE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?gE(e,t):void 0}}function gE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var i=[];Ut(t)||(r?i=t.toString().split(""):i=t.toString().split(V_));var o=i.map(u=>({word:u,width:Ws(u,n).width})),s=r?0:Ws(" ",n).width;return{wordsWithComputedWidth:o,spaceWidth:s}}catch{return null}};function G_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function jH(e){return Ut(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Y_=(e,t,r,n)=>e.reduce((i,o)=>{var s=o.word,u=o.width,d=i[i.length-1];if(d&&u!=null&&(t==null||n||d.width+u+re.reduce((t,r)=>t.width>r.width?t:r),NH="…",PE=(e,t,r,n,i,o,s,u)=>{var d=e.slice(0,t),f=q_({breakAll:r,style:n,children:d+NH});if(!f)return[!1,[]];var h=Y_(f.wordsWithComputedWidth,o,s,u),m=h.length>i||Q_(h).width>Number(o);return[m,h]},IH=(e,t,r,n,i)=>{var o=e.maxLines,s=e.children,u=e.style,d=e.breakAll,f=be(o),h=String(s),m=Y_(t,n,r,i);if(!f||i)return m;var v=m.length>o||Q_(m).width>Number(n);if(!v)return m;for(var x=0,k=h.length-1,S=0,E;x<=k&&S<=h.length-1;){var P=Math.floor((x+k)/2),O=P-1,j=PE(h,O,d,u,o,n,r,i),_=kE(j,2),N=_[0],C=_[1],D=PE(h,P,d,u,o,n,r,i),F=kE(D,1),z=F[0];if(!N&&!z&&(x=P+1),N&&z&&(k=P-1),!N&&z){E=C;break}S++}return E||m},AE=e=>{var t=Ut(e)?[]:e.toString().split(V_);return[{words:t,width:void 0}]},MH=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,o=e.breakAll,s=e.maxLines;if((t||r)&&!Ou.isSsr){var u,d,f=q_({breakAll:o,children:n,style:i});if(f){var h=f.wordsWithComputedWidth,m=f.spaceWidth;u=h,d=m}else return AE(n);return IH({breakAll:o,children:n,maxLines:s,style:i},u,d,t,!!r)}return AE(n)},X_="#808080",TH={angle:0,breakAll:!1,capHeight:"0.71em",fill:X_,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},g0=g.forwardRef((e,t)=>{var r=Hr(e,TH),n=r.x,i=r.y,o=r.lineHeight,s=r.capHeight,u=r.fill,d=r.scaleToFit,f=r.textAnchor,h=r.verticalAnchor,m=SE(r,kH),v=g.useMemo(()=>MH({breakAll:m.breakAll,children:m.children,maxLines:m.maxLines,scaleToFit:d,style:m.style,width:m.width}),[m.breakAll,m.children,m.maxLines,d,m.style,m.width]),x=m.dx,k=m.dy,S=m.angle,E=m.className,P=m.breakAll,O=SE(m,EH);if(!Cn(n)||!Cn(i)||v.length===0)return null;var j=Number(n)+(be(x)?x:0),_=Number(i)+(be(k)?k:0);if(!Fe(j)||!Fe(_))return null;var N;switch(h){case"start":N=av("calc(".concat(s,")"));break;case"middle":N=av("calc(".concat((v.length-1)/2," * -").concat(o," + (").concat(s," / 2))"));break;default:N=av("calc(".concat(v.length-1," * -").concat(o,")"));break}var C=[],D=v[0];if(d&&D!=null){var F=D.width,z=m.width;C.push("scale(".concat(be(z)&&be(F)?z/F:1,")"))}return S&&C.push("rotate(".concat(S,", ").concat(j,", ").concat(_,")")),C.length&&(O.transform=C.join(" ")),g.createElement("text",Sy({},Br(O),{ref:t,x:j,y:_,className:Qe("recharts-text",E),textAnchor:f,fill:u.includes("url")?X_:u}),v.map((q,X)=>{var B=q.words.join(P?"":" ");return g.createElement("tspan",{x:j,dy:X===0?N:o,key:"".concat(B,"-").concat(X)},B)}))});g0.displayName="Text";function OE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function gn(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,i=n===void 0?0:n,o=e.parentViewBox,s=fg(t),u=s.x,d=s.y,f=s.height,h=s.upperWidth,m=s.lowerWidth,v=u,x=u+(h-m)/2,k=(v+x)/2,S=(h+m)/2,E=v+h/2,P=f>=0?1:-1,O=P*i,j=P>0?"end":"start",_=P>0?"start":"end",N=h>=0?1:-1,C=N*i,D=N>0?"end":"start",F=N>0?"start":"end",z=o;if(r==="top"){var q={x:v+h/2,y:d-O,horizontalAnchor:"middle",verticalAnchor:j};return z&&(q.height=Math.max(d-z.y,0),q.width=h),q}if(r==="bottom"){var X={x:x+m/2,y:d+f+O,horizontalAnchor:"middle",verticalAnchor:_};return z&&(X.height=Math.max(z.y+z.height-(d+f),0),X.width=m),X}if(r==="left"){var B={x:k-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"};return z&&(B.width=Math.max(B.x-z.x,0),B.height=f),B}if(r==="right"){var ue={x:k+S+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"};return z&&(ue.width=Math.max(z.x+z.width-ue.x,0),ue.height=f),ue}var Y=z?{width:S,height:f}:{};return r==="insideLeft"?gn({x:k+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"},Y):r==="insideRight"?gn({x:k+S-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"},Y):r==="insideTop"?gn({x:v+h/2,y:d+O,horizontalAnchor:"middle",verticalAnchor:_},Y):r==="insideBottom"?gn({x:x+m/2,y:d+f-O,horizontalAnchor:"middle",verticalAnchor:j},Y):r==="insideTopLeft"?gn({x:v+C,y:d+O,horizontalAnchor:F,verticalAnchor:_},Y):r==="insideTopRight"?gn({x:v+h-C,y:d+O,horizontalAnchor:D,verticalAnchor:_},Y):r==="insideBottomLeft"?gn({x:x+C,y:d+f-O,horizontalAnchor:F,verticalAnchor:j},Y):r==="insideBottomRight"?gn({x:x+m-C,y:d+f-O,horizontalAnchor:D,verticalAnchor:j},Y):r&&typeof r=="object"&&(be(r.x)||Ha(r.x))&&(be(r.y)||Ha(r.y))?gn({x:u+ea(r.x,S),y:d+ea(r.y,f),horizontalAnchor:"end",verticalAnchor:"end"},Y):gn({x:E,y:d+f/2,horizontalAnchor:"middle",verticalAnchor:"middle"},Y)},zH=["labelRef"],FH=["content"];function CE(e,t){if(e==null)return{};var r,n,i=BH(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,i=e.lowerWidth,o=e.width,s=e.height,u=e.children,d=g.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:i,width:o,height:s}),[t,r,n,i,o,s]);return g.createElement(Z_.Provider,{value:d},u)},J_=()=>{var e=g.useContext(Z_),t=eh();return e||(t?fg(t):void 0)},VH=g.createContext(null),qH=()=>{var e=g.useContext(VH),t=ke(U2);return e||t},GH=e=>{var t=e.value,r=e.formatter,n=Ut(e.children)?t:e.children;return typeof r=="function"?r(n):n},x0=e=>e!=null&&typeof e=="function",YH=(e,t)=>{var r=Lr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},QH=(e,t,r,n,i)=>{var o=e.offset,s=e.className,u=i.cx,d=i.cy,f=i.innerRadius,h=i.outerRadius,m=i.startAngle,v=i.endAngle,x=i.clockWise,k=(f+h)/2,S=YH(m,v),E=S>=0?1:-1,P,O;switch(t){case"insideStart":P=m+E*o,O=x;break;case"insideEnd":P=v-E*o,O=!x;break;case"end":P=v+E*o,O=x;break;default:throw new Error("Unsupported position ".concat(t))}O=S<=0?O:!O;var j=Bt(u,d,k,P),_=Bt(u,d,k,P+(O?1:-1)*359),N="M".concat(j.x,",").concat(j.y,` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w6(e,t){if(e){if(typeof e=="string")return ZS(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ZS(e,t):void 0}}function ZS(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.e^o.s<0?1:-1;for(n=o.d.length,i=e.d.length,t=0,r=ne.d[t]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};ve.decimalPlaces=ve.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*rt;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};ve.dividedBy=ve.div=function(e){return 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):(it=!1,t=Jn(au(r,o),au(e,o),o),it=!0,Ge(t,i))};ve.minus=ve.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_2(t,e):O2(t,(e.s=-e.s,e))};ve.modulo=ve.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Wr+"NaN");return r.s?(it=!1,t=Jn(r,e,0,1).times(e),it=!0,r.minus(t)):Ge(new n(r),i)};ve.naturalExponential=ve.exp=function(){return C2(this)};ve.naturalLogarithm=ve.ln=function(){return au(this)};ve.negated=ve.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};ve.plus=ve.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O2(t,e):_2(t,(e.s=-e.s,e))};ve.precision=ve.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(za+e);if(t=gt(i)+1,n=i.d.length-1,r=n*rt+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};ve.squareRoot=ve.sqrt=function(){var e,t,r,n,i,o,s,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Wr+"NaN")}for(e=gt(u),it=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=En(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Pl((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 it=!0,Ge(n,r)};ve.times=ve.mul=function(e){var t,r,n,i,o,s,u,d,f,h=this,m=h.constructor,v=h.d,x=(e=new m(e)).d;if(!h.s||!e.s)return new m(0);for(e.s*=h.s,r=h.e+e.e,d=v.length,f=x.length,d=0;){for(t=0,i=d+n;i>n;)u=o[i]+x[n]*v[i-n-1]+t,o[i--]=u%jt|0,t=u/jt|0;o[i]=(o[i]+t)%jt|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,it?Ge(e,m.precision):e};ve.toDecimalPlaces=ve.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(jn(e,0,El),t===void 0?t=n.rounding:jn(t,0,8),Ge(r,e+gt(r)+1,t))};ve.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=qa(n,!0):(jn(e,0,El),t===void 0?t=i.rounding:jn(t,0,8),n=Ge(new i(n),e+1,t),r=qa(n,!0,e+1)),r};ve.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?qa(i):(jn(e,0,El),t===void 0?t=o.rounding:jn(t,0,8),n=Ge(new o(i),e+gt(i)+1,t),r=qa(n.abs(),!1,e+gt(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};ve.toInteger=ve.toint=function(){var e=this,t=e.constructor;return Ge(new t(e),gt(e)+1,t.rounding)};ve.toNumber=function(){return+this};ve.toPower=ve.pow=function(e){var t,r,n,i,o,s,u=this,d=u.constructor,f=12,h=+(e=new d(e));if(!e.s)return new d(Pr);if(u=new d(u),!u.s){if(e.s<1)throw Error(Wr+"Infinity");return u}if(u.eq(Pr))return u;if(n=d.precision,e.eq(Pr))return Ge(u,n);if(t=e.e,r=e.d.length-1,s=t>=r,o=u.s,s){if((r=h<0?-h:h)<=A2){for(i=new d(Pr),t=Math.ceil(n/rt+4),it=!1;r%2&&(i=i.times(u),tk(i.d,t)),r=Pl(r/2),r!==0;)u=u.times(u),tk(u.d,t);return it=!0,e.s<0?new d(Pr).div(i):Ge(i,n)}}else if(o<0)throw Error(Wr+"NaN");return o=o<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,it=!1,i=e.times(au(u,n+f)),it=!0,i=C2(i),i.s=o,i};ve.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?(r=gt(i),n=qa(i,r<=o.toExpNeg||r>=o.toExpPos)):(jn(e,1,El),t===void 0?t=o.rounding:jn(t,0,8),i=Ge(new o(i),e,t),r=gt(i),n=qa(i,e<=r||r<=o.toExpNeg,e)),n};ve.toSignificantDigits=ve.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(jn(e,1,El),t===void 0?t=n.rounding:jn(t,0,8)),Ge(new n(r),e,t)};ve.toString=ve.valueOf=ve.val=ve.toJSON=ve[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gt(e),r=e.constructor;return qa(e,t<=r.toExpNeg||t>=r.toExpPos)};function O2(e,t){var r,n,i,o,s,u,d,f,h=e.constructor,m=h.precision;if(!e.s||!t.s)return t.s||(t=new h(e)),it?Ge(t,m):t;if(d=e.d,f=t.d,s=e.e,i=t.e,d=d.slice(),o=s-i,o){for(o<0?(n=d,o=-o,u=f.length):(n=f,i=s,u=d.length),s=Math.ceil(m/rt),u=s>u?s+1:u+1,o>u&&(o=u,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(u=d.length,o=f.length,u-o<0&&(o=u,n=f,f=d,d=n),r=0;o;)r=(d[--o]=d[o]+f[o]+r)/jt|0,d[o]%=jt;for(r&&(d.unshift(r),++i),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=i,it?Ge(t,m):t}function jn(e,t,r){if(e!==~~e||er)throw Error(za+e)}function En(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;ts?1:-1;else for(u=d=0;ui[u]?1:-1;break}return d}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var u,d,f,h,m,v,x,k,S,E,P,O,j,_,N,C,D,F,z=n.constructor,q=n.s==i.s?1:-1,X=n.d,B=i.d;if(!n.s)return new z(n);if(!i.s)throw Error(Wr+"Division by zero");for(d=n.e-i.e,D=B.length,N=X.length,x=new z(q),k=x.d=[],f=0;B[f]==(X[f]||0);)++f;if(B[f]>(X[f]||0)&&--d,o==null?O=o=z.precision:s?O=o+(gt(n)-gt(i))+1:O=o,O<0)return new z(0);if(O=O/rt+2|0,f=0,D==1)for(h=0,B=B[0],O++;(f1&&(B=e(B,h),X=e(X,h),D=B.length,N=X.length),_=D,S=X.slice(0,D),E=S.length;E=jt/2&&++C;do h=0,u=t(B,S,D,E),u<0?(P=S[0],D!=E&&(P=P*jt+(S[1]||0)),h=P/C|0,h>1?(h>=jt&&(h=jt-1),m=e(B,h),v=m.length,E=S.length,u=t(m,S,v,E),u==1&&(h--,r(m,D16)throw Error(gg+gt(e));if(!e.s)return new h(Pr);for(it=!1,u=m,s=new h(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(n=Math.log(Sa(2,f))/Math.LN10*2+5|0,u+=n,r=i=o=new h(Pr),h.precision=u;;){if(i=Ge(i.times(e),u),r=r.times(++d),s=o.plus(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?(it=!0,Ge(o,m)):o}o=s}}function gt(e){for(var t=e.e*rt,r=e.d[0];r>=10;r/=10)t++;return t}function Ym(e,t,r){if(t>e.LN10.sd())throw it=!0,r&&(e.precision=r),Error(Wr+"LN10 precision limit exceeded");return Ge(new e(e.LN10),t)}function $i(e){for(var t="";e--;)t+="0";return t}function au(e,t){var r,n,i,o,s,u,d,f,h,m=1,v=10,x=e,k=x.d,S=x.constructor,E=S.precision;if(x.s<1)throw Error(Wr+(x.s?"NaN":"-Infinity"));if(x.eq(Pr))return new S(0);if(t==null?(it=!1,f=E):f=t,x.eq(10))return t==null&&(it=!0),Ym(S,f);if(f+=v,S.precision=f,r=En(k),n=r.charAt(0),o=gt(x),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)x=x.times(e),r=En(x.d),n=r.charAt(0),m++;o=gt(x),n>1?(x=new S("0."+r),o++):x=new S(n+"."+r.slice(1))}else return d=Ym(S,f+2,E).times(o+""),x=au(new S(n+"."+r.slice(1)),f-v).plus(d),S.precision=E,t==null?(it=!0,Ge(x,E)):x;for(u=s=x=Jn(x.minus(Pr),x.plus(Pr),f),h=Ge(x.times(x),f),i=3;;){if(s=Ge(s.times(h),f),d=u.plus(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(Ym(S,f+2,E).times(o+""))),u=Jn(u,new S(m),f),S.precision=E,t==null?(it=!0,Ge(u,E)):u;u=d,i+=2}}function ek(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Pl(r/rt),e.d=[],n=(r+1)%rt,r<0&&(n+=rt),nZd||e.e<-Zd))throw Error(gg+r)}else e.s=0,e.e=0,e.d=[0];return e}function Ge(e,t,r){var n,i,o,s,u,d,f,h,m=e.d;for(s=1,o=m[0];o>=10;o/=10)s++;if(n=t-s,n<0)n+=rt,i=t,f=m[h=0];else{if(h=Math.ceil((n+1)/rt),o=m.length,h>=o)return e;for(f=o=m[h],s=1;o>=10;o/=10)s++;n%=rt,i=n-rt+s}if(r!==void 0&&(o=Sa(10,s-i-1),u=f/o%10|0,d=t<0||m[h+1]!==void 0||f%o,d=r<4?(u||d)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||d||r==6&&(n>0?i>0?f/Sa(10,s-i):0:m[h-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return d?(o=gt(e),m.length=1,t=t-o-1,m[0]=Sa(10,(rt-t%rt)%rt),e.e=Pl(-t/rt)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(n==0?(m.length=h,o=1,h--):(m.length=h+1,o=Sa(10,rt-n),m[h]=i>0?(f/Sa(10,s-i)%Sa(10,i)|0)*o:0),d)for(;;)if(h==0){(m[0]+=o)==jt&&(m[0]=1,++e.e);break}else{if(m[h]+=o,m[h]!=jt)break;m[h--]=0,o=1}for(n=m.length;m[--n]===0;)m.pop();if(it&&(e.e>Zd||e.e<-Zd))throw Error(gg+gt(e));return e}function _2(e,t){var r,n,i,o,s,u,d,f,h,m,v=e.constructor,x=v.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new v(e),it?Ge(t,x):t;if(d=e.d,m=t.d,n=t.e,f=e.e,d=d.slice(),s=f-n,s){for(h=s<0,h?(r=d,s=-s,u=m.length):(r=m,n=f,u=d.length),i=Math.max(Math.ceil(x/rt),u)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=d.length,u=m.length,h=i0;--i)d[u++]=0;for(i=m.length;i>s;){if(d[--i]0?o=o.charAt(0)+"."+o.slice(1)+$i(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+$i(-i-1)+o,r&&(n=r-s)>0&&(o+=$i(n))):i>=s?(o+=$i(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+$i(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=$i(n))),e.s<0?"-"+o:o}function tk(e,t){if(e.length>t)return e.length=t,!0}function j2(e){var t,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(za+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return ek(s,o.toString())}else if(typeof o!="string")throw Error(za+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,A6.test(o))ek(s,o);else throw Error(za+o)}if(i.prototype=ve,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j2,i.config=i.set=O6,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(za+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(za+r+": "+n);return this}var xg=j2(P6);Pr=new xg(1);const Ue=xg;function N2(e){var t;return e===0?t=1:t=Math.floor(new Ue(e).abs().log(10).toNumber())+1,t}function I2(e,t,r){for(var n=new Ue(e),i=0,o=[];n.lt(t)&&i<1e5;)o.push(n.toNumber()),n=n.add(r),i++;return o}function ou(e,t){return N6(e)||j6(e,t)||_6(e,t)||C6()}function C6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _6(e,t){if(e){if(typeof e=="string")return rk(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rk(e,t):void 0}}function rk(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=ou(e,2),r=t[0],n=t[1],i=r,o=n;return r>n&&(i=n,o=r),[i,o]},bg=(e,t,r)=>{if(e.lte(0))return new Ue(0);var n=N2(e.toNumber()),i=new Ue(10).pow(n),o=e.div(i),s=n!==1?.05:.1,u=new Ue(Math.ceil(o.div(s).toNumber())).add(r).mul(s),d=u.mul(i);return t?new Ue(d.toNumber()):new Ue(Math.ceil(d.toNumber()))},T2=(e,t,r)=>{var n;if(e.lte(0))return new Ue(0);var i=[1,2,2.5,5],o=e.toNumber(),s=Math.floor(new Ue(o).abs().log(10).toNumber()),u=new Ue(10).pow(s),d=e.div(u).toNumber(),f=i.findIndex(x=>x>=d-1e-10);if(f===-1&&(u=u.mul(10),f=0),f+=r,f>=i.length){var h=Math.floor(f/i.length);f%=i.length,u=u.mul(new Ue(10).pow(h))}var m=(n=i[f])!==null&&n!==void 0?n:1,v=new Ue(m).mul(u);return t?v:new Ue(Math.ceil(v.toNumber()))},I6=(e,t,r)=>{var n=new Ue(1),i=new Ue(e);if(!i.isint()&&r){var o=Math.abs(e);o<1?(n=new Ue(10).pow(N2(e)-1),i=new Ue(Math.floor(i.div(n).toNumber())).mul(n)):o>1&&(i=new Ue(Math.floor(e)))}else e===0?i=new Ue(Math.floor((t-1)/2)):r||(i=new Ue(Math.floor(e)));for(var s=Math.floor((t-1)/2),u=[],d=0;d4&&arguments[4]!==void 0?arguments[4]:0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:bg;if(!Number.isFinite((r-t)/(n-1)))return{step:new Ue(0),tickMin:new Ue(0),tickMax:new Ue(0)};var u=s(new Ue(r).sub(t).div(n-1),i,o),d;t<=0&&r>=0?d=new Ue(0):(d=new Ue(t).add(r).div(2),d=d.sub(new Ue(d).mod(u)));var f=Math.ceil(d.sub(t).div(u).toNumber()),h=Math.ceil(new Ue(r).sub(d).div(u).toNumber()),m=f+h+1;return m>n?D2(t,r,n,i,o+1,s):(m0?h+(n-m):h,f=r>0?f:f+(n-m)),{step:u,tickMin:d.sub(new Ue(f).mul(u)),tickMax:d.add(new Ue(h).mul(u))})},nk=function(t){var r=ou(t,2),n=r[0],i=r[1],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=Math.max(o,2),f=M2([n,i]),h=ou(f,2),m=h[0],v=h[1];if(m===-1/0||v===1/0){var x=v===1/0?[m,...Array(o-1).fill(1/0)]:[...Array(o-1).fill(-1/0),v];return n>i?x.reverse():x}if(m===v)return I6(m,o,s);var k=u==="snap125"?T2:bg,S=D2(m,v,d,s,0,k),E=S.step,P=S.tickMin,O=S.tickMax,j=I2(P,O.add(new Ue(.1).mul(E)),E);return n>i?j.reverse():j},ik=function(t,r){var n=ou(t,2),i=n[0],o=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",d=M2([i,o]),f=ou(d,2),h=f[0],m=f[1];if(h===-1/0||m===1/0)return[i,o];if(h===m)return[h];var v=u==="snap125"?T2:bg,x=Math.max(r,2),k=v(new Ue(m).sub(h).div(x-1),s,0),S=[...I2(new Ue(h),new Ue(m),k),m];return s===!1&&(S=S.map(E=>Math.round(E))),i>o?S.reverse():S},M6=e=>e.rootProps.barCategoryGap,oh=e=>e.rootProps.stackOffset,R2=e=>e.rootProps.reverseStackOrder,wg=e=>e.options.chartName,Sg=e=>e.rootProps.syncId,$2=e=>e.rootProps.syncMethod,kg=e=>e.options.eventEmitter,T6=e=>e.rootProps.baseValue,rr={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},va={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},yn={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},lh=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function sh(e,t,r){if(r!=="auto")return r;if(e!=null)return Mn(e,t)?"category":"number"}function ak(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Jd(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Eg=H([L6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"angleAxis",ok.type))!==null&&r!==void 0?r:"category";return Jd(Jd({},ok),{},{type:n})}),z6=(e,t)=>e.polarAxis.radiusAxis[t],Pg=H([z6,l2],(e,t)=>{var r;if(e!=null)return e;var n=(r=sh(t,"radiusAxis",lk.type))!==null&&r!==void 0?r:"category";return Jd(Jd({},lk),{},{type:n})}),uh=e=>e.polarOptions,Ag=H([ai,oi,Ht],a6),L2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.innerRadius,t,0)}),z2=H([uh,Ag],(e,t)=>{if(e!=null)return ea(e.outerRadius,t,t*.8)}),F6=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},F2=H([uh],F6);H([Eg,F2],lh);var B2=H([Ag,L2,z2],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});H([Pg,B2],lh);var U2=H([ot,uh,L2,z2,ai,oi],(e,t,r,n,i,o)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var s=t.cx,u=t.cy,d=t.startAngle,f=t.endAngle;return{cx:ea(s,i,i/2),cy:ea(u,o,o/2),innerRadius:r,outerRadius:n,startAngle:d,endAngle:f,clockWise:!1}}}),It=(e,t)=>t,ch=(e,t,r)=>r;function Og(e){return e==null?void 0:e.id}function W2(e,t,r){var n=t.chartData,i=n===void 0?[]:n,o=r.allowDuplicatedCategory,s=r.dataKey,u=new Map;return e.forEach(d=>{var f,h=(f=d.data)!==null&&f!==void 0?f:i;if(!(h==null||h.length===0)){var m=Og(d);h.forEach((v,x)=>{var k=s==null||o?x:String(Nt(v,s,null)),S=Nt(v,d.dataKey,0),E;u.has(k)?E=u.get(k):E={},Object.assign(E,{[m]:S}),u.set(k,E)})}}),Array.from(u.values())}function Cg(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var dh=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function fh(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function B6(e,t){if(e.length===t.length){for(var r=0;r{var t=ot(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Al=e=>e.tooltip.settings.axisId;function _g(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),i=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(o){function s(){return o.apply(this,arguments)}return s.toString=function(){return o.toString()},s})(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(o){var s=i[0],u=i[1];return s<=u?o>=s&&o<=u:o>=u&&o<=s},bandwidth:r?()=>r.call(e):void 0,ticks:t?o=>t.call(e,o):void 0,map:(o,s)=>{var u=e(o);if(u!=null){if(e.bandwidth&&s!==null&&s!==void 0&&s.position){var d=e.bandwidth();switch(s.position){case"middle":u+=d/2;break;case"end":u+=d;break}}return u}}}}}var U6=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!Pn(t)){for(var r,n,i=0;in)&&(n=o))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};function Xi(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function W6(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function jg(e){let t,r,n;e.length!==2?(t=Xi,r=(u,d)=>Xi(e(u),d),n=(u,d)=>e(u)-d):(t=e===Xi||e===W6?e:H6,r=e,n=e);function i(u,d,f=0,h=u.length){if(f>>1;r(u[m],d)<0?f=m+1:h=m}while(f>>1;r(u[m],d)<=0?f=m+1:h=m}while(ff&&n(u[m-1],d)>-n(u[m],d)?m-1:m}return{left:i,center:s,right:o}}function H6(){return 0}function H2(e){return e===null?NaN:+e}function*K6(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const V6=jg(Xi),Cu=V6.right;jg(H2).center;class sk extends Map{constructor(t,r=Y6){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(uk(this,t))}has(t){return super.has(uk(this,t))}set(t,r){return super.set(q6(this,t),r)}delete(t){return super.delete(G6(this,t))}}function uk({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function q6({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function G6({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function Y6(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Q6(e=Xi){if(e===Xi)return K2;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function K2(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const X6=Math.sqrt(50),Z6=Math.sqrt(10),J6=Math.sqrt(2);function ef(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),s=o>=X6?10:o>=Z6?5:o>=J6?2:1;let u,d,f;return i<0?(f=Math.pow(10,-i)/s,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,i)*s,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const n=t=i))return[];const u=o-i+1,d=new Array(u);if(n)if(s<0)for(let f=0;f=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r=i)&&(r=i)}return r}function dk(e,t){let r;if(t===void 0)for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of e)(i=t(i,++n,e))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function V2(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?K2:Q6(i);n>r;){if(n-r>600){const d=n-r+1,f=t-r+1,h=Math.log(d),m=.5*Math.exp(2*h/3),v=.5*Math.sqrt(h*m*(d-m)/d)*(f-d/2<0?-1:1),x=Math.max(r,Math.floor(t-f*m/d+v)),k=Math.min(n,Math.floor(t+(d-f)*m/d+v));V2(e,t,x,k,i)}const o=e[t];let s=r,u=n;for(js(e,r,t),i(e[n],o)>0&&js(e,r,n);s0;)--u}i(e[r],o)===0?js(e,r,u):(++u,js(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function js(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function e8(e,t,r){if(e=Float64Array.from(K6(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return dk(e);if(t>=1)return ck(e);var n,i=(n-1)*t,o=Math.floor(i),s=ck(V2(e,o).subarray(0,o+1)),u=dk(e.subarray(o+1));return s+(u-s)*(i-o)}}function t8(e,t,r=H2){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,o=Math.floor(i),s=+r(e[o],o,e),u=+r(e[o+1],o+1,e);return s+(u-s)*(i-o)}}function r8(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,o=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?cd(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?cd(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=a8.exec(e))?new vr(t[1],t[2],t[3],1):(t=o8.exec(e))?new vr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=l8.exec(e))?cd(t[1],t[2],t[3],t[4]):(t=s8.exec(e))?cd(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=u8.exec(e))?gk(t[1],t[2]/100,t[3]/100,1):(t=c8.exec(e))?gk(t[1],t[2]/100,t[3]/100,t[4]):fk.hasOwnProperty(e)?mk(fk[e]):e==="transparent"?new vr(NaN,NaN,NaN,0):null}function mk(e){return new vr(e>>16&255,e>>8&255,e&255,1)}function cd(e,t,r,n){return n<=0&&(e=t=r=NaN),new vr(e,t,r,n)}function h8(e){return e instanceof _u||(e=uu(e)),e?(e=e.rgb(),new vr(e.r,e.g,e.b,e.opacity)):new vr}function vy(e,t,r,n){return arguments.length===1?h8(e):new vr(e,t,r,n??1)}function vr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Mg(vr,vy,G2(_u,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?lu:Math.pow(lu,e),new vr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new vr(Fa(this.r),Fa(this.g),Fa(this.b),rf(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vk,formatHex:vk,formatHex8:p8,formatRgb:yk,toString:yk}));function vk(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}`}function p8(){return`#${Aa(this.r)}${Aa(this.g)}${Aa(this.b)}${Aa((isNaN(this.opacity)?1:this.opacity)*255)}`}function yk(){const e=rf(this.opacity);return`${e===1?"rgb(":"rgba("}${Fa(this.r)}, ${Fa(this.g)}, ${Fa(this.b)}${e===1?")":`, ${e})`}`}function rf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Fa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Aa(e){return e=Fa(e),(e<16?"0":"")+e.toString(16)}function gk(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new an(e,t,r,n)}function Y2(e){if(e instanceof an)return new an(e.h,e.s,e.l,e.opacity);if(e instanceof _u||(e=uu(e)),!e)return new an;if(e instanceof an)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=NaN,u=o-i,d=(o+i)/2;return u?(t===o?s=(r-n)/u+(r0&&d<1?0:s,new an(s,u,d,e.opacity)}function m8(e,t,r,n){return arguments.length===1?Y2(e):new an(e,t,r,n??1)}function an(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Mg(an,m8,G2(_u,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new an(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?lu:Math.pow(lu,e),new an(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new vr(Qm(e>=240?e-240:e+120,i,n),Qm(e,i,n),Qm(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new an(xk(this.h),dd(this.s),dd(this.l),rf(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=rf(this.opacity);return`${e===1?"hsl(":"hsla("}${xk(this.h)}, ${dd(this.s)*100}%, ${dd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xk(e){return e=(e||0)%360,e<0?e+360:e}function dd(e){return Math.max(0,Math.min(1,e||0))}function Qm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Tg=e=>()=>e;function v8(e,t){return function(r){return e+r*t}}function y8(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function g8(e){return(e=+e)==1?Q2:function(t,r){return r-t?y8(t,r,e):Tg(isNaN(t)?r:t)}}function Q2(e,t){var r=t-e;return r?v8(e,r):Tg(isNaN(e)?t:e)}const bk=(function e(t){var r=g8(t);function n(i,o){var s=r((i=vy(i)).r,(o=vy(o)).r),u=r(i.g,o.g),d=r(i.b,o.b),f=Q2(i.opacity,o.opacity);return function(h){return i.r=s(h),i.g=u(h),i.b=d(h),i.opacity=f(h),i+""}}return n.gamma=e,n})(1);function x8(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(o){for(i=0;ir&&(o=t.slice(r,o),u[s]?u[s]+=o:u[++s]=o),(n=n[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,d.push({i:s,x:nf(n,i)})),r=Xm.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function j8(e,t,r){var n=e[0],i=e[1],o=t[0],s=t[1];return i2?N8:j8,d=f=null,m}function m(v){return v==null||isNaN(v=+v)?o:(d||(d=u(e.map(n),t,r)))(n(s(v)))}return m.invert=function(v){return s(i((f||(f=u(t,e.map(n),nf)))(v)))},m.domain=function(v){return arguments.length?(e=Array.from(v,af),h()):e.slice()},m.range=function(v){return arguments.length?(t=Array.from(v),h()):t.slice()},m.rangeRound=function(v){return t=Array.from(v),r=Dg,h()},m.clamp=function(v){return arguments.length?(s=v?!0:nr,h()):s!==nr},m.interpolate=function(v){return arguments.length?(r=v,h()):r},m.unknown=function(v){return arguments.length?(o=v,m):o},function(v,x){return n=v,i=x,h()}}function Rg(){return hh()(nr,nr)}function I8(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function of(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 hl(e){return e=of(Math.abs(e)),e?e[1]:NaN}function M8(e,t){return function(r,n){for(var i=r.length,o=[],s=0,u=e[0],d=0;i>0&&u>0&&(d+u+1>n&&(u=Math.max(1,n-d)),o.push(r.substring(i-=u,i+u)),!((d+=u+1)>n));)u=e[s=(s+1)%e.length];return o.reverse().join(t)}}function T8(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var D8=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cu(e){if(!(t=D8.exec(e)))throw new Error("invalid format: "+e);var t;return new $g({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}cu.prototype=$g.prototype;function $g(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}$g.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function R8(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var lf;function $8(e,t){var r=of(e,t);if(!r)return lf=void 0,e.toPrecision(t);var n=r[0],i=r[1],o=i-(lf=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")+of(e,Math.max(0,t+o-1))[0]}function Sk(e,t){var r=of(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const kk={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:I8,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Sk(e*100,t),r:Sk,s:$8,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ek(e){return e}var Pk=Array.prototype.map,Ak=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function L8(e){var t=e.grouping===void 0||e.thousands===void 0?Ek:M8(Pk.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Ek:T8(Pk.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(m,v){m=cu(m);var x=m.fill,k=m.align,S=m.sign,E=m.symbol,P=m.zero,O=m.width,j=m.comma,_=m.precision,N=m.trim,C=m.type;C==="n"?(j=!0,C="g"):kk[C]||(_===void 0&&(_=12),N=!0,C="g"),(P||x==="0"&&k==="=")&&(P=!0,x="0",k="=");var D=(v&&v.prefix!==void 0?v.prefix:"")+(E==="$"?r:E==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),F=(E==="$"?n:/[%p]/.test(C)?s:"")+(v&&v.suffix!==void 0?v.suffix:""),z=kk[C],q=/[defgprs%]/.test(C);_=_===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function X(B){var ue=D,Y=F,le,fe,de;if(C==="c")Y=z(B)+Y,B="";else{B=+B;var K=B<0||1/B<0;if(B=isNaN(B)?d:z(Math.abs(B),_),N&&(B=R8(B)),K&&+B==0&&S!=="+"&&(K=!1),ue=(K?S==="("?S:u:S==="-"||S==="("?"":S)+ue,Y=(C==="s"&&!isNaN(B)&&lf!==void 0?Ak[8+lf/3]:"")+Y+(K&&S==="("?")":""),q){for(le=-1,fe=B.length;++lede||de>57){Y=(de===46?i+B.slice(le+1):B.slice(le))+Y,B=B.slice(0,le);break}}}j&&!P&&(B=t(B,1/0));var ie=ue.length+B.length+Y.length,Q=ie>1)+ue+B+Y+Q.slice(ie);break;default:B=Q+ue+B+Y;break}return o(B)}return X.toString=function(){return m+""},X}function h(m,v){var x=Math.max(-8,Math.min(8,Math.floor(hl(v)/3)))*3,k=Math.pow(10,-x),S=f((m=cu(m),m.type="f",m),{suffix:Ak[8+x/3]});return function(E){return S(k*E)}}return{format:f,formatPrefix:h}}var fd,Lg,X2;z8({thousands:",",grouping:[3],currency:["$",""]});function z8(e){return fd=L8(e),Lg=fd.format,X2=fd.formatPrefix,fd}function F8(e){return Math.max(0,-hl(Math.abs(e)))}function B8(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(hl(t)/3)))*3-hl(Math.abs(e)))}function U8(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,hl(t)-hl(e))+1}function Z2(e,t,r,n){var i=py(e,t,r),o;switch(n=cu(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(o=B8(i,s))&&(n.precision=o),X2(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=U8(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=F8(i))&&(n.precision=o-(n.type==="%")*2);break}}return Lg(n)}function ta(e){var t=e.domain;return e.ticks=function(r){var n=t();return fy(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return Z2(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,o=n.length-1,s=n[i],u=n[o],d,f,h=10;for(u0;){if(f=hy(s,u,r),f===d)return n[i]=s,n[o]=u,t(n);if(f>0)s=Math.floor(s/f)*f,u=Math.ceil(u/f)*f;else if(f<0)s=Math.ceil(s*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function J2(){var e=Rg();return e.copy=function(){return ju(e,J2())},Kr.apply(e,arguments),ta(e)}function eC(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,af),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,af):[0,1],ta(r)}function tC(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],o=e[n],s;return oMath.pow(e,t)}function q8(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function _k(e){return(t,r)=>-e(-t,r)}function zg(e){const t=e(Ok,Ck),r=t.domain;let n=10,i,o;function s(){return i=q8(n),o=V8(n),r()[0]<0?(i=_k(i),o=_k(o),e(W8,H8)):e(Ok,Ck),t}return t.base=function(u){return arguments.length?(n=+u,s()):n},t.domain=function(u){return arguments.length?(r(u),s()):r()},t.ticks=u=>{const d=r();let f=d[0],h=d[d.length-1];const m=h0){for(;v<=x;++v)for(k=1;kh)break;P.push(S)}}else for(;v<=x;++v)for(k=n-1;k>=1;--k)if(S=v>0?k/o(-v):k*o(v),!(Sh)break;P.push(S)}P.length*2{if(u==null&&(u=10),d==null&&(d=n===10?"s":","),typeof d!="function"&&(!(n%1)&&(d=cu(d)).precision==null&&(d.trim=!0),d=Lg(d)),u===1/0)return d;const f=Math.max(1,n*u/t.ticks().length);return h=>{let m=h/o(Math.round(i(h)));return m*nr(tC(r(),{floor:u=>o(Math.floor(i(u))),ceil:u=>o(Math.ceil(i(u)))})),t}function rC(){const e=zg(hh()).domain([1,10]);return e.copy=()=>ju(e,rC()).base(e.base()),Kr.apply(e,arguments),e}function jk(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Nk(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Fg(e){var t=1,r=e(jk(t),Nk(t));return r.constant=function(n){return arguments.length?e(jk(t=+n),Nk(t)):t},ta(r)}function nC(){var e=Fg(hh());return e.copy=function(){return ju(e,nC()).constant(e.constant())},Kr.apply(e,arguments)}function Ik(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function G8(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Y8(e){return e<0?-e*e:e*e}function Bg(e){var t=e(nr,nr),r=1;function n(){return r===1?e(nr,nr):r===.5?e(G8,Y8):e(Ik(r),Ik(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},ta(t)}function Ug(){var e=Bg(hh());return e.copy=function(){return ju(e,Ug()).exponent(e.exponent())},Kr.apply(e,arguments),e}function Q8(){return Ug.apply(null,arguments).exponent(.5)}function Mk(e){return Math.sign(e)*e*e}function X8(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function iC(){var e=Rg(),t=[0,1],r=!1,n;function i(o){var s=X8(e(o));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(o){return e.invert(Mk(o))},i.domain=function(o){return arguments.length?(e.domain(o),i):e.domain()},i.range=function(o){return arguments.length?(e.range((t=Array.from(o,af)).map(Mk)),i):t.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(r=!!o,i):r},i.clamp=function(o){return arguments.length?(e.clamp(o),i):e.clamp()},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return iC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Kr.apply(i,arguments),ta(i)}function aC(){var e=[],t=[],r=[],n;function i(){var s=0,u=Math.max(1,t.length);for(r=new Array(u-1);++s0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[f-1],n[f]]},s.unknown=function(d){return arguments.length&&(o=d),s},s.thresholds=function(){return n.slice()},s.copy=function(){return oC().domain([e,t]).range(i).unknown(o)},Kr.apply(ta(s),arguments)}function lC(){var e=[.5],t=[0,1],r,n=1;function i(o){return o!=null&&o<=o?t[Cu(e,o,0,n)]:r}return i.domain=function(o){return arguments.length?(e=Array.from(o),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return lC().domain(e).range(t).unknown(r)},Kr.apply(i,arguments)}const Zm=new Date,Jm=new Date;function Et(e,t,r,n){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),u=i.ceil(o);return o-s(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,u)=>{const d=[];if(o=i.ceil(o),u=u==null?1:Math.floor(u),!(o0))return d;let f;do d.push(f=new Date(+o)),t(o,u),e(o);while(fEt(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,u)=>{if(s>=s)if(u<0)for(;++u<=0;)for(;t(s,-1),!o(s););else for(;--u>=0;)for(;t(s,1),!o(s););}),r&&(i.count=(o,s)=>(Zm.setTime(+o),Jm.setTime(+s),e(Zm),e(Jm),Math.floor(r(Zm,Jm))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(n?s=>n(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const sf=Et(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);sf.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):sf);sf.range;const Qn=1e3,Fr=Qn*60,Xn=Fr*60,ri=Xn*24,Wg=ri*7,Tk=ri*30,ev=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 Nu=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);Nu.range;const ph=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>e.getUTCDate()-1);ph.range;const sC=Et(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ri,e=>Math.floor(e/ri));sC.range;function Za(e){return Et(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Fr)/Wg)}const mh=Za(0),uf=Za(1),Z8=Za(2),J8=Za(3),pl=Za(4),eB=Za(5),tB=Za(6);mh.range;uf.range;Z8.range;J8.range;pl.range;eB.range;tB.range;function Ja(e){return Et(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/Wg)}const vh=Ja(0),cf=Ja(1),rB=Ja(2),nB=Ja(3),ml=Ja(4),iB=Ja(5),aB=Ja(6);vh.range;cf.range;rB.range;nB.range;ml.range;iB.range;aB.range;const Gg=Et(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Gg.range;const Yg=Et(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Yg.range;const 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 uC(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,Tk],[t,3,3*Tk],[e,1,ev]];function u(f,h,m){const v=hE).right(s,v);if(x===s.length)return e.every(py(f/ev,h/ev,m));if(x===0)return sf.every(Math.max(py(f,h,m),1));const[k,S]=s[v/s[x-1][2]53)return null;"w"in ne||(ne.w=1),"Z"in ne?(Re=rv(Ns(ne.y,0,1)),Ee=Re.getUTCDay(),Re=Ee>4||Ee===0?cf.ceil(Re):cf(Re),Re=ph.offset(Re,(ne.V-1)*7),ne.y=Re.getUTCFullYear(),ne.m=Re.getUTCMonth(),ne.d=Re.getUTCDate()+(ne.w+6)%7):(Re=tv(Ns(ne.y,0,1)),Ee=Re.getDay(),Re=Ee>4||Ee===0?uf.ceil(Re):uf(Re),Re=Nu.offset(Re,(ne.V-1)*7),ne.y=Re.getFullYear(),ne.m=Re.getMonth(),ne.d=Re.getDate()+(ne.w+6)%7)}else("W"in ne||"U"in ne)&&("w"in ne||(ne.w="u"in ne?ne.u%7:"W"in ne?1:0),Ee="Z"in ne?rv(Ns(ne.y,0,1)).getUTCDay():tv(Ns(ne.y,0,1)).getDay(),ne.m=0,ne.d="W"in ne?(ne.w+6)%7+ne.W*7-(Ee+5)%7:ne.w+ne.U*7-(Ee+6)%7);return"Z"in ne?(ne.H+=ne.Z/100|0,ne.M+=ne.Z%100,rv(ne)):tv(ne)}}function F(Z,we,Pe,ne){for(var lt=0,Re=we.length,Ee=Pe.length,vt,or;lt=Ee)return-1;if(vt=we.charCodeAt(lt++),vt===37){if(vt=we.charAt(lt++),or=N[vt in Dk?we.charAt(lt++):vt],!or||(ne=or(Z,Pe,ne))<0)return-1}else if(vt!=Pe.charCodeAt(ne++))return-1}return ne}function z(Z,we,Pe){var ne=f.exec(we.slice(Pe));return ne?(Z.p=h.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function q(Z,we,Pe){var ne=x.exec(we.slice(Pe));return ne?(Z.w=k.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function X(Z,we,Pe){var ne=m.exec(we.slice(Pe));return ne?(Z.w=v.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function B(Z,we,Pe){var ne=P.exec(we.slice(Pe));return ne?(Z.m=O.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function ue(Z,we,Pe){var ne=S.exec(we.slice(Pe));return ne?(Z.m=E.get(ne[0].toLowerCase()),Pe+ne[0].length):-1}function Y(Z,we,Pe){return F(Z,t,we,Pe)}function le(Z,we,Pe){return F(Z,r,we,Pe)}function fe(Z,we,Pe){return F(Z,n,we,Pe)}function de(Z){return s[Z.getDay()]}function K(Z){return o[Z.getDay()]}function ie(Z){return d[Z.getMonth()]}function Q(Z){return u[Z.getMonth()]}function R(Z){return i[+(Z.getHours()>=12)]}function M(Z){return 1+~~(Z.getMonth()/3)}function J(Z){return s[Z.getUTCDay()]}function se(Z){return o[Z.getUTCDay()]}function te(Z){return d[Z.getUTCMonth()]}function ce(Z){return u[Z.getUTCMonth()]}function ye(Z){return i[+(Z.getUTCHours()>=12)]}function _e(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var we=C(Z+="",j);return we.toString=function(){return Z},we},parse:function(Z){var we=D(Z+="",!1);return we.toString=function(){return Z},we},utcFormat:function(Z){var we=C(Z+="",_);return we.toString=function(){return Z},we},utcParse:function(Z){var we=D(Z+="",!0);return we.toString=function(){return Z},we}}}var Dk={"-":"",_:" ",0:"0"},Tt=/^\s*\d+/,dB=/^%/,fB=/[\\^$*+?|[\]().{}]/g;function Ke(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",o=i.length;return n+(o[t.toLowerCase(),r]))}function pB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function mB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function vB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function yB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function gB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Rk(e,t,r){var n=Tt.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function $k(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function xB(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function bB(e,t,r){var n=Tt.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function wB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Lk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function SB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function zk(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function kB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function EB(e,t,r){var n=Tt.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function PB(e,t,r){var n=Tt.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function AB(e,t,r){var n=Tt.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function OB(e,t,r){var n=dB.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function CB(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function _B(e,t,r){var n=Tt.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function Fk(e,t){return Ke(e.getDate(),t,2)}function jB(e,t){return Ke(e.getHours(),t,2)}function NB(e,t){return Ke(e.getHours()%12||12,t,2)}function IB(e,t){return Ke(1+Nu.count(ni(e),e),t,3)}function cC(e,t){return Ke(e.getMilliseconds(),t,3)}function MB(e,t){return cC(e,t)+"000"}function TB(e,t){return Ke(e.getMonth()+1,t,2)}function DB(e,t){return Ke(e.getMinutes(),t,2)}function RB(e,t){return Ke(e.getSeconds(),t,2)}function $B(e){var t=e.getDay();return t===0?7:t}function LB(e,t){return Ke(mh.count(ni(e)-1,e),t,2)}function dC(e){var t=e.getDay();return t>=4||t===0?pl(e):pl.ceil(e)}function zB(e,t){return e=dC(e),Ke(pl.count(ni(e),e)+(ni(e).getDay()===4),t,2)}function FB(e){return e.getDay()}function BB(e,t){return Ke(uf.count(ni(e)-1,e),t,2)}function UB(e,t){return Ke(e.getFullYear()%100,t,2)}function WB(e,t){return e=dC(e),Ke(e.getFullYear()%100,t,2)}function HB(e,t){return Ke(e.getFullYear()%1e4,t,4)}function KB(e,t){var r=e.getDay();return e=r>=4||r===0?pl(e):pl.ceil(e),Ke(e.getFullYear()%1e4,t,4)}function VB(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ke(t/60|0,"0",2)+Ke(t%60,"0",2)}function Bk(e,t){return Ke(e.getUTCDate(),t,2)}function qB(e,t){return Ke(e.getUTCHours(),t,2)}function GB(e,t){return Ke(e.getUTCHours()%12||12,t,2)}function YB(e,t){return Ke(1+ph.count(ii(e),e),t,3)}function fC(e,t){return Ke(e.getUTCMilliseconds(),t,3)}function QB(e,t){return fC(e,t)+"000"}function XB(e,t){return Ke(e.getUTCMonth()+1,t,2)}function ZB(e,t){return Ke(e.getUTCMinutes(),t,2)}function JB(e,t){return Ke(e.getUTCSeconds(),t,2)}function eU(e){var t=e.getUTCDay();return t===0?7:t}function tU(e,t){return Ke(vh.count(ii(e)-1,e),t,2)}function hC(e){var t=e.getUTCDay();return t>=4||t===0?ml(e):ml.ceil(e)}function rU(e,t){return e=hC(e),Ke(ml.count(ii(e),e)+(ii(e).getUTCDay()===4),t,2)}function nU(e){return e.getUTCDay()}function iU(e,t){return Ke(cf.count(ii(e)-1,e),t,2)}function aU(e,t){return Ke(e.getUTCFullYear()%100,t,2)}function oU(e,t){return e=hC(e),Ke(e.getUTCFullYear()%100,t,2)}function lU(e,t){return Ke(e.getUTCFullYear()%1e4,t,4)}function sU(e,t){var r=e.getUTCDay();return e=r>=4||r===0?ml(e):ml.ceil(e),Ke(e.getUTCFullYear()%1e4,t,4)}function uU(){return"+0000"}function Uk(){return"%"}function Wk(e){return+e}function Hk(e){return Math.floor(+e/1e3)}var Mo,pC,mC;cU({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function cU(e){return Mo=cB(e),pC=Mo.format,Mo.parse,mC=Mo.utcFormat,Mo.utcParse,Mo}function dU(e){return new Date(e)}function fU(e){return e instanceof Date?+e:+new Date(+e)}function Qg(e,t,r,n,i,o,s,u,d,f){var h=Rg(),m=h.invert,v=h.domain,x=f(".%L"),k=f(":%S"),S=f("%I:%M"),E=f("%I %p"),P=f("%a %d"),O=f("%b %d"),j=f("%B"),_=f("%Y");function N(C){return(d(C)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,o)=>e8(e,o/n))},r.copy=function(){return xC(t).domain(e)},li.apply(r,arguments)}function gh(){var e=0,t=.5,r=1,n=1,i,o,s,u,d,f=nr,h,m=!1,v;function x(S){return isNaN(S=+S)?v:(S=.5+((S=+h(S))-o)*(n*S{if(e!=null){var n=e.scale,i=e.type;if(n==="auto")return i==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":i==="category"?"band":"linear";if(typeof n=="string")return xU(n)?n:"point"}};function bU(e,t){for(var r=0,n=e.length,i=e[0]t)?r=o+1:n=o}return r}function PC(e,t){if(e){var r=t??e.domain(),n=r.map(o=>{var s;return(s=e(o))!==null&&s!==void 0?s:0}),i=e.range();if(!(r.length===0||i.length<2))return o=>{var s,u,d=bU(n,o);if(d<=0)return r[0];if(d>=r.length)return r[r.length-1];var f=(s=n[d-1])!==null&&s!==void 0?s:0,h=(u=n[d])!==null&&u!==void 0?u:0;return Math.abs(o-f)<=Math.abs(o-h)?r[d-1]:r[d]}}}function wU(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):PC(e,void 0)}function Vk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function df(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],si=(e,t)=>{var r=OC(e,t);return r??St},kt={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:xy,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:ku},CC=(e,t)=>e.cartesianAxis.yAxis[t],ui=(e,t)=>{var r=CC(e,t);return r??kt},_U={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},e0=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??_U},ar=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"zAxis":return e0(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},jU=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Iu=(e,t,r)=>{switch(t){case"xAxis":return si(e,r);case"yAxis":return ui(e,r);case"angleAxis":return Eg(e,r);case"radiusAxis":return Pg(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},_C=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function jC(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var NC=e=>e.graphicalItems.cartesianItems,NU=H([It,ch],jC),IC=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),Cl=H([NC,ar,NU],IC,{memoizeOptions:{resultEqualityCheck:fh}}),MC=H([Cl],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Cg)),TC=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),IU=H([Cl],TC),DC=e=>e.map(t=>t.data).filter(Boolean).flat(1),MU=H([Cl],e=>e.some(t=>!t.data)),RC=H([Cl],DC,{memoizeOptions:{resultEqualityCheck:fh}}),$C=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,i=t.dataStartIndex,o=t.dataEndIndex;return e.length>0?e:n.slice(i,o+1)},t0=H([RC,ah],$C),TU=(e,t,r)=>(t==null?void 0:t.dataKey)!=null?e.map(n=>({value:Nt(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(i=>({value:Nt(i,n)}))):e.map(n=>({value:n})),LC=(e,t,r,n,i,o)=>{var s=n.chartData,u=s===void 0?[]:s,d=n.dataStartIndex,f=n.dataEndIndex,h=TU(e,t,r);if(i&&(t==null?void 0:t.dataKey)!=null&&o.length>0){var m=u.slice(d,f+1),v=m.map(x=>({value:Nt(x,t.dataKey)})).filter(x=>x.value!=null);return[...v,...h]}return h},Mu=H([t0,ar,Cl,ah,MU,RC],LC);function Yo(e){if(Cn(e)||e instanceof Date){var t=Number(e);if(Fe(t))return t}}function Gk(e){if(Array.isArray(e)){var t=[Yo(e[0]),Yo(e[1])];return Pn(t)?t:void 0}var r=Yo(e);if(r!=null)return[r,r]}function Nn(e){return e.map(Yo).filter(mr)}function DU(e,t){var r=Yo(e),n=Yo(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var RU=H([Mu],e=>e==null?void 0:e.map(t=>t.value).sort(DU));function zC(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function $U(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!On(t))n=t;else if(Array.isArray(t)){var i=Nn(t);i.length>0&&(n=Math.max(...i))}return n==null?[]:Nn(r.flatMap(o=>{var s=Nt(e,o.dataKey),u,d;if(Array.isArray(s)){var f=AC(s,2);u=f[0],d=f[1]}else u=d=s;if(!(!Fe(u)||!Fe(d)))return[n-u,n+d]}))}var Pt=e=>{var t=Mt(e),r=Al(e);return Iu(e,t,r)},vl=H([Pt],e=>e==null?void 0:e.dataKey),LU=H([MC,ah,Pt],W2),FC=(e,t,r,n)=>{var i={},o=t.reduce((s,u)=>{if(u.stackId==null)return s;var d=s[u.stackId];return d==null&&(d=[]),d.push(u),s[u.stackId]=d,s},i);return Object.fromEntries(Object.entries(o).map(s=>{var u=AC(s,2),d=u[0],f=u[1],h=n?[...f].reverse():f,m=h.map(Og);return[d,{stackedData:r4(e,m,r),graphicalItems:h}]}))},BC=H([LU,MC,oh,R2],FC),UC=(e,t,r,n)=>{var i=t.dataStartIndex,o=t.dataEndIndex;if(n==null&&r!=="zAxis")return o4(e,i,o)},zU=H([ar],e=>e.allowDataOverflow),r0=e=>{var t;if(e==null||!("domain"in e))return xy;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=Nn(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e==null?void 0:e.domain)!==null&&t!==void 0?t:xy},WC=H([ar],r0),HC=H([WC,zU],P2),FU=H([BC,un,It,HC],UC,{memoizeOptions:{resultEqualityCheck:dh}}),n0=e=>e.errorBars,BU=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>zC(r,n)),ff=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],u,d;if(n.length>0&&n.forEach(f=>{var h,m=f.data!=null?[...f.data]:s,v=(h=i[f.id])===null||h===void 0?void 0:h.filter(x=>zC(o,x));m.forEach(x=>{var k,S=Nt(x,(k=r.dataKey)!==null&&k!==void 0?k:f.dataKey),E=$U(x,S,v);if(E.length>=2){var P=Math.min(...E),O=Math.max(...E);(u==null||Pd)&&(d=O)}var j=Gk(S);j!=null&&(u=u==null?j[0]:Math.min(u,j[0]),d=d==null?j[1]:Math.max(d,j[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(f=>{var h=Gk(Nt(f,r.dataKey));h!=null&&(u=u==null?h[0]:Math.min(u,h[0]),d=d==null?h[1]:Math.max(d,h[1]))}),Fe(u)&&Fe(d))return[u,d]},UU=H([t0,ar,IU,n0,It,g6],KC,{memoizeOptions:{resultEqualityCheck:dh}});function WU(e){var t=e.value;if(Cn(t)||t instanceof Date)return t}var HU=(e,t,r)=>{var n=e.map(WU).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&rO(n))?E2(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},VC=e=>e.referenceElements.dots,_l=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),KU=H([VC,It,ch],_l),qC=e=>e.referenceElements.areas,VU=H([qC,It,ch],_l),GC=e=>e.referenceElements.lines,qU=H([GC,It,ch],_l),YC=(e,t)=>{if(e!=null){var r=Nn(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},GU=H(KU,It,YC),QC=(e,t)=>{if(e!=null){var r=Nn(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},YU=H([VU,It],QC);function QU(e){var t;if(e.x!=null)return Nn([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:Nn(r)}function XU(e){var t;if(e.y!=null)return Nn([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:Nn(r)}var XC=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?QU(n):XU(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},ZU=H([qU,It],XC),JU=H(GU,ZU,YU,(e,t,r)=>ff(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?ff(n,o,i):ff(o,i);return E6(t,f,e.allowDataOverflow)},e7=H([ar,WC,HC,FU,UU,JU,ot,It],ZC,{memoizeOptions:{resultEqualityCheck:dh}}),t7=[0,1],JC=(e,t,r,n,i,o,s)=>{if(!((e==null||r==null||r.length===0)&&s===void 0)){var u=e.dataKey,d=e.type,f=Mn(t,o);if(f&&u==null){var h;return E2(0,(h=r==null?void 0:r.length)!==null&&h!==void 0?h:0)}return d==="category"?HU(n,e,f):i==="expand"&&!f?t7:s}},i0=H([ar,ot,t0,Mu,oh,It,e7],JC),jl=H([ar,_C,wg],EC),e_=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var i=r0(t),o=Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&Pn(e)){if(o)return nk(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return ik(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(o&&Pn(e))return nk(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&Pn(e))return ik(e,t.tickCount,t.allowDecimals,"adaptive")}}},a0=H([i0,Iu,jl],e_),t_=(e,t,r,n)=>{if(n!=="angleAxis"&&(e==null?void 0:e.type)==="number"&&Pn(t)&&Array.isArray(r)&&r.length>0){var i,o,s=t[0],u=(i=r[0])!==null&&i!==void 0?i:0,d=t[1],f=(o=r[r.length-1])!==null&&o!==void 0?o:0;return[Math.min(s,u),Math.max(d,f)]}return t},r7=H([ar,i0,a0,It],t_),n7=H(Mu,ar,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(Nn(e.map(m=>m.value))).sort((m,v)=>m-v),i=n[0],o=n[n.length-1];if(i==null||o==null)return 1/0;var s=o-i;if(s===0)return 1/0;for(var u=0;ui,(e,t,r,n,i)=>{if(!Fe(e))return 0;var o=t==="vertical"?n.height:n.width;if(i==="gap")return e*o/2;if(i==="no-gap"){var s=ea(r,e*o),u=e*o/2;return u-s-(u-s)/o*s}return 0}),i7=(e,t,r)=>{var n=si(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"xAxis",t,r,n.padding)},a7=(e,t,r)=>{var n=ui(e,t);return n==null||typeof n.padding!="string"?0:r_(e,"yAxis",t,r,n.padding)},o7=H(si,i7,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var i=e.padding;return typeof i=="string"?{left:t,right:t}:{left:((r=i.left)!==null&&r!==void 0?r:0)+t,right:((n=i.right)!==null&&n!==void 0?n:0)+t}}),l7=H(ui,a7,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var i=e.padding;return typeof i=="string"?{top:t,bottom:t}:{top:((r=i.top)!==null&&r!==void 0?r:0)+t,bottom:((n=i.bottom)!==null&&n!==void 0?n:0)+t}}),n_=H([Ht,o7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i)=>{var o=n.padding;return i?[o.left,r.width-o.right]:[e.left+t.left,e.left+e.width-t.right]}),i_=H([Ht,ot,l7,Jf,Zf,(e,t,r)=>r],(e,t,r,n,i,o)=>{var s=i.padding;return o?[n.height-s.bottom,s.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Tu=(e,t,r,n)=>{var i;switch(t){case"xAxis":return n_(e,r,n);case"yAxis":return i_(e,r,n);case"zAxis":return(i=e0(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return F2(e);case"radiusAxis":return B2(e,r);default:return}},a_=H([ar,Tu],lh),s7=H([jl,r7],U6),o0=H([ar,jl,s7,a_],Jg),o_=(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,Mu,Iu,It],o_),xh=H([o0],_g);H([o0],wU);H([o0,RU],PC);H([Cl,n0,It],BU);function l_(e,t){return e.idt.id?1:0}var bh=(e,t)=>t,wh=(e,t,r)=>r,u7=H(Qf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),c7=H(Xf,bh,wh,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(l_)),s_=(e,t)=>({width:e.width,height:t.height}),d7=(e,t)=>{var r=typeof t.width=="number"?t.width:ku;return{width:r,height:e.height}},f7=H(Ht,si,s_),h7=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},p7=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},m7=H(oi,Ht,u7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=s_(t,u);s==null&&(s=h7(t,n,e));var f=n==="top"&&!i||n==="bottom"&&i;o[u.id]=s-Number(f)*d.height,s+=(f?-1:1)*d.height}),o}),v7=H(ai,Ht,c7,bh,wh,(e,t,r,n,i)=>{var o={},s;return r.forEach(u=>{var d=d7(t,u);s==null&&(s=p7(t,n,e));var f=n==="left"&&!i||n==="right"&&i;o[u.id]=s-Number(f)*d.width,s+=(f?-1:1)*d.width}),o}),y7=(e,t)=>{var r=si(e,t);if(r!=null)return m7(e,r.orientation,r.mirror)},g7=H([Ht,si,y7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),x7=(e,t)=>{var r=ui(e,t);if(r!=null)return v7(e,r.orientation,r.mirror)},b7=H([Ht,ui,x7,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),w7=H(Ht,ui,(e,t)=>{var r=typeof t.width=="number"?t.width:ku;return{width:r,height:e.height}}),u_=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,o=r.type,s=r.dataKey,u=Mn(e,n),d=t.map(h=>h.value),f=d.filter(h=>h!=null);if(s&&u&&o==="category"&&i&&rO(f))return d}},s0=H([ot,Mu,ar,It],u_),Yk=H([ot,jU,jl,xh,s0,l0,Tu,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}}}),S7=(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,x=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,k=h==="category"&&n.bandwidth?n.bandwidth()/x:0;k=d==="angleAxis"&&o!=null&&o.length>=2?Lr(o[0]-o[1])*2*k:k;var S=m||i;return S?S.map((E,P)=>{var O=s?s.indexOf(E):E,j=n.map(O);return Fe(j)?{index:P,coordinate:j+k,value:E,offset:k}:null}).filter(mr):f&&u?u.map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.ticks?n.ticks(v).map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:E,index:P,offset:k}:null}).filter(mr):n.domain().map((E,P)=>{var O=n.map(E);return Fe(O)?{coordinate:O+k,value:s?s[E]:E,index:P,offset:k}:null}).filter(mr)}},c_=H([ot,Iu,jl,xh,a0,Tu,s0,l0,It],S7),k7=(e,t,r,n,i,o,s)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=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 Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.ticks?r.ticks(d).map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:h,index:m,offset:f}:null}).filter(mr):r.domain().map((h,m)=>{var v=r.map(h);return Fe(v)?{coordinate:v+f,value:i?i[h]:h,index:m,offset:f}:null}).filter(mr)}},d_=H([ot,Iu,xh,Tu,s0,l0,It],k7),f_=H(ar,xh,(e,t)=>{if(!(e==null||t==null))return df(df({},e),{},{scale:t})}),E7=H([ar,jl,i0,a_],Jg),P7=H([E7],_g);H((e,t,r)=>e0(e,r),P7,(e,t)=>{if(!(e==null||t==null))return df(df({},e),{},{scale:t})});var A7=H([ot,Qf,Xf],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),O7=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};H([O7],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,i=e[0];for(var o of e){var s=Math.abs(o.coordinate-t);se.options.defaultTooltipEventType,p_=e=>e.options.validateTooltipEventTypes;function m_(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Du(e,t){var r=h_(e),n=p_(e);return m_(t,r,n)}function C7(e){return ke(t=>Du(t,e))}var v_=(e,t)=>{var r,n=Number(t);if(!(On(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},_7=e=>e.tooltip.settings,zi={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},j7={itemInteraction:{click:zi,hover:zi},axisInteraction:{click:zi,hover:zi},keyboardInteraction:zi,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},y_=Zt({name:"tooltip",initialState:j7,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:tt()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).tooltipItemPayloads.indexOf(n);o>-1&&(e.tooltipItemPayloads[o]=i)},prepare:tt()},removeTooltipEntrySettings:{reducer(e,t){var r=zr(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:tt()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Vr=y_.actions,N7=Vr.addTooltipEntrySettings,I7=Vr.replaceTooltipEntrySettings,M7=Vr.removeTooltipEntrySettings,T7=Vr.setTooltipSettingsState,D7=Vr.setActiveMouseOverItemIndex;Vr.mouseLeaveItem;var g_=Vr.mouseLeaveChart;Vr.setActiveClickItemIndex;var x_=Vr.setMouseOverAxisIndex,R7=Vr.setMouseClickAxisIndex,Ls=Vr.setSyncInteraction,hf=Vr.setKeyboardInteraction,$7=y_.reducer;function Qk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function hd(e){for(var t=1;t{if(t==null)return zi;var i=B7(e,t,r);if(i==null)return zi;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var o=e.settings.active===!0;if(U7(i)){if(o)return hd(hd({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return hd(hd({},zi),{},{coordinate:i.coordinate})};function W7(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function H7(e,t){var r=W7(e),n=t[0],i=t[1];if(r===void 0)return!1;var o=Math.min(n,i),s=Math.max(n,i);return r>=o&&r<=s}function K7(e,t,r){if(r==null||t==null)return!0;var n=Nt(e,t);return n==null||!Pn(r)?!0:H7(n,r)}var Bs=(e,t,r,n)=>{var i=e==null?void 0:e.index;if(i==null)return null;var o=Number(i);if(!Fe(o))return i;var s=0,u=1/0;t.length>0&&(u=t.length-1);var d=Math.max(s,Math.min(o,u)),f=t[d];return f==null||K7(f,r,n)?String(d):null},w_=(e,t,r,n,i,o,s)=>{if(o!=null){var u=s[0],d=u==null?void 0:u.getPosition(o);if(d!=null)return d;var f=i==null?void 0:i[Number(o)];if(f)switch(r){case"horizontal":return{x:f.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:f.coordinate}}}},S_=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i;if(r==="hover"?i=e.itemInteraction.hover.graphicalItemId:i=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(n!=null||e.keyboardInteraction.active)){var o=e.tooltipItemPayloads[0];return o!=null?[o]:[]}return e.tooltipItemPayloads.filter(s=>{var u;return((u=s.settings)===null||u===void 0?void 0:u.graphicalItemId)===i})},k_=e=>e.options.tooltipPayloadSearcher,Nl=e=>e.tooltip;function Xk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zk(e){for(var t=1;te(t)}function Jk(e){if(typeof e=="string")return e}function Z7(e){if(!(e==null||typeof e!="object")){var t="name"in e?Y7(e.name):void 0,r="unit"in e?Q7(e.unit):void 0,n="dataKey"in e?X7(e.dataKey):void 0,i="payload"in e?e.payload:void 0,o="color"in e?Jk(e.color):void 0,s="fill"in e?Jk(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:o,fill:s}}}function J7(e,t){return e??t}var E_=(e,t,r,n,i,o,s)=>{if(!(t==null||o==null)){var u=r.chartData,d=r.computedData,f=r.dataStartIndex,h=r.dataEndIndex,m=[];return e.reduce((v,x)=>{var k,S=x.dataDefinedOnItem,E=x.settings,P=J7(S,u),O=Array.isArray(P)?YO(P,f,h):P,j=(k=E==null?void 0:E.dataKey)!==null&&k!==void 0?k:n,_=E==null?void 0:E.nameKey,N;if(n&&Array.isArray(O)&&!Array.isArray(O[0])&&s==="axis"?N=nO(O,n,i):N=o(O,t,d,_),Array.isArray(N))N.forEach(D=>{var F,z,q=Z7(D),X=q==null?void 0:q.name,B=q==null?void 0:q.dataKey,ue=q==null?void 0:q.payload,Y=Zk(Zk({},E),{},{name:X,unit:q==null?void 0:q.unit,color:(F=q==null?void 0:q.color)!==null&&F!==void 0?F:E==null?void 0:E.color,fill:(z=q==null?void 0:q.fill)!==null&&z!==void 0?z:E==null?void 0:E.fill});v.push(qw({tooltipEntrySettings:Y,dataKey:B,payload:ue,value:Nt(ue,B),name:X==null?void 0:String(X)}))});else{var C;v.push(qw({tooltipEntrySettings:E,dataKey:j,payload:N,value:Nt(N,j),name:(C=Nt(N,_))!==null&&C!==void 0?C:E==null?void 0:E.name}))}return v},m)}},u0=H([Pt,_C,wg],EC),e9=H([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),t9=H([Mt,Al],jC),eo=H([e9,Pt,t9],IC,{memoizeOptions:{resultEqualityCheck:fh}}),r9=H([eo],e=>e.filter(Cg)),P_=H([eo],DC,{memoizeOptions:{resultEqualityCheck:fh}}),n9=H([eo],e=>e.some(t=>!t.data)),Ga=H([P_,un],$C),i9=H([r9,un,Pt],W2),c0=H([Ga,Pt,eo,un,n9,P_],LC),A_=H([Pt],r0),a9=H([Pt],e=>e.allowDataOverflow),O_=H([A_,a9],P2),o9=H([eo],e=>e.filter(Cg)),l9=H([i9,o9,oh,R2],FC),s9=H([l9,un,Mt,O_],UC),u9=H([eo],TC),c9=H([Ga,Pt,u9,n0,Mt,x6],KC,{memoizeOptions:{resultEqualityCheck:dh}}),d9=H([VC,Mt,Al],_l),f9=H([d9,Mt],YC),h9=H([qC,Mt,Al],_l),p9=H([h9,Mt],QC),m9=H([GC,Mt,Al],_l),v9=H([m9,Mt],XC),y9=H([f9,v9,p9],ff),g9=H([Pt,A_,O_,s9,c9,y9,ot,Mt],ZC),yl=H([Pt,ot,Ga,c0,oh,Mt,g9],JC),x9=H([yl,Pt,u0],e_),b9=H([Pt,yl,x9,Mt],t_),C_=e=>{var t=Mt(e),r=Al(e),n=!1;return Tu(e,t,r,n)},__=H([Pt,C_],lh),w9=H([Pt,u0,b9,__],Jg),j_=H([w9],_g),S9=H([ot,c0,Pt,Mt],u_),k9=H([ot,c0,Pt,Mt],o_),E9=(e,t,r,n,i,o,s,u)=>{if(t){var d=t.type,f=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,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:v,index:x,offset:m}:null}).filter(mr):n.domain().map((v,x)=>{var k=n.map(v);return Fe(k)?{coordinate:k+m,value:o?o[v]:v,index:x,offset:m}:null}).filter(mr)}}},ci=H([ot,Pt,u0,j_,C_,S9,k9,Mt],E9),d0=H([h_,p_,_7],(e,t,r)=>m_(r.shared,e,t)),N_=e=>e.tooltip.settings.trigger,f0=e=>e.tooltip.settings.defaultIndex,Ru=H([Nl,d0,N_,f0],b_),du=H([Ru,Ga,vl,yl],Bs),I_=H([ci,du],v_),P9=H([Ru],e=>{if(e)return e.dataKey}),A9=H([Ru],e=>{if(e)return e.graphicalItemId}),M_=H([Nl,d0,N_,f0],S_),O9=H([ai,oi,ot,Ht,ci,f0,M_],w_),C9=H([Ru,O9],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),_9=H([Ru],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),j9=H([M_,du,un,vl,I_,k_,d0],E_),N9=H([j9],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function eE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function tE(e){for(var t=1;tke(Pt),R9=()=>{var e=D9(),t=ke(ci),r=ke(j_);return Ud(!e||!r?void 0:tE(tE({},e),{},{scale:r}),t)};function rE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function To(e){for(var t=1;t{var i=t.find(o=>o&&o.index===r);if(i){if(e==="horizontal")return{x:i.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:i.coordinate}}return{x:0,y:0}},B9=(e,t,r,n)=>{var i=t.find(f=>f&&f.index===r);if(i){if(e==="centric"){var o=i.coordinate,s=n.radius;return To(To(To({},n),Bt(n.cx,n.cy,s,o)),{},{angle:o,radius:s})}var u=i.coordinate,d=n.angle;return To(To(To({},n),Bt(n.cx,n.cy,u,d)),{},{angle:d,radius:u})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function U9(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var T_=(e,t,r,n,i)=>{var o,s=(o=t==null?void 0:t.length)!==null&&o!==void 0?o:0;if(s<=1||e==null)return 0;if(n==="angleAxis"&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var u=0;u0?(d=r[u-1])===null||d===void 0?void 0:d.coordinate:(f=r[s-1])===null||f===void 0?void 0:f.coordinate,k=(h=r[u])===null||h===void 0?void 0:h.coordinate,S=u>=s-1?(m=r[0])===null||m===void 0?void 0:m.coordinate:(v=r[u+1])===null||v===void 0?void 0:v.coordinate,E=void 0;if(!(x==null||k==null||S==null))if(Lr(k-x)!==Lr(S-k)){var P=[];if(Lr(S-k)===Lr(i[1]-i[0])){E=S;var O=k+i[1]-i[0];P[0]=Math.min(O,(O+x)/2),P[1]=Math.max(O,(O+x)/2)}else{E=x;var j=S+i[1]-i[0];P[0]=Math.min(k,(j+k)/2),P[1]=Math.max(k,(j+k)/2)}var _=[Math.min(k,(E+k)/2),Math.max(k,(E+k)/2)];if(e>_[0]&&e<=_[1]||e>=P[0]&&e<=P[1]){var N;return(N=r[u])===null||N===void 0?void 0:N.index}}else{var C=Math.min(x,S),D=Math.max(x,S);if(e>(C+k)/2&&e<=(D+k)/2){var F;return(F=r[u])===null||F===void 0?void 0:F.index}}}else if(t)for(var z=0;z(q.coordinate+B.coordinate)/2||z>0&&z(q.coordinate+B.coordinate)/2&&e<=(q.coordinate+X.coordinate)/2)return q.index}}return-1},D_=()=>ke(wg),h0=(e,t)=>t,R_=(e,t,r)=>r,p0=(e,t,r,n)=>n,W9=H(ci,e=>zf(e,t=>t.coordinate)),m0=H([Nl,h0,R_,p0],b_),v0=H([m0,Ga,vl,yl],Bs),H9=(e,t,r)=>{if(t!=null){var n=Nl(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},$_=H([Nl,h0,R_,p0],S_),pf=H([ai,oi,ot,Ht,ci,p0,$_],w_),K9=H([m0,pf],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),L_=H([ci,v0],v_),V9=H([$_,v0,un,vl,L_,k_,h0],E_),q9=H([m0,v0],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),G9=(e,t,r,n,i,o,s)=>{if(!(!e||!r||!n||!i)&&U9(e,s)){var u=l4(e,t),d=T_(u,o,i,r,n),f=F9(t,i,d,e);return{activeIndex:String(d),activeCoordinate:f}}},Y9=(e,t,r,n,i,o,s)=>{if(!(!e||!n||!i||!o||!r)){var u=c6(e,r);if(u){var d=s4(u,t),f=T_(d,s,o,n,i),h=B9(t,o,f,u);return{activeIndex:String(f),activeCoordinate:h}}}},Q9=(e,t,r,n,i,o,s,u)=>{if(!(!e||!t||!n||!i||!o))return t==="horizontal"||t==="vertical"?G9(e,t,n,i,o,s,u):Y9(e,t,r,n,i,o,s)},X9=H(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),Z9=H(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(rr)),r=Array.from(new Set(t));return r.sort((n,i)=>n-i)},{memoizeOptions:{resultEqualityCheck:B6}});function nE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function iE(e){for(var t=1;tiE(iE({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),rW)},iW=new Set(Object.values(rr));function aW(e){return iW.has(e)}var z_=Zt({name:"zIndex",initialState:nW,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:tt()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!aW(r)&&delete e.zIndexMap[r])},prepare:tt()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,i=r.element,o=r.isPanorama;e.zIndexMap[n]?o?e.zIndexMap[n].panoramaElement=i:e.zIndexMap[n].element=i:e.zIndexMap[n]={consumers:0,element:o?void 0:i,panoramaElement:o?i:void 0}},prepare:tt()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:tt()}}}),Sh=z_.actions,oW=Sh.registerZIndexPortal,nv=Sh.unregisterZIndexPortal,lW=Sh.registerZIndexPortalElement,sW=Sh.unregisterZIndexPortalElement,uW=z_.reducer;function di(e){var t=e.zIndex,r=e.children,n=V4(),i=n&&t!==void 0&&t!==0,o=gr(),s=g.useRef(void 0),u=g.useRef(new Set),d=xt(),f=ke(m=>X9(m,t,o));if(g.useLayoutEffect(()=>{if(!i){var m=u.current;m.forEach(x=>{d(nv({zIndex:x}))}),m.clear(),s.current=void 0;return}if(u.current.has(t)||(d(oW({zIndex:t})),u.current.add(t)),f){s.current=f;var v=u.current;v.forEach(x=>{x!==t&&(d(nv({zIndex:x})),v.delete(x))})}},[d,t,i,f]),g.useLayoutEffect(()=>{var m=u.current;return()=>{m.forEach(v=>{d(nv({zIndex:v}))}),m.clear()}},[d]),!i)return r;var h=f??s.current;return h?_f.createPortal(r,h):null}function by(){return by=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.useContext(F_),iv={exports:{}},oE;function yW(){return oE||(oE=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(d,f,h){this.fn=d,this.context=f,this.once=h||!1}function o(d,f,h,m,v){if(typeof h!="function")throw new TypeError("The listener must be a function");var x=new i(h,m||d,v),k=r?r+f:f;return d._events[k]?d._events[k].fn?d._events[k]=[d._events[k],x]:d._events[k].push(x):(d._events[k]=x,d._eventsCount++),d}function s(d,f){--d._eventsCount===0?d._events=new n:delete d._events[f]}function u(){this._events=new n,this._eventsCount=0}u.prototype.eventNames=function(){var f=[],h,m;if(this._eventsCount===0)return f;for(m in h=this._events)t.call(h,m)&&f.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(h)):f},u.prototype.listeners=function(f){var h=r?r+f:f,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var v=0,x=m.length,k=new Array(x);v{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!On(r))return e[r]}},wW={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},B_=Zt({name:"options",initialState:wW,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),SW=B_.reducer,kW=B_.actions.createEventEmitter;function EW(e){return e.tooltip.syncInteraction}var PW={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},U_=Zt({name:"chartData",initialState:PW,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,i=r.endIndex;n!=null&&(e.dataStartIndex=n),i!=null&&(e.dataEndIndex=i)}}}),y0=U_.actions,sE=y0.setChartData,AW=y0.setDataStartEndIndexes;y0.setComputedData;var OW=U_.reducer,CW=["x","y"];function uE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Do(e){for(var t=1;td.rootProps.className);g.useEffect(()=>{if(e==null)return Sl;var d=(f,h,m)=>{if(t!==m&&e===f){if(h.payload.active===!1){r(Ls({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var v;if(s&&h!==null&&h!==void 0&&(v=h.payload)!==null&&v!==void 0&&v.coordinate&&h.payload.sourceViewBox){var x=h.payload.coordinate,k=x.x,S=x.y,E=IW(x,CW),P=h.payload.sourceViewBox,O=P.x,j=P.y,_=P.width,N=P.height,C=Do(Do({},E),{},{x:s.x+(_?(k-O)/_:0)*s.width,y:s.y+(N?(S-j)/N:0)*s.height});r(Do(Do({},h),{},{payload:Do(Do({},h.payload),{},{coordinate:C})}))}else r(h);return}if(i!=null){var D;if(typeof n=="function"){var F={activeTooltipIndex:h.payload.index==null?void 0:Number(h.payload.index),isTooltipActive:h.payload.active,activeIndex:h.payload.index==null?void 0:Number(h.payload.index),activeLabel:h.payload.label,activeDataKey:h.payload.dataKey,activeCoordinate:h.payload.coordinate},z=n(i,F);D=i[z]}else n==="value"&&(D=i.find(de=>String(de.value)===h.payload.label));var q=h.payload.coordinate;if(q==null||s==null){r(Ls({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(D==null){r(Ls({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:void 0}));return}var X=q.x,B=q.y,ue=Math.min(X,s.x+s.width),Y=Math.min(B,s.y+s.height),le={x:o==="horizontal"?D.coordinate:ue,y:o==="horizontal"?Y:D.coordinate},fe=Ls({active:h.payload.active,coordinate:le,dataKey:h.payload.dataKey,index:String(D.index),label:h.payload.label,sourceViewBox:h.payload.sourceViewBox,graphicalItemId:h.payload.graphicalItemId});r(fe)}}};return fu.on(wy,d),()=>{fu.off(wy,d)}},[u,r,t,e,n,i,o,s])}function DW(){var e=ke(Sg),t=ke(kg),r=xt();g.useEffect(()=>{if(e==null)return Sl;var n=(i,o,s)=>{t!==s&&e===i&&r(AW(o))};return fu.on(lE,n),()=>{fu.off(lE,n)}},[r,t,e])}function RW(){var e=xt();g.useEffect(()=>{e(kW())},[e]),TW(),DW()}function $W(e,t,r,n,i,o){var s=ke(k=>H9(k,e,t)),u=ke(A9),d=ke(kg),f=ke(Sg),h=ke($2),m=ke(EW),v=(m==null?void 0:m.sourceViewBox)!=null,x=eh();g.useEffect(()=>{if(!v&&f!=null&&d!=null){var k=Ls({active:o,coordinate:r,dataKey:s,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:x,graphicalItemId:u});fu.emit(wy,f,k,d)}},[v,r,s,u,i,n,d,f,h,o,x])}function cE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{D(T7({shared:O,trigger:j,axisId:C,active:i,defaultIndex:F}))},[D,O,j,C,i,F]);var z=eh(),q=v2(),X=C7(O),B=(t=ke(Pe=>q9(Pe,X,j,F)))!==null&&t!==void 0?t:{},ue=B.activeIndex,Y=B.isActive,le=ke(Pe=>V9(Pe,X,j,F)),fe=ke(Pe=>L_(Pe,X,j,F)),de=ke(Pe=>K9(Pe,X,j,F)),K=le,ie=vW(),Q=(r=i??Y)!==null&&r!==void 0?r:!1,R=qL([K,Q]),M=BW(R,2),J=M[0],se=M[1],te=X==="axis"?fe:void 0;$W(X,j,de,te,ue,Q);var ce=N??ie;if(ce==null||z==null||X==null)return null;var ye=K??hE;Q||(ye=hE),f&&ye.length&&(ye=vL(ye.filter(Pe=>Pe.value!=null&&(Pe.hide!==!0||n.includeHidden)),v,VW));var _e=ye.length>0,Z=dE(dE({},n),{},{payload:ye,label:te,active:Q,activeIndex:ue,coordinate:de,accessibilityLayer:q}),we=g.createElement(iF,{allowEscapeViewBox:o,animationDuration:s,animationEasing:u,isAnimationActive:h,active:Q,coordinate:de,hasPayload:_e,offset:m,position:x,reverseDirection:k,useTranslate3d:S,viewBox:z,wrapperStyle:E,lastBoundingBox:J,innerRef:se,hasPortalFromProps:!!N},qW(d,Z));return g.createElement(g.Fragment,null,_f.createPortal(we,ce),Q&&g.createElement(mW,{cursor:P,tooltipEventType:X,coordinate:de,payload:ye,index:ue}))}function QW(e,t,r){return(t=XW(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function XW(e){var t=ZW(e,"string");return typeof t=="symbol"?t:t+""}function ZW(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class JW{constructor(t){QW(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function pE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function eH(e){for(var t=1;t{try{var r=document.getElementById(vE);r||(r=document.createElement("span"),r.setAttribute("id",vE),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,aH,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},Us=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ou.isSsr)return{width:0,height:0};if(!W_.enableCache)return yE(t,r);var n=oH(t,r),i=mE.get(n);if(i)return i;var o=yE(t,r);return mE.set(n,o),o},H_;function mf(e,t){return cH(e)||uH(e,t)||sH(e,t)||lH()}function lH(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sH(e,t){if(e){if(typeof e=="string")return gE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?gE(e,t):void 0}}function gE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var i=[];Ut(t)||(r?i=t.toString().split(""):i=t.toString().split(V_));var o=i.map(u=>({word:u,width:Us(u,n).width})),s=r?0:Us(" ",n).width;return{wordsWithComputedWidth:o,spaceWidth:s}}catch{return null}};function G_(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function jH(e){return Ut(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Y_=(e,t,r,n)=>e.reduce((i,o)=>{var s=o.word,u=o.width,d=i[i.length-1];if(d&&u!=null&&(t==null||n||d.width+u+re.reduce((t,r)=>t.width>r.width?t:r),NH="…",PE=(e,t,r,n,i,o,s,u)=>{var d=e.slice(0,t),f=q_({breakAll:r,style:n,children:d+NH});if(!f)return[!1,[]];var h=Y_(f.wordsWithComputedWidth,o,s,u),m=h.length>i||Q_(h).width>Number(o);return[m,h]},IH=(e,t,r,n,i)=>{var o=e.maxLines,s=e.children,u=e.style,d=e.breakAll,f=be(o),h=String(s),m=Y_(t,n,r,i);if(!f||i)return m;var v=m.length>o||Q_(m).width>Number(n);if(!v)return m;for(var x=0,k=h.length-1,S=0,E;x<=k&&S<=h.length-1;){var P=Math.floor((x+k)/2),O=P-1,j=PE(h,O,d,u,o,n,r,i),_=kE(j,2),N=_[0],C=_[1],D=PE(h,P,d,u,o,n,r,i),F=kE(D,1),z=F[0];if(!N&&!z&&(x=P+1),N&&z&&(k=P-1),!N&&z){E=C;break}S++}return E||m},AE=e=>{var t=Ut(e)?[]:e.toString().split(V_);return[{words:t,width:void 0}]},MH=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,o=e.breakAll,s=e.maxLines;if((t||r)&&!Ou.isSsr){var u,d,f=q_({breakAll:o,children:n,style:i});if(f){var h=f.wordsWithComputedWidth,m=f.spaceWidth;u=h,d=m}else return AE(n);return IH({breakAll:o,children:n,maxLines:s,style:i},u,d,t,!!r)}return AE(n)},X_="#808080",TH={angle:0,breakAll:!1,capHeight:"0.71em",fill:X_,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},g0=g.forwardRef((e,t)=>{var r=Hr(e,TH),n=r.x,i=r.y,o=r.lineHeight,s=r.capHeight,u=r.fill,d=r.scaleToFit,f=r.textAnchor,h=r.verticalAnchor,m=SE(r,kH),v=g.useMemo(()=>MH({breakAll:m.breakAll,children:m.children,maxLines:m.maxLines,scaleToFit:d,style:m.style,width:m.width}),[m.breakAll,m.children,m.maxLines,d,m.style,m.width]),x=m.dx,k=m.dy,S=m.angle,E=m.className,P=m.breakAll,O=SE(m,EH);if(!Cn(n)||!Cn(i)||v.length===0)return null;var j=Number(n)+(be(x)?x:0),_=Number(i)+(be(k)?k:0);if(!Fe(j)||!Fe(_))return null;var N;switch(h){case"start":N=av("calc(".concat(s,")"));break;case"middle":N=av("calc(".concat((v.length-1)/2," * -").concat(o," + (").concat(s," / 2))"));break;default:N=av("calc(".concat(v.length-1," * -").concat(o,")"));break}var C=[],D=v[0];if(d&&D!=null){var F=D.width,z=m.width;C.push("scale(".concat(be(z)&&be(F)?z/F:1,")"))}return S&&C.push("rotate(".concat(S,", ").concat(j,", ").concat(_,")")),C.length&&(O.transform=C.join(" ")),g.createElement("text",Sy({},Br(O),{ref:t,x:j,y:_,className:Qe("recharts-text",E),textAnchor:f,fill:u.includes("url")?X_:u}),v.map((q,X)=>{var B=q.words.join(P?"":" ");return g.createElement("tspan",{x:j,dy:X===0?N:o,key:"".concat(B,"-").concat(X)},B)}))});g0.displayName="Text";function OE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function gn(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,i=n===void 0?0:n,o=e.parentViewBox,s=fg(t),u=s.x,d=s.y,f=s.height,h=s.upperWidth,m=s.lowerWidth,v=u,x=u+(h-m)/2,k=(v+x)/2,S=(h+m)/2,E=v+h/2,P=f>=0?1:-1,O=P*i,j=P>0?"end":"start",_=P>0?"start":"end",N=h>=0?1:-1,C=N*i,D=N>0?"end":"start",F=N>0?"start":"end",z=o;if(r==="top"){var q={x:v+h/2,y:d-O,horizontalAnchor:"middle",verticalAnchor:j};return z&&(q.height=Math.max(d-z.y,0),q.width=h),q}if(r==="bottom"){var X={x:x+m/2,y:d+f+O,horizontalAnchor:"middle",verticalAnchor:_};return z&&(X.height=Math.max(z.y+z.height-(d+f),0),X.width=m),X}if(r==="left"){var B={x:k-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"};return z&&(B.width=Math.max(B.x-z.x,0),B.height=f),B}if(r==="right"){var ue={x:k+S+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"};return z&&(ue.width=Math.max(z.x+z.width-ue.x,0),ue.height=f),ue}var Y=z?{width:S,height:f}:{};return r==="insideLeft"?gn({x:k+C,y:d+f/2,horizontalAnchor:F,verticalAnchor:"middle"},Y):r==="insideRight"?gn({x:k+S-C,y:d+f/2,horizontalAnchor:D,verticalAnchor:"middle"},Y):r==="insideTop"?gn({x:v+h/2,y:d+O,horizontalAnchor:"middle",verticalAnchor:_},Y):r==="insideBottom"?gn({x:x+m/2,y:d+f-O,horizontalAnchor:"middle",verticalAnchor:j},Y):r==="insideTopLeft"?gn({x:v+C,y:d+O,horizontalAnchor:F,verticalAnchor:_},Y):r==="insideTopRight"?gn({x:v+h-C,y:d+O,horizontalAnchor:D,verticalAnchor:_},Y):r==="insideBottomLeft"?gn({x:x+C,y:d+f-O,horizontalAnchor:F,verticalAnchor:j},Y):r==="insideBottomRight"?gn({x:x+m-C,y:d+f-O,horizontalAnchor:D,verticalAnchor:j},Y):r&&typeof r=="object"&&(be(r.x)||Wa(r.x))&&(be(r.y)||Wa(r.y))?gn({x:u+ea(r.x,S),y:d+ea(r.y,f),horizontalAnchor:"end",verticalAnchor:"end"},Y):gn({x:E,y:d+f/2,horizontalAnchor:"middle",verticalAnchor:"middle"},Y)},zH=["labelRef"],FH=["content"];function CE(e,t){if(e==null)return{};var r,n,i=BH(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,i=e.lowerWidth,o=e.width,s=e.height,u=e.children,d=g.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:i,width:o,height:s}),[t,r,n,i,o,s]);return g.createElement(Z_.Provider,{value:d},u)},J_=()=>{var e=g.useContext(Z_),t=eh();return e||(t?fg(t):void 0)},VH=g.createContext(null),qH=()=>{var e=g.useContext(VH),t=ke(U2);return e||t},GH=e=>{var t=e.value,r=e.formatter,n=Ut(e.children)?t:e.children;return typeof r=="function"?r(n):n},x0=e=>e!=null&&typeof e=="function",YH=(e,t)=>{var r=Lr(t-e),n=Math.min(Math.abs(t-e),360);return r*n},QH=(e,t,r,n,i)=>{var o=e.offset,s=e.className,u=i.cx,d=i.cy,f=i.innerRadius,h=i.outerRadius,m=i.startAngle,v=i.endAngle,x=i.clockWise,k=(f+h)/2,S=YH(m,v),E=S>=0?1:-1,P,O;switch(t){case"insideStart":P=m+E*o,O=x;break;case"insideEnd":P=v-E*o,O=!x;break;case"end":P=v+E*o,O=x;break;default:throw new Error("Unsupported position ".concat(t))}O=S<=0?O:!O;var j=Bt(u,d,k,P),_=Bt(u,d,k,P+(O?1:-1)*359),N="M".concat(j.x,",").concat(j.y,` A`).concat(k,",").concat(k,",0,1,").concat(O?0:1,`, - `).concat(_.x,",").concat(_.y),C=Ut(e.id)?Zs("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))},XH=(e,t,r)=>{var n=e.cx,i=e.cy,o=e.innerRadius,s=e.outerRadius,u=e.startAngle,d=e.endAngle,f=(u+d)/2;if(r==="outside"){var h=Bt(n,i,s+t,f),m=h.x,v=h.y;return{x:m,y:v,textAnchor:m>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"end"};var x=(o+s)/2,k=Bt(n,i,x,f),S=k.x,E=k.y;return{x:S,y:E,textAnchor:"middle",verticalAnchor:"middle"}},Pd=e=>e!=null&&"cx"in e&&be(e.cx),ZH={angle:0,offset:5,zIndex:rr.label,position:"middle",textBreakAll:!1};function JH(e){if(!Pd(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,i=n*2;return{x:t-n,y:r-n,width:i,upperWidth:i,lowerWidth:i,height:i}}function Li(e){var t=Hr(e,ZH),r=t.viewBox,n=t.parentViewBox,i=t.position,o=t.value,s=t.children,u=t.content,d=t.className,f=d===void 0?"":d,h=t.textBreakAll,m=t.labelRef,v=qH(),x=J_(),k=i==="center"?x:v??x,S,E,P;r==null?S=k:Pd(r)?S=r:S=fg(r);var O=JH(S);if(!S||Ut(o)&&Ut(s)&&!g.isValidElement(u)&&typeof u!="function")return null;var j=Fs(Fs({},t),{},{viewBox:S});if(g.isValidElement(u)){j.labelRef;var _=CE(j,zH);return g.cloneElement(u,_)}if(typeof u=="function"){j.content;var N=CE(j,FH);if(E=g.createElement(u,N),g.isValidElement(E))return E}else E=GH(t);var C=Br(t);if(Pd(S)){if(i==="insideStart"||i==="insideEnd"||i==="end")return QH(t,i,E,C,S);P=XH(S,t.offset,t.position)}else{if(!O)return null;var D=LH({viewBox:O,position:i,offset:t.offset,parentViewBox:Pd(n)?void 0:n});P=Fs(Fs({x:D.x,y:D.y,textAnchor:D.horizontalAnchor,verticalAnchor:D.verticalAnchor},D.width!==void 0?{width:D.width}:{}),D.height!==void 0?{height:D.height}:{})}return g.createElement(di,{zIndex:t.zIndex},g.createElement(g0,Gn({ref:m,className:Qe("recharts-label",f)},C,P,{textAnchor:G_(C.textAnchor)?C.textAnchor:P.textAnchor,breakAll:h}),E))}Li.displayName="Label";var eK=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?g.createElement(Li,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,Fs({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 tK(e){var t=e.label,r=e.labelRef,n=J_();return eK(t,n,r)||null}var rK=["valueAccessor"],nK=["dataKey","clockWise","id","textBreakAll","zIndex"];function vf(){return vf=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(jH(t))return t},ej=g.createContext(void 0),oK=ej.Provider,tj=g.createContext(void 0);tj.Provider;function lK(){return g.useContext(ej)}function sK(){return g.useContext(tj)}function Ad(e){var t=e.valueAccessor,r=t===void 0?aK:t,n=jE(e,rK),i=n.dataKey;n.clockWise;var o=n.id,s=n.textBreakAll,u=n.zIndex,d=jE(n,nK),f=lK(),h=sK(),m=f||h;return!m||!m.length?null:g.createElement(di,{zIndex:u??rr.label},g.createElement(Ur,{className:"recharts-label-list"},m.map((v,x)=>{var k,S=Ut(i)?r(v,x):Nt(v.payload,i),E=Ut(o)?{}:{id:"".concat(o,"-").concat(x)};return g.createElement(Li,vf({key:"label-".concat(x)},Br(v),d,E,{fill:(k=n.fill)!==null&&k!==void 0?k:v.fill,parentViewBox:v.parentViewBox,value:S,textBreakAll:s,viewBox:v.viewBox,index:x,zIndex:0}))})))}Ad.displayName="LabelList";function uK(e){var t=e.label;return t?t===!0?g.createElement(Ad,{key:"labelList-implicit"}):g.isValidElement(t)||x0(t)?g.createElement(Ad,{key:"labelList-implicit",content:t}):typeof t=="object"?g.createElement(Ad,vf({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function ky(){return ky=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,i=e.className,o=Qe("recharts-dot",i);return be(t)&&be(r)&&be(n)?g.createElement("circle",ky({},on(e),rg(e),{className:o,cx:t,cy:r,r:n})):null},cK={radiusAxis:{},angleAxis:{}},nj=Zt({name:"polarAxis",initialState:cK,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),kh=nj.actions;kh.addRadiusAxis;kh.removeRadiusAxis;kh.addAngleAxis;kh.removeAngleAxis;var dK=nj.reducer;function fK(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var ij=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function NE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function IE(e){for(var t=1;t{n||(i.current===null?r(N7(t)):i.current!==t&&r(I7({prev:i.current,next:t})),i.current=t)},[t,r,n]),g.useLayoutEffect(()=>()=>{i.current&&(r(M7(i.current)),i.current=null)},[r]),null}function SK(e){var t=e.legendPayload,r=xt(),n=gr(),i=g.useRef(null);return g.useLayoutEffect(()=>{n||(i.current===null?r(az(t)):i.current!==t&&r(oz({prev:i.current,next:t})),i.current=t)},[r,n,t]),g.useLayoutEffect(()=>()=>{i.current&&(r(lz(i.current)),i.current=null)},[r]),null}function kK(e,t){return OK(e)||AK(e,t)||PK(e,t)||EK()}function EK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. + `).concat(_.x,",").concat(_.y),C=Ut(e.id)?Zs("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))},XH=(e,t,r)=>{var n=e.cx,i=e.cy,o=e.innerRadius,s=e.outerRadius,u=e.startAngle,d=e.endAngle,f=(u+d)/2;if(r==="outside"){var h=Bt(n,i,s+t,f),m=h.x,v=h.y;return{x:m,y:v,textAnchor:m>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"end"};var x=(o+s)/2,k=Bt(n,i,x,f),S=k.x,E=k.y;return{x:S,y:E,textAnchor:"middle",verticalAnchor:"middle"}},Pd=e=>e!=null&&"cx"in e&&be(e.cx),ZH={angle:0,offset:5,zIndex:rr.label,position:"middle",textBreakAll:!1};function JH(e){if(!Pd(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,i=n*2;return{x:t-n,y:r-n,width:i,upperWidth:i,lowerWidth:i,height:i}}function Li(e){var t=Hr(e,ZH),r=t.viewBox,n=t.parentViewBox,i=t.position,o=t.value,s=t.children,u=t.content,d=t.className,f=d===void 0?"":d,h=t.textBreakAll,m=t.labelRef,v=qH(),x=J_(),k=i==="center"?x:v??x,S,E,P;r==null?S=k:Pd(r)?S=r:S=fg(r);var O=JH(S);if(!S||Ut(o)&&Ut(s)&&!g.isValidElement(u)&&typeof u!="function")return null;var j=zs(zs({},t),{},{viewBox:S});if(g.isValidElement(u)){j.labelRef;var _=CE(j,zH);return g.cloneElement(u,_)}if(typeof u=="function"){j.content;var N=CE(j,FH);if(E=g.createElement(u,N),g.isValidElement(E))return E}else E=GH(t);var C=Br(t);if(Pd(S)){if(i==="insideStart"||i==="insideEnd"||i==="end")return QH(t,i,E,C,S);P=XH(S,t.offset,t.position)}else{if(!O)return null;var D=LH({viewBox:O,position:i,offset:t.offset,parentViewBox:Pd(n)?void 0:n});P=zs(zs({x:D.x,y:D.y,textAnchor:D.horizontalAnchor,verticalAnchor:D.verticalAnchor},D.width!==void 0?{width:D.width}:{}),D.height!==void 0?{height:D.height}:{})}return g.createElement(di,{zIndex:t.zIndex},g.createElement(g0,Gn({ref:m,className:Qe("recharts-label",f)},C,P,{textAnchor:G_(C.textAnchor)?C.textAnchor:P.textAnchor,breakAll:h}),E))}Li.displayName="Label";var eK=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?g.createElement(Li,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,zs({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 tK(e){var t=e.label,r=e.labelRef,n=J_();return eK(t,n,r)||null}var rK=["valueAccessor"],nK=["dataKey","clockWise","id","textBreakAll","zIndex"];function vf(){return vf=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(jH(t))return t},ej=g.createContext(void 0),oK=ej.Provider,tj=g.createContext(void 0);tj.Provider;function lK(){return g.useContext(ej)}function sK(){return g.useContext(tj)}function Ad(e){var t=e.valueAccessor,r=t===void 0?aK:t,n=jE(e,rK),i=n.dataKey;n.clockWise;var o=n.id,s=n.textBreakAll,u=n.zIndex,d=jE(n,nK),f=lK(),h=sK(),m=f||h;return!m||!m.length?null:g.createElement(di,{zIndex:u??rr.label},g.createElement(Ur,{className:"recharts-label-list"},m.map((v,x)=>{var k,S=Ut(i)?r(v,x):Nt(v.payload,i),E=Ut(o)?{}:{id:"".concat(o,"-").concat(x)};return g.createElement(Li,vf({key:"label-".concat(x)},Br(v),d,E,{fill:(k=n.fill)!==null&&k!==void 0?k:v.fill,parentViewBox:v.parentViewBox,value:S,textBreakAll:s,viewBox:v.viewBox,index:x,zIndex:0}))})))}Ad.displayName="LabelList";function uK(e){var t=e.label;return t?t===!0?g.createElement(Ad,{key:"labelList-implicit"}):g.isValidElement(t)||x0(t)?g.createElement(Ad,{key:"labelList-implicit",content:t}):typeof t=="object"?g.createElement(Ad,vf({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function ky(){return ky=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,i=e.className,o=Qe("recharts-dot",i);return be(t)&&be(r)&&be(n)?g.createElement("circle",ky({},on(e),rg(e),{className:o,cx:t,cy:r,r:n})):null},cK={radiusAxis:{},angleAxis:{}},nj=Zt({name:"polarAxis",initialState:cK,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),kh=nj.actions;kh.addRadiusAxis;kh.removeRadiusAxis;kh.addAngleAxis;kh.removeAngleAxis;var dK=nj.reducer;function fK(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var ij=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function NE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function IE(e){for(var t=1;t{n||(i.current===null?r(N7(t)):i.current!==t&&r(I7({prev:i.current,next:t})),i.current=t)},[t,r,n]),g.useLayoutEffect(()=>()=>{i.current&&(r(M7(i.current)),i.current=null)},[r]),null}function SK(e){var t=e.legendPayload,r=xt(),n=gr(),i=g.useRef(null);return g.useLayoutEffect(()=>{n||(i.current===null?r(az(t)):i.current!==t&&r(oz({prev:i.current,next:t})),i.current=t)},[r,n,t]),g.useLayoutEffect(()=>()=>{i.current&&(r(lz(i.current)),i.current=null)},[r]),null}function kK(e,t){return OK(e)||AK(e,t)||PK(e,t)||EK()}function EK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function PK(e,t){if(e){if(typeof e=="string")return ME(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ME(e,t):void 0}}function ME(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var i of r)n.push({status:"removed",prev:i});for(var o=0;oe[Math.floor(o*r)]);return w0(n,t)}function jK(e,t){var r=t.map((n,i)=>e[i]);return w0(r,t)}function NK(e,t){for(var r=new Map,n=0;n{var x=r(m,v);if(x!=null){var k=n.get(x);if(k!==void 0)return i.add(x),k}}),s=[];for(var u of n){var d=kK(u,2),f=d[0],h=d[1];i.has(f)||s.push(h)}return w0(o,t,s)}function Ey(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===b0?_K(e,t):r===CK?jK(e,t):IK(e,t,r)}function oj(e,t){var r=g.useRef(e),n=g.useRef(t.current),i=g.useRef(!0);r.current!==e&&(r.current=e,n.current=t.current,i.current=!1);var o=g.useCallback(function(s,u){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(u===0){i.current=!0;return}u===1&&(n.current=s),u>0&&i.current&&d&&(t.current=s)},[t]);return{startValue:n.current,syncStepValue:o}}function MK(e,t){return $K(e)||RK(e,t)||DK(e,t)||TK()}function TK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DK(e,t){if(e){if(typeof e=="string")return TE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?TE(e,t):void 0}}function TE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),o(!0)},[e]),u=g.useCallback(()=>{typeof t=="function"&&t(),o(!1)},[t]);return{isAnimating:i,handleAnimationStart:s,handleAnimationEnd:u}}function zK(e){var t,r=e.animationInput,n=e.animationIdPrefix,i=e.items,o=e.previousItemsRef,s=e.isAnimationActive,u=e.animationBegin,d=e.animationDuration,f=e.animationEasing,h=e.onAnimationStart,m=e.onAnimationEnd,v=e.animationInterpolateFn,x=e.animationMatchBy,k=e.shouldUpdatePreviousRef,S=e.children,E=e.layout,P=w2(r,n),O=oj(P,o),j=(t=O.startValue)!==null&&t!==void 0?t:null,_=Ey(j,i,x??b0);return g.createElement(b2,{animationId:P,begin:u,duration:d,isActive:s,easing:f,onAnimationEnd:m,onAnimationStart:h,key:P},N=>{var C=j==null,D=i==null?i:v(_,N,E),F=k?k(N):N>0;return O.syncStepValue(D,N,F),D==null?null:S(D,N,C)})}var ov;function FK(e,t){return HK(e)||WK(e,t)||UK(e,t)||BK()}function BK(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UK(e,t){if(e){if(typeof e=="string")return DE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?DE(e,t):void 0}}function DE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=g.useState(()=>Zs("uid-")),t=FK(e,1),r=t[0];return r},lj=(ov=Pf.useId)!==null&&ov!==void 0?ov:KK;function VK(e,t){var r=lj();return t||(e?"".concat(e,"-").concat(r):r)}var qK=g.createContext(void 0),GK=e=>{var t=e.id,r=e.type,n=e.children,i=VK("recharts-".concat(r),t);return g.createElement(qK.Provider,{value:i},n(i))},YK={cartesianItems:[],polarItems:[]},sj=Zt({name:"graphicalItems",initialState:YK,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:tt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).cartesianItems.indexOf(n);o>-1&&(e.cartesianItems[o]=i)},prepare:tt()},removeCartesianGraphicalItem:{reducer(e,t){var r=zr(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:tt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:tt()},removePolarGraphicalItem:{reducer(e,t){var r=zr(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:tt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).polarItems.indexOf(n);o>-1&&(e.polarItems[o]=i)},prepare:tt()}}}),Ml=sj.actions,QK=Ml.addCartesianGraphicalItem,XK=Ml.replaceCartesianGraphicalItem,ZK=Ml.removeCartesianGraphicalItem;Ml.addPolarGraphicalItem;Ml.removePolarGraphicalItem;Ml.replacePolarGraphicalItem;var JK=sj.reducer,eV=e=>{var t=xt(),r=g.useRef(null);return g.useLayoutEffect(()=>{r.current===null?t(QK(e)):r.current!==e&&t(XK({prev:r.current,next:e})),r.current=e},[t,e]),g.useLayoutEffect(()=>()=>{r.current&&(t(ZK(r.current)),r.current=null)},[t]),null},tV=g.memo(eV),rV=["points"];function RE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function lv(e){for(var t=1;t{var P,O,j=lv(lv(lv({r:3},s),v),{},{index:E,cx:(P=S.x)!==null&&P!==void 0?P:void 0,cy:(O=S.y)!==null&&O!==void 0?O:void 0,dataKey:o,value:S.value,payload:S.payload,points:t});return g.createElement(sV,{key:"dot-".concat(E),option:r,dotProps:j,className:i})}),k={};return u&&d!=null&&(k.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),g.createElement(di,{zIndex:h},g.createElement(Ur,yf({className:n},k),x))}function $E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LE(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),EV=H([kV,ai,oi],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),S0=()=>ke(EV),PV=()=>ke(N9);function zE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function sv(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,i=e.activeDot,o=e.dataKey,s=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var u={index:r,dataKey:o,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=sv(sv(sv({},u),Rf(i)),rg(i)),f;return g.isValidElement(i)?f=g.cloneElement(i,d):typeof i=="function"?f=i(d):f=g.createElement(rj,d),g.createElement(Ur,{className:"recharts-active-dot",clipPath:s},f)};function FE(e){var t=e.points,r=e.mainColor,n=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,u=s===void 0?rr.activeDot:s,d=ke(du),f=PV();if(t==null||f==null)return null;var h=t.find(m=>f.includes(m.payload));return Ut(h)?null:g.createElement(di,{zIndex:u},g.createElement(_V,{point:h,childIndex:Number(d),mainColor:r,dataKey:i,activeDot:n,clipPath:o}))}var jV=e=>{var t=e.chartData,r=xt(),n=gr();return g.useEffect(()=>n?()=>{}:(r(sE(t)),()=>{r(sE(void 0))}),[t,r,n]),null},BE={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},dj=Zt({name:"brush",initialState:BE,reducers:{setBrushSettings(e,t){return t.payload==null?BE:t.payload}}});dj.actions.setBrushSettings;var NV=dj.reducer;function IV(e){return(e%180+180)%180}var MV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=IV(i),s=o*Math.PI/180,u=Math.atan(n/r),d=s>u&&s{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=zr(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=zr(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=zr(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Tl=fj.actions;Tl.addDot;Tl.removeDot;Tl.addArea;Tl.removeArea;Tl.addLine;Tl.removeLine;var DV=fj.reducer;function RV(e,t){return FV(e)||zV(e,t)||LV(e,t)||$V()}function $V(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LV(e,t){if(e){if(typeof e=="string")return UE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?UE(e,t):void 0}}function UE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=g.useState("".concat(Zs("recharts"),"-clip")),n=RV(r,1),i=n[0],o=S0();if(o==null)return null;var s=o.x,u=o.y,d=o.width,f=o.height;return g.createElement(BV.Provider,{value:i},g.createElement("defs",null,g.createElement("clipPath",{id:i},g.createElement("rect",{x:s,y:u,height:f,width:d}))),t)};function hj(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;ne*i)return!1;var o=r();return e*(t-e*o/2-n)>=0&&e*(t+e*o/2-i)<=0}function KV(e,t){return hj(e,t+1)}function VV(e,t,r,n,i){for(var o=(n||[]).slice(),s=t.start,u=t.end,d=0,f=1,h=s,m=function(){var k=n==null?void 0:n[d];if(k===void 0)return{v:hj(n,f)};var S=d,E,P=()=>(E===void 0&&(E=r(k,S)),E),O=k.coordinate,j=d===0||hu(e,O,P,h,u);j||(d=0,h=s,f+=1),j&&(h=O+e*(P()/2+i),d+=f)},v;f<=o.length;)if(v=m(),v)return v.v;return[]}function qV(e,t,r,n,i){var o=(n||[]).slice(),s=o.length;if(s===0)return[];for(var u=t.start,d=t.end,f=1;f<=s;f++){for(var h=(s-1)%f,m=u,v=!0,x=function(){var _=n[S];if(_==null)return 0;var N=S,C,D=()=>(C===void 0&&(C=r(_,N)),C),F=_.coordinate,z=S===h||hu(e,F,D,m,d);if(!z)return v=!1,1;z&&(m=F+e*(D()/2+i))},k,S=h;S(S===void 0&&(S=r(x,v)),S);if(v===s-1){var P=e*(k.coordinate+e*E()/2-d);o[v]=k=Qt(Qt({},k),{},{tickCoord:P>0?k.coordinate-P*e:k.coordinate})}else o[v]=k=Qt(Qt({},k),{},{tickCoord:k.coordinate});if(k.tickCoord!=null){var O=hu(e,k.tickCoord,E,u,d);O&&(d=k.tickCoord-e*(E()/2+i),o[v]=Qt(Qt({},k),{},{isShow:!0}))}},h=s-1;h>=0;h--)f(h);return o}function ZV(e,t,r,n,i,o){var s=(n||[]).slice(),u=s.length,d=t.start,f=t.end;if(o){var h=n[u-1];if(h!=null){var m=r(h,u-1),v=e*(h.coordinate+e*m/2-f);if(s[u-1]=h=Qt(Qt({},h),{},{tickCoord:v>0?h.coordinate-v*e:h.coordinate}),h.tickCoord!=null){var x=hu(e,h.tickCoord,()=>m,d,f);x&&(f=h.tickCoord-e*(m/2+i),s[u-1]=Qt(Qt({},h),{},{isShow:!0}))}}}for(var k=o?u-1:u,S=function(O){var j=s[O];if(j==null)return 1;var _=j,N,C=()=>(N===void 0&&(N=r(j,O)),N);if(O===0){var D=e*(_.coordinate-e*C()/2-d);s[O]=_=Qt(Qt({},_),{},{tickCoord:D<0?_.coordinate-D*e:_.coordinate})}else s[O]=_=Qt(Qt({},_),{},{tickCoord:_.coordinate});if(_.tickCoord!=null){var F=hu(e,_.tickCoord,C,d,f);F&&(d=_.tickCoord+e*(C()/2+i),s[O]=Qt(Qt({},_),{},{isShow:!0}))}},E=0;E{var D=typeof f=="function"?f(N.value,C):N.value;return k==="width"?WV(Ws(D,{fontSize:t,letterSpacing:r}),S,m):Ws(D,{fontSize:t,letterSpacing:r})[k]},P=i[0],O=i[1],j=i.length>=2&&P!=null&&O!=null?Lr(O.coordinate-P.coordinate):1,_=HV(o,j,k);return d==="equidistantPreserveStart"?VV(j,_,E,i,s):d==="equidistantPreserveEnd"?qV(j,_,E,i,s):(d==="preserveStart"||d==="preserveStartEnd"?x=ZV(j,_,E,i,s,d==="preserveStartEnd"):x=XV(j,_,E,i,s),x.filter(N=>N.isShow))}var JV=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,i=n,o=e.tickSize,s=o===void 0?0:o,u=e.tickMargin,d=u===void 0?0:u,f=0;if(t){Array.from(t).forEach(x=>{if(x){var k=x.getBoundingClientRect();k.width>f&&(f=k.width)}});var h=r?r.getBoundingClientRect().width:0,m=s+d,v=f+m+h+(r?i:0);return Math.round(v)}return 0},eq={xAxis:{},yAxis:{}},pj=Zt({name:"renderedTicks",initialState:eq,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId,o=r.ticks;e[n][i]=o},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId;delete e[n][i]}}}),mj=pj.actions,tq=mj.setRenderedTicks,rq=mj.removeRenderedTicks,nq=pj.reducer,iq=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function HE(e,t){return sq(e)||lq(e,t)||oq(e,t)||aq()}function aq(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oq(e,t){if(e){if(typeof e=="string")return KE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?KE(e,t):void 0}}function KE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return kl;var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return i(tq({ticks:o,axisId:n,axisType:r})),()=>{i(rq({axisId:n,axisType:r}))}},[i,t,n,r]),null}var bq=g.forwardRef((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,i=e.tick,o=e.tickLine,s=e.stroke,u=e.tickFormatter,d=e.unit,f=e.padding,h=e.tickTextProps,m=e.orientation,v=e.mirror,x=e.x,k=e.y,S=e.width,E=e.height,P=e.tickSize,O=e.tickMargin,j=e.fontSize,_=e.letterSpacing,N=e.getTicksConfig,C=e.events,D=e.axisType,F=e.axisId,z=k0(ht(ht({},N),{},{ticks:n}),j,_),q=on(N),X=Rf(i),B=G_(q.textAnchor)?q.textAnchor:vq(m,v),ue=yq(m,v),Y={};typeof o=="object"&&(Y=o);var le=ht(ht({},q),{},{fill:"none"},Y),fe=z.map(ie=>ht({entry:ie},mq(ie,x,k,S,E,m,P,v,O))),de=fe.map(ie=>{var Q=ie.entry,R=ie.line;return g.createElement(Ur,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Q.value,"-").concat(Q.coordinate,"-").concat(Q.tickCoord)},o&&g.createElement("line",Qa({},le,R,{className:Qe("recharts-cartesian-axis-tick-line",Za(o,"className"))})))}),K=fe.map((ie,Q)=>{var R,M,J=ie.entry,se=ie.tick,te=ht(ht(ht(ht({verticalAnchor:ue},q),{},{textAnchor:B,stroke:"none",fill:s},se),{},{index:Q,payload:J,visibleTicksCount:z.length,tickFormatter:u,padding:f},h),{},{angle:(R=(M=h==null?void 0:h.angle)!==null&&M!==void 0?M:q.angle)!==null&&R!==void 0?R:0}),ce=ht(ht({},te),X);return g.createElement(Ur,Qa({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(J.value,"-").concat(J.coordinate,"-").concat(J.tickCoord)},E$(C,J,Q)),i&&g.createElement(gq,{option:i,tickProps:ce,value:"".concat(typeof u=="function"?u(J.value,Q):J.value).concat(d||"")}))});return g.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},g.createElement(xq,{ticks:z,axisId:F,axisType:D}),K.length>0&&g.createElement(di,{zIndex:rr.label},g.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:t},K)),de.length>0&&g.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},de))}),wq=g.forwardRef((e,t)=>{var r=e.axisLine,n=e.width,i=e.height,o=e.className,s=e.hide,u=e.ticks,d=e.axisType,f=e.axisId,h=uq(e,iq),m=g.useState(""),v=HE(m,2),x=v[0],k=v[1],S=g.useState(""),E=HE(S,2),P=E[0],O=E[1],j=g.useRef(null);g.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var N;return JV({ticks:j.current,label:(N=e.labelRef)===null||N===void 0?void 0:N.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var _=g.useCallback(N=>{if(N){var C=N.getElementsByClassName("recharts-cartesian-axis-tick-value");j.current=C;var D=C[0];if(D){var F=window.getComputedStyle(D),z=F.fontSize,q=F.letterSpacing;(z!==x||q!==P)&&(k(z),O(q))}}},[x,P]);return s||n!=null&&n<=0||i!=null&&i<=0?null:g.createElement(di,{zIndex:e.zIndex},g.createElement(Ur,{className:Qe("recharts-cartesian-axis",o)},g.createElement(pq,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:on(e)}),g.createElement(bq,{ref:_,axisType:d,events:h,fontSize:x,getTicksConfig:e,height:e.height,letterSpacing:P,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:u,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:f}),g.createElement(KH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},g.createElement(tK,{label:e.label,labelRef:e.labelRef}),e.children)))}),E0=g.forwardRef((e,t)=>{var r=Hr(e,ei);return g.createElement(wq,Qa({},r,{ref:t}))});E0.displayName="CartesianAxis";var Sq=["x1","y1","x2","y2","key"],kq=["offset"],Eq=["xAxisId","yAxisId"],Pq=["xAxisId","yAxisId"];function qE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Xt(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.ry;return g.createElement("rect",{x:n,y:i,ry:u,width:o,height:s,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function vj(e){var t=e.option,r=e.lineItemProps,n;if(g.isValidElement(t))n=g.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var i,o=r.x1,s=r.y1,u=r.x2,d=r.y2,f=r.key,h=gf(r,Sq),m=(i=on(h))!==null&&i!==void 0?i:{};m.offset;var v=gf(m,kq);n=g.createElement("line",Ca({},v,{x1:o,y1:s,x2:u,y2:d,fill:"none",key:f}))}return n}function Nq(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,o=e.horizontalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=gf(e,Eq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(f),index:f});return g.createElement(vj,{key:"line-".concat(f),option:i,lineItemProps:h})});return g.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Iq(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,o=e.verticalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=gf(e,Pq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(f),index:f});return g.createElement(vj,{option:i,lineItemProps:h,key:"line-".concat(f)})});return g.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Mq(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length||u==null)return null;var h=u.map(v=>Math.round(v+i-i)).sort((v,x)=>v-x);i!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?i+s-v:k-v;if(E<=0)return null;var P=x%t.length;return g.createElement("rect",{key:"react-".concat(x),y:v,x:n,height:E,width:o,stroke:"none",fill:t[P],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},m)}function Tq(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,o=e.x,s=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!r||!n||!n.length)return null;var h=f.map(v=>Math.round(v+o-o)).sort((v,x)=>v-x);o!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?o+u-v:k-v;if(E<=0)return null;var P=x%n.length;return g.createElement("rect",{key:"react-".concat(x),x:v,y:s,width:E,height:d,stroke:"none",fill:n[P],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},m)}var Dq=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},ei),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.left,o.left+o.width,t)},Rq=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},ei),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.top,o.top+o.height,t)},$q={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:rr.grid};function yj(e){var t=a2(),r=o2(),n=i2(),i=Xt(Xt({},Hr(e,$q)),{},{x:be(e.x)?e.x:n.left,y:be(e.y)?e.y:n.top,width:be(e.width)?e.width:n.width,height:be(e.height)?e.height:n.height}),o=i.xAxisId,s=i.yAxisId,u=i.x,d=i.y,f=i.width,h=i.height,m=i.syncWithTicks,v=i.horizontalValues,x=i.verticalValues,k=gr(),S=ke(z=>Yk(z,"xAxis",o,k)),E=ke(z=>Yk(z,"yAxis",s,k));if(!_n(f)||!_n(h)||!be(u)||!be(d))return null;var P=i.verticalCoordinatesGenerator||Dq,O=i.horizontalCoordinatesGenerator||Rq,j=i.horizontalPoints,_=i.verticalPoints;if((!j||!j.length)&&typeof O=="function"){var N=v&&v.length,C=O({yAxis:E?Xt(Xt({},E),{},{ticks:N?v:E.ticks}):void 0,width:t??f,height:r??h,offset:n},N?!0:m);Wd(Array.isArray(C),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof C,"]")),Array.isArray(C)&&(j=C)}if((!_||!_.length)&&typeof P=="function"){var D=x&&x.length,F=P({xAxis:S?Xt(Xt({},S),{},{ticks:D?x:S.ticks}):void 0,width:t??f,height:r??h,offset:n},D?!0:m);Wd(Array.isArray(F),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof F,"]")),Array.isArray(F)&&(_=F)}return g.createElement(di,{zIndex:i.zIndex},g.createElement("g",{className:"recharts-cartesian-grid"},g.createElement(jq,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),g.createElement(Mq,Ca({},i,{horizontalPoints:j})),g.createElement(Tq,Ca({},i,{verticalPoints:_})),g.createElement(Nq,Ca({},i,{offset:n,horizontalPoints:j,xAxis:S,yAxis:E})),g.createElement(Iq,Ca({},i,{offset:n,verticalPoints:_,xAxis:S,yAxis:E}))))}yj.displayName="CartesianGrid";var Lq={},gj=Zt({name:"errorBars",initialState:Lq,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]||(e[n]=[]),e[n].push(i)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.prev,o=r.next;e[n]&&(e[n]=e[n].map(s=>s.dataKey===i.dataKey&&s.direction===i.direction?o:s))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]&&(e[n]=e[n].filter(o=>o.dataKey!==i.dataKey||o.direction!==i.direction))}}}),P0=gj.actions;P0.addErrorBar;P0.replaceErrorBar;P0.removeErrorBar;var zq=gj.reducer;function xj(e,t){var r,n,i=ke(f=>si(f,e)),o=ke(f=>ui(f,t)),s=(r=i==null?void 0:i.allowDataOverflow)!==null&&r!==void 0?r:St.allowDataOverflow,u=(n=o==null?void 0:o.allowDataOverflow)!==null&&n!==void 0?n:kt.allowDataOverflow,d=s||u;return{needClip:d,needClipX:s,needClipY:u}}function Fq(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=S0(),o=xj(t,r),s=o.needClipX,u=o.needClipY,d=o.needClip,f=ke(j=>n_(j,t,!1)),h=ke(j=>i_(j,r,!1));if(!d||!i)return null;var m=i.x,v=i.y,x=i.width,k=i.height,S=s&&f?Math.min(f[0],f[1]):m-x/2,E=u&&h?Math.min(h[0],h[1]):v-k/2,P=s&&f?Math.abs(f[1]-f[0]):x*2,O=u&&h?Math.abs(h[1]-h[0]):k*2;return g.createElement("clipPath",{id:"clipPath-".concat(n)},g.createElement("rect",{x:S,y:E,width:P,height:O}))}function Bq(e){var t=Rf(e),r=3,n=2;if(t!=null){var i=t.r,o=t.strokeWidth,s=Number(i),u=Number(o);return(Number.isNaN(s)||s<0)&&(s=r),(Number.isNaN(u)||u<0)&&(u=n),{r:s,strokeWidth:u}}return{r,strokeWidth:n}}function A0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:uj}function O0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:uj}var bj=(e,t,r)=>f_(e,"xAxis",A0(e,t),r),wj=(e,t,r)=>d_(e,"xAxis",A0(e,t),r),Sj=(e,t,r)=>f_(e,"yAxis",O0(e,t),r),kj=(e,t,r)=>d_(e,"yAxis",O0(e,t),r),Uq=H([ot,bj,Sj,wj,kj],(e,t,r,n,i)=>Mn(e,"xAxis")?Ud(t,n,!1):Ud(r,i,!1)),Wq=(e,t)=>t,Ej=H([NC,Wq],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),Pj=e=>{var t=ot(e),r=Mn(t,"xAxis");return r?"yAxis":"xAxis"},Hq=(e,t)=>{var r=Pj(e);return r==="yAxis"?O0(e,t):A0(e,t)},Kq=(e,t,r)=>BC(e,Pj(e),Hq(e,t),r),Vq=H([Ej,Kq],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,i=Og(e);if(!(n==null||i==null)){var o=(r=t[n])===null||r===void 0?void 0:r.stackedData,s=o==null?void 0:o.find(u=>u.key===i);if(s!=null)return s.map(u=>[u[0],u[1]])}}}),qq=H([ot,bj,Sj,wj,kj,Vq,y6,Uq,Ej,T6],(e,t,r,n,i,o,s,u,d,f)=>{var h=s.chartData,m=s.dataStartIndex,v=s.dataEndIndex;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||i==null||n.length===0||i.length===0||u==null)){var x=d.data,k;if(x&&x.length>0?k=x:k=h==null?void 0:h.slice(m,v+1),k!=null)return xG({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:m,areaSettings:d,stackedData:o,displayedData:k,chartBaseValue:f,bandSize:u})}}),Gq=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],Yq=["id","baseLine"];function Hs(){return Hs=Object.assign?Object.assign.bind():function(e){for(var t=1;tm.y||0));return be(i)?h=Math.max(i,h):i&&Array.isArray(i)&&i.length&&(h=Math.max(...i.map(m=>m.y||0),h)),be(h)?g.createElement("rect",{x:um.x||0));return be(i)?h=Math.max(i,h):i&&Array.isArray(i)&&i.length&&(h=Math.max(...i.map(m=>m.x||0),h)),be(h)?g.createElement("rect",{x:0,y:ue==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[xl(xl({},r.next),{},{x:Yn(r.prev.x,r.next.x,t),y:Yn(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),Oj={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:b0,animationInterpolateFn:lG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:eG,xAxisId:0,yAxisId:0,zIndex:rr.area};function bf(e,t){return e&&e!=="none"?e:t}var sG=e=>{var t=e.dataKey,r=e.name,n=e.stroke,i=e.fill,o=e.legendType,s=e.hide;return[{inactive:s,dataKey:t,type:o,color:bf(n,i),value:ZO(r,t),payload:e}]},uG=g.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,i=e.strokeWidth,o=e.fill,s=e.name,u=e.hide,d=e.unit,f=e.tooltipType,h=e.id,m={dataDefinedOnItem:r,getPosition:kl,settings:{stroke:n,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:ZO(s,t),hide:u,type:f,color:bf(n,o),unit:d,graphicalItemId:h}};return g.createElement(wK,{tooltipEntrySettings:m})});function cG(e){var t=e.clipPathId,r=e.points,n=e.props,i=n.needClip,o=n.dot,s=n.dataKey,u=on(n);return g.createElement(cV,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:u,needClip:i,clipPathId:t})}function dG(e){var t=e.showLabels,r=e.children,n=e.points,i=n.map(o=>{var s,u,d={x:(s=o.x)!==null&&s!==void 0?s:0,y:(u=o.y)!==null&&u!==void 0?u:0,width:0,lowerWidth:0,upperWidth:0,height:0};return xl(xl({},d),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return g.createElement(oK,{value:t?i:void 0},r)}function fG(e){var t=e.points,r=e.baseLine,n=e.needClip,i=e.clipPathId,o=e.props,s=e.animationElapsedTime,u=e.isAnimating,d=e.isEntrance,f=o.layout,h=o.type,m=o.stroke,v=o.connectNulls,x=o.isRange,k=o.shape,S=o.id,E=Aj(o,tG),P=Br(E),O=xl(xl({},P),{},{id:S,points:t,connectNulls:v,type:h,baseLine:r,layout:f,stroke:m,isRange:x,animationElapsedTime:s,isAnimating:u,isEntrance:d});return g.createElement(g.Fragment,null,(t==null?void 0:t.length)>1&&g.createElement(Ur,{clipPath:n?"url(#clipPath-".concat(i,")"):void 0},g.createElement(bK,{option:k,DefaultShape:Oj.shape,shapeProps:O})),g.createElement(cG,{points:t,props:E,clipPathId:i}))}function hG(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Yn(n,e,r)}if(Ut(e)||On(e)){var i=be(t)?t:void 0;return Yn(i,0,r)}return e}function pG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=e.previousPointsRef,o=e.previousBaselineRef,s=n.points,u=n.baseLine,d=n.isAnimationActive,f=n.animationBegin,h=n.animationDuration,m=n.animationEasing,v=n.animationMatchBy,x=n.animationInterpolateFn,k=g.useMemo(()=>({points:s,baseLine:u}),[s,u]),S=oj(k,o),E=hg(),P=LK(n.onAnimationStart,n.onAnimationEnd),O=P.isAnimating,j=P.handleAnimationStart,_=P.handleAnimationEnd,N=S.startValue;if(E==null)return null;var C;return Array.isArray(u)&&Array.isArray(N)?C=Ey(N,u,v):Array.isArray(u)?C=Ey(null,u,v):C=null,g.createElement(zK,{animationInput:k,animationIdPrefix:"recharts-area-",items:s,previousItemsRef:i,isAnimationActive:d,animationBegin:f,animationDuration:h,animationEasing:m,onAnimationStart:j,onAnimationEnd:_,animationInterpolateFn:x,animationMatchBy:v,layout:E},(D,F,z)=>{var q;return F===1?q=u:Array.isArray(u)?q=x(C,F,E):q=z?u:hG(u,N,F),S.syncStepValue(q,F),g.createElement(dG,{showLabels:!O,points:s},n.children,g.createElement(fG,{points:D,baseLine:q,needClip:t,clipPathId:r,props:n,animationElapsedTime:F,isAnimating:O||F<1,isEntrance:z}),g.createElement(uK,{label:n.label}))})}function mG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=g.useRef(null),o=g.useRef();return g.createElement(pG,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:o})}class vG extends g.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,i=t.points,o=t.className,s=t.top,u=t.left,d=t.needClip,f=t.xAxisId,h=t.yAxisId,m=t.width,v=t.height,x=t.id,k=t.baseLine,S=t.zIndex;if(r)return null;var E=Qe("recharts-area",o),P=x,O=Bq(n),j=O.r,_=O.strokeWidth,N=ij(n),C=j*2+_,D=d?"url(#clipPath-".concat(N?"":"dots-").concat(P,")"):void 0;return g.createElement(di,{zIndex:S},g.createElement(Ur,{className:E},d&&g.createElement("defs",null,g.createElement(Fq,{clipPathId:P,xAxisId:f,yAxisId:h}),!N&&g.createElement("clipPath",{id:"clipPath-dots-".concat(P)},g.createElement("rect",{x:u-C/2,y:s-C/2,width:m+C,height:v+C}))),g.createElement(mG,{needClip:d,clipPathId:P,props:this.props})),g.createElement(FE,{points:i,mainColor:bf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}),this.props.isRange&&Array.isArray(k)&&g.createElement(FE,{points:k,mainColor:bf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}))}}function yG(e){var t,r=e.activeDot,n=e.animationBegin,i=e.animationDuration,o=e.animationEasing,s=e.connectNulls,u=e.dot,d=e.fill,f=e.fillOpacity,h=e.hide,m=e.isAnimationActive,v=e.legendType,x=e.stroke,k=e.xAxisId,S=e.yAxisId,E=Aj(e,rG),P=El(),O=D_(),j=xj(k,S),_=j.needClip,N=gr(),C=(t=ke(le=>qq(le,e.id,N)))!==null&&t!==void 0?t:{},D=C.points,F=C.isRange,z=C.baseLine,q=S0();if(P!=="horizontal"&&P!=="vertical"||q==null||O!=="AreaChart"&&O!=="ComposedChart")return null;var X=q.height,B=q.width,ue=q.x,Y=q.y;return!D||!D.length?null:g.createElement(vG,xf({},E,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:o,baseLine:z,connectNulls:s,dot:u,fill:d,fillOpacity:f,height:X,hide:h,layout:P,isAnimationActive:m,isRange:F,legendType:v,needClip:_,points:D,stroke:x,width:B,left:ue,top:Y,xAxisId:k,yAxisId:S}))}var gG=(e,t,r,n,i)=>{var o=r??t;if(be(o))return o;var s=e==="horizontal"?i:n,u=s.scale.domain();if(s.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return o==="dataMin"?f:o==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return o==="dataMin"?u[0]:o==="dataMax"?u[1]:u[0]};function xG(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,i=t.dataKey,o=e.stackedData,s=e.layout,u=e.chartBaseValue,d=e.xAxis,f=e.yAxis,h=e.displayedData,m=e.dataStartIndex,v=e.xAxisTicks,x=e.yAxisTicks,k=e.bandSize,S=o&&o.length,E=gG(s,u,n,d,f),P=s==="horizontal",O=!1,j=h.map((N,C)=>{var D,F,z,q;if(S)q=o[m+C];else{var X=Nt(N,i);Array.isArray(X)?(q=X,O=!0):q=[E,X]}var B=(D=(F=q)===null||F===void 0?void 0:F[1])!==null&&D!==void 0?D:null,ue=B==null||S&&!r&&Nt(N,i)==null;if(P){var Y;return{x:Hw({axis:d,ticks:v,bandSize:k,entry:N,index:C}),y:ue?null:(Y=f.scale.map(B))!==null&&Y!==void 0?Y:null,value:q,payload:N}}return{x:ue?null:(z=d.scale.map(B))!==null&&z!==void 0?z:null,y:Hw({axis:f,ticks:x,bandSize:k,entry:N,index:C}),value:q,payload:N}}),_;return S||O?_=j.map(N=>{var C,D=Array.isArray(N.value)?N.value[0]:null;if(P){var F;return{x:N.x,y:D!=null&&N.y!=null&&(F=f.scale.map(D))!==null&&F!==void 0?F:null,payload:N.payload}}return{x:D!=null&&(C=d.scale.map(D))!==null&&C!==void 0?C:null,y:N.y,payload:N.payload}}):_=P?f.scale.map(E):d.scale.map(E),{points:j,baseLine:_??0,isRange:O}}function bG(e){var t=Hr(e,Oj),r=gr();return g.createElement(GK,{id:t.id,type:"area"},n=>g.createElement(g.Fragment,null,g.createElement(SK,{legendPayload:sG(t)}),g.createElement(uG,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:n}),g.createElement(tV,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:n4(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),g.createElement(yG,xf({},t,{id:n}))))}var Cj=g.memo(bG,ih);Cj.displayName="Area";var wG=["domain","range"],SG=["domain","range"];function QE(e,t){if(e==null)return{};var r,n,i=kG(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(s!=null)return JE(JE({},o),{},{type:s})},[o,s]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(mV(u)):r.current!==u&&t(vV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(yV(r.current)),r.current=null)},[t]),null}var IG=e=>{var t=e.xAxisId,r=e.className,n=ke(e2),i=gr(),o="xAxis",s=ke(v=>c_(v,o,t,i)),u=ke(v=>f7(v,t)),d=ke(v=>g7(v,t)),f=ke(v=>OC(v,t));if(u==null||d==null||f==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=Ay(e,PG);f.id,f.scale;var m=Ay(f,AG);return g.createElement(E0,Py({},h,m,{x:d.x,y:d.y,width:u.width,height:u.height,className:Qe("recharts-".concat(o," ").concat(o),r),viewBox:n,ticks:s,axisType:o,axisId:t}))},MG={allowDataOverflow:St.allowDataOverflow,allowDecimals:St.allowDecimals,allowDuplicatedCategory:St.allowDuplicatedCategory,angle:St.angle,axisLine: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},TG=e=>{var t=Hr(e,MG);return g.createElement(g.Fragment,null,g.createElement(NG,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),g.createElement(IG,t))},Oy=g.memo(TG,_j);Oy.displayName="XAxis";var DG=["type"],RG=["dangerouslySetInnerHTML","ticks","scale"],$G=["id","scale"];function Cy(){return Cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return tP(tP({},o),{},{type:s})},[s,o]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(gV(u)):r.current!==u&&t(xV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(bV(r.current)),r.current=null)},[t]),null}function WG(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,o=g.useRef(null),s=g.useRef(null),u=ke(e2),d=gr(),f=xt(),h="yAxis",m=ke(P=>w7(P,t)),v=ke(P=>b7(P,t)),x=ke(P=>c_(P,h,t,d)),k=ke(P=>CC(P,t));if(g.useLayoutEffect(()=>{if(!(n!=="auto"||!m||x0(i)||g.isValidElement(i)||k==null)){var P=o.current;if(P){var O=P.getCalculatedWidth();Math.round(m.width)!==Math.round(O)&&f(wV({id:t,width:O}))}}},[x,m,f,i,t,n,k]),m==null||v==null||k==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var S=_y(e,RG);k.id,k.scale;var E=_y(k,$G);return g.createElement(E0,Cy({},S,E,{ref:o,labelRef:s,x:v.x,y:v.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:m.width,height:m.height,className:Qe("recharts-".concat(h," ").concat(h),r),viewBox:u,ticks:x,axisType:h,axisId:t}))}var HG={allowDataOverflow:kt.allowDataOverflow,allowDecimals:kt.allowDecimals,allowDuplicatedCategory:kt.allowDuplicatedCategory,angle:kt.angle,axisLine: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},KG=e=>{var t=Hr(e,HG);return g.createElement(g.Fragment,null,g.createElement(UG,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),g.createElement(WG,t))},jj=g.memo(KG,_j);jj.displayName="YAxis";var VG=(e,t)=>t,C0=H([VG,ot,U2,Mt,__,ci,W9,Ht],Q9);function qG(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function _0(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(qG(e)){var i=e.currentTarget.getBBox();r=i.width>0?t.width/i.width:1,n=i.height>0?t.height/i.height:1}else{var o=e.currentTarget;r=o.offsetWidth>0?t.width/o.offsetWidth:1,n=o.offsetHeight>0?t.height/o.offsetHeight:1}var s=(u,d)=>({relativeX:Math.round((u-t.left)/r),relativeY:Math.round((d-t.top)/n)});return"touches"in e?Array.from(e.touches).map(u=>s(u.clientX,u.clientY)):s(e.clientX,e.clientY)}var Nj=Cr("mouseClick"),Ij=Su();Ij.startListening({actionCreator:Nj,effect:(e,t)=>{var r=e.payload,n=C0(t.getState(),_0(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(R7({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var jy=Cr("mouseMove"),Mj=Su(),$o=null,ya=null,uv=null;Mj.startListening({actionCreator:jy,effect:(e,t)=>{var r=e.payload,n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||(s==null?void 0:s.includes("mousemove"));$o!==null&&(cancelAnimationFrame($o),$o=null),ya!==null&&(typeof o!="number"||!u)&&(clearTimeout(ya),ya=null),uv=_0(r);var d=()=>{var f=t.getState(),h=Du(f,f.tooltip.settings.shared);if(!uv){$o=null,ya=null;return}if(h==="axis"){var m=C0(f,uv);(m==null?void 0:m.activeIndex)!=null?t.dispatch(x_({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(g_())}$o=null,ya=null};if(!u){d();return}o==="raf"?$o=requestAnimationFrame(d):typeof o=="number"&&ya===null&&(ya=setTimeout(d,o))}});function GG(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var rP={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},Tj=Zt({name:"rootProps",initialState:rP,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:rP.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),YG=Tj.reducer,QG=Tj.actions.updateOptions,XG=null,ZG={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},Dj=Zt({name:"polarOptions",initialState:XG,reducers:ZG});Dj.actions.updatePolarOptions;var JG=Dj.reducer,Rj=Cr("keyDown"),$j=Cr("focus"),Lj=Cr("blur"),Eh=Su(),Lo=null,ga=null,md=null;Eh.startListening({actionCreator:Rj,effect:(e,t)=>{md=e.payload,Lo!==null&&(cancelAnimationFrame(Lo),Lo=null);var r=t.getState(),n=r.eventSettings,i=n.throttleDelay,o=n.throttledEvents,s=o==="all"||o.includes("keydown");ga!==null&&(typeof i!="number"||!s)&&(clearTimeout(ga),ga=null);var u=()=>{try{var d=t.getState(),f=d.rootProps.accessibilityLayer!==!1;if(!f)return;var h=d.tooltip.keyboardInteraction,m=md;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=Us(h,Ya(d),yl(d),gl(d)),x=v==null?-1:Number(v),k=!Number.isFinite(x)||x<0,S=ci(d),E=Ya(d),P=Du(d,d.tooltip.settings.shared);if(m==="Enter"){if(k)return;var O=pf(d,P,"hover",String(h.index));t.dispatch(hf({active:!h.active,activeIndex:h.index,activeCoordinate:O}));return}var j=A7(d),_=j==="left-to-right"?1:-1,N=m==="ArrowRight"?1:-1,C;if(k){var D=yl(d),F=gl(d),z=N*_,q=le=>({active:!1,index:String(le),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(C=-1,z>0){for(var X=0;X=0;B--)if(Us(q(B),E,D,F)!=null){C=B;break}if(C<0)return}else{C=x+N*_;var ue=(S==null?void 0:S.length)||E.length;if(ue===0||C>=ue||C<0)return}var Y=pf(d,P,"hover",String(C));t.dispatch(hf({active:!0,activeIndex:C.toString(),activeCoordinate:Y}))}finally{Lo=null,ga=null}};if(!s){u();return}i==="raf"?Lo=requestAnimationFrame(u):typeof i=="number"&&ga===null&&(u(),md=null,ga=setTimeout(()=>{md?u():(ga=null,Lo=null)},i))}});Eh.startListening({actionCreator:$j,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;if(!i.active&&i.index==null){var o="0",s=Du(r,r.tooltip.settings.shared),u=pf(r,s,"hover",String(o));t.dispatch(hf({active:!0,activeIndex:o,activeCoordinate:u}))}}}});Eh.startListening({actionCreator:Lj,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(hf({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function zj(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var i=Reflect.get(r,n);return typeof i=="function"?i.bind(r):i}})}var Rr=Cr("externalEvent"),Fj=Su(),vd=new Map,Ds=new Map,cv=new Map;Fj.startListening({actionCreator:Rr,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var o=i.type,s=zj(i);cv.set(o,{handler:n,reactEvent:s});var u=vd.get(o);u!==void 0&&(cancelAnimationFrame(u),vd.delete(o));var d=t.getState(),f=d.eventSettings,h=f.throttleDelay,m=f.throttledEvents,v=m,x=v==="all"||(v==null?void 0:v.includes(o)),k=Ds.get(o);k!==void 0&&(typeof h!="number"||!x)&&(clearTimeout(k),Ds.delete(o));var S=()=>{var O=cv.get(o);try{if(!O)return;var j=O.handler,_=O.reactEvent,N=t.getState(),C={activeCoordinate:C9(N),activeDataKey:P9(N),activeIndex:du(N),activeLabel:I_(N),activeTooltipIndex:du(N),isTooltipActive:_9(N)};j&&j(C,_)}finally{vd.delete(o),Ds.delete(o),cv.delete(o)}};if(!x){S();return}if(h==="raf"){var E=requestAnimationFrame(S);vd.set(o,E)}else if(typeof h=="number"){if(!Ds.has(o)){S();var P=setTimeout(S,h);Ds.set(o,P)}}else S()}}});var eY=H([Il],e=>e.tooltipItemPayloads),tY=H([eY,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(o=>o.settings.graphicalItemId===r);if(n!=null){var i=n.getPosition;if(i!=null)return i(t)}}}),Bj=Cr("touchMove"),Uj=Su(),xa=null,Ti=null,nP=null,Rs=null;Uj.startListening({actionCreator:Bj,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Rs=zj(r);var n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||s.includes("touchmove");xa!==null&&(cancelAnimationFrame(xa),xa=null),Ti!==null&&(typeof o!="number"||!u)&&(clearTimeout(Ti),Ti=null),nP=Array.from(r.touches).map(f=>_0({clientX:f.clientX,clientY:f.clientY,currentTarget:r.currentTarget}));var d=()=>{if(Rs!=null){var f=t.getState(),h=Du(f,f.tooltip.settings.shared);if(h==="axis"){var m,v=(m=nP)===null||m===void 0?void 0:m[0];if(v==null){xa=null,Ti=null;return}var x=C0(f,v);(x==null?void 0:x.activeIndex)!=null&&t.dispatch(x_({activeIndex:x.activeIndex,activeDataKey:void 0,activeCoordinate:x.activeCoordinate}))}else if(h==="item"){var k,S=Rs.touches[0];if(document.elementFromPoint==null||S==null)return;var E=document.elementFromPoint(S.clientX,S.clientY);if(!E||!E.getAttribute)return;var P=E.getAttribute(c4),O=(k=E.getAttribute(d4))!==null&&k!==void 0?k:void 0,j=to(f).find(C=>C.id===O);if(P==null||j==null||O==null)return;var _=j.dataKey,N=tY(f,P,O);t.dispatch(D7({activeDataKey:_,activeIndex:P,activeCoordinate:N,activeGraphicalItemId:O}))}xa=null,Ti=null}};if(!u){d();return}o==="raf"?xa=requestAnimationFrame(d):typeof o=="number"&&Ti===null&&(d(),Rs=null,Ti=setTimeout(()=>{Rs?d():(Ti=null,xa=null)},o))}}});var Wj={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},Hj=Zt({name:"eventSettings",initialState:Wj,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),rY=Hj.actions.setEventSettings,nY=Hj.reducer,iY=wO({brush:NV,cartesianAxis:SV,chartData:OW,errorBars:zq,eventSettings:nY,graphicalItems:JK,layout:GL,legend:sz,options:SW,polarAxis:dK,polarOptions:JG,referenceElements:DV,renderedTicks:nq,rootProps:YG,tooltip:$7,zIndex:uW}),aY=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return xL({reducer:iY,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([Ij.middleware,Mj.middleware,Eh.middleware,Fj.middleware,Uj.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat(RO({type:"raf"}))},devTools:{serialize:{replacer:GG},name:"recharts-".concat(r)}})};function oY(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,i=gr(),o=g.useRef(null);if(i)return r;o.current==null&&(o.current=aY(t,n));var s=ig;return g.createElement(Ez,{context:s,store:o.current},r)}function lY(e){var t=e.layout,r=e.margin,n=xt(),i=gr();return g.useEffect(()=>{i||(n(KL(t)),n(HL(r)))},[n,i,t,r]),null}var sY=g.memo(lY,ih);function uY(e){var t=xt();return g.useEffect(()=>{t(QG(e))},[t,e]),null}var cY=e=>{var t=xt();return g.useEffect(()=>{t(rY(e))},[t,e]),null},dY=g.memo(cY,ih);function iP(e){var t=e.zIndex,r=e.isPanorama,n=g.useRef(null),i=xt();return g.useLayoutEffect(()=>(n.current&&i(lW({zIndex:t,element:n.current,isPanorama:r})),()=>{i(sW({zIndex:t,isPanorama:r}))}),[i,t,r]),g.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function aP(e){var t=e.children,r=e.isPanorama,n=ke(Z9);if(!n||n.length===0)return t;var i=n.filter(s=>s<0),o=n.filter(s=>s>0);return g.createElement(g.Fragment,null,i.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})),t,o.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})))}var fY=["children"];function hY(e,t){if(e==null)return{};var r,n,i=pY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=a2(),n=o2(),i=v2();if(!_n(r)||!_n(n))return null;var o=e.children,s=e.otherAttributes,u=e.title,d=e.desc,f,h;return s!=null&&(typeof s.tabIndex=="number"?f=s.tabIndex:f=i?0:void 0,typeof s.role=="string"?h=s.role:h=i?"application":void 0),g.createElement(zA,wf({},s,{title:u,desc:d,role:h,tabIndex:f,width:r,height:n,style:mY,ref:t}),o)}),yY=e=>{var t=e.children,r=ke(Jf);if(!r)return null;var n=r.width,i=r.height,o=r.y,s=r.x;return g.createElement(zA,{width:n,height:i,x:s,y:o},t)},oP=g.forwardRef((e,t)=>{var r=e.children,n=hY(e,fY),i=gr();return i?g.createElement(yY,null,g.createElement(aP,{isPanorama:!0},r)):g.createElement(vY,wf({ref:t},n),g.createElement(aP,{isPanorama:!1},r))});function gY(e,t){return SY(e)||wY(e,t)||bY(e,t)||xY()}function xY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bY(e,t){if(e){if(typeof e=="string")return lP(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lP(e,t):void 0}}function lP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var s=n.getBoundingClientRect(),u=s.width/n.offsetWidth;Fe(u)&&u!==o&&e(qL(u))}},[n,e,o]),i}function sP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function EY(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(RW(),null);function kf(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var MY=g.forwardRef((e,t)=>{var r,n,i=g.useRef(null),o=g.useState({containerWidth:kf((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:kf((n=e.style)===null||n===void 0?void 0:n.height)}),s=Sf(o,2),u=s[0],d=s[1],f=g.useCallback((m,v)=>{d(x=>{var k=Math.round(m),S=Math.round(v);return x.containerWidth===k&&x.containerHeight===S?x:{containerWidth:k,containerHeight:S}})},[]),h=g.useCallback(m=>{if(typeof t=="function"&&t(m),i.current!=null&&(i.current.disconnect(),i.current=null),m!=null&&typeof ResizeObserver<"u"){var v=m.getBoundingClientRect(),x=v.width,k=v.height;f(x,k);var S=P=>{var O=P[0];if(O!=null){var j=O.contentRect,_=j.width,N=j.height;f(_,N)}},E=new ResizeObserver(S);E.observe(m),i.current=E}},[t,f]);return g.useEffect(()=>()=>{var m=i.current;m!=null&&m.disconnect()},[f]),g.createElement(g.Fragment,null,g.createElement(Eu,{width:u.containerWidth,height:u.containerHeight}),g.createElement("div",Zi({ref:h},e)))}),TY=g.forwardRef((e,t)=>{var r=e.width,n=e.height,i=g.useState({containerWidth:kf(r),containerHeight:kf(n)}),o=Sf(i,2),s=o[0],u=o[1],d=g.useCallback((h,m)=>{u(v=>{var x=Math.round(h),k=Math.round(m);return v.containerWidth===x&&v.containerHeight===k?v:{containerWidth:x,containerHeight:k}})},[]),f=g.useCallback(h=>{if(typeof t=="function"&&t(h),h!=null){var m=h.getBoundingClientRect(),v=m.width,x=m.height;d(v,x)}},[t,d]);return g.createElement(g.Fragment,null,g.createElement(Eu,{width:s.containerWidth,height:s.containerHeight}),g.createElement("div",Zi({ref:f},e)))}),DY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))}),RY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?g.createElement(TY,Zi({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?g.createElement(DY,Zi({},e,{width:r,height:n,ref:t})):g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))});function $Y(e){return e?MY:RY}var LY=g.forwardRef((e,t)=>{var r=e.children,n=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,u=e.onDoubleClick,d=e.onMouseDown,f=e.onMouseEnter,h=e.onMouseLeave,m=e.onMouseMove,v=e.onMouseUp,x=e.onTouchEnd,k=e.onTouchMove,S=e.onTouchStart,E=e.style,P=e.width,O=e.responsive,j=e.dispatchTouchEvents,_=j===void 0?!0:j,N=g.useRef(null),C=xt(),D=g.useState(null),F=Sf(D,2),z=F[0],q=F[1],X=g.useState(null),B=Sf(X,2),ue=B[0],Y=B[1],le=kY(),fe=dg(),de=(fe==null?void 0:fe.width)>0?fe.width:P,K=(fe==null?void 0:fe.height)>0?fe.height:i,ie=g.useCallback(Ee=>{le(Ee),typeof t=="function"&&t(Ee),q(Ee),Y(Ee),Ee!=null&&(N.current=Ee)},[le,t,q,Y]),Q=g.useCallback(Ee=>{C(Nj(Ee)),C(Rr({handler:o,reactEvent:Ee}))},[C,o]),R=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:f,reactEvent:Ee}))},[C,f]),M=g.useCallback(Ee=>{C(g_()),C(Rr({handler:h,reactEvent:Ee}))},[C,h]),J=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:m,reactEvent:Ee}))},[C,m]),se=g.useCallback(()=>{C($j())},[C]),te=g.useCallback(()=>{C(Lj())},[C]),ce=g.useCallback(Ee=>{C(Rj(Ee.key))},[C]),ye=g.useCallback(Ee=>{C(Rr({handler:s,reactEvent:Ee}))},[C,s]),_e=g.useCallback(Ee=>{C(Rr({handler:u,reactEvent:Ee}))},[C,u]),Z=g.useCallback(Ee=>{C(Rr({handler:d,reactEvent:Ee}))},[C,d]),we=g.useCallback(Ee=>{C(Rr({handler:v,reactEvent:Ee}))},[C,v]),Pe=g.useCallback(Ee=>{C(Rr({handler:S,reactEvent:Ee}))},[C,S]),ne=g.useCallback(Ee=>{_&&C(Bj(Ee)),C(Rr({handler:k,reactEvent:Ee}))},[C,_,k]),lt=g.useCallback(Ee=>{C(Rr({handler:x,reactEvent:Ee}))},[C,x]),Re=$Y(O);return g.createElement(F_.Provider,{value:z},g.createElement(Z3.Provider,{value:ue},g.createElement(Re,{width:de??(E==null?void 0:E.width),height:K??(E==null?void 0:E.height),className:Qe("recharts-wrapper",n),style:EY({position:"relative",cursor:"default",width:de,height:K},E),onClick:Q,onContextMenu:ye,onDoubleClick:_e,onFocus:se,onBlur:te,onKeyDown:ce,onMouseDown:Z,onMouseEnter:R,onMouseLeave:M,onMouseMove:J,onMouseUp:we,onTouchEnd:lt,onTouchMove:ne,onTouchStart:Pe,ref:ie},g.createElement(IY,null),r)))}),zY=["width","height","responsive","children","className","style","compact","title","desc"];function FY(e,t){if(e==null)return{};var r,n,i=BY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,i=e.responsive,o=e.children,s=e.className,u=e.style,d=e.compact,f=e.title,h=e.desc,m=FY(e,zY),v=on(m);return d?g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement(oP,{otherAttributes:v,title:f,desc:h},o)):g.createElement(LY,{className:s,style:u,width:r,height:n,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},g.createElement(oP,{otherAttributes:v,title:f,desc:h,ref:t},g.createElement(UV,null,o)))});function Ny(){return Ny=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.createElement(YY,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:QY,tooltipPayloadSearcher:bW,categoricalChartProps:e,ref:t}));const ZY="rgba(130,130,150,0.14)",dv="rgba(130,130,150,0.85)";function JY(e){if(e<=0)return 10;const t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=5?5:10)*t}function Kj(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function eQ({active:e,payload:t,unit:r,label:n}){return!e||!(t!=null&&t.length)?null:w.jsxs("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:[Number.isFinite(n)&&w.jsx("div",{className:"mb-1 border-b border-border/40 pb-1 font-mono text-[10px] text-muted-foreground/80",children:new Date(n).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),w.jsx("div",{className:"space-y-1",children:t.map(i=>w.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),w.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:i.name}),w.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:Kj(i.value,r)})]},i.dataKey))})]})}function Vj({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176,showTime:o=!1}){var h,m;const s=e.reduce((v,x)=>t.reduce((k,S)=>Math.max(k,Number(x[S.key])||0),v),0),u=n==="percent"?Math.min(100,Math.max(25,Math.ceil(s*1.2/25)*25)):Math.max(JY(s*1.15),10),d=e.length>1?Number((h=e[e.length-1])==null?void 0:h.t)-Number((m=e[0])==null?void 0:m.t):0,f=v=>new Date(v).toLocaleTimeString("de-DE",d<=10*6e4?{hour:"2-digit",minute:"2-digit",second:"2-digit"}:{hour:"2-digit",minute:"2-digit"});return w.jsx("div",{style:{height:i},className:"w-full",children:w.jsx(H4,{width:"100%",height:"100%",children:w.jsxs(XY,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[w.jsx("defs",{children:t.map(v=>w.jsxs("linearGradient",{id:`grad-${v.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[w.jsx("stop",{offset:"0%",stopColor:v.color,stopOpacity:.22}),w.jsx("stop",{offset:"100%",stopColor:v.color,stopOpacity:0})]},v.key))}),w.jsx(yj,{vertical:!1,stroke:ZY}),o?w.jsx(Oy,{dataKey:"t",type:"number",domain:["dataMin","dataMax"],tickFormatter:f,tickCount:5,minTickGap:40,interval:"preserveStartEnd",axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv},height:18}):w.jsx(Oy,{dataKey:"t",hide:!0}),w.jsx(jj,{domain:[0,u],ticks:[0,u/2,u],tickFormatter:v=>Kj(v,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv}}),w.jsx(YW,{content:w.jsx(eQ,{unit:r}),cursor:{stroke:dv,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(v=>w.jsx(Cj,{type:"monotone",dataKey:v.key,name:v.label,stroke:v.color,strokeWidth:2,fill:`url(#grad-${v.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},v.key))]})})})}const qj={"1h":60,"24h":1440},dP={live:"Live","1h":"1 h","24h":"24 h"};function Gj({value:e,onChange:t}){return w.jsx("div",{className:"flex rounded-lg border border-border/40 bg-background/30 p-0.5",children:Object.keys(dP).map(r=>w.jsx("button",{onClick:()=>t(r),className:De("rounded-md px-2 py-0.5 text-[9px] font-bold uppercase tracking-wide transition-all cursor-pointer",e===r?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:dP[r]},r))})}const tQ=[{key:"cpu",label:"CPU",color:"#2dd4bf"},{key:"ram",label:"RAM",color:"#38bdf8"},{key:"gpu",label:"GPU",color:"#a78bfa"},{key:"disk",label:"Disk",color:"#fbbf24"}];function rQ(){var h,m,v,x;const{sys:e,hist:t}=B3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var k;return r==="live"?t:(((k=i.data)==null?void 0:k.points)??[]).map(S=>({t:S.t*1e3,cpu:S.cpu,ram:S.ram,gpu:S.gpu,disk:S.disk}))},[r,t,i.data]),s=!!(e!=null&&e.gpu&&e.gpu.busy_percent!=null&&e.gpu.gtt_used!=null&&e.gpu.gtt_total!=null),u=tQ.filter(k=>k.key!=="gpu"||s),d={cpu:(h=e==null?void 0:e.cpu)==null?void 0:h.percent,ram:(m=e==null?void 0:e.ram)==null?void 0:m.percent,gpu:s?e.gpu.busy_percent:null,disk:(v=e==null?void 0:e.disk)==null?void 0:v.percent},f={cpu:(x=e==null?void 0:e.cpu)!=null&&x.cores?`${e.cpu.cores} Cores`:"",ram:e?`${No(e.ram.used)}/${No(e.ram.total)} GB`:"",gpu:s?`${No(e.gpu.gtt_used)}/${No(e.gpu.gtt_total)} GB`:"",disk:e!=null&&e.disk?`${No(e.disk.used)}/${No(e.disk.total)} GB`:""};return w.jsxs("div",{className:"flex flex-col justify-between mc-card p-5",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"System-Status"}),r==="live"&&w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]}),w.jsx("div",{className:"ml-auto",children:w.jsx(Gj,{value:r,onChange:n})})]}),e?w.jsxs(w.Fragment,{children:[w.jsx("div",{className:"mb-2 grid grid-cols-2 gap-x-4 gap-y-1.5",children:u.map(k=>w.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:k.color}}),w.jsx("span",{className:"shrink-0 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:k.label}),w.jsxs("span",{className:"shrink-0 font-mono text-xs font-bold tabular-nums text-foreground",children:[Math.round(d[k.key]??0),"%"]}),f[k.key]&&w.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/60",children:f[k.key]})]},k.key))}),r!=="live"&&o.length===0&&w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}),(r==="live"||o.length>0)&&w.jsx(Vj,{data:o,series:u,unit:"%",yMode:"percent",height:176,showTime:!0})]}):w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:"Lade Systemdaten…"})]}),(e==null?void 0:e.temp)&&(e.temp.cpu||e.temp.gpu)&&w.jsxs("div",{className:"mt-3 flex gap-4 border-t border-border/30 pt-3 font-mono text-xs text-muted-foreground/80",children:[e.temp.cpu!=null&&w.jsxs("span",{children:["CPU Temp: ",e.temp.cpu," °C"]}),e.temp.gpu!=null&&w.jsxs("span",{children:["GPU Temp: ",e.temp.gpu," °C"]})]})]})}const bl=[{key:"stt_ms",label:"STT",color:"#f59e0b"},{key:"vision_ms",label:"Sehen",color:"#a78bfa"},{key:"hirn_ms",label:"Hirn",color:"#2dd4bf"},{key:"gen_ms",label:"Antwort",color:"#60a5fa"}],_a=e=>e==null?"–":`${(e/1e3).toLocaleString("de-DE",{minimumFractionDigits:1,maximumFractionDigits:1})} s`;function nQ(e){const t=Math.max(0,Date.now()/1e3-e);return t<60?`vor ${Math.round(t)} s`:t<3600?`vor ${Math.round(t/60)} min`:`vor ${Math.round(t/3600)} h`}function Iy(e){return bl.reduce((t,r)=>t+(e[r.key]??0),0)}function iQ(e){let t=null;for(const r of bl){const n=e[r.key];n!=null&&(t==null||n>t.ms)&&(t={label:r.label,color:r.color,ms:n})}return t}function aQ({t:e,scale:t}){const r=bl.map(n=>`${n.label} ${_a(e[n.key])}`).join(" · ")+(e.mem0_ms!=null?` (davon Gedächtnis ${_a(e.mem0_ms)})`:"");return w.jsxs("div",{className:"flex items-center gap-2.5",children:[w.jsx("span",{className:"w-14 shrink-0 text-right font-mono text-[10px] text-muted-foreground/60",children:nQ(e.ts)}),w.jsxs("div",{className:"relative h-4 flex-1 overflow-hidden rounded-sm bg-muted/25",title:r,children:[w.jsx("div",{className:"absolute inset-0 flex",children:bl.map(n=>{const i=e[n.key];return!i||i<=0?null:w.jsx("div",{style:{width:`${i/t*100}%`,background:n.color},className:"h-full first:rounded-l-sm"},n.key)})}),e.error&&w.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-rose-500/15 text-[10px] font-semibold text-rose-300",children:"Fehler"})]}),w.jsx("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] font-semibold tabular-nums text-foreground",children:e.error?"–":_a(Iy(e))})]})}function oQ(){const{data:e}=b3(12),t=e??[],r=Math.max(1,...t.map(o=>Iy(o))),n=t[0],i=n?iQ(n):null;return w.jsxs("div",{className:"mc-card p-5",children:[w.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(aT,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Latenz je Turn"}),w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),n?w.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[w.jsx("span",{className:`font-space text-3xl font-bold tracking-tight tabular-nums ${n.error?"text-rose-400":"text-foreground"}`,children:n.error?"Fehler":_a(Iy(n))}),w.jsxs("span",{className:"text-xs text-muted-foreground",children:["letzter Turn",!n.error&&i&&w.jsxs(w.Fragment,{children:[" · Täter: ",w.jsx("span",{style:{color:i.color},className:"font-semibold",children:i.label})," ",_a(i.ms)]})]})]}):w.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:"Noch kein Voice-Turn aufgezeichnet."}),n&&!n.error&&w.jsxs("div",{className:"mt-0.5 font-mono text-[11px] text-muted-foreground/70",children:[bl.filter(o=>n[o.key]!=null).map(o=>`${o.label} ${_a(n[o.key])}`).join(" · "),n.mem0_ms!=null&&w.jsxs("span",{className:"text-muted-foreground/50",children:[" · davon Gedächtnis ",_a(n.mem0_ms)]})]})]}),w.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1 pt-1",children:bl.map(o=>w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:o.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:o.label})]},o.key))})]}),t.length>0?w.jsx("div",{className:"space-y-1.5",children:t.map(o=>w.jsx(aQ,{t:o,scale:r},o.id))}):w.jsx("div",{className:"flex h-[120px] items-center justify-center px-6 text-center text-xs text-muted-foreground",children:"Sprich einmal mit Lucy — dann erscheint hier der Zeit-Wasserfall pro Turn, damit man den einen Hänger sofort sieht."}),w.jsx("div",{className:"mt-3 border-t border-border/30 pt-2 text-[10px] leading-relaxed text-muted-foreground/70",children:'„Hirn" = Zeit bis zum ersten Wort (Agent + Mem0-Suche + Modell); Tool-Runden stecken in „Antwort". Reine Telegram-Turns laufen an MC2 vorbei und erscheinen hier nicht.'})]})}const fP=[{key:"prompt",label:"Prompt",color:"#f59e0b"},{key:"completion",label:"Antwort",color:"#2dd4bf"}];function lQ(){const{data:e}=MA(),t=R3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var h;if(r==="live")return t;const d=((h=i.data)==null?void 0:h.points)??[],f=[];for(let m=1;mw.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:d.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:d.label}),w.jsx("span",{className:"font-mono text-xs font-bold tabular-nums text-foreground",children:Math.round((s==null?void 0:s[d.key])??0)})]},d.key))})]})]}),r!=="live"&&o.length===0?w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}):e?w.jsx(Vj,{data:o,series:fP,unit:" tok/s",yMode:"auto",height:150,showTime:!0}):w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:"Lade Durchsatz…"}),w.jsx("div",{className:"mt-2 border-t border-border/30 pt-2 text-[10px] text-muted-foreground/70",children:"Durchsatz aus dem Gateway abgeleitet (Prefill vs. Generierung). Flach bei Leerlauf."})]})}const Ef=e=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:e}}));function sQ({onNavigate:e}){var Y,le,fe,de;const{data:t}=IA(),{data:r}=Qy(),{data:n}=TA(),{data:i}=S3(),{data:o}=k3(),{data:s}=y3(),{data:u}=g3(),d=L3(),{showAlert:f,dialogElement:h}=_A(),m=Af(),[v,x]=g.useState({});async function k(K,ie){x(Q=>({...Q,[K]:!0}));try{if(ie.kind==="loadModel")await Te(`/api/models/${encodeURIComponent(ie.model)}/load`,{method:"POST"});else{const Q=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:ie.service})});Q.ok||f("Reparatur nicht ganz geklappt",(Q.err||"Unbekannter Fehler")+(ie.needsSudo?` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UK(e,t){if(e){if(typeof e=="string")return DE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?DE(e,t):void 0}}function DE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=g.useState(()=>Zs("uid-")),t=FK(e,1),r=t[0];return r},lj=(ov=Pf.useId)!==null&&ov!==void 0?ov:KK;function VK(e,t){var r=lj();return t||(e?"".concat(e,"-").concat(r):r)}var qK=g.createContext(void 0),GK=e=>{var t=e.id,r=e.type,n=e.children,i=VK("recharts-".concat(r),t);return g.createElement(qK.Provider,{value:i},n(i))},YK={cartesianItems:[],polarItems:[]},sj=Zt({name:"graphicalItems",initialState:YK,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:tt()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).cartesianItems.indexOf(n);o>-1&&(e.cartesianItems[o]=i)},prepare:tt()},removeCartesianGraphicalItem:{reducer(e,t){var r=zr(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:tt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:tt()},removePolarGraphicalItem:{reducer(e,t){var r=zr(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:tt()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,o=zr(e).polarItems.indexOf(n);o>-1&&(e.polarItems[o]=i)},prepare:tt()}}}),Il=sj.actions,QK=Il.addCartesianGraphicalItem,XK=Il.replaceCartesianGraphicalItem,ZK=Il.removeCartesianGraphicalItem;Il.addPolarGraphicalItem;Il.removePolarGraphicalItem;Il.replacePolarGraphicalItem;var JK=sj.reducer,eV=e=>{var t=xt(),r=g.useRef(null);return g.useLayoutEffect(()=>{r.current===null?t(QK(e)):r.current!==e&&t(XK({prev:r.current,next:e})),r.current=e},[t,e]),g.useLayoutEffect(()=>()=>{r.current&&(t(ZK(r.current)),r.current=null)},[t]),null},tV=g.memo(eV),rV=["points"];function RE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function lv(e){for(var t=1;t{var P,O,j=lv(lv(lv({r:3},s),v),{},{index:E,cx:(P=S.x)!==null&&P!==void 0?P:void 0,cy:(O=S.y)!==null&&O!==void 0?O:void 0,dataKey:o,value:S.value,payload:S.payload,points:t});return g.createElement(sV,{key:"dot-".concat(E),option:r,dotProps:j,className:i})}),k={};return u&&d!=null&&(k.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),g.createElement(di,{zIndex:h},g.createElement(Ur,yf({className:n},k),x))}function $E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LE(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),EV=H([kV,ai,oi],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),S0=()=>ke(EV),PV=()=>ke(N9);function zE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function sv(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,i=e.activeDot,o=e.dataKey,s=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var u={index:r,dataKey:o,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=sv(sv(sv({},u),Rf(i)),rg(i)),f;return g.isValidElement(i)?f=g.cloneElement(i,d):typeof i=="function"?f=i(d):f=g.createElement(rj,d),g.createElement(Ur,{className:"recharts-active-dot",clipPath:s},f)};function FE(e){var t=e.points,r=e.mainColor,n=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,u=s===void 0?rr.activeDot:s,d=ke(du),f=PV();if(t==null||f==null)return null;var h=t.find(m=>f.includes(m.payload));return Ut(h)?null:g.createElement(di,{zIndex:u},g.createElement(_V,{point:h,childIndex:Number(d),mainColor:r,dataKey:i,activeDot:n,clipPath:o}))}var jV=e=>{var t=e.chartData,r=xt(),n=gr();return g.useEffect(()=>n?()=>{}:(r(sE(t)),()=>{r(sE(void 0))}),[t,r,n]),null},BE={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},dj=Zt({name:"brush",initialState:BE,reducers:{setBrushSettings(e,t){return t.payload==null?BE:t.payload}}});dj.actions.setBrushSettings;var NV=dj.reducer;function IV(e){return(e%180+180)%180}var MV=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=IV(i),s=o*Math.PI/180,u=Math.atan(n/r),d=s>u&&s{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=zr(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=zr(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=zr(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Ml=fj.actions;Ml.addDot;Ml.removeDot;Ml.addArea;Ml.removeArea;Ml.addLine;Ml.removeLine;var DV=fj.reducer;function RV(e,t){return FV(e)||zV(e,t)||LV(e,t)||$V()}function $V(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LV(e,t){if(e){if(typeof e=="string")return UE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?UE(e,t):void 0}}function UE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=g.useState("".concat(Zs("recharts"),"-clip")),n=RV(r,1),i=n[0],o=S0();if(o==null)return null;var s=o.x,u=o.y,d=o.width,f=o.height;return g.createElement(BV.Provider,{value:i},g.createElement("defs",null,g.createElement("clipPath",{id:i},g.createElement("rect",{x:s,y:u,height:f,width:d}))),t)};function hj(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;ne*i)return!1;var o=r();return e*(t-e*o/2-n)>=0&&e*(t+e*o/2-i)<=0}function KV(e,t){return hj(e,t+1)}function VV(e,t,r,n,i){for(var o=(n||[]).slice(),s=t.start,u=t.end,d=0,f=1,h=s,m=function(){var k=n==null?void 0:n[d];if(k===void 0)return{v:hj(n,f)};var S=d,E,P=()=>(E===void 0&&(E=r(k,S)),E),O=k.coordinate,j=d===0||hu(e,O,P,h,u);j||(d=0,h=s,f+=1),j&&(h=O+e*(P()/2+i),d+=f)},v;f<=o.length;)if(v=m(),v)return v.v;return[]}function qV(e,t,r,n,i){var o=(n||[]).slice(),s=o.length;if(s===0)return[];for(var u=t.start,d=t.end,f=1;f<=s;f++){for(var h=(s-1)%f,m=u,v=!0,x=function(){var _=n[S];if(_==null)return 0;var N=S,C,D=()=>(C===void 0&&(C=r(_,N)),C),F=_.coordinate,z=S===h||hu(e,F,D,m,d);if(!z)return v=!1,1;z&&(m=F+e*(D()/2+i))},k,S=h;S(S===void 0&&(S=r(x,v)),S);if(v===s-1){var P=e*(k.coordinate+e*E()/2-d);o[v]=k=Qt(Qt({},k),{},{tickCoord:P>0?k.coordinate-P*e:k.coordinate})}else o[v]=k=Qt(Qt({},k),{},{tickCoord:k.coordinate});if(k.tickCoord!=null){var O=hu(e,k.tickCoord,E,u,d);O&&(d=k.tickCoord-e*(E()/2+i),o[v]=Qt(Qt({},k),{},{isShow:!0}))}},h=s-1;h>=0;h--)f(h);return o}function ZV(e,t,r,n,i,o){var s=(n||[]).slice(),u=s.length,d=t.start,f=t.end;if(o){var h=n[u-1];if(h!=null){var m=r(h,u-1),v=e*(h.coordinate+e*m/2-f);if(s[u-1]=h=Qt(Qt({},h),{},{tickCoord:v>0?h.coordinate-v*e:h.coordinate}),h.tickCoord!=null){var x=hu(e,h.tickCoord,()=>m,d,f);x&&(f=h.tickCoord-e*(m/2+i),s[u-1]=Qt(Qt({},h),{},{isShow:!0}))}}}for(var k=o?u-1:u,S=function(O){var j=s[O];if(j==null)return 1;var _=j,N,C=()=>(N===void 0&&(N=r(j,O)),N);if(O===0){var D=e*(_.coordinate-e*C()/2-d);s[O]=_=Qt(Qt({},_),{},{tickCoord:D<0?_.coordinate-D*e:_.coordinate})}else s[O]=_=Qt(Qt({},_),{},{tickCoord:_.coordinate});if(_.tickCoord!=null){var F=hu(e,_.tickCoord,C,d,f);F&&(d=_.tickCoord+e*(C()/2+i),s[O]=Qt(Qt({},_),{},{isShow:!0}))}},E=0;E{var D=typeof f=="function"?f(N.value,C):N.value;return k==="width"?WV(Us(D,{fontSize:t,letterSpacing:r}),S,m):Us(D,{fontSize:t,letterSpacing:r})[k]},P=i[0],O=i[1],j=i.length>=2&&P!=null&&O!=null?Lr(O.coordinate-P.coordinate):1,_=HV(o,j,k);return d==="equidistantPreserveStart"?VV(j,_,E,i,s):d==="equidistantPreserveEnd"?qV(j,_,E,i,s):(d==="preserveStart"||d==="preserveStartEnd"?x=ZV(j,_,E,i,s,d==="preserveStartEnd"):x=XV(j,_,E,i,s),x.filter(N=>N.isShow))}var JV=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,i=n,o=e.tickSize,s=o===void 0?0:o,u=e.tickMargin,d=u===void 0?0:u,f=0;if(t){Array.from(t).forEach(x=>{if(x){var k=x.getBoundingClientRect();k.width>f&&(f=k.width)}});var h=r?r.getBoundingClientRect().width:0,m=s+d,v=f+m+h+(r?i:0);return Math.round(v)}return 0},eq={xAxis:{},yAxis:{}},pj=Zt({name:"renderedTicks",initialState:eq,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId,o=r.ticks;e[n][i]=o},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId;delete e[n][i]}}}),mj=pj.actions,tq=mj.setRenderedTicks,rq=mj.removeRenderedTicks,nq=pj.reducer,iq=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function HE(e,t){return sq(e)||lq(e,t)||oq(e,t)||aq()}function aq(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oq(e,t){if(e){if(typeof e=="string")return KE(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?KE(e,t):void 0}}function KE(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return Sl;var o=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return i(tq({ticks:o,axisId:n,axisType:r})),()=>{i(rq({axisId:n,axisType:r}))}},[i,t,n,r]),null}var bq=g.forwardRef((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,i=e.tick,o=e.tickLine,s=e.stroke,u=e.tickFormatter,d=e.unit,f=e.padding,h=e.tickTextProps,m=e.orientation,v=e.mirror,x=e.x,k=e.y,S=e.width,E=e.height,P=e.tickSize,O=e.tickMargin,j=e.fontSize,_=e.letterSpacing,N=e.getTicksConfig,C=e.events,D=e.axisType,F=e.axisId,z=k0(ht(ht({},N),{},{ticks:n}),j,_),q=on(N),X=Rf(i),B=G_(q.textAnchor)?q.textAnchor:vq(m,v),ue=yq(m,v),Y={};typeof o=="object"&&(Y=o);var le=ht(ht({},q),{},{fill:"none"},Y),fe=z.map(ie=>ht({entry:ie},mq(ie,x,k,S,E,m,P,v,O))),de=fe.map(ie=>{var Q=ie.entry,R=ie.line;return g.createElement(Ur,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Q.value,"-").concat(Q.coordinate,"-").concat(Q.tickCoord)},o&&g.createElement("line",Ya({},le,R,{className:Qe("recharts-cartesian-axis-tick-line",Xa(o,"className"))})))}),K=fe.map((ie,Q)=>{var R,M,J=ie.entry,se=ie.tick,te=ht(ht(ht(ht({verticalAnchor:ue},q),{},{textAnchor:B,stroke:"none",fill:s},se),{},{index:Q,payload:J,visibleTicksCount:z.length,tickFormatter:u,padding:f},h),{},{angle:(R=(M=h==null?void 0:h.angle)!==null&&M!==void 0?M:q.angle)!==null&&R!==void 0?R:0}),ce=ht(ht({},te),X);return g.createElement(Ur,Ya({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(J.value,"-").concat(J.coordinate,"-").concat(J.tickCoord)},E$(C,J,Q)),i&&g.createElement(gq,{option:i,tickProps:ce,value:"".concat(typeof u=="function"?u(J.value,Q):J.value).concat(d||"")}))});return g.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},g.createElement(xq,{ticks:z,axisId:F,axisType:D}),K.length>0&&g.createElement(di,{zIndex:rr.label},g.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:t},K)),de.length>0&&g.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},de))}),wq=g.forwardRef((e,t)=>{var r=e.axisLine,n=e.width,i=e.height,o=e.className,s=e.hide,u=e.ticks,d=e.axisType,f=e.axisId,h=uq(e,iq),m=g.useState(""),v=HE(m,2),x=v[0],k=v[1],S=g.useState(""),E=HE(S,2),P=E[0],O=E[1],j=g.useRef(null);g.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var N;return JV({ticks:j.current,label:(N=e.labelRef)===null||N===void 0?void 0:N.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var _=g.useCallback(N=>{if(N){var C=N.getElementsByClassName("recharts-cartesian-axis-tick-value");j.current=C;var D=C[0];if(D){var F=window.getComputedStyle(D),z=F.fontSize,q=F.letterSpacing;(z!==x||q!==P)&&(k(z),O(q))}}},[x,P]);return s||n!=null&&n<=0||i!=null&&i<=0?null:g.createElement(di,{zIndex:e.zIndex},g.createElement(Ur,{className:Qe("recharts-cartesian-axis",o)},g.createElement(pq,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:on(e)}),g.createElement(bq,{ref:_,axisType:d,events:h,fontSize:x,getTicksConfig:e,height:e.height,letterSpacing:P,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:u,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:f}),g.createElement(KH,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},g.createElement(tK,{label:e.label,labelRef:e.labelRef}),e.children)))}),E0=g.forwardRef((e,t)=>{var r=Hr(e,ei);return g.createElement(wq,Ya({},r,{ref:t}))});E0.displayName="CartesianAxis";var Sq=["x1","y1","x2","y2","key"],kq=["offset"],Eq=["xAxisId","yAxisId"],Pq=["xAxisId","yAxisId"];function qE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Xt(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.ry;return g.createElement("rect",{x:n,y:i,ry:u,width:o,height:s,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function vj(e){var t=e.option,r=e.lineItemProps,n;if(g.isValidElement(t))n=g.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var i,o=r.x1,s=r.y1,u=r.x2,d=r.y2,f=r.key,h=gf(r,Sq),m=(i=on(h))!==null&&i!==void 0?i:{};m.offset;var v=gf(m,kq);n=g.createElement("line",Ca({},v,{x1:o,y1:s,x2:u,y2:d,fill:"none",key:f}))}return n}function Nq(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,o=e.horizontalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=gf(e,Eq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(f),index:f});return g.createElement(vj,{key:"line-".concat(f),option:i,lineItemProps:h})});return g.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Iq(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,o=e.verticalPoints;if(!i||!o||!o.length)return null;e.xAxisId,e.yAxisId;var s=gf(e,Pq),u=o.map((d,f)=>{var h=Xt(Xt({},s),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(f),index:f});return g.createElement(vj,{option:i,lineItemProps:h,key:"line-".concat(f)})});return g.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Mq(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,o=e.width,s=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length||u==null)return null;var h=u.map(v=>Math.round(v+i-i)).sort((v,x)=>v-x);i!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?i+s-v:k-v;if(E<=0)return null;var P=x%t.length;return g.createElement("rect",{key:"react-".concat(x),y:v,x:n,height:E,width:o,stroke:"none",fill:t[P],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},m)}function Tq(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,o=e.x,s=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!r||!n||!n.length)return null;var h=f.map(v=>Math.round(v+o-o)).sort((v,x)=>v-x);o!==h[0]&&h.unshift(0);var m=h.map((v,x)=>{var k=h[x+1],S=k==null,E=S?o+u-v:k-v;if(E<=0)return null;var P=x%n.length;return g.createElement("rect",{key:"react-".concat(x),x:v,y:s,width:E,height:d,stroke:"none",fill:n[P],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return g.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},m)}var Dq=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},ei),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.left,o.left+o.width,t)},Rq=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,o=e.offset;return QO(k0(Xt(Xt(Xt({},ei),r),{},{ticks:XO(r),viewBox:{x:0,y:0,width:n,height:i}})),o.top,o.top+o.height,t)},$q={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:rr.grid};function yj(e){var t=a2(),r=o2(),n=i2(),i=Xt(Xt({},Hr(e,$q)),{},{x:be(e.x)?e.x:n.left,y:be(e.y)?e.y:n.top,width:be(e.width)?e.width:n.width,height:be(e.height)?e.height:n.height}),o=i.xAxisId,s=i.yAxisId,u=i.x,d=i.y,f=i.width,h=i.height,m=i.syncWithTicks,v=i.horizontalValues,x=i.verticalValues,k=gr(),S=ke(z=>Yk(z,"xAxis",o,k)),E=ke(z=>Yk(z,"yAxis",s,k));if(!_n(f)||!_n(h)||!be(u)||!be(d))return null;var P=i.verticalCoordinatesGenerator||Dq,O=i.horizontalCoordinatesGenerator||Rq,j=i.horizontalPoints,_=i.verticalPoints;if((!j||!j.length)&&typeof O=="function"){var N=v&&v.length,C=O({yAxis:E?Xt(Xt({},E),{},{ticks:N?v:E.ticks}):void 0,width:t??f,height:r??h,offset:n},N?!0:m);Wd(Array.isArray(C),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof C,"]")),Array.isArray(C)&&(j=C)}if((!_||!_.length)&&typeof P=="function"){var D=x&&x.length,F=P({xAxis:S?Xt(Xt({},S),{},{ticks:D?x:S.ticks}):void 0,width:t??f,height:r??h,offset:n},D?!0:m);Wd(Array.isArray(F),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof F,"]")),Array.isArray(F)&&(_=F)}return g.createElement(di,{zIndex:i.zIndex},g.createElement("g",{className:"recharts-cartesian-grid"},g.createElement(jq,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),g.createElement(Mq,Ca({},i,{horizontalPoints:j})),g.createElement(Tq,Ca({},i,{verticalPoints:_})),g.createElement(Nq,Ca({},i,{offset:n,horizontalPoints:j,xAxis:S,yAxis:E})),g.createElement(Iq,Ca({},i,{offset:n,verticalPoints:_,xAxis:S,yAxis:E}))))}yj.displayName="CartesianGrid";var Lq={},gj=Zt({name:"errorBars",initialState:Lq,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]||(e[n]=[]),e[n].push(i)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.prev,o=r.next;e[n]&&(e[n]=e[n].map(s=>s.dataKey===i.dataKey&&s.direction===i.direction?o:s))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]&&(e[n]=e[n].filter(o=>o.dataKey!==i.dataKey||o.direction!==i.direction))}}}),P0=gj.actions;P0.addErrorBar;P0.replaceErrorBar;P0.removeErrorBar;var zq=gj.reducer;function xj(e,t){var r,n,i=ke(f=>si(f,e)),o=ke(f=>ui(f,t)),s=(r=i==null?void 0:i.allowDataOverflow)!==null&&r!==void 0?r:St.allowDataOverflow,u=(n=o==null?void 0:o.allowDataOverflow)!==null&&n!==void 0?n:kt.allowDataOverflow,d=s||u;return{needClip:d,needClipX:s,needClipY:u}}function Fq(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=S0(),o=xj(t,r),s=o.needClipX,u=o.needClipY,d=o.needClip,f=ke(j=>n_(j,t,!1)),h=ke(j=>i_(j,r,!1));if(!d||!i)return null;var m=i.x,v=i.y,x=i.width,k=i.height,S=s&&f?Math.min(f[0],f[1]):m-x/2,E=u&&h?Math.min(h[0],h[1]):v-k/2,P=s&&f?Math.abs(f[1]-f[0]):x*2,O=u&&h?Math.abs(h[1]-h[0]):k*2;return g.createElement("clipPath",{id:"clipPath-".concat(n)},g.createElement("rect",{x:S,y:E,width:P,height:O}))}function Bq(e){var t=Rf(e),r=3,n=2;if(t!=null){var i=t.r,o=t.strokeWidth,s=Number(i),u=Number(o);return(Number.isNaN(s)||s<0)&&(s=r),(Number.isNaN(u)||u<0)&&(u=n),{r:s,strokeWidth:u}}return{r,strokeWidth:n}}function A0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:uj}function O0(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:uj}var bj=(e,t,r)=>f_(e,"xAxis",A0(e,t),r),wj=(e,t,r)=>d_(e,"xAxis",A0(e,t),r),Sj=(e,t,r)=>f_(e,"yAxis",O0(e,t),r),kj=(e,t,r)=>d_(e,"yAxis",O0(e,t),r),Uq=H([ot,bj,Sj,wj,kj],(e,t,r,n,i)=>Mn(e,"xAxis")?Ud(t,n,!1):Ud(r,i,!1)),Wq=(e,t)=>t,Ej=H([NC,Wq],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),Pj=e=>{var t=ot(e),r=Mn(t,"xAxis");return r?"yAxis":"xAxis"},Hq=(e,t)=>{var r=Pj(e);return r==="yAxis"?O0(e,t):A0(e,t)},Kq=(e,t,r)=>BC(e,Pj(e),Hq(e,t),r),Vq=H([Ej,Kq],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,i=Og(e);if(!(n==null||i==null)){var o=(r=t[n])===null||r===void 0?void 0:r.stackedData,s=o==null?void 0:o.find(u=>u.key===i);if(s!=null)return s.map(u=>[u[0],u[1]])}}}),qq=H([ot,bj,Sj,wj,kj,Vq,y6,Uq,Ej,T6],(e,t,r,n,i,o,s,u,d,f)=>{var h=s.chartData,m=s.dataStartIndex,v=s.dataEndIndex;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||i==null||n.length===0||i.length===0||u==null)){var x=d.data,k;if(x&&x.length>0?k=x:k=h==null?void 0:h.slice(m,v+1),k!=null)return xG({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:m,areaSettings:d,stackedData:o,displayedData:k,chartBaseValue:f,bandSize:u})}}),Gq=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],Yq=["id","baseLine"];function Ws(){return Ws=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"?[gl(gl({},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]:[]),Oj={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:b0,animationInterpolateFn:lG,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:eG,xAxisId:0,yAxisId:0,zIndex:rr.area};function bf(e,t){return e&&e!=="none"?e:t}var sG=e=>{var t=e.dataKey,r=e.name,n=e.stroke,i=e.fill,o=e.legendType,s=e.hide;return[{inactive:s,dataKey:t,type:o,color:bf(n,i),value:ZO(r,t),payload:e}]},uG=g.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,i=e.strokeWidth,o=e.fill,s=e.name,u=e.hide,d=e.unit,f=e.tooltipType,h=e.id,m={dataDefinedOnItem:r,getPosition:Sl,settings:{stroke:n,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:ZO(s,t),hide:u,type:f,color:bf(n,o),unit:d,graphicalItemId:h}};return g.createElement(wK,{tooltipEntrySettings:m})});function cG(e){var t=e.clipPathId,r=e.points,n=e.props,i=n.needClip,o=n.dot,s=n.dataKey,u=on(n);return g.createElement(cV,{points:r,dot:o,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:u,needClip:i,clipPathId:t})}function dG(e){var t=e.showLabels,r=e.children,n=e.points,i=n.map(o=>{var s,u,d={x:(s=o.x)!==null&&s!==void 0?s:0,y:(u=o.y)!==null&&u!==void 0?u:0,width:0,lowerWidth:0,upperWidth:0,height:0};return gl(gl({},d),{},{value:o.value,payload:o.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return g.createElement(oK,{value:t?i:void 0},r)}function fG(e){var t=e.points,r=e.baseLine,n=e.needClip,i=e.clipPathId,o=e.props,s=e.animationElapsedTime,u=e.isAnimating,d=e.isEntrance,f=o.layout,h=o.type,m=o.stroke,v=o.connectNulls,x=o.isRange,k=o.shape,S=o.id,E=Aj(o,tG),P=Br(E),O=gl(gl({},P),{},{id:S,points:t,connectNulls:v,type:h,baseLine:r,layout:f,stroke:m,isRange:x,animationElapsedTime:s,isAnimating:u,isEntrance:d});return g.createElement(g.Fragment,null,(t==null?void 0:t.length)>1&&g.createElement(Ur,{clipPath:n?"url(#clipPath-".concat(i,")"):void 0},g.createElement(bK,{option:k,DefaultShape:Oj.shape,shapeProps:O})),g.createElement(cG,{points:t,props:E,clipPathId:i}))}function hG(e,t,r){if(be(e)){var n=be(t)?t:void 0;return Yn(n,e,r)}if(Ut(e)||On(e)){var i=be(t)?t:void 0;return Yn(i,0,r)}return e}function pG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=e.previousPointsRef,o=e.previousBaselineRef,s=n.points,u=n.baseLine,d=n.isAnimationActive,f=n.animationBegin,h=n.animationDuration,m=n.animationEasing,v=n.animationMatchBy,x=n.animationInterpolateFn,k=g.useMemo(()=>({points:s,baseLine:u}),[s,u]),S=oj(k,o),E=hg(),P=LK(n.onAnimationStart,n.onAnimationEnd),O=P.isAnimating,j=P.handleAnimationStart,_=P.handleAnimationEnd,N=S.startValue;if(E==null)return null;var C;return Array.isArray(u)&&Array.isArray(N)?C=Ey(N,u,v):Array.isArray(u)?C=Ey(null,u,v):C=null,g.createElement(zK,{animationInput:k,animationIdPrefix:"recharts-area-",items:s,previousItemsRef:i,isAnimationActive:d,animationBegin:f,animationDuration:h,animationEasing:m,onAnimationStart:j,onAnimationEnd:_,animationInterpolateFn:x,animationMatchBy:v,layout:E},(D,F,z)=>{var q;return F===1?q=u:Array.isArray(u)?q=x(C,F,E):q=z?u:hG(u,N,F),S.syncStepValue(q,F),g.createElement(dG,{showLabels:!O,points:s},n.children,g.createElement(fG,{points:D,baseLine:q,needClip:t,clipPathId:r,props:n,animationElapsedTime:F,isAnimating:O||F<1,isEntrance:z}),g.createElement(uK,{label:n.label}))})}function mG(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=g.useRef(null),o=g.useRef();return g.createElement(pG,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:o})}class vG extends g.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,i=t.points,o=t.className,s=t.top,u=t.left,d=t.needClip,f=t.xAxisId,h=t.yAxisId,m=t.width,v=t.height,x=t.id,k=t.baseLine,S=t.zIndex;if(r)return null;var E=Qe("recharts-area",o),P=x,O=Bq(n),j=O.r,_=O.strokeWidth,N=ij(n),C=j*2+_,D=d?"url(#clipPath-".concat(N?"":"dots-").concat(P,")"):void 0;return g.createElement(di,{zIndex:S},g.createElement(Ur,{className:E},d&&g.createElement("defs",null,g.createElement(Fq,{clipPathId:P,xAxisId:f,yAxisId:h}),!N&&g.createElement("clipPath",{id:"clipPath-dots-".concat(P)},g.createElement("rect",{x:u-C/2,y:s-C/2,width:m+C,height:v+C}))),g.createElement(mG,{needClip:d,clipPathId:P,props:this.props})),g.createElement(FE,{points:i,mainColor:bf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}),this.props.isRange&&Array.isArray(k)&&g.createElement(FE,{points:k,mainColor:bf(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:D}))}}function yG(e){var t,r=e.activeDot,n=e.animationBegin,i=e.animationDuration,o=e.animationEasing,s=e.connectNulls,u=e.dot,d=e.fill,f=e.fillOpacity,h=e.hide,m=e.isAnimationActive,v=e.legendType,x=e.stroke,k=e.xAxisId,S=e.yAxisId,E=Aj(e,rG),P=kl(),O=D_(),j=xj(k,S),_=j.needClip,N=gr(),C=(t=ke(le=>qq(le,e.id,N)))!==null&&t!==void 0?t:{},D=C.points,F=C.isRange,z=C.baseLine,q=S0();if(P!=="horizontal"&&P!=="vertical"||q==null||O!=="AreaChart"&&O!=="ComposedChart")return null;var X=q.height,B=q.width,ue=q.x,Y=q.y;return!D||!D.length?null:g.createElement(vG,xf({},E,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:o,baseLine:z,connectNulls:s,dot:u,fill:d,fillOpacity:f,height:X,hide:h,layout:P,isAnimationActive:m,isRange:F,legendType:v,needClip:_,points:D,stroke:x,width:B,left:ue,top:Y,xAxisId:k,yAxisId:S}))}var gG=(e,t,r,n,i)=>{var o=r??t;if(be(o))return o;var s=e==="horizontal"?i:n,u=s.scale.domain();if(s.type==="number"){var d=Math.max(u[0],u[1]),f=Math.min(u[0],u[1]);return o==="dataMin"?f:o==="dataMax"||d<0?d:Math.max(Math.min(u[0],u[1]),0)}return o==="dataMin"?u[0]:o==="dataMax"?u[1]:u[0]};function xG(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,i=t.dataKey,o=e.stackedData,s=e.layout,u=e.chartBaseValue,d=e.xAxis,f=e.yAxis,h=e.displayedData,m=e.dataStartIndex,v=e.xAxisTicks,x=e.yAxisTicks,k=e.bandSize,S=o&&o.length,E=gG(s,u,n,d,f),P=s==="horizontal",O=!1,j=h.map((N,C)=>{var D,F,z,q;if(S)q=o[m+C];else{var X=Nt(N,i);Array.isArray(X)?(q=X,O=!0):q=[E,X]}var B=(D=(F=q)===null||F===void 0?void 0:F[1])!==null&&D!==void 0?D:null,ue=B==null||S&&!r&&Nt(N,i)==null;if(P){var Y;return{x:Hw({axis:d,ticks:v,bandSize:k,entry:N,index:C}),y:ue?null:(Y=f.scale.map(B))!==null&&Y!==void 0?Y:null,value:q,payload:N}}return{x:ue?null:(z=d.scale.map(B))!==null&&z!==void 0?z:null,y:Hw({axis:f,ticks:x,bandSize:k,entry:N,index:C}),value:q,payload:N}}),_;return S||O?_=j.map(N=>{var C,D=Array.isArray(N.value)?N.value[0]:null;if(P){var F;return{x:N.x,y:D!=null&&N.y!=null&&(F=f.scale.map(D))!==null&&F!==void 0?F:null,payload:N.payload}}return{x:D!=null&&(C=d.scale.map(D))!==null&&C!==void 0?C:null,y:N.y,payload:N.payload}}):_=P?f.scale.map(E):d.scale.map(E),{points:j,baseLine:_??0,isRange:O}}function bG(e){var t=Hr(e,Oj),r=gr();return g.createElement(GK,{id:t.id,type:"area"},n=>g.createElement(g.Fragment,null,g.createElement(SK,{legendPayload:sG(t)}),g.createElement(uG,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:n}),g.createElement(tV,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:n4(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),g.createElement(yG,xf({},t,{id:n}))))}var Cj=g.memo(bG,ih);Cj.displayName="Area";var wG=["domain","range"],SG=["domain","range"];function QE(e,t){if(e==null)return{};var r,n,i=kG(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{if(s!=null)return JE(JE({},o),{},{type:s})},[o,s]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(mV(u)):r.current!==u&&t(vV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(yV(r.current)),r.current=null)},[t]),null}var IG=e=>{var t=e.xAxisId,r=e.className,n=ke(e2),i=gr(),o="xAxis",s=ke(v=>c_(v,o,t,i)),u=ke(v=>f7(v,t)),d=ke(v=>g7(v,t)),f=ke(v=>OC(v,t));if(u==null||d==null||f==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=Ay(e,PG);f.id,f.scale;var m=Ay(f,AG);return g.createElement(E0,Py({},h,m,{x:d.x,y:d.y,width:u.width,height:u.height,className:Qe("recharts-".concat(o," ").concat(o),r),viewBox:n,ticks:s,axisType:o,axisId:t}))},MG={allowDataOverflow:St.allowDataOverflow,allowDecimals:St.allowDecimals,allowDuplicatedCategory:St.allowDuplicatedCategory,angle:St.angle,axisLine: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},TG=e=>{var t=Hr(e,MG);return g.createElement(g.Fragment,null,g.createElement(NG,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),g.createElement(IG,t))},Oy=g.memo(TG,_j);Oy.displayName="XAxis";var DG=["type"],RG=["dangerouslySetInnerHTML","ticks","scale"],$G=["id","scale"];function Cy(){return Cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return tP(tP({},o),{},{type:s})},[s,o]);return g.useLayoutEffect(()=>{u!=null&&(r.current===null?t(gV(u)):r.current!==u&&t(xV({prev:r.current,next:u})),r.current=u)},[u,t]),g.useLayoutEffect(()=>()=>{r.current&&(t(bV(r.current)),r.current=null)},[t]),null}function WG(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,o=g.useRef(null),s=g.useRef(null),u=ke(e2),d=gr(),f=xt(),h="yAxis",m=ke(P=>w7(P,t)),v=ke(P=>b7(P,t)),x=ke(P=>c_(P,h,t,d)),k=ke(P=>CC(P,t));if(g.useLayoutEffect(()=>{if(!(n!=="auto"||!m||x0(i)||g.isValidElement(i)||k==null)){var P=o.current;if(P){var O=P.getCalculatedWidth();Math.round(m.width)!==Math.round(O)&&f(wV({id:t,width:O}))}}},[x,m,f,i,t,n,k]),m==null||v==null||k==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var S=_y(e,RG);k.id,k.scale;var E=_y(k,$G);return g.createElement(E0,Cy({},S,E,{ref:o,labelRef:s,x:v.x,y:v.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:m.width,height:m.height,className:Qe("recharts-".concat(h," ").concat(h),r),viewBox:u,ticks:x,axisType:h,axisId:t}))}var HG={allowDataOverflow:kt.allowDataOverflow,allowDecimals:kt.allowDecimals,allowDuplicatedCategory:kt.allowDuplicatedCategory,angle:kt.angle,axisLine: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},KG=e=>{var t=Hr(e,HG);return g.createElement(g.Fragment,null,g.createElement(UG,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),g.createElement(WG,t))},jj=g.memo(KG,_j);jj.displayName="YAxis";var VG=(e,t)=>t,C0=H([VG,ot,U2,Mt,__,ci,W9,Ht],Q9);function qG(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function _0(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(qG(e)){var i=e.currentTarget.getBBox();r=i.width>0?t.width/i.width:1,n=i.height>0?t.height/i.height:1}else{var o=e.currentTarget;r=o.offsetWidth>0?t.width/o.offsetWidth:1,n=o.offsetHeight>0?t.height/o.offsetHeight:1}var s=(u,d)=>({relativeX:Math.round((u-t.left)/r),relativeY:Math.round((d-t.top)/n)});return"touches"in e?Array.from(e.touches).map(u=>s(u.clientX,u.clientY)):s(e.clientX,e.clientY)}var Nj=Cr("mouseClick"),Ij=Su();Ij.startListening({actionCreator:Nj,effect:(e,t)=>{var r=e.payload,n=C0(t.getState(),_0(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(R7({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var jy=Cr("mouseMove"),Mj=Su(),Ro=null,ya=null,uv=null;Mj.startListening({actionCreator:jy,effect:(e,t)=>{var r=e.payload,n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||(s==null?void 0:s.includes("mousemove"));Ro!==null&&(cancelAnimationFrame(Ro),Ro=null),ya!==null&&(typeof o!="number"||!u)&&(clearTimeout(ya),ya=null),uv=_0(r);var d=()=>{var f=t.getState(),h=Du(f,f.tooltip.settings.shared);if(!uv){Ro=null,ya=null;return}if(h==="axis"){var m=C0(f,uv);(m==null?void 0:m.activeIndex)!=null?t.dispatch(x_({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(g_())}Ro=null,ya=null};if(!u){d();return}o==="raf"?Ro=requestAnimationFrame(d):typeof o=="number"&&ya===null&&(ya=setTimeout(d,o))}});function GG(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var rP={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},Tj=Zt({name:"rootProps",initialState:rP,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:rP.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),YG=Tj.reducer,QG=Tj.actions.updateOptions,XG=null,ZG={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},Dj=Zt({name:"polarOptions",initialState:XG,reducers:ZG});Dj.actions.updatePolarOptions;var JG=Dj.reducer,Rj=Cr("keyDown"),$j=Cr("focus"),Lj=Cr("blur"),Eh=Su(),$o=null,ga=null,md=null;Eh.startListening({actionCreator:Rj,effect:(e,t)=>{md=e.payload,$o!==null&&(cancelAnimationFrame($o),$o=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=md;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=Bs(h,Ga(d),vl(d),yl(d)),x=v==null?-1:Number(v),k=!Number.isFinite(x)||x<0,S=ci(d),E=Ga(d),P=Du(d,d.tooltip.settings.shared);if(m==="Enter"){if(k)return;var O=pf(d,P,"hover",String(h.index));t.dispatch(hf({active:!h.active,activeIndex:h.index,activeCoordinate:O}));return}var j=A7(d),_=j==="left-to-right"?1:-1,N=m==="ArrowRight"?1:-1,C;if(k){var D=vl(d),F=yl(d),z=N*_,q=le=>({active:!1,index:String(le),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(C=-1,z>0){for(var X=0;X=0;B--)if(Bs(q(B),E,D,F)!=null){C=B;break}if(C<0)return}else{C=x+N*_;var ue=(S==null?void 0:S.length)||E.length;if(ue===0||C>=ue||C<0)return}var Y=pf(d,P,"hover",String(C));t.dispatch(hf({active:!0,activeIndex:C.toString(),activeCoordinate:Y}))}finally{$o=null,ga=null}};if(!s){u();return}i==="raf"?$o=requestAnimationFrame(u):typeof i=="number"&&ga===null&&(u(),md=null,ga=setTimeout(()=>{md?u():(ga=null,$o=null)},i))}});Eh.startListening({actionCreator:$j,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;if(!i.active&&i.index==null){var o="0",s=Du(r,r.tooltip.settings.shared),u=pf(r,s,"hover",String(o));t.dispatch(hf({active:!0,activeIndex:o,activeCoordinate:u}))}}}});Eh.startListening({actionCreator:Lj,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(hf({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function zj(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var i=Reflect.get(r,n);return typeof i=="function"?i.bind(r):i}})}var Rr=Cr("externalEvent"),Fj=Su(),vd=new Map,Ts=new Map,cv=new Map;Fj.startListening({actionCreator:Rr,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var o=i.type,s=zj(i);cv.set(o,{handler:n,reactEvent:s});var u=vd.get(o);u!==void 0&&(cancelAnimationFrame(u),vd.delete(o));var d=t.getState(),f=d.eventSettings,h=f.throttleDelay,m=f.throttledEvents,v=m,x=v==="all"||(v==null?void 0:v.includes(o)),k=Ts.get(o);k!==void 0&&(typeof h!="number"||!x)&&(clearTimeout(k),Ts.delete(o));var S=()=>{var O=cv.get(o);try{if(!O)return;var j=O.handler,_=O.reactEvent,N=t.getState(),C={activeCoordinate:C9(N),activeDataKey:P9(N),activeIndex:du(N),activeLabel:I_(N),activeTooltipIndex:du(N),isTooltipActive:_9(N)};j&&j(C,_)}finally{vd.delete(o),Ts.delete(o),cv.delete(o)}};if(!x){S();return}if(h==="raf"){var E=requestAnimationFrame(S);vd.set(o,E)}else if(typeof h=="number"){if(!Ts.has(o)){S();var P=setTimeout(S,h);Ts.set(o,P)}}else S()}}});var eY=H([Nl],e=>e.tooltipItemPayloads),tY=H([eY,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(o=>o.settings.graphicalItemId===r);if(n!=null){var i=n.getPosition;if(i!=null)return i(t)}}}),Bj=Cr("touchMove"),Uj=Su(),xa=null,Ti=null,nP=null,Ds=null;Uj.startListening({actionCreator:Bj,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){Ds=zj(r);var n=t.getState(),i=n.eventSettings,o=i.throttleDelay,s=i.throttledEvents,u=s==="all"||s.includes("touchmove");xa!==null&&(cancelAnimationFrame(xa),xa=null),Ti!==null&&(typeof o!="number"||!u)&&(clearTimeout(Ti),Ti=null),nP=Array.from(r.touches).map(f=>_0({clientX:f.clientX,clientY:f.clientY,currentTarget:r.currentTarget}));var d=()=>{if(Ds!=null){var f=t.getState(),h=Du(f,f.tooltip.settings.shared);if(h==="axis"){var m,v=(m=nP)===null||m===void 0?void 0:m[0];if(v==null){xa=null,Ti=null;return}var x=C0(f,v);(x==null?void 0:x.activeIndex)!=null&&t.dispatch(x_({activeIndex:x.activeIndex,activeDataKey:void 0,activeCoordinate:x.activeCoordinate}))}else if(h==="item"){var k,S=Ds.touches[0];if(document.elementFromPoint==null||S==null)return;var E=document.elementFromPoint(S.clientX,S.clientY);if(!E||!E.getAttribute)return;var P=E.getAttribute(c4),O=(k=E.getAttribute(d4))!==null&&k!==void 0?k:void 0,j=eo(f).find(C=>C.id===O);if(P==null||j==null||O==null)return;var _=j.dataKey,N=tY(f,P,O);t.dispatch(D7({activeDataKey:_,activeIndex:P,activeCoordinate:N,activeGraphicalItemId:O}))}xa=null,Ti=null}};if(!u){d();return}o==="raf"?xa=requestAnimationFrame(d):typeof o=="number"&&Ti===null&&(d(),Ds=null,Ti=setTimeout(()=>{Ds?d():(Ti=null,xa=null)},o))}}});var Wj={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},Hj=Zt({name:"eventSettings",initialState:Wj,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),rY=Hj.actions.setEventSettings,nY=Hj.reducer,iY=wO({brush:NV,cartesianAxis:SV,chartData:OW,errorBars:zq,eventSettings:nY,graphicalItems:JK,layout:G5,legend:sz,options:SW,polarAxis:dK,polarOptions:JG,referenceElements:DV,renderedTicks:nq,rootProps:YG,tooltip:$7,zIndex:uW}),aY=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return x5({reducer:iY,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([Ij.middleware,Mj.middleware,Eh.middleware,Fj.middleware,Uj.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat(RO({type:"raf"}))},devTools:{serialize:{replacer:GG},name:"recharts-".concat(r)}})};function oY(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,i=gr(),o=g.useRef(null);if(i)return r;o.current==null&&(o.current=aY(t,n));var s=ig;return g.createElement(Ez,{context:s,store:o.current},r)}function lY(e){var t=e.layout,r=e.margin,n=xt(),i=gr();return g.useEffect(()=>{i||(n(K5(t)),n(H5(r)))},[n,i,t,r]),null}var sY=g.memo(lY,ih);function uY(e){var t=xt();return g.useEffect(()=>{t(QG(e))},[t,e]),null}var cY=e=>{var t=xt();return g.useEffect(()=>{t(rY(e))},[t,e]),null},dY=g.memo(cY,ih);function iP(e){var t=e.zIndex,r=e.isPanorama,n=g.useRef(null),i=xt();return g.useLayoutEffect(()=>(n.current&&i(lW({zIndex:t,element:n.current,isPanorama:r})),()=>{i(sW({zIndex:t,isPanorama:r}))}),[i,t,r]),g.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function aP(e){var t=e.children,r=e.isPanorama,n=ke(Z9);if(!n||n.length===0)return t;var i=n.filter(s=>s<0),o=n.filter(s=>s>0);return g.createElement(g.Fragment,null,i.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})),t,o.map(s=>g.createElement(iP,{key:s,zIndex:s,isPanorama:r})))}var fY=["children"];function hY(e,t){if(e==null)return{};var r,n,i=pY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=a2(),n=o2(),i=v2();if(!_n(r)||!_n(n))return null;var o=e.children,s=e.otherAttributes,u=e.title,d=e.desc,f,h;return s!=null&&(typeof s.tabIndex=="number"?f=s.tabIndex:f=i?0:void 0,typeof s.role=="string"?h=s.role:h=i?"application":void 0),g.createElement(zA,wf({},s,{title:u,desc:d,role:h,tabIndex:f,width:r,height:n,style:mY,ref:t}),o)}),yY=e=>{var t=e.children,r=ke(Jf);if(!r)return null;var n=r.width,i=r.height,o=r.y,s=r.x;return g.createElement(zA,{width:n,height:i,x:s,y:o},t)},oP=g.forwardRef((e,t)=>{var r=e.children,n=hY(e,fY),i=gr();return i?g.createElement(yY,null,g.createElement(aP,{isPanorama:!0},r)):g.createElement(vY,wf({ref:t},n),g.createElement(aP,{isPanorama:!1},r))});function gY(e,t){return SY(e)||wY(e,t)||bY(e,t)||xY()}function xY(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bY(e,t){if(e){if(typeof e=="string")return lP(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lP(e,t):void 0}}function lP(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var s=n.getBoundingClientRect(),u=s.width/n.offsetWidth;Fe(u)&&u!==o&&e(q5(u))}},[n,e,o]),i}function sP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function EY(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(RW(),null);function kf(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var MY=g.forwardRef((e,t)=>{var r,n,i=g.useRef(null),o=g.useState({containerWidth:kf((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:kf((n=e.style)===null||n===void 0?void 0:n.height)}),s=Sf(o,2),u=s[0],d=s[1],f=g.useCallback((m,v)=>{d(x=>{var k=Math.round(m),S=Math.round(v);return x.containerWidth===k&&x.containerHeight===S?x:{containerWidth:k,containerHeight:S}})},[]),h=g.useCallback(m=>{if(typeof t=="function"&&t(m),i.current!=null&&(i.current.disconnect(),i.current=null),m!=null&&typeof ResizeObserver<"u"){var v=m.getBoundingClientRect(),x=v.width,k=v.height;f(x,k);var S=P=>{var O=P[0];if(O!=null){var j=O.contentRect,_=j.width,N=j.height;f(_,N)}},E=new ResizeObserver(S);E.observe(m),i.current=E}},[t,f]);return g.useEffect(()=>()=>{var m=i.current;m!=null&&m.disconnect()},[f]),g.createElement(g.Fragment,null,g.createElement(Eu,{width:u.containerWidth,height:u.containerHeight}),g.createElement("div",Zi({ref:h},e)))}),TY=g.forwardRef((e,t)=>{var r=e.width,n=e.height,i=g.useState({containerWidth:kf(r),containerHeight:kf(n)}),o=Sf(i,2),s=o[0],u=o[1],d=g.useCallback((h,m)=>{u(v=>{var x=Math.round(h),k=Math.round(m);return v.containerWidth===x&&v.containerHeight===k?v:{containerWidth:x,containerHeight:k}})},[]),f=g.useCallback(h=>{if(typeof t=="function"&&t(h),h!=null){var m=h.getBoundingClientRect(),v=m.width,x=m.height;d(v,x)}},[t,d]);return g.createElement(g.Fragment,null,g.createElement(Eu,{width:s.containerWidth,height:s.containerHeight}),g.createElement("div",Zi({ref:f},e)))}),DY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))}),RY=g.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?g.createElement(TY,Zi({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?g.createElement(DY,Zi({},e,{width:r,height:n,ref:t})):g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement("div",Zi({ref:t},e)))});function $Y(e){return e?MY:RY}var LY=g.forwardRef((e,t)=>{var r=e.children,n=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,u=e.onDoubleClick,d=e.onMouseDown,f=e.onMouseEnter,h=e.onMouseLeave,m=e.onMouseMove,v=e.onMouseUp,x=e.onTouchEnd,k=e.onTouchMove,S=e.onTouchStart,E=e.style,P=e.width,O=e.responsive,j=e.dispatchTouchEvents,_=j===void 0?!0:j,N=g.useRef(null),C=xt(),D=g.useState(null),F=Sf(D,2),z=F[0],q=F[1],X=g.useState(null),B=Sf(X,2),ue=B[0],Y=B[1],le=kY(),fe=dg(),de=(fe==null?void 0:fe.width)>0?fe.width:P,K=(fe==null?void 0:fe.height)>0?fe.height:i,ie=g.useCallback(Ee=>{le(Ee),typeof t=="function"&&t(Ee),q(Ee),Y(Ee),Ee!=null&&(N.current=Ee)},[le,t,q,Y]),Q=g.useCallback(Ee=>{C(Nj(Ee)),C(Rr({handler:o,reactEvent:Ee}))},[C,o]),R=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:f,reactEvent:Ee}))},[C,f]),M=g.useCallback(Ee=>{C(g_()),C(Rr({handler:h,reactEvent:Ee}))},[C,h]),J=g.useCallback(Ee=>{C(jy(Ee)),C(Rr({handler:m,reactEvent:Ee}))},[C,m]),se=g.useCallback(()=>{C($j())},[C]),te=g.useCallback(()=>{C(Lj())},[C]),ce=g.useCallback(Ee=>{C(Rj(Ee.key))},[C]),ye=g.useCallback(Ee=>{C(Rr({handler:s,reactEvent:Ee}))},[C,s]),_e=g.useCallback(Ee=>{C(Rr({handler:u,reactEvent:Ee}))},[C,u]),Z=g.useCallback(Ee=>{C(Rr({handler:d,reactEvent:Ee}))},[C,d]),we=g.useCallback(Ee=>{C(Rr({handler:v,reactEvent:Ee}))},[C,v]),Pe=g.useCallback(Ee=>{C(Rr({handler:S,reactEvent:Ee}))},[C,S]),ne=g.useCallback(Ee=>{_&&C(Bj(Ee)),C(Rr({handler:k,reactEvent:Ee}))},[C,_,k]),lt=g.useCallback(Ee=>{C(Rr({handler:x,reactEvent:Ee}))},[C,x]),Re=$Y(O);return g.createElement(F_.Provider,{value:z},g.createElement(Z3.Provider,{value:ue},g.createElement(Re,{width:de??(E==null?void 0:E.width),height:K??(E==null?void 0:E.height),className:Qe("recharts-wrapper",n),style:EY({position:"relative",cursor:"default",width:de,height:K},E),onClick:Q,onContextMenu:ye,onDoubleClick:_e,onFocus:se,onBlur:te,onKeyDown:ce,onMouseDown:Z,onMouseEnter:R,onMouseLeave:M,onMouseMove:J,onMouseUp:we,onTouchEnd:lt,onTouchMove:ne,onTouchStart:Pe,ref:ie},g.createElement(IY,null),r)))}),zY=["width","height","responsive","children","className","style","compact","title","desc"];function FY(e,t){if(e==null)return{};var r,n,i=BY(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,i=e.responsive,o=e.children,s=e.className,u=e.style,d=e.compact,f=e.title,h=e.desc,m=FY(e,zY),v=on(m);return d?g.createElement(g.Fragment,null,g.createElement(Eu,{width:r,height:n}),g.createElement(oP,{otherAttributes:v,title:f,desc:h},o)):g.createElement(LY,{className:s,style:u,width:r,height:n,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},g.createElement(oP,{otherAttributes:v,title:f,desc:h,ref:t},g.createElement(UV,null,o)))});function Ny(){return Ny=Object.assign?Object.assign.bind():function(e){for(var t=1;tg.createElement(YY,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:QY,tooltipPayloadSearcher:bW,categoricalChartProps:e,ref:t}));const ZY="rgba(130,130,150,0.14)",dv="rgba(130,130,150,0.85)";function JY(e){if(e<=0)return 10;const t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=5?5:10)*t}function Kj(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function eQ({active:e,payload:t,unit:r,label:n}){return!e||!(t!=null&&t.length)?null:w.jsxs("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:[Number.isFinite(n)&&w.jsx("div",{className:"mb-1 border-b border-border/40 pb-1 font-mono text-[10px] text-muted-foreground/80",children:new Date(n).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),w.jsx("div",{className:"space-y-1",children:t.map(i=>w.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),w.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:i.name}),w.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:Kj(i.value,r)})]},i.dataKey))})]})}function Vj({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176,showTime:o=!1}){var h,m;const s=e.reduce((v,x)=>t.reduce((k,S)=>Math.max(k,Number(x[S.key])||0),v),0),u=n==="percent"?Math.min(100,Math.max(25,Math.ceil(s*1.2/25)*25)):Math.max(JY(s*1.15),10),d=e.length>1?Number((h=e[e.length-1])==null?void 0:h.t)-Number((m=e[0])==null?void 0:m.t):0,f=v=>new Date(v).toLocaleTimeString("de-DE",d<=10*6e4?{hour:"2-digit",minute:"2-digit",second:"2-digit"}:{hour:"2-digit",minute:"2-digit"});return w.jsx("div",{style:{height:i},className:"w-full",children:w.jsx(H4,{width:"100%",height:"100%",children:w.jsxs(XY,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[w.jsx("defs",{children:t.map(v=>w.jsxs("linearGradient",{id:`grad-${v.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[w.jsx("stop",{offset:"0%",stopColor:v.color,stopOpacity:.22}),w.jsx("stop",{offset:"100%",stopColor:v.color,stopOpacity:0})]},v.key))}),w.jsx(yj,{vertical:!1,stroke:ZY}),o?w.jsx(Oy,{dataKey:"t",type:"number",domain:["dataMin","dataMax"],tickFormatter:f,tickCount:5,minTickGap:40,interval:"preserveStartEnd",axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv},height:18}):w.jsx(Oy,{dataKey:"t",hide:!0}),w.jsx(jj,{domain:[0,u],ticks:[0,u/2,u],tickFormatter:v=>Kj(v,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:dv}}),w.jsx(YW,{content:w.jsx(eQ,{unit:r}),cursor:{stroke:dv,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(v=>w.jsx(Cj,{type:"monotone",dataKey:v.key,name:v.label,stroke:v.color,strokeWidth:2,fill:`url(#grad-${v.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},v.key))]})})})}const qj={"1h":60,"24h":1440},dP={live:"Live","1h":"1 h","24h":"24 h"};function Gj({value:e,onChange:t}){return w.jsx("div",{className:"flex rounded-lg border border-border/40 bg-background/30 p-0.5",children:Object.keys(dP).map(r=>w.jsx("button",{onClick:()=>t(r),className:De("rounded-md px-2 py-0.5 text-[9px] font-bold uppercase tracking-wide transition-all cursor-pointer",e===r?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:dP[r]},r))})}const tQ=[{key:"cpu",label:"CPU",color:"#2dd4bf"},{key:"ram",label:"RAM",color:"#38bdf8"},{key:"gpu",label:"GPU",color:"#a78bfa"},{key:"disk",label:"Disk",color:"#fbbf24"}];function rQ(){var h,m,v,x;const{sys:e,hist:t}=B3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var k;return r==="live"?t:(((k=i.data)==null?void 0:k.points)??[]).map(S=>({t:S.t*1e3,cpu:S.cpu,ram:S.ram,gpu:S.gpu,disk:S.disk}))},[r,t,i.data]),s=!!(e!=null&&e.gpu&&e.gpu.busy_percent!=null&&e.gpu.gtt_used!=null&&e.gpu.gtt_total!=null),u=tQ.filter(k=>k.key!=="gpu"||s),d={cpu:(h=e==null?void 0:e.cpu)==null?void 0:h.percent,ram:(m=e==null?void 0:e.ram)==null?void 0:m.percent,gpu:s?e.gpu.busy_percent:null,disk:(v=e==null?void 0:e.disk)==null?void 0:v.percent},f={cpu:(x=e==null?void 0:e.cpu)!=null&&x.cores?`${e.cpu.cores} Cores`:"",ram:e?`${jo(e.ram.used)}/${jo(e.ram.total)} GB`:"",gpu:s?`${jo(e.gpu.gtt_used)}/${jo(e.gpu.gtt_total)} GB`:"",disk:e!=null&&e.disk?`${jo(e.disk.used)}/${jo(e.disk.total)} GB`:""};return w.jsxs("div",{className:"flex flex-col justify-between mc-card p-5",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[w.jsx(FP,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"System-Status"}),r==="live"&&w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]}),w.jsx("div",{className:"ml-auto",children:w.jsx(Gj,{value:r,onChange:n})})]}),e?w.jsxs(w.Fragment,{children:[w.jsx("div",{className:"mb-2 grid grid-cols-2 gap-x-4 gap-y-1.5",children:u.map(k=>w.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:k.color}}),w.jsx("span",{className:"shrink-0 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:k.label}),w.jsxs("span",{className:"shrink-0 font-mono text-xs font-bold tabular-nums text-foreground",children:[Math.round(d[k.key]??0),"%"]}),f[k.key]&&w.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/60",children:f[k.key]})]},k.key))}),r!=="live"&&o.length===0&&w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}),(r==="live"||o.length>0)&&w.jsx(Vj,{data:o,series:u,unit:"%",yMode:"percent",height:176,showTime:!0})]}):w.jsx("div",{className:"flex h-44 items-center justify-center text-xs text-muted-foreground",children:"Lade Systemdaten…"})]}),(e==null?void 0:e.temp)&&(e.temp.cpu||e.temp.gpu)&&w.jsxs("div",{className:"mt-3 flex gap-4 border-t border-border/30 pt-3 font-mono text-xs text-muted-foreground/80",children:[e.temp.cpu!=null&&w.jsxs("span",{children:["CPU Temp: ",e.temp.cpu," °C"]}),e.temp.gpu!=null&&w.jsxs("span",{children:["GPU Temp: ",e.temp.gpu," °C"]})]})]})}const xl=[{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"}],Hs=e=>e==null?"–":`${(e/1e3).toLocaleString("de-DE",{minimumFractionDigits:1,maximumFractionDigits:1})} s`;function nQ(e){const t=Math.max(0,Date.now()/1e3-e);return t<60?`vor ${Math.round(t)} s`:t<3600?`vor ${Math.round(t/60)} min`:`vor ${Math.round(t/3600)} h`}function Iy(e){return xl.reduce((t,r)=>t+(e[r.key]??0),0)}function iQ(e){let t=null;for(const r of xl){const n=e[r.key];n!=null&&(t==null||n>t.ms)&&(t={label:r.label,color:r.color,ms:n})}return t}function aQ({t:e,scale:t}){const r=xl.map(n=>`${n.label} ${Hs(e[n.key])}`).join(" · ");return w.jsxs("div",{className:"flex items-center gap-2.5",children:[w.jsx("span",{className:"w-14 shrink-0 text-right font-mono text-[10px] text-muted-foreground/60",children:nQ(e.ts)}),w.jsxs("div",{className:"relative h-4 flex-1 overflow-hidden rounded-sm bg-muted/25",title:r,children:[w.jsx("div",{className:"absolute inset-0 flex",children:xl.map(n=>{const i=e[n.key];return!i||i<=0?null:w.jsx("div",{style:{width:`${i/t*100}%`,background:n.color},className:"h-full first:rounded-l-sm"},n.key)})}),e.error&&w.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-rose-500/15 text-[10px] font-semibold text-rose-300",children:"Fehler"})]}),w.jsx("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] font-semibold tabular-nums text-foreground",children:e.error?"–":Hs(Iy(e))})]})}function oQ(){const{data:e}=b3(12),t=e??[],r=Math.max(1,...t.map(o=>Iy(o))),n=t[0],i=n?iQ(n):null;return w.jsxs("div",{className:"mc-card p-5",children:[w.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[w.jsxs("div",{children:[w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx(aT,{className:"h-4.5 w-4.5 text-primary"}),w.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wide text-foreground",children:"Latenz je Turn"}),w.jsxs("span",{className:"ml-1 inline-flex items-center gap-1 text-[10px] font-medium text-muted-foreground/70",children:[w.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"})," live"]})]}),n?w.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[w.jsx("span",{className:`font-space text-3xl font-bold tracking-tight tabular-nums ${n.error?"text-rose-400":"text-foreground"}`,children:n.error?"Fehler":Hs(Iy(n))}),w.jsxs("span",{className:"text-xs text-muted-foreground",children:["letzter Turn",!n.error&&i&&w.jsxs(w.Fragment,{children:[" · Täter: ",w.jsx("span",{style:{color:i.color},className:"font-semibold",children:i.label})," ",Hs(i.ms)]})]})]}):w.jsx("div",{className:"mt-2 text-xs text-muted-foreground",children:"Noch kein Voice-Turn aufgezeichnet."}),n&&!n.error&&w.jsx("div",{className:"mt-0.5 font-mono text-[11px] text-muted-foreground/70",children:xl.filter(o=>n[o.key]!=null).map(o=>`${o.label} ${Hs(n[o.key])}`).join(" · ")})]}),w.jsx("div",{className:"flex shrink-0 flex-col items-end gap-1 pt-1",children:xl.map(o=>w.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:o.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:o.label})]},o.key))})]}),t.length>0?w.jsx("div",{className:"space-y-1.5",children:t.map(o=>w.jsx(aQ,{t:o,scale:r},o.id))}):w.jsx("div",{className:"flex h-[120px] items-center justify-center px-6 text-center text-xs text-muted-foreground",children:"Sprich einmal mit Lucy — dann erscheint hier der Zeit-Wasserfall pro Turn, damit man den einen Hänger sofort sieht."}),w.jsx("div",{className:"mt-3 border-t border-border/30 pt-2 text-[10px] leading-relaxed text-muted-foreground/70",children:'„Hirn" = Zeit bis zum ersten Wort (Agent + Gedächtnis-Suche + Modell); Tool-Runden stecken in „Antwort". Reine Telegram-Turns laufen an MC2 vorbei und erscheinen hier nicht.'})]})}const fP=[{key:"prompt",label:"Prompt",color:"#f59e0b"},{key:"completion",label:"Antwort",color:"#2dd4bf"}];function lQ(){const{data:e}=MA(),t=R3(),[r,n]=g.useState("live"),i=NA(r==="live"?60:qj[r],r!=="live"),o=g.useMemo(()=>{var h;if(r==="live")return t;const d=((h=i.data)==null?void 0:h.points)??[],f=[];for(let m=1;mw.jsxs("div",{className:"flex items-center gap-1.5",children:[w.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:d.color}}),w.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:d.label}),w.jsx("span",{className:"font-mono text-xs font-bold tabular-nums text-foreground",children:Math.round((s==null?void 0:s[d.key])??0)})]},d.key))})]})]}),r!=="live"&&o.length===0?w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:i.isLoading?"Verlauf wird geladen …":"Noch kein Verlauf — der Sammler baut die Historie gerade erst auf."}):e?w.jsx(Vj,{data:o,series:fP,unit:" tok/s",yMode:"auto",height:150,showTime:!0}):w.jsx("div",{className:"flex h-[150px] items-center justify-center text-xs text-muted-foreground",children:"Lade Durchsatz…"}),w.jsx("div",{className:"mt-2 border-t border-border/30 pt-2 text-[10px] text-muted-foreground/70",children:"Durchsatz aus dem Gateway abgeleitet (Prefill vs. Generierung). Flach bei Leerlauf."})]})}const Ef=e=>window.dispatchEvent(new CustomEvent("open-system-drawer",{detail:{tab:e}}));function sQ({onNavigate:e}){var Y,le,fe,de;const{data:t}=IA(),{data:r}=Qy(),{data:n}=TA(),{data:i}=S3(),{data:o}=k3(),{data:s}=y3(),{data:u}=g3(),d=L3(),{showAlert:f,dialogElement:h}=_A(),m=Af(),[v,x]=g.useState({});async function k(K,ie){x(Q=>({...Q,[K]:!0}));try{if(ie.kind==="loadModel")await Te(`/api/models/${encodeURIComponent(ie.model)}/load`,{method:"POST"});else{const Q=await Te("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:ie.service})});Q.ok||f("Reparatur nicht ganz geklappt",(Q.err||"Unbekannter Fehler")+(ie.needsSudo?` -Tipp: Dafür wird evtl. das Box-Passwort gebraucht (oben rechts hinterlegen).`:""))}m.invalidateQueries({queryKey:ze.health}),m.invalidateQueries({queryKey:ze.services}),m.invalidateQueries({queryKey:ze.models})}catch(Q){f("Reparatur fehlgeschlagen",String((Q==null?void 0:Q.message)||Q))}finally{x(Q=>({...Q,[K]:!1}))}}const S=((Y=t==null?void 0:t.running)==null?void 0:Y.length)??0,E=(r==null?void 0:r.services.filter(K=>K.ok).length)??0,P=(r==null?void 0:r.services.length)??0,O=P-E,j=(n?(n.os>0?1:0)+(n.engine>0?1:0)+(n.swap>0?1:0)+(n.models>0?1:0):0)+(((le=n==null?void 0:n.components)==null?void 0:le.filter(K=>K.update===!0).length)??0),_=s!=null&&s.available?s.open_count:0,N=u!=null&&u.available?u.items.filter(K=>K.status==="blocked").length:0,C=o?[o.gateway,o.memory,o.desktop_gateway]:[],D=C.filter(K=>K==null?void 0:K.ok).length,F=o?o.gateway.ok?o.memory.ok?o.desktop_gateway.ok?"":"Desktop-Gateway":"Gedächtnis-Leitung":"Modell-Leitung":"",z=(fe=t==null?void 0:t.models)==null?void 0:fe.find(K=>K.role==="hermes"),q=z!=null&&z.name?(de=z.name.split("/").pop())==null?void 0:de.replace(/\.gguf$/i,""):"",X=r==null?void 0:r.services.filter(K=>!K.ok).map(K=>K.name).join(", "),B=n?[n.os>0&&"OS",n.engine>0&&"Engine",n.swap>0&&"Swap",n.models>0&&"Modelle"].filter(Boolean):[],ue=B.length>0?B.join(" + "):"";return w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{children:[w.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Cockpit"}),w.jsx("p",{className:"text-sm text-muted-foreground",children:"Deine Box auf einen Blick — Details hinter jeder Kachel."})]}),w.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 items-start",children:[w.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[w.jsx(uQ,{verdict:d.verdict,memory:d.memory,warns:d.warns,problems:d.problems}),w.jsxs("section",{children:[w.jsx(fv,{children:"Leistung"}),w.jsx("div",{className:"grid gap-4 md:grid-cols-1",children:w.jsx(rQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(oQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(lQ,{})})]}),w.jsxs("section",{children:[w.jsx(fv,{children:"Bereiche"}),w.jsxs("div",{className:"grid gap-4 grid-cols-2 md:grid-cols-3",children:[w.jsx(As,{icon:Fy,title:"Auftragsbuch",value:s!=null&&s.available?_:"—",unit:_===1?"Vorschlag":"Vorschläge",tone:s?N>0||_>0?"warn":"ok":"loading",hint:N>0?`${N} Karte${N===1?"":"n"} wartet auf deine Antwort`:_>0?`${_} offene Patches`:"Keine ausstehenden Vorschläge",onClick:()=>e("auftraege")}),w.jsx(As,{icon:LP,title:"Modelle",value:S,unit:"warm",tone:S>0?"ok":"muted",hint:q?`Hirn: ${q}`:"Kein Hermes-Modell geladen",onClick:()=>e("models")}),w.jsx(As,{icon:Of,title:"Dienste",value:r?`${E}/${P}`:"…",unit:"laufen",tone:r?O>0?"warn":"ok":"loading",hint:X?`Ausfall: ${X}`:"Alle Dienste online",onClick:()=>Ef("maintenance")}),w.jsx(As,{icon:Wy,title:"Updates",value:n?j>0?j:"0":"…",unit:j>0?"bereit":"aktuell",tone:n?j>0?"warn":"ok":"loading",hint:j>0?`Verfügbar: ${ue}`:"Alles auf dem neuesten Stand",onClick:()=>Ef("maintenance")}),w.jsx(As,{icon:Uy,title:"Verbinden",value:o?`${D}/${C.length}`:"…",unit:"Leitungen",tone:o?D===C.length?"ok":"warn":"loading",hint:F?`Gestört: ${F}`:"Hermes Desktop & IDEs bereit",onClick:()=>e("connect")})]})]})]}),w.jsxs("div",{className:"space-y-6",children:[w.jsx(cQ,{problems:d.problems,pendingCount:j,openAuftraege:_,blockedIdeen:N,busy:v,onRepair:k,onNavigate:e}),w.jsxs("section",{children:[w.jsx(fv,{children:"Werkzeuge & Diagnose"}),w.jsx(dQ,{agent:i,svcErrors:O,onNavigate:e})]})]})]}),h]})}function fv({children:e}){return w.jsx("p",{className:"mb-2 ml-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:e})}function uQ({verdict:e,memory:t,warns:r,problems:n}){const i=r.length?`${r[0].label}: ${r[0].detail}${r.length>1?` (+${r.length-1} weitere)`:""}`:t.status==="full"?t.text:"Nichts Schlimmes — nur ein Hinweis.",o=n.length?`${n[0].label}: ${n[0].detail}${n.length>1?` (+${n.length-1} weitere)`:""}`:"Ein wichtiger Dienst hakt.",s={loading:{ring:"border-border/60 bg-card/45",icon:By,iconCls:"text-muted-foreground animate-spin",title:"Box wird geprüft …",sub:"Einen Moment."},gut:{ring:"border-emerald-500/40 bg-emerald-500/5",icon:sT,iconCls:"text-emerald-400",title:"Box gesund",sub:"Alle wichtigen Dienste laufen."},warn:{ring:"border-amber-500/40 bg-amber-500/5",icon:Ys,iconCls:"text-amber-400",title:"Kleinigkeit an der Box",sub:i},problem:{ring:"border-red-500/50 bg-red-500/5",icon:Ys,iconCls:"text-red-400",title:"Box braucht Hilfe",sub:o}}[e],u=s.icon,d={ok:"text-emerald-400",warn:"text-amber-400",full:"text-red-400",unknown:"text-muted-foreground"}[t.status],f={ok:"bg-emerald-500",warn:"bg-amber-500",full:"bg-red-500",unknown:"bg-muted-foreground/40"}[t.status];return w.jsxs("div",{className:De("flex flex-col gap-4 rounded-2xl border p-5 shadow-lg shadow-black/15 backdrop-blur-md transition-colors sm:flex-row sm:items-center sm:justify-between h-full",s.ring),children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border/40 bg-background/30",children:w.jsx(u,{className:De("h-6 w-6",s.iconCls)})}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("h2",{className:"text-base font-bold tracking-tight text-foreground",children:s.title}),w.jsx("p",{className:"text-xs text-muted-foreground",children:s.sub})]})]}),w.jsxs("div",{className:"w-full max-w-[16rem] rounded-xl border border-border/30 bg-background/20 p-3",children:[w.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",children:[w.jsx(lT,{className:"h-3.5 w-3.5"})," Speicher"]}),w.jsx("span",{className:De("font-mono font-bold",d),children:t.status==="unknown"?"—":`${t.usedGb.toFixed(1)} / ${t.totalGb.toFixed(1)} GB`})]}),w.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:w.jsx("div",{className:De("h-full rounded-full transition-all duration-500",f),style:{width:`${t.pct}%`}})})]})]})}function cQ({problems:e,pendingCount:t,openAuftraege:r,blockedIdeen:n,busy:i,onRepair:o,onNavigate:s}){const u=t>0,d=r>0,f=n>0,h=e.length===0&&!u&&!d&&!f;return w.jsx("div",{className:"h-full flex flex-col justify-between",children:h?w.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-4 h-full",children:[w.jsx(XM,{className:"h-5 w-5 shrink-0 text-emerald-400"}),w.jsxs("div",{children:[w.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu tun"}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Alles läuft. Du musst gerade nichts abnicken."})]})]}):w.jsxs("div",{className:"space-y-2 h-full flex flex-col justify-center",children:[e.map(m=>w.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3 rounded-2xl border border-red-500/25 bg-red-500/5 p-4",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3 w-full",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(m.icon,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{className:"min-w-0 flex-1",children:[w.jsx("p",{className:"text-sm font-bold text-foreground",children:m.label}),w.jsx("p",{className:"truncate text-xs text-muted-foreground",children:m.detail})]})]}),m.repair&&w.jsxs("button",{onClick:()=>m.repair&&o(m.id,m.repair),disabled:!!i[m.id],className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg border border-red-500/40 bg-red-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300 transition-all hover:bg-red-500/20 cursor-pointer disabled:opacity-60 w-full sm:w-auto justify-center",children:[i[m.id]?w.jsx(By,{className:"h-3.5 w-3.5 animate-spin"}):w.jsx(kT,{className:"h-3.5 w-3.5"}),m.repair.label]})]},m.id)),f&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-red-500/30 bg-red-500/5 p-4 text-left transition-all hover:bg-red-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(zP,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[n," Karte",n===1?"":"n"," braucht deine Antwort"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Die Box hängt an einer Frage und wartet auf dich."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-red-300/70"})]}),d&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-primary/30 bg-primary/5 p-4 text-left transition-all hover:bg-primary/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/30 bg-background/30 text-primary",children:w.jsx(Fy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[r," Vorschl",r===1?"ag":"äge"," im Auftragsbuch"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Annehmen oder ablehnen."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-primary/70"})]}),u&&w.jsxs("button",{onClick:()=>Ef("maintenance"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-left transition-all hover:bg-amber-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-amber-500/30 bg-background/30 text-amber-300",children:w.jsx(Wy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[t," Update",t===1?"":"s"," bereit"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Ansehen und entscheiden."})]})]}),w.jsx(Bs,{className:"h-4 w-4 shrink-0 text-amber-300/70"})]})]})})}function dQ({agent:e,svcErrors:t,onNavigate:r}){const n=[{label:"Hermes Agent",status:e?e.gateway_reachable?"Bereit":"Offline":"…",tone:e?e.gateway_reachable?"ok":"alert":"loading",action:()=>r("agent")},{label:"Konsole (Box-Shell)",status:e?e.box_console_reachable?"Bereit":"Offline":"…",tone:e?e.box_console_reachable?"ok":"warn":"loading",action:()=>r("konsole")},{label:"Systemlogs & Diagnose",status:t>0?`${t} Fehler`:"Keine Fehler",tone:t>0?"alert":"ok",action:()=>Ef("logs")},{label:"Wissens-Vault",status:"Öffnen",tone:"muted",action:()=>r("wissen")},{label:"Chronik & Zeitmaschine",status:"Öffnen",tone:"muted",action:()=>r("chronik")}];return w.jsx("div",{className:"rounded-2xl border border-border/60 bg-card/30 p-4 space-y-3 shadow-sm",children:w.jsx("div",{className:"divide-y divide-border/20",children:n.map((i,o)=>{const s={loading:"bg-muted-foreground/45 animate-pulse",ok:"bg-emerald-500 shadow-[0_0_8px_rgba(16,185,129,0.4)]",warn:"bg-amber-500 shadow-[0_0_8px_rgba(245,158,11,0.4)]",alert:"bg-red-500 shadow-[0_0_8px_rgba(239,68,68,0.4)]",muted:"bg-muted-foreground/30"}[i.tone];return w.jsxs("button",{onClick:i.action,className:"w-full py-2.5 px-1.5 flex items-center justify-between text-left hover:bg-card/45 rounded-lg transition-all group cursor-pointer text-xs",children:[w.jsx("span",{className:"text-muted-foreground group-hover:text-foreground transition-colors font-medium",children:i.label}),w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("text-[10px] font-semibold font-mono",i.tone==="ok"?"text-emerald-400":i.tone==="warn"?"text-amber-400":i.tone==="alert"?"text-red-400":"text-muted-foreground/60"),children:i.status}),w.jsx("span",{className:De("h-1.5 w-1.5 rounded-full",s)})]})]},o)})})})}const fQ=g.lazy(()=>In(()=>import("./ModelsView-aEV2pe9C.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.ModelsView}))),hQ=g.lazy(()=>In(()=>import("./ConnectView-5DXpNBft.js"),__vite__mapDeps([7,5,8])).then(e=>({default:e.ConnectView}))),pQ=g.lazy(()=>In(()=>import("./AgentView-C-rUOPjn.js"),[]).then(e=>({default:e.AgentView}))),mQ=g.lazy(()=>In(()=>import("./KonsoleView-Bdk_kJ2m.js"),[]).then(e=>({default:e.KonsoleView}))),vQ=g.lazy(()=>In(()=>import("./GuideView-D6hHVfTx.js"),__vite__mapDeps([9,4,6])).then(e=>({default:e.GuideView}))),yQ=g.lazy(()=>In(()=>import("./AuftragsbuchView-BdYOUdf1.js"),__vite__mapDeps([10,11,5])).then(e=>({default:e.AuftragsbuchView}))),gQ=g.lazy(()=>In(()=>import("./IdeenView-DcsN5ZLB.js"),__vite__mapDeps([12,11,2,6,5,3])).then(e=>({default:e.IdeenView}))),xQ=g.lazy(()=>In(()=>import("./SkillsView-C5D9xEVH.js"),__vite__mapDeps([13,1])).then(e=>({default:e.SkillsView}))),bQ=g.lazy(()=>In(()=>import("./ChronikView-BBdQX2_R.js"),__vite__mapDeps([14,3])).then(e=>({default:e.ChronikView}))),wQ=g.lazy(()=>In(()=>import("./WissenView-DpReQzIY.js"),__vite__mapDeps([15,8])).then(e=>({default:e.WissenView})));function SQ(){return w.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:w.jsx(By,{className:"h-5 w-5 animate-spin","aria-label":"Lädt …"})})}const kQ=/Mac|iPhone|iPad/.test(navigator.platform);function EQ(){$3(),v3();const[e,t]=g.useState(()=>{const S=window.location.hash.slice(1);return Ko.some(E=>E.id===S)?S:"dashboard"}),r=g.useCallback(S=>{window.location.hash.slice(1)===S?t(S):window.location.hash=S},[]),[n,i]=g.useState(()=>localStorage.getItem("mc_sidebar_collapsed")==="true"),[o,s]=g.useState(!1),[u,d]=g.useState(!1),[f,h]=g.useState("maintenance"),{data:m,isError:v}=jA(),{data:x}=Df();g.useEffect(()=>{document.documentElement.classList.add("dark")},[]),g.useEffect(()=>{const S=E=>{var O;h(((O=E.detail)==null?void 0:O.tab)||"maintenance"),d(!0)};return window.addEventListener("open-system-drawer",S),()=>window.removeEventListener("open-system-drawer",S)},[]),g.useEffect(()=>{const S=E=>{var O;const P=(O=E.detail)==null?void 0:O.view;P&&r(P)};return window.addEventListener("mc-navigate",S),()=>window.removeEventListener("mc-navigate",S)},[r]),g.useEffect(()=>{const S=()=>{const E=window.location.hash.slice(1);Ko.some(P=>P.id===E)&&t(E)};return window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)},[]),g.useEffect(()=>{s(!1)},[e]);const k=Ko.find(S=>S.id===e);return w.jsxs("div",{className:"flex h-full relative",children:[w.jsx("div",{className:"fixed inset-0 -z-50 pointer-events-none",style:{backgroundColor:"hsl(224,30%,6%)",backgroundImage:["radial-gradient(45% 40% at 12% 8%, hsl(172 72% 50% / 0.10), transparent 70%)","radial-gradient(50% 45% at 88% 92%, hsl(270 70% 60% / 0.10), transparent 70%)","radial-gradient(40% 35% at 75% 30%, hsl(239 70% 62% / 0.07), transparent 70%)"].join(", ")}}),w.jsx(NR,{onNavigate:r}),w.jsx(I3,{open:u,onClose:()=>d(!1),defaultTab:f}),w.jsx("aside",{className:De("hidden md:flex shrink-0 flex-col border-r border-border/40 bg-card/45 backdrop-blur-md transition-all duration-300 ease-in-out",n?"w-16":"w-60"),children:w.jsx(hP,{collapsed:n,onToggleCollapse:()=>{i(S=>{const E=!S;return localStorage.setItem("mc_sidebar_collapsed",E.toString()),E})},view:e,health:m,backendDown:v,sysStatus:x})}),w.jsxs("div",{className:De("md:hidden fixed inset-0 z-50 transition-opacity duration-200",o?"opacity-100":"pointer-events-none opacity-0"),"aria-hidden":!o,children:[w.jsx("div",{className:"absolute inset-0 bg-black/60",onClick:()=>s(!1)}),w.jsx("aside",{className:De("absolute inset-y-0 left-0 flex w-72 max-w-[85vw] flex-col border-r border-border/40 bg-[hsl(224,28%,8%)] transition-transform duration-300 ease-in-out",o?"translate-x-0":"-translate-x-full"),children:w.jsx(hP,{collapsed:!1,onClose:()=>s(!1),view:e,health:m,backendDown:v,sysStatus:x})})]}),w.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[w.jsxs("header",{className:"flex h-14 shrink-0 items-center justify-between gap-3 border-b border-border/40 px-4 md:px-6 bg-card/20 backdrop-blur-sm",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[w.jsx("button",{onClick:()=>s(!0),className:"md:hidden p-1.5 -ml-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation öffnen",children:w.jsx(pT,{className:"h-5 w-5","aria-hidden":"true"})}),w.jsx("div",{className:"truncate text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:k.hint})]}),w.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[w.jsx(h3,{}),w.jsx("a",{href:"https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/mission-control-v2/src/branch/main/docs/BEDIENUNG.md",target:"_blank",rel:"noopener",className:"hidden sm:flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-2.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer font-semibold",title:"Bedien-Anleitung",children:"Hilfe"}),w.jsxs("button",{onClick:()=>{const S=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(S)},className:"flex items-center gap-2 rounded-md border border-border/40 bg-background/40 px-2.5 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",children:[w.jsx(rT,{className:"h-3.5 w-3.5"}),w.jsx("span",{className:"hidden sm:inline",children:"Suchen"}),w.jsx("kbd",{className:"hidden sm:inline rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:kQ?"⌘K":"Strg+K"})]})]})]}),w.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6 scrollbar-thin",children:w.jsxs(g.Suspense,{fallback:w.jsx(SQ,{}),children:[e==="dashboard"&&w.jsx(sQ,{onNavigate:S=>r(S)}),e==="ideen"&&w.jsx(gQ,{}),e==="auftraege"&&w.jsx(yQ,{}),e==="skills"&&w.jsx(xQ,{}),e==="models"&&w.jsx(fQ,{}),e==="connect"&&w.jsx(hQ,{}),e==="wissen"&&w.jsx(wQ,{}),e==="chronik"&&w.jsx(bQ,{}),e==="agent"&&w.jsx(pQ,{}),e==="konsole"&&w.jsx(mQ,{}),e==="guide"&&w.jsx(vQ,{})]})})]})]})}function hP({collapsed:e,onToggleCollapse:t,onClose:r,view:n,health:i,backendDown:o,sysStatus:s}){var u,d,f,h,m;return w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:De("flex items-center py-4 border-b border-border/40 shrink-0",e?"flex-col gap-3 px-2":"justify-between px-5"),children:[w.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[w.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!e&&w.jsxs("div",{className:"leading-tight",children:[w.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),w.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),t&&w.jsx("button",{onClick:t,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":e?"Seitenleiste ausklappen":"Seitenleiste einklappen",title:e?"Maximieren":"Minimieren",children:e?w.jsx(Bs,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(ZM,{className:"h-4 w-4","aria-hidden":"true"})}),r&&w.jsx("button",{onClick:r,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation schließen",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:(()=>{let v=null;return Ko.map(x=>{const k=x.group!==v;return v=x.group,w.jsxs("div",{className:"space-y-1",children:[k&&(e?v!==Ko[0].group&&w.jsx("div",{className:"my-3 border-t border-border/30"}):w.jsx("div",{className:"mt-5 mb-1.5 px-3 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/40 first:mt-0 select-none",children:x.group})),w.jsxs("a",{href:`#${x.id}`,onClick:r,"aria-current":n===x.id?"page":void 0,className:De("flex w-full items-center rounded-md text-sm transition-all cursor-pointer",e?"justify-center p-2.5":"gap-3 px-3 py-2",n===x.id?e?"nav-active-collapsed":"nav-active":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:e?x.label:void 0,"aria-label":e?x.label:void 0,children:[w.jsx(x.icon,{className:"h-4.5 w-4.5 shrink-0","aria-hidden":"true"}),!e&&w.jsx("span",{className:"truncate",children:x.label})]})]},x.id)})})()}),w.jsx("div",{className:De("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",e?"px-2 text-center":"px-5"),children:e?w.jsx("div",{className:"flex justify-center",children:w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",o||!i?"bg-red-500":i.engine_reachable?i.brain&&!i.brain.ready?"bg-amber-500 animate-pulse":"bg-emerald-500 animate-pulse":"bg-amber-500"),title:o?"Zentrale antwortet nicht — Anzeigen evtl. veraltet":i?i.engine_reachable?i.brain&&!i.brain.ready?`Hirn offline (${i.brain.model??"fast"})`:"Engine + Hirn online":"Engine offline":"Backend offline"})}):w.jsxs("div",{className:"space-y-2 text-left",children:[o?w.jsxs("span",{className:"flex items-center gap-2 text-red-400",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500 animate-pulse"}),w.jsx("span",{className:"truncate",children:"Zentrale antwortet nicht"})]}):i?w.jsxs(w.Fragment,{children:[w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("h-2 w-2 rounded-full animate-pulse",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),w.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"]})]}),i.brain&&!i.brain.ready&&w.jsxs("span",{className:"flex items-center gap-2 text-amber-400",title:`Agent-Hirn '${i.brain.model??"fast"}' lädt nicht/abgestürzt`,children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),w.jsxs("span",{className:"truncate",children:["Hirn offline",i.brain.model?` (${i.brain.model})`:""]})]})]}):w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",w.jsx("span",{className:"truncate",children:"Backend offline"})]}),(s==null?void 0:s.versions)&&w.jsxs("div",{className:"space-y-1 text-[9px] text-muted-foreground/60 mt-2 pt-2 border-t border-border/30",children:[w.jsxs("div",{className:"truncate",title:s.versions.mc2?`${s.versions.mc2.branch}-${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""} (${s.versions.mc2.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"MC2:"})," ",s.versions.mc2?`${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""}`:"—"]}),w.jsxs("div",{className:"truncate",title:((u=s.versions.engine)==null?void 0:u.type)==="git"?`${s.versions.engine.branch}-${s.versions.engine.hash}${s.versions.engine.dirty?"*":""} (${s.versions.engine.date})`:((d=s.versions.engine)==null?void 0:d.version_text)||"unbekannt",children:[w.jsx("strong",{children:"Engine:"})," ",((f=s.versions.engine)==null?void 0:f.type)==="git"?`${s.versions.engine.hash}${s.versions.engine.dirty?"*":""}`:((m=(h=s.versions.engine)==null?void 0:h.version_text)==null?void 0:m.split(" ").pop())||"—"]}),w.jsxs("div",{className:"truncate",title:s.versions.hermes_agent?`${s.versions.hermes_agent.branch}-${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""} (${s.versions.hermes_agent.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"Hermes Agent:"})," ",s.versions.hermes_agent?`${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""}`:"—"]})]})]})})]})}class PQ extends Dy.Component{constructor(){super(...arguments);xs(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}componentDidCatch(r,n){console.error("Unbehandelter UI-Fehler:",r,n.componentStack)}render(){return this.state.error?w.jsx("div",{className:"min-h-screen flex items-center justify-center bg-neutral-950 text-neutral-200 p-8",children:w.jsxs("div",{className:"max-w-lg space-y-4 text-center",children:[w.jsx("div",{className:"text-2xl",children:"Da ist etwas schiefgelaufen."}),w.jsx("div",{className:"text-sm text-neutral-400 break-all",children:this.state.error.message}),w.jsx("button",{className:"px-4 py-2 rounded-lg bg-neutral-800 hover:bg-neutral-700 border border-neutral-700",onClick:()=>window.location.reload(),children:"Neu laden"})]})}):this.props.children}}const AQ=new CM({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});rM.createRoot(document.getElementById("root")).render(w.jsx(Dy.StrictMode,{children:w.jsx(PQ,{children:w.jsx(_M,{client:AQ,children:w.jsx(EQ,{})})})}));export{aT as $,k3 as A,YM as B,XM as C,B1 as D,Ov as E,Bs as F,JM as G,lT as H,S3 as I,nT as J,CQ as K,By as L,Gs as M,VM as N,Hy as O,vT as P,wT as Q,Ho as R,yT as S,Ys as T,Es as U,Of as V,kT as W,Cf as X,LP as Y,Uy as Z,hT as _,RQ as a,bT as a0,y3 as a1,g3 as a2,eT as a3,HQ as a4,Fy as a5,NQ as a6,zP as a7,iT as a8,xu as a9,pv as aa,Ks as ab,PM as ac,Ft as ad,pr as ae,CP as af,at as ag,w3 as ah,UQ as ai,IQ as aj,uT as ak,Wy as al,sT as am,x3 as an,nf as ao,Dy as ap,uu as aq,bk as ar,A8 as as,Ng as at,dk as au,ck as av,Ty as aw,MQ as ax,TQ as ay,fT as az,De as b,je as c,jQ as d,qM as e,IA as f,DQ as g,Df as h,$Q as i,w as j,_A as k,BQ as l,zQ as m,Te as n,No as o,TR as p,ze as q,g as r,_Q as s,FP as t,Af as u,WQ as v,LQ as w,TA as x,Nm as y,FQ as z}; +Tipp: Dafür wird evtl. das Box-Passwort gebraucht (oben rechts hinterlegen).`:""))}m.invalidateQueries({queryKey:ze.health}),m.invalidateQueries({queryKey:ze.services}),m.invalidateQueries({queryKey:ze.models})}catch(Q){f("Reparatur fehlgeschlagen",String((Q==null?void 0:Q.message)||Q))}finally{x(Q=>({...Q,[K]:!1}))}}const S=((Y=t==null?void 0:t.running)==null?void 0:Y.length)??0,E=(r==null?void 0:r.services.filter(K=>K.ok).length)??0,P=(r==null?void 0:r.services.length)??0,O=P-E,j=(n?(n.os>0?1:0)+(n.engine>0?1:0)+(n.swap>0?1:0)+(n.models>0?1:0):0)+(((le=n==null?void 0:n.components)==null?void 0:le.filter(K=>K.update===!0).length)??0),_=s!=null&&s.available?s.open_count:0,N=u!=null&&u.available?u.items.filter(K=>K.status==="blocked").length:0,C=o?[o.gateway,o.memory,o.desktop_gateway]:[],D=C.filter(K=>K==null?void 0:K.ok).length,F=o?o.gateway.ok?o.memory.ok?o.desktop_gateway.ok?"":"Desktop-Gateway":"Gedächtnis-Leitung":"Modell-Leitung":"",z=(fe=t==null?void 0:t.models)==null?void 0:fe.find(K=>K.role==="hermes"),q=z!=null&&z.name?(de=z.name.split("/").pop())==null?void 0:de.replace(/\.gguf$/i,""):"",X=r==null?void 0:r.services.filter(K=>!K.ok).map(K=>K.name).join(", "),B=n?[n.os>0&&"OS",n.engine>0&&"Engine",n.swap>0&&"Swap",n.models>0&&"Modelle"].filter(Boolean):[],ue=B.length>0?B.join(" + "):"";return w.jsxs("div",{className:"space-y-6",children:[w.jsxs("div",{children:[w.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Cockpit"}),w.jsx("p",{className:"text-sm text-muted-foreground",children:"Deine Box auf einen Blick — Details hinter jeder Kachel."})]}),w.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6 items-start",children:[w.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[w.jsx(uQ,{verdict:d.verdict,memory:d.memory,warns:d.warns,problems:d.problems}),w.jsxs("section",{children:[w.jsx(fv,{children:"Leistung"}),w.jsx("div",{className:"grid gap-4 md:grid-cols-1",children:w.jsx(rQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(oQ,{})}),w.jsx("div",{className:"mt-4",children:w.jsx(lQ,{})})]}),w.jsxs("section",{children:[w.jsx(fv,{children:"Bereiche"}),w.jsxs("div",{className:"grid gap-4 grid-cols-2 md:grid-cols-3",children:[w.jsx(Ps,{icon:Fy,title:"Auftragsbuch",value:s!=null&&s.available?_:"—",unit:_===1?"Vorschlag":"Vorschläge",tone:s?N>0||_>0?"warn":"ok":"loading",hint:N>0?`${N} Karte${N===1?"":"n"} wartet auf deine Antwort`:_>0?`${_} offene Patches`:"Keine ausstehenden Vorschläge",onClick:()=>e("auftraege")}),w.jsx(Ps,{icon:LP,title:"Modelle",value:S,unit:"warm",tone:S>0?"ok":"muted",hint:q?`Hirn: ${q}`:"Kein Hermes-Modell geladen",onClick:()=>e("models")}),w.jsx(Ps,{icon:Of,title:"Dienste",value:r?`${E}/${P}`:"…",unit:"laufen",tone:r?O>0?"warn":"ok":"loading",hint:X?`Ausfall: ${X}`:"Alle Dienste online",onClick:()=>Ef("maintenance")}),w.jsx(Ps,{icon:Wy,title:"Updates",value:n?j>0?j:"0":"…",unit:j>0?"bereit":"aktuell",tone:n?j>0?"warn":"ok":"loading",hint:j>0?`Verfügbar: ${ue}`:"Alles auf dem neuesten Stand",onClick:()=>Ef("maintenance")}),w.jsx(Ps,{icon:Uy,title:"Verbinden",value:o?`${D}/${C.length}`:"…",unit:"Leitungen",tone:o?D===C.length?"ok":"warn":"loading",hint:F?`Gestört: ${F}`:"Hermes Desktop & IDEs bereit",onClick:()=>e("connect")})]})]})]}),w.jsxs("div",{className:"space-y-6",children:[w.jsx(cQ,{problems:d.problems,pendingCount:j,openAuftraege:_,blockedIdeen:N,busy:v,onRepair:k,onNavigate:e}),w.jsxs("section",{children:[w.jsx(fv,{children:"Werkzeuge & Diagnose"}),w.jsx(dQ,{agent:i,svcErrors:O,onNavigate:e})]})]})]}),h]})}function fv({children:e}){return w.jsx("p",{className:"mb-2 ml-0.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:e})}function uQ({verdict:e,memory:t,warns:r,problems:n}){const i=r.length?`${r[0].label}: ${r[0].detail}${r.length>1?` (+${r.length-1} weitere)`:""}`:t.status==="full"?t.text:"Nichts Schlimmes — nur ein Hinweis.",o=n.length?`${n[0].label}: ${n[0].detail}${n.length>1?` (+${n.length-1} weitere)`:""}`:"Ein wichtiger Dienst hakt.",s={loading:{ring:"border-border/60 bg-card/45",icon:By,iconCls:"text-muted-foreground animate-spin",title:"Box wird geprüft …",sub:"Einen Moment."},gut:{ring:"border-emerald-500/40 bg-emerald-500/5",icon:sT,iconCls:"text-emerald-400",title:"Box gesund",sub:"Alle wichtigen Dienste laufen."},warn:{ring:"border-amber-500/40 bg-amber-500/5",icon:Ys,iconCls:"text-amber-400",title:"Kleinigkeit an der Box",sub:i},problem:{ring:"border-red-500/50 bg-red-500/5",icon:Ys,iconCls:"text-red-400",title:"Box braucht Hilfe",sub:o}}[e],u=s.icon,d={ok:"text-emerald-400",warn:"text-amber-400",full:"text-red-400",unknown:"text-muted-foreground"}[t.status],f={ok:"bg-emerald-500",warn:"bg-amber-500",full:"bg-red-500",unknown:"bg-muted-foreground/40"}[t.status];return w.jsxs("div",{className:De("flex flex-col gap-4 rounded-2xl border p-5 shadow-lg shadow-black/15 backdrop-blur-md transition-colors sm:flex-row sm:items-center sm:justify-between h-full",s.ring),children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border/40 bg-background/30",children:w.jsx(u,{className:De("h-6 w-6",s.iconCls)})}),w.jsxs("div",{className:"min-w-0",children:[w.jsx("h2",{className:"text-base font-bold tracking-tight text-foreground",children:s.title}),w.jsx("p",{className:"text-xs text-muted-foreground",children:s.sub})]})]}),w.jsxs("div",{className:"w-full max-w-[16rem] rounded-xl border border-border/30 bg-background/20 p-3",children:[w.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[w.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",children:[w.jsx(lT,{className:"h-3.5 w-3.5"})," Speicher"]}),w.jsx("span",{className:De("font-mono font-bold",d),children:t.status==="unknown"?"—":`${t.usedGb.toFixed(1)} / ${t.totalGb.toFixed(1)} GB`})]}),w.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:w.jsx("div",{className:De("h-full rounded-full transition-all duration-500",f),style:{width:`${t.pct}%`}})})]})]})}function cQ({problems:e,pendingCount:t,openAuftraege:r,blockedIdeen:n,busy:i,onRepair:o,onNavigate:s}){const u=t>0,d=r>0,f=n>0,h=e.length===0&&!u&&!d&&!f;return w.jsx("div",{className:"h-full flex flex-col justify-between",children:h?w.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-emerald-500/25 bg-emerald-500/5 p-4 h-full",children:[w.jsx(XM,{className:"h-5 w-5 shrink-0 text-emerald-400"}),w.jsxs("div",{children:[w.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Nichts zu tun"}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Alles läuft. Du musst gerade nichts abnicken."})]})]}):w.jsxs("div",{className:"space-y-2 h-full flex flex-col justify-center",children:[e.map(m=>w.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3 rounded-2xl border border-red-500/25 bg-red-500/5 p-4",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3 w-full",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(m.icon,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{className:"min-w-0 flex-1",children:[w.jsx("p",{className:"text-sm font-bold text-foreground",children:m.label}),w.jsx("p",{className:"truncate text-xs text-muted-foreground",children:m.detail})]})]}),m.repair&&w.jsxs("button",{onClick:()=>m.repair&&o(m.id,m.repair),disabled:!!i[m.id],className:"flex h-9 shrink-0 items-center gap-1.5 rounded-lg border border-red-500/40 bg-red-500/10 px-3 text-[11px] font-bold uppercase tracking-wide text-red-300 transition-all hover:bg-red-500/20 cursor-pointer disabled:opacity-60 w-full sm:w-auto justify-center",children:[i[m.id]?w.jsx(By,{className:"h-3.5 w-3.5 animate-spin"}):w.jsx(kT,{className:"h-3.5 w-3.5"}),m.repair.label]})]},m.id)),f&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-red-500/30 bg-red-500/5 p-4 text-left transition-all hover:bg-red-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-red-500/30 bg-background/30 text-red-300",children:w.jsx(zP,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[n," Karte",n===1?"":"n"," braucht deine Antwort"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Die Box hängt an einer Frage und wartet auf dich."})]})]}),w.jsx(Fs,{className:"h-4 w-4 shrink-0 text-red-300/70"})]}),d&&w.jsxs("button",{onClick:()=>s("auftraege"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-primary/30 bg-primary/5 p-4 text-left transition-all hover:bg-primary/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-primary/30 bg-background/30 text-primary",children:w.jsx(Fy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[r," Vorschl",r===1?"ag":"äge"," im Auftragsbuch"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Annehmen oder ablehnen."})]})]}),w.jsx(Fs,{className:"h-4 w-4 shrink-0 text-primary/70"})]}),u&&w.jsxs("button",{onClick:()=>Ef("maintenance"),className:"flex w-full items-center justify-between gap-3 rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-left transition-all hover:bg-amber-500/10 cursor-pointer",children:[w.jsxs("div",{className:"flex items-center gap-3",children:[w.jsx("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-amber-500/30 bg-background/30 text-amber-300",children:w.jsx(Wy,{className:"h-4.5 w-4.5"})}),w.jsxs("div",{children:[w.jsxs("p",{className:"text-sm font-bold text-foreground",children:[t," Update",t===1?"":"s"," bereit"]}),w.jsx("p",{className:"text-xs text-muted-foreground",children:"Ansehen und entscheiden."})]})]}),w.jsx(Fs,{className:"h-4 w-4 shrink-0 text-amber-300/70"})]})]})})}function dQ({agent:e,svcErrors:t,onNavigate:r}){const n=[{label:"Hermes Agent",status:e?e.gateway_reachable?"Bereit":"Offline":"…",tone:e?e.gateway_reachable?"ok":"alert":"loading",action:()=>r("agent")},{label:"Konsole (Box-Shell)",status:e?e.box_console_reachable?"Bereit":"Offline":"…",tone:e?e.box_console_reachable?"ok":"warn":"loading",action:()=>r("konsole")},{label:"Systemlogs & Diagnose",status:t>0?`${t} Fehler`:"Keine Fehler",tone:t>0?"alert":"ok",action:()=>Ef("logs")},{label:"Wissens-Vault",status:"Öffnen",tone:"muted",action:()=>r("wissen")},{label:"Chronik & Zeitmaschine",status:"Öffnen",tone:"muted",action:()=>r("chronik")}];return w.jsx("div",{className:"rounded-2xl border border-border/60 bg-card/30 p-4 space-y-3 shadow-sm",children:w.jsx("div",{className:"divide-y divide-border/20",children:n.map((i,o)=>{const s={loading:"bg-muted-foreground/45 animate-pulse",ok:"bg-emerald-500 shadow-[0_0_8px_rgba(16,185,129,0.4)]",warn:"bg-amber-500 shadow-[0_0_8px_rgba(245,158,11,0.4)]",alert:"bg-red-500 shadow-[0_0_8px_rgba(239,68,68,0.4)]",muted:"bg-muted-foreground/30"}[i.tone];return w.jsxs("button",{onClick:i.action,className:"w-full py-2.5 px-1.5 flex items-center justify-between text-left hover:bg-card/45 rounded-lg transition-all group cursor-pointer text-xs",children:[w.jsx("span",{className:"text-muted-foreground group-hover:text-foreground transition-colors font-medium",children:i.label}),w.jsxs("div",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("text-[10px] font-semibold font-mono",i.tone==="ok"?"text-emerald-400":i.tone==="warn"?"text-amber-400":i.tone==="alert"?"text-red-400":"text-muted-foreground/60"),children:i.status}),w.jsx("span",{className:De("h-1.5 w-1.5 rounded-full",s)})]})]},o)})})})}const fQ=g.lazy(()=>In(()=>import("./ModelsView-DIBx0djl.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.ModelsView}))),hQ=g.lazy(()=>In(()=>import("./ConnectView-Ibsr5kGX.js"),__vite__mapDeps([7,5])).then(e=>({default:e.ConnectView}))),pQ=g.lazy(()=>In(()=>import("./AgentView-pp2NXhb4.js"),[]).then(e=>({default:e.AgentView}))),mQ=g.lazy(()=>In(()=>import("./KonsoleView-BDDotueL.js"),[]).then(e=>({default:e.KonsoleView}))),vQ=g.lazy(()=>In(()=>import("./GuideView-DwZocTb3.js"),__vite__mapDeps([8,4,6])).then(e=>({default:e.GuideView}))),yQ=g.lazy(()=>In(()=>import("./AuftragsbuchView-CFtqxzIs.js"),__vite__mapDeps([9,10,5])).then(e=>({default:e.AuftragsbuchView}))),gQ=g.lazy(()=>In(()=>import("./IdeenView-J4hS7xB2.js"),__vite__mapDeps([11,10,2,6,5,3])).then(e=>({default:e.IdeenView}))),xQ=g.lazy(()=>In(()=>import("./SkillsView-XWoP6WFO.js"),__vite__mapDeps([12,1])).then(e=>({default:e.SkillsView}))),bQ=g.lazy(()=>In(()=>import("./ChronikView-BbW5EQy6.js"),__vite__mapDeps([13,3])).then(e=>({default:e.ChronikView}))),wQ=g.lazy(()=>In(()=>import("./WissenView-DgvIyHvX.js"),[]).then(e=>({default:e.WissenView})));function SQ(){return w.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:w.jsx(By,{className:"h-5 w-5 animate-spin","aria-label":"Lädt …"})})}const kQ=/Mac|iPhone|iPad/.test(navigator.platform);function EQ(){$3(),v3();const[e,t]=g.useState(()=>{const S=window.location.hash.slice(1);return Ho.some(E=>E.id===S)?S:"dashboard"}),r=g.useCallback(S=>{window.location.hash.slice(1)===S?t(S):window.location.hash=S},[]),[n,i]=g.useState(()=>localStorage.getItem("mc_sidebar_collapsed")==="true"),[o,s]=g.useState(!1),[u,d]=g.useState(!1),[f,h]=g.useState("maintenance"),{data:m,isError:v}=jA(),{data:x}=Df();g.useEffect(()=>{document.documentElement.classList.add("dark")},[]),g.useEffect(()=>{const S=E=>{var O;h(((O=E.detail)==null?void 0:O.tab)||"maintenance"),d(!0)};return window.addEventListener("open-system-drawer",S),()=>window.removeEventListener("open-system-drawer",S)},[]),g.useEffect(()=>{const S=E=>{var O;const P=(O=E.detail)==null?void 0:O.view;P&&r(P)};return window.addEventListener("mc-navigate",S),()=>window.removeEventListener("mc-navigate",S)},[r]),g.useEffect(()=>{const S=()=>{const E=window.location.hash.slice(1);Ho.some(P=>P.id===E)&&t(E)};return window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)},[]),g.useEffect(()=>{s(!1)},[e]);const k=Ho.find(S=>S.id===e);return w.jsxs("div",{className:"flex h-full relative",children:[w.jsx("div",{className:"fixed inset-0 -z-50 pointer-events-none",style:{backgroundColor:"hsl(224,30%,6%)",backgroundImage:["radial-gradient(45% 40% at 12% 8%, hsl(172 72% 50% / 0.10), transparent 70%)","radial-gradient(50% 45% at 88% 92%, hsl(270 70% 60% / 0.10), transparent 70%)","radial-gradient(40% 35% at 75% 30%, hsl(239 70% 62% / 0.07), transparent 70%)"].join(", ")}}),w.jsx(NR,{onNavigate:r}),w.jsx(I3,{open:u,onClose:()=>d(!1),defaultTab:f}),w.jsx("aside",{className:De("hidden md:flex shrink-0 flex-col border-r border-border/40 bg-card/45 backdrop-blur-md transition-all duration-300 ease-in-out",n?"w-16":"w-60"),children:w.jsx(hP,{collapsed:n,onToggleCollapse:()=>{i(S=>{const E=!S;return localStorage.setItem("mc_sidebar_collapsed",E.toString()),E})},view:e,health:m,backendDown:v,sysStatus:x})}),w.jsxs("div",{className:De("md:hidden fixed inset-0 z-50 transition-opacity duration-200",o?"opacity-100":"pointer-events-none opacity-0"),"aria-hidden":!o,children:[w.jsx("div",{className:"absolute inset-0 bg-black/60",onClick:()=>s(!1)}),w.jsx("aside",{className:De("absolute inset-y-0 left-0 flex w-72 max-w-[85vw] flex-col border-r border-border/40 bg-[hsl(224,28%,8%)] transition-transform duration-300 ease-in-out",o?"translate-x-0":"-translate-x-full"),children:w.jsx(hP,{collapsed:!1,onClose:()=>s(!1),view:e,health:m,backendDown:v,sysStatus:x})})]}),w.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[w.jsxs("header",{className:"flex h-14 shrink-0 items-center justify-between gap-3 border-b border-border/40 px-4 md:px-6 bg-card/20 backdrop-blur-sm",children:[w.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[w.jsx("button",{onClick:()=>s(!0),className:"md:hidden p-1.5 -ml-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation öffnen",children:w.jsx(pT,{className:"h-5 w-5","aria-hidden":"true"})}),w.jsx("div",{className:"truncate text-xs font-medium text-muted-foreground tracking-wide uppercase font-sans",children:k.hint})]}),w.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[w.jsx(h3,{}),w.jsx("a",{href:"https://git.tobisniceshomelab.ddnsfree.com/Hitonabi/mission-control-v2/src/branch/main/docs/BEDIENUNG.md",target:"_blank",rel:"noopener",className:"hidden sm:flex h-8 items-center rounded-md border border-border/40 bg-background/40 px-2.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer font-semibold",title:"Bedien-Anleitung",children:"Hilfe"}),w.jsxs("button",{onClick:()=>{const S=new KeyboardEvent("keydown",{key:"k",metaKey:!0});document.dispatchEvent(S)},className:"flex items-center gap-2 rounded-md border border-border/40 bg-background/40 px-2.5 py-1.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all cursor-pointer",children:[w.jsx(rT,{className:"h-3.5 w-3.5"}),w.jsx("span",{className:"hidden sm:inline",children:"Suchen"}),w.jsx("kbd",{className:"hidden sm:inline rounded bg-muted px-1.5 py-0.5 font-mono text-[9px]",children:kQ?"⌘K":"Strg+K"})]})]})]}),w.jsx("main",{className:"flex-1 overflow-y-auto p-4 md:p-6 scrollbar-thin",children:w.jsxs(g.Suspense,{fallback:w.jsx(SQ,{}),children:[e==="dashboard"&&w.jsx(sQ,{onNavigate:S=>r(S)}),e==="ideen"&&w.jsx(gQ,{}),e==="auftraege"&&w.jsx(yQ,{}),e==="skills"&&w.jsx(xQ,{}),e==="models"&&w.jsx(fQ,{}),e==="connect"&&w.jsx(hQ,{}),e==="wissen"&&w.jsx(wQ,{}),e==="chronik"&&w.jsx(bQ,{}),e==="agent"&&w.jsx(pQ,{}),e==="konsole"&&w.jsx(mQ,{}),e==="guide"&&w.jsx(vQ,{})]})})]})]})}function hP({collapsed:e,onToggleCollapse:t,onClose:r,view:n,health:i,backendDown:o,sysStatus:s}){var u,d,f,h,m;return w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:De("flex items-center py-4 border-b border-border/40 shrink-0",e?"flex-col gap-3 px-2":"justify-between px-5"),children:[w.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[w.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary shadow-md shadow-primary/20 shrink-0"}),!e&&w.jsxs("div",{className:"leading-tight",children:[w.jsx("div",{className:"text-sm font-semibold tracking-wide font-space",children:"Mission Control"}),w.jsx("div",{className:"text-xs text-muted-foreground",children:"2.0"})]})]}),t&&w.jsx("button",{onClick:t,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":e?"Seitenleiste ausklappen":"Seitenleiste einklappen",title:e?"Maximieren":"Minimieren",children:e?w.jsx(Fs,{className:"h-4 w-4","aria-hidden":"true"}):w.jsx(ZM,{className:"h-4 w-4","aria-hidden":"true"})}),r&&w.jsx("button",{onClick:r,className:"p-1 rounded-md hover:bg-accent text-muted-foreground transition-colors cursor-pointer","aria-label":"Navigation schließen",children:w.jsx(Cf,{className:"h-4 w-4","aria-hidden":"true"})})]}),w.jsx("nav",{className:"flex-1 space-y-1 px-3 py-4 overflow-y-auto",children:(()=>{let v=null;return Ho.map(x=>{const k=x.group!==v;return v=x.group,w.jsxs("div",{className:"space-y-1",children:[k&&(e?v!==Ho[0].group&&w.jsx("div",{className:"my-3 border-t border-border/30"}):w.jsx("div",{className:"mt-5 mb-1.5 px-3 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/40 first:mt-0 select-none",children:x.group})),w.jsxs("a",{href:`#${x.id}`,onClick:r,"aria-current":n===x.id?"page":void 0,className:De("flex w-full items-center rounded-md text-sm transition-all cursor-pointer",e?"justify-center p-2.5":"gap-3 px-3 py-2",n===x.id?e?"nav-active-collapsed":"nav-active":"text-muted-foreground hover:bg-accent hover:text-accent-foreground"),title:e?x.label:void 0,"aria-label":e?x.label:void 0,children:[w.jsx(x.icon,{className:"h-4.5 w-4.5 shrink-0","aria-hidden":"true"}),!e&&w.jsx("span",{className:"truncate",children:x.label})]})]},x.id)})})()}),w.jsx("div",{className:De("py-3 text-xs text-muted-foreground border-t border-border/40 shrink-0",e?"px-2 text-center":"px-5"),children:e?w.jsx("div",{className:"flex justify-center",children:w.jsx("span",{className:De("h-2.5 w-2.5 rounded-full ring-2 ring-black/40",o||!i?"bg-red-500":i.engine_reachable?i.brain&&!i.brain.ready?"bg-amber-500 animate-pulse":"bg-emerald-500 animate-pulse":"bg-amber-500"),title:o?"Zentrale antwortet nicht — Anzeigen evtl. veraltet":i?i.engine_reachable?i.brain&&!i.brain.ready?`Hirn offline (${i.brain.model??"fast"})`:"Engine + Hirn online":"Engine offline":"Backend offline"})}):w.jsxs("div",{className:"space-y-2 text-left",children:[o?w.jsxs("span",{className:"flex items-center gap-2 text-red-400",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500 animate-pulse"}),w.jsx("span",{className:"truncate",children:"Zentrale antwortet nicht"})]}):i?w.jsxs(w.Fragment,{children:[w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:De("h-2 w-2 rounded-full animate-pulse",i.engine_reachable?"bg-emerald-500":"bg-amber-500")}),w.jsxs("span",{className:"truncate",children:["Engine ",i.engine_reachable?"online":"offline"]})]}),i.brain&&!i.brain.ready&&w.jsxs("span",{className:"flex items-center gap-2 text-amber-400",title:`Agent-Hirn '${i.brain.model??"fast"}' lädt nicht/abgestürzt`,children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-amber-500 animate-pulse"}),w.jsxs("span",{className:"truncate",children:["Hirn offline",i.brain.model?` (${i.brain.model})`:""]})]})]}):w.jsxs("span",{className:"flex items-center gap-2",children:[w.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500"})," ",w.jsx("span",{className:"truncate",children:"Backend offline"})]}),(s==null?void 0:s.versions)&&w.jsxs("div",{className:"space-y-1 text-[9px] text-muted-foreground/60 mt-2 pt-2 border-t border-border/30",children:[w.jsxs("div",{className:"truncate",title:s.versions.mc2?`${s.versions.mc2.branch}-${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""} (${s.versions.mc2.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"MC2:"})," ",s.versions.mc2?`${s.versions.mc2.hash}${s.versions.mc2.dirty?"*":""}`:"—"]}),w.jsxs("div",{className:"truncate",title:((u=s.versions.engine)==null?void 0:u.type)==="git"?`${s.versions.engine.branch}-${s.versions.engine.hash}${s.versions.engine.dirty?"*":""} (${s.versions.engine.date})`:((d=s.versions.engine)==null?void 0:d.version_text)||"unbekannt",children:[w.jsx("strong",{children:"Engine:"})," ",((f=s.versions.engine)==null?void 0:f.type)==="git"?`${s.versions.engine.hash}${s.versions.engine.dirty?"*":""}`:((m=(h=s.versions.engine)==null?void 0:h.version_text)==null?void 0:m.split(" ").pop())||"—"]}),w.jsxs("div",{className:"truncate",title:s.versions.hermes_agent?`${s.versions.hermes_agent.branch}-${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""} (${s.versions.hermes_agent.date})`:"nicht gefunden",children:[w.jsx("strong",{children:"Hermes Agent:"})," ",s.versions.hermes_agent?`${s.versions.hermes_agent.hash}${s.versions.hermes_agent.dirty?"*":""}`:"—"]})]})]})})]})}class PQ extends Dy.Component{constructor(){super(...arguments);gs(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}componentDidCatch(r,n){console.error("Unbehandelter UI-Fehler:",r,n.componentStack)}render(){return this.state.error?w.jsx("div",{className:"min-h-screen flex items-center justify-center bg-neutral-950 text-neutral-200 p-8",children:w.jsxs("div",{className:"max-w-lg space-y-4 text-center",children:[w.jsx("div",{className:"text-2xl",children:"Da ist etwas schiefgelaufen."}),w.jsx("div",{className:"text-sm text-neutral-400 break-all",children:this.state.error.message}),w.jsx("button",{className:"px-4 py-2 rounded-lg bg-neutral-800 hover:bg-neutral-700 border border-neutral-700",onClick:()=>window.location.reload(),children:"Neu laden"})]})}):this.props.children}}const AQ=new CM({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});rM.createRoot(document.getElementById("root")).render(w.jsx(Dy.StrictMode,{children:w.jsx(PQ,{children:w.jsx(_M,{client:AQ,children:w.jsx(EQ,{})})})}));export{aT as $,k3 as A,YM as B,XM as C,B1 as D,Ov as E,Fs as F,JM as G,lT as H,S3 as I,nT as J,CQ as K,By as L,Gs as M,VM as N,Hy as O,vT as P,wT as Q,Wo as R,yT as S,Ys as T,ks as U,Of as V,kT as W,Cf as X,LP as Y,Uy as Z,hT as _,RQ as a,bT as a0,y3 as a1,g3 as a2,eT as a3,HQ as a4,Fy as a5,NQ as a6,zP as a7,iT as a8,xu as a9,pv as aa,Ks as ab,PM as ac,Ft as ad,pr as ae,CP as af,at as ag,w3 as ah,UQ as ai,IQ as aj,uT as ak,Wy as al,sT as am,x3 as an,nf as ao,Dy as ap,uu as aq,bk as ar,A8 as as,Ng as at,dk as au,ck as av,Ty as aw,MQ as ax,TQ as ay,fT as az,De as b,je as c,jQ as d,qM as e,IA as f,DQ as g,Df as h,$Q as i,w as j,_A as k,BQ as l,zQ as m,Te as n,jo as o,TR as p,ze as q,g as r,_Q as s,FP as t,Af as u,WQ as v,LQ as w,TA as x,Nm as y,FQ as z}; diff --git a/frontend/dist/assets/index-Dv1-nhwH.css b/frontend/dist/assets/index-qQDuX0H0.css similarity index 53% rename from frontend/dist/assets/index-Dv1-nhwH.css rename to frontend/dist/assets/index-qQDuX0H0.css index 67c70dd..74c4456 100644 --- a/frontend/dist/assets/index-Dv1-nhwH.css +++ b/frontend/dist/assets/index-qQDuX0H0.css @@ -1 +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-red-600:oklch(57.7% .245 27.325);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[23px\]{left:-23px}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.-z-50{z-index:-50}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[99\]{z-index:99}.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}.mt-px{margin-top:1px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-44{height:calc(var(--spacing) * 44)}.h-64{height:calc(var(--spacing) * 64)}.h-\[70vh\]{height:70vh}.h-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-full{height:100%}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.min-h-\[16rem\]{min-height:16rem}.min-h-\[58vh\]{min-height:58vh}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[85vw\]{max-width:85vw}.max-w-\[250px\]{max-width:250px}.max-w-\[280px\]{max-width:280px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-\[2\.5rem\]{min-width:2.5rem}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3ch\]{min-width:3ch}.min-w-\[680px\]{min-width:680px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 7) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 7) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}:where(.divide-border\/20>:not(:last-child)){border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\/20>:not(:last-child)){border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/25{border-color:color-mix(in oklab,var(--color-amber-500) 25%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/50{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/20{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.border-border\/30{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,hsl(var(--border)) 30%,transparent)}}.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,hsl(var(--border)) 50%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-border\/70{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,hsl(var(--border)) 70%,transparent)}}.border-border\/80{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/80{border-color:color-mix(in oklab,hsl(var(--border)) 80%,transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/20{border-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/25{border-color:color-mix(in oklab,var(--color-cyan-500) 25%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/10{border-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/10{border-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/25{border-color:color-mix(in oklab,var(--color-emerald-500) 25%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.border-fuchsia-500\/25{border-color:#e12afb40}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/25{border-color:color-mix(in oklab,var(--color-fuchsia-500) 25%,transparent)}}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab,var(--color-fuchsia-500) 30%,transparent)}}.border-indigo-500\/25{border-color:#625fff40}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/25{border-color:color-mix(in oklab,var(--color-indigo-500) 25%,transparent)}}.border-indigo-500\/40{border-color:#625fff66}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/40{border-color:color-mix(in oklab,var(--color-indigo-500) 40%,transparent)}}.border-lime-500\/25{border-color:#80cd0040}@supports (color:color-mix(in lab,red,red)){.border-lime-500\/25{border-color:color-mix(in oklab,var(--color-lime-500) 25%,transparent)}}.border-neutral-700{border-color:var(--color-neutral-700)}.border-orange-500\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/30{border-color:color-mix(in oklab,var(--color-orange-500) 30%,transparent)}}.border-pink-500\/25{border-color:#f6339a40}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/25{border-color:color-mix(in oklab,var(--color-pink-500) 25%,transparent)}}.border-pink-500\/40{border-color:#f6339a66}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/40{border-color:color-mix(in oklab,var(--color-pink-500) 40%,transparent)}}.border-primary,.border-primary\/20{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.border-primary\/25{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/25{border-color:color-mix(in oklab,hsl(var(--primary)) 25%,transparent)}}.border-primary\/30{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-primary\/60{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab,red,red)){.border-red-500\/40{border-color:color-mix(in oklab,var(--color-red-500) 40%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500) 60%,transparent)}}.border-sky-500\/25{border-color:#00a5ef40}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/25{border-color:color-mix(in oklab,var(--color-sky-500) 25%,transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-sky-500) 30%,transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/40{border-color:color-mix(in oklab,var(--color-sky-500) 40%,transparent)}}.border-slate-500\/25{border-color:#62748e40}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/25{border-color:color-mix(in oklab,var(--color-slate-500) 25%,transparent)}}.border-slate-500\/30{border-color:#62748e4d}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/30{border-color:color-mix(in oklab,var(--color-slate-500) 30%,transparent)}}.border-teal-500\/25{border-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.border-teal-500\/25{border-color:color-mix(in oklab,var(--color-teal-500) 25%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/20{border-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/20{border-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/25{border-color:color-mix(in oklab,var(--color-violet-500) 25%,transparent)}}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500) 30%,transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/40{border-color:color-mix(in oklab,var(--color-violet-500) 40%,transparent)}}.border-t-emerald-500\/70{border-top-color:#00bb7fb3}@supports (color:color-mix(in lab,red,red)){.border-t-emerald-500\/70{border-top-color:color-mix(in oklab,var(--color-emerald-500) 70%,transparent)}}.border-t-primary\/70{border-top-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-t-primary\/70{border-top-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.border-t-violet-500\/70{border-top-color:#8d54ffb3}@supports (color:color-mix(in lab,red,red)){.border-t-violet-500\/70{border-top-color:color-mix(in oklab,var(--color-violet-500) 70%,transparent)}}.bg-\[hsl\(224\,28\%\,8\%\)\]{background-color:#0f121a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/80{background-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.bg-amber-500\/\[0\.06\]{background-color:#f99c000f}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-amber-500) 6%,transparent)}}.bg-background\/10{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--background)) 10%,transparent)}}.bg-background\/20{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/20{background-color:color-mix(in oklab,hsl(var(--background)) 20%,transparent)}}.bg-background\/25{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/25{background-color:color-mix(in oklab,hsl(var(--background)) 25%,transparent)}}.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/35{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/35{background-color:color-mix(in oklab,hsl(var(--background)) 35%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/50{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,hsl(var(--background)) 50%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:hsl(var(--border))}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.bg-card\/45{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/45{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.bg-card\/70{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/70{background-color:color-mix(in oklab,hsl(var(--card)) 70%,transparent)}}.bg-card\/85{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,hsl(var(--card)) 85%,transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/15{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/20{background-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-emerald-500\/80{background-color:#00bb7fcc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/80{background-color:color-mix(in oklab,var(--color-emerald-500) 80%,transparent)}}.bg-foreground\/10{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/10{background-color:color-mix(in oklab,hsl(var(--foreground)) 10%,transparent)}}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500) 10%,transparent)}}.bg-fuchsia-500\/15{background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/15{background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.bg-lime-500{background-color:var(--color-lime-500)}.bg-lime-500\/15{background-color:#80cd0026}@supports (color:color-mix(in lab,red,red)){.bg-lime-500\/15{background-color:color-mix(in oklab,var(--color-lime-500) 15%,transparent)}}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/30{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 30%,transparent)}}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.bg-muted-foreground\/45{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/45{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 45%,transparent)}}.bg-muted\/25{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/25{background-color:color-mix(in oklab,hsl(var(--muted)) 25%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500) 20%,transparent)}}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/15{background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.bg-popover,.bg-popover\/95{background-color:hsl(var(--popover))}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,hsl(var(--popover)) 95%,transparent)}}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-primary\/70{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/70{background-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.bg-primary\/\[0\.06\]{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/\[0\.06\]{background-color:color-mix(in oklab,hsl(var(--primary)) 6%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/15{background-color:color-mix(in oklab,var(--color-rose-500) 15%,transparent)}}.bg-sky-500\/5{background-color:#00a5ef0d}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/5{background-color:color-mix(in oklab,var(--color-sky-500) 5%,transparent)}}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500) 10%,transparent)}}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-500\/15{background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/15{background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.bg-slate-500\/20{background-color:#62748e33}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/20{background-color:color-mix(in oklab,var(--color-slate-500) 20%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500) 10%,transparent)}}.bg-teal-500\/15{background-color:#00baa726}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/15{background-color:color-mix(in oklab,var(--color-teal-500) 15%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/5{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/5{background-color:color-mix(in oklab,var(--color-violet-500) 5%,transparent)}}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-violet-500\/\[0\.04\]{background-color:#8d54ff0a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-violet-500) 4%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground{--tw-gradient-from:hsl(var(--foreground));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-foreground{--tw-gradient-via:hsl(var(--foreground));--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:hsl(var(--primary));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.fill-primary\/20{fill:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.fill-primary\/20{fill:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.font-space{font-family:Space Grotesk,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/70{color:#ffd236b3}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/70{color:color-mix(in oklab,var(--color-amber-300) 70%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/90{color:color-mix(in oklab,var(--color-amber-400) 90%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-cyan-200\/90{color:#a2f4fde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-200\/90{color:color-mix(in oklab,var(--color-cyan-200) 90%,transparent)}}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-300\/80{color:#53eafdcc}@supports (color:color-mix(in lab,red,red)){.text-cyan-300\/80{color:color-mix(in oklab,var(--color-cyan-300) 80%,transparent)}}.text-cyan-400{color:var(--color-cyan-400)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-300\/70{color:#5ee9b5b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/70{color:color-mix(in oklab,var(--color-emerald-300) 70%,transparent)}}.text-emerald-300\/80{color:#5ee9b5cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/80{color:color-mix(in oklab,var(--color-emerald-300) 80%,transparent)}}.text-emerald-300\/90{color:#5ee9b5e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/90{color:color-mix(in oklab,var(--color-emerald-300) 90%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/70{color:#00d294b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/70{color:color-mix(in oklab,var(--color-emerald-400) 70%,transparent)}}.text-emerald-400\/90{color:#00d294e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/90{color:color-mix(in oklab,var(--color-emerald-400) 90%,transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground,.text-foreground\/70{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,hsl(var(--foreground)) 70%,transparent)}}.text-foreground\/80{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.text-foreground\/85{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/85{color:color-mix(in oklab,hsl(var(--foreground)) 85%,transparent)}}.text-foreground\/90{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,hsl(var(--foreground)) 90%,transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-lime-400{color:var(--color-lime-400)}.text-muted-foreground,.text-muted-foreground\/40{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.text-muted-foreground\/50{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.text-muted-foreground\/55{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/55{color:color-mix(in oklab,hsl(var(--muted-foreground)) 55%,transparent)}}.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/70{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,hsl(var(--muted-foreground)) 70%,transparent)}}.text-muted-foreground\/75{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/75{color:color-mix(in oklab,hsl(var(--muted-foreground)) 75%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-400{color:var(--color-neutral-400)}.text-orange-300{color:var(--color-orange-300)}.text-pink-300{color:var(--color-pink-300)}.text-pink-400{color:var(--color-pink-400)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/70{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.text-primary\/80{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-red-200{color:var(--color-red-200)}.text-red-200\/90{color:#ffcacae6}@supports (color:color-mix(in lab,red,red)){.text-red-200\/90{color:color-mix(in oklab,var(--color-red-200) 90%,transparent)}}.text-red-300{color:var(--color-red-300)}.text-red-300\/70{color:#ffa3a3b3}@supports (color:color-mix(in lab,red,red)){.text-red-300\/70{color:color-mix(in oklab,var(--color-red-300) 70%,transparent)}}.text-red-300\/90{color:#ffa3a3e6}@supports (color:color-mix(in lab,red,red)){.text-red-300\/90{color:color-mix(in oklab,var(--color-red-300) 90%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-200\/80{color:#b8e6fecc}@supports (color:color-mix(in lab,red,red)){.text-sky-200\/80{color:color-mix(in oklab,var(--color-sky-200) 80%,transparent)}}.text-sky-300{color:var(--color-sky-300)}.text-sky-300\/80{color:#77d4ffcc}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/80{color:color-mix(in oklab,var(--color-sky-300) 80%,transparent)}}.text-sky-300\/90{color:#77d4ffe6}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/90{color:color-mix(in oklab,var(--color-sky-300) 90%,transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-slate-300{color:var(--color-slate-300)}.text-teal-300{color:var(--color-teal-300)}.text-teal-400{color:var(--color-teal-400)}.text-transparent{color:#0000}.text-violet-200\/90{color:#ddd6ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-200\/90{color:color-mix(in oklab,var(--color-violet-200) 90%,transparent)}}.text-violet-300{color:var(--color-violet-300)}.text-violet-300\/70{color:#c4b4ffb3}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/70{color:color-mix(in oklab,var(--color-violet-300) 70%,transparent)}}.text-violet-300\/80{color:#c4b4ffcc}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/80{color:color-mix(in oklab,var(--color-violet-300) 80%,transparent)}}.text-violet-300\/90{color:#c4b4ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/90{color:color-mix(in oklab,var(--color-violet-300) 90%,transparent)}}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-primary\/40{-webkit-text-decoration-color:hsl(var(--primary));text-decoration-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.decoration-primary\/40{-webkit-text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent);text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#10b98166);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(239\,68\,68\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#ef444466);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(245\,158\,11\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#f59e0b66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab,red,red)){.shadow-black\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab,red,red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/25{--tw-shadow-color:#00000040}@supports (color:color-mix(in lab,red,red)){.shadow-black\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-background\/60{--tw-ring-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.ring-background\/60{--tw-ring-color:color-mix(in oklab, hsl(var(--background)) 60%, transparent)}}.ring-black\/40{--tw-ring-color:#0006}@supports (color:color-mix(in lab,red,red)){.ring-black\/40{--tw-ring-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.ring-white\/70{--tw-ring-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.ring-white\/70{--tw-ring-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media(hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-foreground:is(:where(.group):hover *){color:hsl(var(--foreground))}.group-hover\:text-primary:is(:where(.group):hover *){color:hsl(var(--primary))}.group-hover\:shadow-md:is(:where(.group):hover *){--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)}.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.first\:mt-0:first-child{margin-top:0}.first\:rounded-l-sm:first-child{border-top-left-radius:calc(var(--radius) - 4px);border-bottom-left-radius:calc(var(--radius) - 4px)}@media(hover:hover){.hover\:border-amber-500\/50:hover{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-500\/50:hover{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.hover\:border-border:hover,.hover\:border-border\/60:hover{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/60:hover{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.hover\:border-emerald-500\/40:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/40:hover{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/45:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/45:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-400:hover{background-color:var(--color-amber-400)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-background\/40:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/40:hover{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.hover\:bg-background\/60:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.hover\:bg-background\/80:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/80:hover{background-color:color-mix(in oklab,hsl(var(--background)) 80%,transparent)}}.hover\:bg-card\/45:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/45:hover{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.hover\:bg-emerald-500\/15:hover{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/15:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-neutral-700:hover{background-color:var(--color-neutral-700)}.hover\:bg-primary:hover,.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 90%,transparent)}}.hover\:bg-primary\/95:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/95:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 95%,transparent)}}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:bg-red-500\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/15:hover{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.hover\:bg-sky-500\/20:hover{background-color:#00a5ef33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-500\/20:hover{background-color:color-mix(in oklab,var(--color-sky-500) 20%,transparent)}}.hover\:bg-violet-500\/20:hover{background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-violet-500\/20:hover{background-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-foreground:hover,.hover\:text-foreground\/80:hover{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:text-foreground\/80:hover{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-violet-200:hover{color:var(--color-violet-200)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:border-primary:focus,.focus\:border-primary\/50:focus{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/50:focus{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.focus\:border-red-400\/50:focus{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.focus\:border-red-400\/50:focus{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.focus\:border-sky-400\/50:focus{border-color:#00bcfe80}@supports (color:color-mix(in lab,red,red)){.focus\:border-sky-400\/50:focus{border-color:color-mix(in oklab,var(--color-sky-400) 50%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary\/50:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.focus\:ring-violet-500\/50:focus{--tw-ring-color:#8d54ff80}@supports (color:color-mix(in lab,red,red)){.focus\:ring-violet-500\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-violet-500) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:w-36{width:calc(var(--spacing) * 36)}.sm\:w-\[640px\]{width:640px}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[170px_1fr\]{grid-template-columns:170px 1fr}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:w-40{width:calc(var(--spacing) * 40)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.3fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.lg\:flex-row{flex-direction:row}.lg\:items-stretch{align-items:stretch}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:text-emerald-400{color:var(--color-emerald-400)}.dark\:text-red-400{color:var(--color-red-400)}}}: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}} +/*! 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-red-600:oklch(57.7% .245 27.325);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[23px\]{left:-23px}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.-z-50{z-index:-50}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[99\]{z-index:99}.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}.mt-px{margin-top:1px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-44{height:calc(var(--spacing) * 44)}.h-64{height:calc(var(--spacing) * 64)}.h-\[70vh\]{height:70vh}.h-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-full{height:100%}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.min-h-\[16rem\]{min-height:16rem}.min-h-\[58vh\]{min-height:58vh}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[85vw\]{max-width:85vw}.max-w-\[250px\]{max-width:250px}.max-w-\[280px\]{max-width:280px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-\[2\.5rem\]{min-width:2.5rem}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3ch\]{min-width:3ch}.min-w-\[680px\]{min-width:680px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.scrollbar-thin{scrollbar-width:thin}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 7) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 7) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}:where(.divide-border\/20>:not(:last-child)){border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\/20>:not(:last-child)){border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/20{border-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/25{border-color:color-mix(in oklab,var(--color-amber-500) 25%,transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/50{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500) 30%,transparent)}}.border-border,.border-border\/20{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/20{border-color:color-mix(in oklab,hsl(var(--border)) 20%,transparent)}}.border-border\/30{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,hsl(var(--border)) 30%,transparent)}}.border-border\/40{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,hsl(var(--border)) 40%,transparent)}}.border-border\/50{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,hsl(var(--border)) 50%,transparent)}}.border-border\/60{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.border-border\/70{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,hsl(var(--border)) 70%,transparent)}}.border-border\/80{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.border-border\/80{border-color:color-mix(in oklab,hsl(var(--border)) 80%,transparent)}}.border-cyan-500\/20{border-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/20{border-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/25{border-color:color-mix(in oklab,var(--color-cyan-500) 25%,transparent)}}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/10{border-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/10{border-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/20{border-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/25{border-color:color-mix(in oklab,var(--color-emerald-500) 25%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.border-fuchsia-500\/25{border-color:#e12afb40}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/25{border-color:color-mix(in oklab,var(--color-fuchsia-500) 25%,transparent)}}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab,red,red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab,var(--color-fuchsia-500) 30%,transparent)}}.border-indigo-500\/25{border-color:#625fff40}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/25{border-color:color-mix(in oklab,var(--color-indigo-500) 25%,transparent)}}.border-indigo-500\/40{border-color:#625fff66}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/40{border-color:color-mix(in oklab,var(--color-indigo-500) 40%,transparent)}}.border-lime-500\/25{border-color:#80cd0040}@supports (color:color-mix(in lab,red,red)){.border-lime-500\/25{border-color:color-mix(in oklab,var(--color-lime-500) 25%,transparent)}}.border-neutral-700{border-color:var(--color-neutral-700)}.border-orange-500\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/30{border-color:color-mix(in oklab,var(--color-orange-500) 30%,transparent)}}.border-pink-500\/25{border-color:#f6339a40}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/25{border-color:color-mix(in oklab,var(--color-pink-500) 25%,transparent)}}.border-pink-500\/40{border-color:#f6339a66}@supports (color:color-mix(in lab,red,red)){.border-pink-500\/40{border-color:color-mix(in oklab,var(--color-pink-500) 40%,transparent)}}.border-primary,.border-primary\/20{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.border-primary\/25{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/25{border-color:color-mix(in oklab,hsl(var(--primary)) 25%,transparent)}}.border-primary\/30{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.border-primary\/40{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.border-primary\/50{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.border-primary\/60{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,hsl(var(--primary)) 60%,transparent)}}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.border-purple-500\/30{border-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab,red,red)){.border-red-500\/25{border-color:color-mix(in oklab,var(--color-red-500) 25%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab,red,red)){.border-red-500\/40{border-color:color-mix(in oklab,var(--color-red-500) 40%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500) 60%,transparent)}}.border-sky-500\/25{border-color:#00a5ef40}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/25{border-color:color-mix(in oklab,var(--color-sky-500) 25%,transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-sky-500) 30%,transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/40{border-color:color-mix(in oklab,var(--color-sky-500) 40%,transparent)}}.border-slate-500\/25{border-color:#62748e40}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/25{border-color:color-mix(in oklab,var(--color-slate-500) 25%,transparent)}}.border-slate-500\/30{border-color:#62748e4d}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/30{border-color:color-mix(in oklab,var(--color-slate-500) 30%,transparent)}}.border-teal-500\/25{border-color:#00baa740}@supports (color:color-mix(in lab,red,red)){.border-teal-500\/25{border-color:color-mix(in oklab,var(--color-teal-500) 25%,transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/20{border-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/20{border-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/25{border-color:color-mix(in oklab,var(--color-violet-500) 25%,transparent)}}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/30{border-color:color-mix(in oklab,var(--color-violet-500) 30%,transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab,red,red)){.border-violet-500\/40{border-color:color-mix(in oklab,var(--color-violet-500) 40%,transparent)}}.border-t-emerald-500\/70{border-top-color:#00bb7fb3}@supports (color:color-mix(in lab,red,red)){.border-t-emerald-500\/70{border-top-color:color-mix(in oklab,var(--color-emerald-500) 70%,transparent)}}.border-t-primary\/70{border-top-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.border-t-primary\/70{border-top-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.bg-\[hsl\(224\,28\%\,8\%\)\]{background-color:#0f121a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/5{background-color:color-mix(in oklab,var(--color-amber-500) 5%,transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/15{background-color:color-mix(in oklab,var(--color-amber-500) 15%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-amber-500\/80{background-color:#f99c00cc}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/80{background-color:color-mix(in oklab,var(--color-amber-500) 80%,transparent)}}.bg-amber-500\/\[0\.06\]{background-color:#f99c000f}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-amber-500) 6%,transparent)}}.bg-background\/10{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/10{background-color:color-mix(in oklab,hsl(var(--background)) 10%,transparent)}}.bg-background\/20{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/20{background-color:color-mix(in oklab,hsl(var(--background)) 20%,transparent)}}.bg-background\/25{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/25{background-color:color-mix(in oklab,hsl(var(--background)) 25%,transparent)}}.bg-background\/30{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/30{background-color:color-mix(in oklab,hsl(var(--background)) 30%,transparent)}}.bg-background\/35{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/35{background-color:color-mix(in oklab,hsl(var(--background)) 35%,transparent)}}.bg-background\/40{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.bg-background\/50{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/50{background-color:color-mix(in oklab,hsl(var(--background)) 50%,transparent)}}.bg-background\/60{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:hsl(var(--border))}.bg-card,.bg-card\/20{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,hsl(var(--card)) 20%,transparent)}}.bg-card\/30{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,hsl(var(--card)) 30%,transparent)}}.bg-card\/40{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,hsl(var(--card)) 40%,transparent)}}.bg-card\/45{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/45{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.bg-card\/70{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/70{background-color:color-mix(in oklab,hsl(var(--card)) 70%,transparent)}}.bg-card\/85{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,hsl(var(--card)) 85%,transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/10{background-color:color-mix(in oklab,var(--color-cyan-500) 10%,transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/15{background-color:color-mix(in oklab,var(--color-cyan-500) 15%,transparent)}}.bg-cyan-500\/20{background-color:#00b7d733}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/20{background-color:color-mix(in oklab,var(--color-cyan-500) 20%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/5{background-color:color-mix(in oklab,var(--color-emerald-500) 5%,transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-emerald-500\/80{background-color:#00bb7fcc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/80{background-color:color-mix(in oklab,var(--color-emerald-500) 80%,transparent)}}.bg-foreground\/10{background-color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/10{background-color:color-mix(in oklab,hsl(var(--foreground)) 10%,transparent)}}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500) 10%,transparent)}}.bg-fuchsia-500\/15{background-color:#e12afb26}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/15{background-color:color-mix(in oklab,var(--color-fuchsia-500) 15%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/10{background-color:color-mix(in oklab,var(--color-indigo-500) 10%,transparent)}}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.bg-lime-500{background-color:var(--color-lime-500)}.bg-lime-500\/15{background-color:#80cd0026}@supports (color:color-mix(in lab,red,red)){.bg-lime-500\/15{background-color:color-mix(in oklab,var(--color-lime-500) 15%,transparent)}}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/30{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 30%,transparent)}}.bg-muted-foreground\/40{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.bg-muted-foreground\/45{background-color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/45{background-color:color-mix(in oklab,hsl(var(--muted-foreground)) 45%,transparent)}}.bg-muted\/25{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/25{background-color:color-mix(in oklab,hsl(var(--muted)) 25%,transparent)}}.bg-muted\/40{background-color:hsl(var(--muted))}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,hsl(var(--muted)) 40%,transparent)}}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500) 20%,transparent)}}.bg-pink-500{background-color:var(--color-pink-500)}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/10{background-color:color-mix(in oklab,var(--color-pink-500) 10%,transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab,red,red)){.bg-pink-500\/15{background-color:color-mix(in oklab,var(--color-pink-500) 15%,transparent)}}.bg-popover,.bg-popover\/95{background-color:hsl(var(--popover))}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,hsl(var(--popover)) 95%,transparent)}}.bg-primary,.bg-primary\/5{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,hsl(var(--primary)) 5%,transparent)}}.bg-primary\/10{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.bg-primary\/15{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,hsl(var(--primary)) 15%,transparent)}}.bg-primary\/70{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/70{background-color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.bg-primary\/\[0\.06\]{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.bg-primary\/\[0\.06\]{background-color:color-mix(in oklab,hsl(var(--primary)) 6%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/15{background-color:color-mix(in oklab,var(--color-rose-500) 15%,transparent)}}.bg-sky-500\/5{background-color:#00a5ef0d}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/5{background-color:color-mix(in oklab,var(--color-sky-500) 5%,transparent)}}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500) 10%,transparent)}}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-500\/15{background-color:#62748e26}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/15{background-color:color-mix(in oklab,var(--color-slate-500) 15%,transparent)}}.bg-slate-500\/20{background-color:#62748e33}@supports (color:color-mix(in lab,red,red)){.bg-slate-500\/20{background-color:color-mix(in oklab,var(--color-slate-500) 20%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-500\/10{background-color:#00baa71a}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/10{background-color:color-mix(in oklab,var(--color-teal-500) 10%,transparent)}}.bg-teal-500\/15{background-color:#00baa726}@supports (color:color-mix(in lab,red,red)){.bg-teal-500\/15{background-color:color-mix(in oklab,var(--color-teal-500) 15%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/5{background-color:#8d54ff0d}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/5{background-color:color-mix(in oklab,var(--color-violet-500) 5%,transparent)}}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/10{background-color:color-mix(in oklab,var(--color-violet-500) 10%,transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/15{background-color:color-mix(in oklab,var(--color-violet-500) 15%,transparent)}}.bg-violet-500\/\[0\.04\]{background-color:#8d54ff0a}@supports (color:color-mix(in lab,red,red)){.bg-violet-500\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-violet-500) 4%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-foreground{--tw-gradient-from:hsl(var(--foreground));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-foreground{--tw-gradient-via:hsl(var(--foreground));--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:hsl(var(--primary));--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.fill-primary\/20{fill:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.fill-primary\/20{fill:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.font-space{font-family:Space Grotesk,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/70{color:#ffd236b3}@supports (color:color-mix(in lab,red,red)){.text-amber-300\/70{color:color-mix(in oklab,var(--color-amber-300) 70%,transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/90{color:color-mix(in oklab,var(--color-amber-400) 90%,transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-cyan-200\/90{color:#a2f4fde6}@supports (color:color-mix(in lab,red,red)){.text-cyan-200\/90{color:color-mix(in oklab,var(--color-cyan-200) 90%,transparent)}}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-300\/80{color:#53eafdcc}@supports (color:color-mix(in lab,red,red)){.text-cyan-300\/80{color:color-mix(in oklab,var(--color-cyan-300) 80%,transparent)}}.text-cyan-400{color:var(--color-cyan-400)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-300\/70{color:#5ee9b5b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/70{color:color-mix(in oklab,var(--color-emerald-300) 70%,transparent)}}.text-emerald-300\/80{color:#5ee9b5cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/80{color:color-mix(in oklab,var(--color-emerald-300) 80%,transparent)}}.text-emerald-300\/90{color:#5ee9b5e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-300\/90{color:color-mix(in oklab,var(--color-emerald-300) 90%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/70{color:#00d294b3}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/70{color:color-mix(in oklab,var(--color-emerald-400) 70%,transparent)}}.text-emerald-400\/90{color:#00d294e6}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/90{color:color-mix(in oklab,var(--color-emerald-400) 90%,transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground,.text-foreground\/70{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,hsl(var(--foreground)) 70%,transparent)}}.text-foreground\/80{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.text-foreground\/85{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/85{color:color-mix(in oklab,hsl(var(--foreground)) 85%,transparent)}}.text-foreground\/90{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,hsl(var(--foreground)) 90%,transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-400{color:var(--color-fuchsia-400)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-lime-400{color:var(--color-lime-400)}.text-muted-foreground,.text-muted-foreground\/40{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,hsl(var(--muted-foreground)) 40%,transparent)}}.text-muted-foreground\/50{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.text-muted-foreground\/55{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/55{color:color-mix(in oklab,hsl(var(--muted-foreground)) 55%,transparent)}}.text-muted-foreground\/60{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,hsl(var(--muted-foreground)) 60%,transparent)}}.text-muted-foreground\/70{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,hsl(var(--muted-foreground)) 70%,transparent)}}.text-muted-foreground\/75{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/75{color:color-mix(in oklab,hsl(var(--muted-foreground)) 75%,transparent)}}.text-muted-foreground\/80{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,hsl(var(--muted-foreground)) 80%,transparent)}}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-400{color:var(--color-neutral-400)}.text-orange-300{color:var(--color-orange-300)}.text-pink-300{color:var(--color-pink-300)}.text-pink-400{color:var(--color-pink-400)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/70{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,hsl(var(--primary)) 70%,transparent)}}.text-primary\/80{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-red-200{color:var(--color-red-200)}.text-red-200\/90{color:#ffcacae6}@supports (color:color-mix(in lab,red,red)){.text-red-200\/90{color:color-mix(in oklab,var(--color-red-200) 90%,transparent)}}.text-red-300{color:var(--color-red-300)}.text-red-300\/70{color:#ffa3a3b3}@supports (color:color-mix(in lab,red,red)){.text-red-300\/70{color:color-mix(in oklab,var(--color-red-300) 70%,transparent)}}.text-red-300\/90{color:#ffa3a3e6}@supports (color:color-mix(in lab,red,red)){.text-red-300\/90{color:color-mix(in oklab,var(--color-red-300) 90%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-red-400\/80{color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.text-red-400\/80{color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-200\/80{color:#b8e6fecc}@supports (color:color-mix(in lab,red,red)){.text-sky-200\/80{color:color-mix(in oklab,var(--color-sky-200) 80%,transparent)}}.text-sky-300{color:var(--color-sky-300)}.text-sky-300\/80{color:#77d4ffcc}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/80{color:color-mix(in oklab,var(--color-sky-300) 80%,transparent)}}.text-sky-300\/90{color:#77d4ffe6}@supports (color:color-mix(in lab,red,red)){.text-sky-300\/90{color:color-mix(in oklab,var(--color-sky-300) 90%,transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-slate-300{color:var(--color-slate-300)}.text-teal-300{color:var(--color-teal-300)}.text-teal-400{color:var(--color-teal-400)}.text-transparent{color:#0000}.text-violet-200\/90{color:#ddd6ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-200\/90{color:color-mix(in oklab,var(--color-violet-200) 90%,transparent)}}.text-violet-300{color:var(--color-violet-300)}.text-violet-300\/70{color:#c4b4ffb3}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/70{color:color-mix(in oklab,var(--color-violet-300) 70%,transparent)}}.text-violet-300\/80{color:#c4b4ffcc}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/80{color:color-mix(in oklab,var(--color-violet-300) 80%,transparent)}}.text-violet-300\/90{color:#c4b4ffe6}@supports (color:color-mix(in lab,red,red)){.text-violet-300\/90{color:color-mix(in oklab,var(--color-violet-300) 90%,transparent)}}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-primary\/40{-webkit-text-decoration-color:hsl(var(--primary));text-decoration-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.decoration-primary\/40{-webkit-text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent);text-decoration-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#10b98166);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(239\,68\,68\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#ef444466);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(245\,158\,11\,0\.4\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#f59e0b66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-amber-500\/10{--tw-shadow-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.shadow-amber-500\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber-500) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/15{--tw-shadow-color:#00000026}@supports (color:color-mix(in lab,red,red)){.shadow-black\/15{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 15%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab,red,red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/25{--tw-shadow-color:#00000040}@supports (color:color-mix(in lab,red,red)){.shadow-black\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/10{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-background\/60{--tw-ring-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.ring-background\/60{--tw-ring-color:color-mix(in oklab, hsl(var(--background)) 60%, transparent)}}.ring-black\/40{--tw-ring-color:#0006}@supports (color:color-mix(in lab,red,red)){.ring-black\/40{--tw-ring-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.ring-white\/70{--tw-ring-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.ring-white\/70{--tw-ring-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media(hover:hover){.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:text-foreground:is(:where(.group):hover *){color:hsl(var(--foreground))}.group-hover\:text-primary:is(:where(.group):hover *){color:hsl(var(--primary))}.group-hover\:shadow-md:is(:where(.group):hover *){--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)}.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, hsl(var(--primary)) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/50::placeholder{color:color-mix(in oklab,hsl(var(--muted-foreground)) 50%,transparent)}}.first\:mt-0:first-child{margin-top:0}.first\:rounded-l-sm:first-child{border-top-left-radius:calc(var(--radius) - 4px);border-bottom-left-radius:calc(var(--radius) - 4px)}@media(hover:hover){.hover\:border-amber-500\/50:hover{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-500\/50:hover{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.hover\:border-border:hover,.hover\:border-border\/60:hover{border-color:hsl(var(--border))}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/60:hover{border-color:color-mix(in oklab,hsl(var(--border)) 60%,transparent)}}.hover\:border-emerald-500\/40:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/40:hover{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.hover\:border-primary\/30:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 40%,transparent)}}.hover\:border-primary\/45:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/45:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 45%,transparent)}}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-400:hover{background-color:var(--color-amber-400)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.hover\:bg-background\/40:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/40:hover{background-color:color-mix(in oklab,hsl(var(--background)) 40%,transparent)}}.hover\:bg-background\/60:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,hsl(var(--background)) 60%,transparent)}}.hover\:bg-background\/80:hover{background-color:hsl(var(--background))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-background\/80:hover{background-color:color-mix(in oklab,hsl(var(--background)) 80%,transparent)}}.hover\:bg-card\/45:hover{background-color:hsl(var(--card))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card\/45:hover{background-color:color-mix(in oklab,hsl(var(--card)) 45%,transparent)}}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.hover\:bg-emerald-500\/15:hover{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/15:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-neutral-700:hover{background-color:var(--color-neutral-700)}.hover\:bg-primary:hover,.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 90%,transparent)}}.hover\:bg-primary\/95:hover{background-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/95:hover{background-color:color-mix(in oklab,hsl(var(--primary)) 95%,transparent)}}.hover\:bg-red-500\/5:hover{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/5:hover{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:bg-red-500\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/15:hover{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.hover\:bg-sky-500\/20:hover{background-color:#00a5ef33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-500\/20:hover{background-color:color-mix(in oklab,var(--color-sky-500) 20%,transparent)}}.hover\:bg-violet-500\/20:hover{background-color:#8d54ff33}@supports (color:color-mix(in lab,red,red)){.hover\:bg-violet-500\/20:hover{background-color:color-mix(in oklab,var(--color-violet-500) 20%,transparent)}}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-foreground:hover,.hover\:text-foreground\/80:hover{color:hsl(var(--foreground))}@supports (color:color-mix(in lab,red,red)){.hover\:text-foreground\/80:hover{color:color-mix(in oklab,hsl(var(--foreground)) 80%,transparent)}}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab,hsl(var(--primary)) 80%,transparent)}}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-violet-200:hover{color:var(--color-violet-200)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:border-primary:focus,.focus\:border-primary\/50:focus{border-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:border-primary\/50:focus{border-color:color-mix(in oklab,hsl(var(--primary)) 50%,transparent)}}.focus\:border-red-400\/50:focus{border-color:#ff656880}@supports (color:color-mix(in lab,red,red)){.focus\:border-red-400\/50:focus{border-color:color-mix(in oklab,var(--color-red-400) 50%,transparent)}}.focus\:border-sky-400\/50:focus{border-color:#00bcfe80}@supports (color:color-mix(in lab,red,red)){.focus\:border-sky-400\/50:focus{border-color:color-mix(in oklab,var(--color-sky-400) 50%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary\/50:focus{--tw-ring-color:hsl(var(--primary))}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:w-36{width:calc(var(--spacing) * 36)}.sm\:w-\[640px\]{width:640px}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[170px_1fr\]{grid-template-columns:170px 1fr}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:w-40{width:calc(var(--spacing) * 40)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:grid-cols-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}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:text-emerald-400{color:var(--color-emerald-400)}.dark\:text-red-400{color:var(--color-red-400)}}}: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/layers-Dpl2QlP2.js b/frontend/dist/assets/layers-BakyhGhx.js similarity index 91% rename from frontend/dist/assets/layers-Dpl2QlP2.js rename to frontend/dist/assets/layers-BakyhGhx.js index 40beed4..0ecd600 100644 --- a/frontend/dist/assets/layers-Dpl2QlP2.js +++ b/frontend/dist/assets/layers-BakyhGhx.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-CCbyojll.js";/** +import{c as a}from"./index-DNt66je4.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-DuKtbjZS.js b/frontend/dist/assets/rotate-ccw-CGv9dXzB.js similarity index 88% rename from frontend/dist/assets/rotate-ccw-DuKtbjZS.js rename to frontend/dist/assets/rotate-ccw-CGv9dXzB.js index a9bc819..ae6f088 100644 --- a/frontend/dist/assets/rotate-ccw-DuKtbjZS.js +++ b/frontend/dist/assets/rotate-ccw-CGv9dXzB.js @@ -1,4 +1,4 @@ -import{c as t}from"./index-CCbyojll.js";/** +import{c as t}from"./index-DNt66je4.js";/** * @license lucide-react v0.460.0 - ISC * * This source code is licensed under the ISC license. diff --git a/frontend/dist/assets/zap-CRNNnxfs.js b/frontend/dist/assets/zap-cdYTHDpR.js similarity index 96% rename from frontend/dist/assets/zap-CRNNnxfs.js rename to frontend/dist/assets/zap-cdYTHDpR.js index e9237de..fa4a351 100644 --- a/frontend/dist/assets/zap-CRNNnxfs.js +++ b/frontend/dist/assets/zap-cdYTHDpR.js @@ -1,4 +1,4 @@ -import{c as a}from"./index-CCbyojll.js";/** +import{c as a}from"./index-DNt66je4.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 7fc1a0b..a99ace4 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -7,8 +7,8 @@ Mission Control 2.0 - - + +
diff --git a/frontend/src/components/dashboard/LatencyCard.tsx b/frontend/src/components/dashboard/LatencyCard.tsx index 3cbc1ba..357a57f 100644 --- a/frontend/src/components/dashboard/LatencyCard.tsx +++ b/frontend/src/components/dashboard/LatencyCard.tsx @@ -2,8 +2,8 @@ import { Gauge } from "lucide-react" import { useVoiceTrace } from "@/lib/queries" import type { VoiceTurn } from "@/lib/api" -// Balken-Stufen in kanonischer Reihenfolge (zeitlich disjunkt). Mem0 ist ein Unter-Detail -// INNERHALB von „Hirn" und wird NICHT als eigenes Segment addiert (sonst Doppelzählung). +// Balken-Stufen in kanonischer Reihenfolge (zeitlich disjunkt). Der Gedächtnis-Abruf läuft +// Hermes-intern und ist für MC2 nicht messbar — er steckt in „Hirn". const SEGMENTS = [ { key: "stt_ms", label: "STT", color: "#f59e0b" }, { key: "vision_ms", label: "Sehen", color: "#a78bfa" }, @@ -39,7 +39,6 @@ function culprit(t: VoiceTurn): { label: string; color: string; ms: number } | n function TurnRow({ t, scale }: { t: VoiceTurn; scale: number }) { const title = SEGMENTS.map((s) => `${s.label} ${fmt(t[s.key] as number | null)}`).join(" · ") - + (t.mem0_ms != null ? ` (davon Gedächtnis ${fmt(t.mem0_ms)})` : "") return (
{ago(t.ts)} @@ -103,7 +102,6 @@ export function LatencyCard() { {latest && !latest.error && (
{SEGMENTS.filter((s) => (latest[s.key] as number | null) != null).map((s) => `${s.label} ${fmt(latest[s.key] as number)}`).join(" · ")} - {latest.mem0_ms != null && · davon Gedächtnis {fmt(latest.mem0_ms)}}
)}
@@ -128,7 +126,7 @@ export function LatencyCard() { )}
- „Hirn" = Zeit bis zum ersten Wort (Agent + Mem0-Suche + Modell); Tool-Runden stecken in „Antwort". Reine + „Hirn" = Zeit bis zum ersten Wort (Agent + Gedächtnis-Suche + Modell); Tool-Runden stecken in „Antwort". Reine Telegram-Turns laufen an MC2 vorbei und erscheinen hier nicht.
diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 25f2bf4..bbe6e8b 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -338,7 +338,6 @@ export interface ConnectResp { gateway_url: string mc_url: string tools: Record // Leitung 1 — Modell (IDEs/Agenten → Gateway) - memory: ConnectTool // Leitung 2 — Gedächtnis (separater MCP-Server) } export interface ConnectLine { @@ -347,20 +346,12 @@ export interface ConnectLine { } export interface ConnectHealth { gateway: ConnectLine - memory: ConnectLine + memory: ConnectLine // Leitung 2 — Hermes-natives Gedächtnis (nur Status, nichts zu konfigurieren) desktop_gateway: ConnectLine } -export interface Memory { - id: string - content: string - category: string - source: string - created_at: string - updated_at: string - score?: number // Relevanz bei semantischer Suche (q gesetzt); sonst undefined -} - +// Graph-Ansicht des Wissens-Vaults (GET /api/wissen/graph) — trägt aus historischen Gründen +// noch „Memory" im Namen; die Daten kommen aus dem Vault, nicht aus einem Gedächtnis-Dienst. export interface MemoryGraphNode { id: string content: string @@ -372,13 +363,6 @@ export interface MemoryGraph { edges: { source: string; target: string; weight: number }[] } -export interface DedupeResult { - groups: { keep: { id: string; content: string; category: string }; remove: { id: string; content: string }[] }[] - duplicate_count: number - removed: number - applied: boolean -} - export interface AgentStatus { gateway_url: string box_console_url?: string @@ -443,7 +427,8 @@ export interface TokenStats { } // Per-Turn-Latenz-Trace (GET /api/voice/trace). Balken-Stufen (zeitlich disjunkt): -// stt · vision · hirn · gen. mem0 = Unter-Detail INNERHALB von hirn (nicht zum Balken addieren). +// stt · vision · hirn · gen. Der Gedächtnis-Abruf läuft seit der Mem0-Ablösung Hermes-intern +// (kein Rückruf an MC2) und steckt daher unsichtbar in hirn_ms. export interface VoiceTurn { id: string ts: number // Epoch-Sekunden @@ -452,9 +437,8 @@ export interface VoiceTurn { had_images: boolean stt_ms: number | null vision_ms: number | null - hirn_ms: number | null // Zeit bis erstes Inhalts-Token (Agent + Mem0 + LLM-TTFT) + hirn_ms: number | null // Zeit bis erstes Inhalts-Token (Agent + Gedächtnis + LLM-TTFT) gen_ms: number | null // Generierung nach dem ersten Token bis Stream-Ende - mem0_ms: number | null // Teil VON hirn (Mem0-Retrieve), best-effort total_ms: number error: string | null } @@ -583,36 +567,6 @@ export interface ChronikResp { items: ChronikItem[] } -// ── Eigenleben („Von allein": Skills + Vorschlags-Bilanz der Box) ──────────── -export interface EigenlebenSkill { - id: string - name: string - kategorie: string | null - aktiv: boolean | null // null = nicht ermittelbar (Dev-Modus) - beschreibung: string - version: string - autor: string - herkunft: "selbst" | "repo" | "bundled" - herkunft_label: string - genutzt: number - zuletzt_genutzt: string | null - erstellt: string | null - status: string - geaendert: number -} -export interface EigenlebenEintrag { - art: string // "angenommen" | "abgelehnt" | sonstiger Chronik-State - titel: string - detail: string - ts: number -} -export interface EigenlebenResp { - available: boolean - skills: EigenlebenSkill[] - selbst_erstellt: number - bilanz: { eintraege: EigenlebenEintrag[]; angenommen: number; abgelehnt: number } -} - // ── Wissens-Vault (Traum-Notizen, read-only) ───────────────────────────────── export interface WissenFile { path: string diff --git a/frontend/src/lib/queries.ts b/frontend/src/lib/queries.ts index 083265e..8e9a4a5 100644 --- a/frontend/src/lib/queries.ts +++ b/frontend/src/lib/queries.ts @@ -13,7 +13,6 @@ import { type ConnectHealth, type DiscoverResp, type DraftsResp, - type EigenlebenResp, type GroupsResp, type HermesBrainResp, type Health, @@ -21,7 +20,6 @@ import { type IdeenLogResp, type IdeenResp, type Job, - type Memory, type MemoryGraph, type ModelsResp, type Reminder, @@ -54,13 +52,11 @@ export const qk = { drafts: (target?: string) => ["drafts", target ?? ""] as const, connect: (params?: string) => ["connect", params ?? ""] as const, connectHealth: ["connect-health"] as const, - memory: (q?: string, category?: string) => ["memory", q ?? "", category ?? ""] as const, memoryGraph: ["memory-graph"] as const, voiceTrace: ["voice-trace"] as const, auftragsbuch: ["auftragsbuch"] as const, ideen: ["ideen"] as const, chronik: ["chronik"] as const, - eigenleben: ["eigenleben"] as const, wissen: ["wissen"] as const, zeitmaschine: ["zeitmaschine"] as const, reminders: ["reminders"] as const, @@ -125,13 +121,6 @@ export const useChronik = (limit = 150, refetchInterval: number = TAKT.gemuetlic export const useWissen = () => useQuery({ queryKey: qk.wissen, queryFn: () => api("/api/wissen") }) -export const useEigenleben = (refetchInterval: number = TAKT.traege) => - useQuery({ - queryKey: qk.eigenleben, - queryFn: () => api("/api/eigenleben"), - refetchInterval, - }) - export const useZeitmaschine = (refetchInterval: number = TAKT.traege, enabled = true) => useQuery({ queryKey: qk.zeitmaschine, @@ -248,18 +237,6 @@ export const useConnectHealth = () => refetchInterval: 15000, }) -export const useMemory = (opts?: { q?: string; category?: string; limit?: number }) => - useQuery({ - queryKey: qk.memory(opts?.q, opts?.category), - queryFn: () => { - const p = new URLSearchParams() - if (opts?.q) p.set("q", opts.q) - if (opts?.category) p.set("category", opts.category) - return api(`/api/memory?${p}`) - }, - select: (d) => (opts?.limit ? d.slice(0, opts.limit) : d), - }) - /** Nach Mutationen die betroffenen Listen-Queries neu ziehen. */ export function invalidate(qc: QueryClient, ...keys: (readonly unknown[])[]) { for (const key of keys) qc.invalidateQueries({ queryKey: key }) diff --git a/frontend/src/views/ConnectView.tsx b/frontend/src/views/ConnectView.tsx index 6b812d6..a280bf6 100644 --- a/frontend/src/views/ConnectView.tsx +++ b/frontend/src/views/ConnectView.tsx @@ -1,6 +1,6 @@ import { useState } from "react" import { - Check, Copy, Cpu, Brain, Globe, FolderOpen, Laptop, ArrowRight, + Check, Copy, Cpu, Brain, Globe, Laptop, ArrowRight, Info, CircleCheck, CircleX, Loader2, ChevronDown, ChevronRight, } from "lucide-react" import { useConnect, useConnectHealth } from "@/lib/queries" @@ -82,14 +82,12 @@ function defaultHost(): string { export function ConnectView() { const [host, setHost] = useState(localStorage.getItem("mc_host") || defaultHost()) - const [mcpPath, setMcpPath] = useState(localStorage.getItem("mc_mcp_path") || "") // Legacy-Tools (roher /v1-Zugang) leben im Ausklapper — Hermes Desktop ist der Hauptweg. const [active, setActive] = useState("kilo") const [sonstigeOffen, setSonstigeOffen] = useState(false) - const [copied, setCopied] = useState<"desktop" | "model" | "memory" | null>(null) + const [copied, setCopied] = useState<"desktop" | "model" | null>(null) const params = new URLSearchParams({ host }) - if (mcpPath) params.set("mcp_path", mcpPath) const { data, error: dataErr } = useConnect(params.toString()) const { data: health, isLoading: healthLoading } = useConnectHealth() const error = dataErr ? String(dataErr) : "" @@ -99,15 +97,10 @@ export function ConnectView() { if (v) localStorage.setItem("mc_host", v) } - function saveMcpPath(v: string) { - setMcpPath(v) - localStorage.setItem("mc_mcp_path", v) - } - const desktop = data?.tools["hermes_desktop"] const tool = data?.tools[active] - async function copy(which: "desktop" | "model" | "memory", snippet?: string) { + async function copy(which: "desktop" | "model", snippet?: string) { if (!snippet) return await navigator.clipboard.writeText(snippet) setCopied(which) @@ -123,7 +116,7 @@ export function ConnectView() {

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. + Für Spezialfälle gibt es darunter den rohen Gateway-Zugang ( /v1) für sonstige Tools.

@@ -165,7 +158,7 @@ export function ConnectView() {
- MCP · mcp_memory.py · separat + Hermes-nativ · im Agenten · nichts einzurichten
@@ -187,9 +180,9 @@ export function ConnectView() {

- Der Gateway liefert nur das LLM. Das geteilte Gedächtnis läuft über einen - eigenen MCP-Server und das Desktop-Gateway bietet die Agenten-Schnittstelle — - alle drei Leitungen werden unabhängig eingerichtet. IDEs wählen die echten Modelle + Der Gateway liefert nur das LLM. Das Gedächtnis führt + Hermes selbst (nichts einzurichten — die Kachel zeigt nur, ob es lebt), und das + Desktop-Gateway bietet die Agenten-Schnittstelle. IDEs wählen die echten Modelle {" "}(coder · heavy · vision); daneben gibt es die virtuellen Lanes chat und {" "}coding, die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools).

@@ -260,12 +253,12 @@ export function ConnectView() { 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" > {sonstigeOffen ? : } - Sonstige Tools (roher /v1-Zugang + Gedächtnis-MCP) + Sonstige Tools (roher /v1-Zugang) Kilo Code · Claude Code · Eigenbau {sonstigeOffen && ( -
+
{/* Leitung 1 — Modell anbinden */}
@@ -312,51 +305,6 @@ export function ConnectView() { )}
- - {/* Leitung 2 — Gedächtnis anbinden */} -
-
-
- 2 - Gedächtnis anbinden - optional -
-

Ein MCP-Block — gilt zusätzlich für jedes Tool aus Schritt 1.

-
- -
- - {data.memory.note} -
- - {/* Der Pfad wirkt NUR auf dieses Snippet — deshalb wohnt das Feld hier, - nicht mehr prominent in der Kopfzeile („Wann brauche ich das?"). */} -
- - saveMcpPath(e.target.value)} - aria-label="Lokaler MCP-Scriptpfad" - spellCheck={false} - 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" - /> -

- Nur nötig, wenn du das Gedächtnis in einem PC-Tool anschließt — das Script läuft lokal - und spricht mit der Box. Der Pfad landet direkt im Snippet unten. -

-
- - copy("memory", data.memory.snippet)} - /> -
)}
diff --git a/frontend/src/views/GuideView.tsx b/frontend/src/views/GuideView.tsx index 11e2a89..e69b3dc 100644 --- a/frontend/src/views/GuideView.tsx +++ b/frontend/src/views/GuideView.tsx @@ -345,10 +345,12 @@ description: Treibt Entwicklung mit strikter TDD-Praxis
- Dein Gedächtnis (Tab Gedächtnis) ist Mem0-basiert: auto-lernend & - semantisch, graph-first dargestellt, mit 4-Typen-Taxonomie - (Identität · Wissen · Regeln · Ereignisse). Der Agent - lernt im Hintergrund nach jedem Turn — egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst. + Dein Gedächtnis führt Hermes selbst — auto-lernend und semantisch. Der Agent lernt im + Hintergrund nach jedem Turn, egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst. +
Deshalb hat das Steuerpult keinen eigenen Gedächtnis-Tab: bis August 2026 lag das + Gedächtnis in einem MC2-Sidecar, seit dessen Ablösung ist Hermes die einzige Quelle — angesehen und + gepflegt wird es dort, nicht hier. Unter Wissen findest du weiterhin die Graph-Sicht + auf Lucys Wissens-Vault.
Gotcha: ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion).
diff --git a/hermes/plugins/mc2-memory/__init__.py b/hermes/plugins/mc2-memory/__init__.py deleted file mode 100644 index a34546e..0000000 --- a/hermes/plugins/mc2-memory/__init__.py +++ /dev/null @@ -1,250 +0,0 @@ -""" -MC2 Memory — Hermes-Memory-Provider, der ans geteilte **Mem0-Gedächtnis** hängt (über MC2 :9001, -das den Mem0-Sidecar :8765 proxyt). Macht das Gedächtnis für Hermes **hands-off**: - -- `sync_turn` → nach jedem Turn werden die Turn-Messages an `/api/memory/learn` geschickt; - Mem0 EXTRAHIERT dauerhafte Fakten selbst (infer=True), dedupliziert semantisch. Nicht-blockierend - (Hintergrund-Worker), damit der Agent nie auf die LLM-Extraktion wartet. -- `prefetch` → vor jedem Turn semantische Suche gegen die Nutzer-Message; relevante Fakten werden - als Kontext eingeblendet (automatischer Recall). - -**Context-only:** `get_tool_schemas()` liefert `[]` → der Agent bekommt KEINE Memory-Tools. Damit -entfällt das Tool-Loop-Risiko, wegen dem das native Memory-Toolset abgeschaltet ist -(`agent.disabled_toolsets: [..., memory]` bleibt). Single Source of Truth bleibt der MC2-Sidecar -(NoThink-Fix + alleiniger Chroma-Besitzer) — dieser Provider ist nur ein dünner HTTP-Client. - -Aktivierung (in ~/.hermes/config.yaml): - memory: - memory_enabled: true - provider: mc2-memory -""" - -from __future__ import annotations - -import logging -import os -import queue -import re -import threading -import time -from typing import Any, Optional - -import httpx -from agent.memory_provider import MemoryProvider - -log = logging.getLogger(__name__) - -MC_URL = os.environ.get("MC_URL", "http://127.0.0.1:9001").rstrip("/") -MC_TOKEN = os.environ.get("MC_TOKEN", "") -RECALL_LIMIT = int(os.environ.get("MC2_MEMORY_RECALL_LIMIT", "5")) -# 0.5 statt 0.3: nur starke Treffer einblenden → weniger Rausch-Fakten UND ein stabilerer -# Prompt-Prefix (oft leer), damit --cache-reuse über Turns greift. -RECALL_MIN_SCORE = float(os.environ.get("MC2_MEMORY_RECALL_MIN_SCORE", "0.5")) -# 25 statt 12: triviale Kurz-Turns (Begrüßung/Quittung) gar nicht erst zum Lernen schicken. -MIN_USER_LEN = int(os.environ.get("MC2_MEMORY_MIN_USER_LEN", "25")) # zu Kurzes nicht lernen -# Anti-Memory-Poisoning (Stufe 0 Security): aus Turns mit untrusted Bildschirm-/Web-Inhalt NICHT -# auto-lernen. Lucys Bildschirm-Sicht prependet diesen Marker an die User-Message (voice.py); auf dem -# Schirm sichtbarer Text könnte Injection-Anweisungen tragen, die sonst DAUERHAFT ins Gedächtnis -# wandern und Tage später ungefragt wiederverwendet werden. -SKIP_UNTRUSTED = os.environ.get("MC2_MEMORY_SKIP_UNTRUSTED", "1") not in ("0", "false", "False", "no") -UNTRUSTED_MARKERS = ("[Bildschirm-Sicht",) -# Lern-Buendelung (Phase 2, 19.07.2026): Die LLM-Extraktion lief bisher nach JEDEM Turn und -# konkurrierte dabei mit Lucys Hirn um die Slots (gleiches Modell, --parallel 2). Jetzt werden -# Turns gesammelt und als EIN Gespraechs-Block extrahiert: nach BATCH_TURNS Turns oder wenn -# BATCH_IDLE_S Sekunden Ruhe war. Ein Batch = ein Extraktionslauf statt N. -BATCH_TURNS = max(1, int(os.environ.get("MC2_MEMORY_BATCH_TURNS", "4"))) -BATCH_IDLE_S = float(os.environ.get("MC2_MEMORY_BATCH_IDLE", "180")) - -# Triviale Turns, die keinen dauerhaften Fakt tragen (reine Begrüßung/Quittung, Aufwärm-/Test- -# Kommandos) → gar nicht erst zum Auto-Lernen schicken. Spart Extraktions-Läufe und verhindert -# Müll-Fakten aus Meta-/Ablauf-Turns. -_TRIVIAL_TURN_RE = re.compile( - r"^\s*(?:(?:hi|hallo|hey|moin|servus|guten\s+(?:morgen|tag|abend)|danke\w*|" - r"ok(?:ay)?|alles\s+klar|passt|super|top|cool|nice|ja|nein|jo|jup|jap)[\s.,!?]*)+$" - r"|^\s*(?:aufw(?:ä|ae)rmen|/?test)\b", - re.IGNORECASE, -) - - -def _is_trivial_turn(text: str) -> bool: - return bool(_TRIVIAL_TURN_RE.search(text or "")) - - -def _headers() -> dict: - return {"X-MC-Token": MC_TOKEN} if MC_TOKEN else {} - - -class MC2MemoryProvider(MemoryProvider): - def __init__(self) -> None: - self._session_id = "" - self._agent_context = "primary" - self._q: queue.Queue[list] = queue.Queue(maxsize=200) - self._worker: threading.Thread | None = None - self._stop = threading.Event() - self._recall_cache: dict[str, str] = {} - # Turn-Puffer der Lern-Buendelung (siehe BATCH_TURNS/BATCH_IDLE_S). - self._buf: list[list[dict[str, str]]] = [] - self._buf_lock = threading.Lock() - self._buf_last_add = 0.0 - - # -- Identität / Verfügbarkeit ------------------------------------------- - def name(self) -> str: - return "mc2-memory" - - def is_available(self) -> bool: - try: - r = httpx.get(f"{MC_URL}/api/health", timeout=3.0) - return r.status_code == 200 - except Exception: - return False - - def initialize(self, session_id: str, **kwargs) -> None: - self._session_id = session_id - # Nur im primären Agent-Kontext lernen (cron/subagent-Systemprompts nicht einlernen). - self._agent_context = kwargs.get("agent_context", "primary") - if self._worker is None or not self._worker.is_alive(): - self._stop.clear() - self._worker = threading.Thread(target=self._run, name="mc2-memory-learn", daemon=True) - self._worker.start() - - def system_prompt_block(self) -> str: - return ( - "Du hast ein dauerhaftes, geteiltes Langzeitgedächtnis (MC2/Mem0). Relevante Fakten " - "werden dir vor einem Turn automatisch eingeblendet; neue dauerhafte Fakten über den " - "Nutzer und das Projekt werden nach dem Turn automatisch gelernt — du musst dafür " - "nichts tun." - ) - - # -- Recall (vor dem Turn) ----------------------------------------------- - def prefetch(self, query: str, *, session_id: str = "") -> str: - q = (query or "").strip() - if len(q) < 3: - return "" - if q in self._recall_cache: - return self._recall_cache[q] - try: - r = httpx.get(f"{MC_URL}/api/memory", params={"q": q}, headers=_headers(), timeout=5.0) - r.raise_for_status() - items = r.json() - except Exception as exc: # nie den Turn blockieren/abbrechen - log.debug("mc2-memory prefetch failed: %s", exc) - return "" - facts = [ - i for i in items - if i.get("score") is None or float(i.get("score", 0)) >= RECALL_MIN_SCORE - ][:RECALL_LIMIT] - out = "" - if facts: - lines = "\n".join(f"- {f.get('content', '')}" for f in facts) - out = f"Relevante Fakten aus dem Langzeitgedächtnis:\n{lines}" - # Cache klein halten - if len(self._recall_cache) > 64: - self._recall_cache.clear() - self._recall_cache[q] = out - return out - - # -- Lernen (nach dem Turn) ---------------------------------------------- - def sync_turn(self, user_content: str, assistant_content: str, *, - session_id: str = "", messages: list[dict[str, Any]] | None = None) -> None: - if self._agent_context != "primary": - return - u = (user_content or "").strip() - if len(u) < MIN_USER_LEN: - return - if _is_trivial_turn(u): - log.debug("mc2-memory: trivialer Turn (Begrüßung/Quittung/Aufwärmen) — Auto-Lernen übersprungen") - return - if SKIP_UNTRUSTED and any(m in u for m in UNTRUSTED_MARKERS): - log.debug("mc2-memory: Turn mit untrusted Bildschirm-/Web-Inhalt — Auto-Lernen übersprungen") - return - msgs: list[dict[str, str]] = [{"role": "user", "content": u}] - a = (assistant_content or "").strip() - # Hermes ≥0.18 liefert optional den vollen Turn-Kontext (`messages`, inkl. Tool-Calls). - # Bewusst NUR die Tool-NAMEN mitlernen ("hat X per Tool Y geprüft") — Tool-ERGEBNISSE - # sind untrusted (Web-Inhalte!) und wären ein Poisoning-Vektor am Junk-Guard vorbei. - if messages: - tools = [] - for m in messages: - for tc in (m.get("tool_calls") or []): - name = ((tc.get("function") or {}).get("name") or "").strip() - if name and name not in tools: - tools.append(name) - if tools: - a = (a + f"\n[genutzte Tools: {', '.join(tools[:6])}]").strip() - if a: - msgs.append({"role": "assistant", "content": a[:4000]}) - with self._buf_lock: - self._buf.append(msgs) - self._buf_last_add = time.time() - full = len(self._buf) >= BATCH_TURNS - if full: - self._drain_buffer() - # Neue Fakten können gelandet sein → Recall-Cache invalidieren. - self._recall_cache.clear() - - def _drain_buffer(self) -> None: - """Gepufferte Turns als EINEN Gespraechs-Block in die Lern-Queue geben.""" - with self._buf_lock: - if not self._buf: - return - merged: list[dict[str, str]] = [] - for turn in self._buf: - merged.extend(turn) - self._buf.clear() - try: - self._q.put_nowait(merged) - except queue.Full: - log.debug("mc2-memory learn queue full — Batch übersprungen") - - def _post_learn(self, msgs: list) -> None: - try: - httpx.post(f"{MC_URL}/api/memory/learn", - json={"messages": msgs, "source": "hermes"}, - headers=_headers(), timeout=90.0) - except Exception as exc: - log.debug("mc2-memory learn POST failed: %s", exc) - - def _run(self) -> None: - while not self._stop.is_set(): - try: - msgs = self._q.get(timeout=5.0) - except queue.Empty: - # Idle-Flush: Ruhe im Gespraech → angesammelte Turns jetzt lernen. - with self._buf_lock: - idle = (self._buf and - time.time() - self._buf_last_add >= BATCH_IDLE_S) - if idle: - self._drain_buffer() - continue - try: - self._post_learn(msgs) - finally: - self._q.task_done() - - def _flush(self) -> None: - """Offene Turns garantiert rausschreiben — bei Session-Ende/CLI-Exit, wo der - Prozess sofort beendet wird (daemon-Worker würde sonst mitten im POST sterben).""" - self._drain_buffer() - self._stop.set() - if self._worker and self._worker.is_alive(): - self._worker.join(timeout=95.0) # laufenden Worker-POST zu Ende lassen - while True: # vom Worker nicht mehr abgeholte Turns - try: - msgs = self._q.get_nowait() - except queue.Empty: - break - self._post_learn(msgs) - - # -- Context-only: keine Agent-Tools → kein Tool-Loop -------------------- - def get_tool_schemas(self) -> list[dict[str, Any]]: - return [] - - def on_session_end(self, messages: list[dict[str, Any]]) -> None: - self._flush() - - def shutdown(self) -> None: - self._flush() - - -def register(ctx) -> None: - ctx.register_memory_provider(MC2MemoryProvider()) diff --git a/hermes/plugins/mc2-memory/plugin.yaml b/hermes/plugins/mc2-memory/plugin.yaml deleted file mode 100644 index dad8806..0000000 --- a/hermes/plugins/mc2-memory/plugin.yaml +++ /dev/null @@ -1,5 +0,0 @@ -name: mc2-memory -version: 1.0.0 -description: "MC2 Memory — context-only Provider, der Hermes ans geteilte Mem0-Gedächtnis (MC2-Sidecar) hängt: automatisches Lernen nach jedem Turn + semantischer Recall davor. Keine Agent-Tools (kein Tool-Loop)." -pip_dependencies: - - httpx diff --git a/mcp/mcp_mc.py b/mcp/mcp_mc.py index c3385c3..085232c 100644 --- a/mcp/mcp_mc.py +++ b/mcp/mcp_mc.py @@ -216,7 +216,7 @@ def system_status() -> str: @mcp.tool() def list_services() -> str: - """Erreichbarkeit aller Stack-Dienste (Engine, Gateway, Hermes, Mem0, Voice).""" + """Erreichbarkeit aller Stack-Dienste (Engine, Gateway, Hermes, Voice).""" data = _get("/api/system/services") return "\n".join( f"{'✅' if s['ok'] else '❌'} {s['name']} ({s['url']})" @@ -227,7 +227,7 @@ def list_services() -> str: @mcp.tool() def restart_service(service: str) -> str: """Startet einen erlaubten Dienst neu. Erlaubt: llama-swap (Engine) | mission-control-2 | - hermes-gateway | hermes-terminal | mem0-service | voice-service. Der Engine-Neustart + hermes-gateway | hermes-terminal | voice-service. Der Engine-Neustart (llama-swap = System-Dienst) kann das Box-Passwort verlangen, wenn kein NOPASSWD gesetzt ist.""" res = _post("/api/system/restart", {"service": service}) return f"Restart {service}: {'ok' if res.get('ok') else 'Fehler — ' + res.get('err', '')}" @@ -235,7 +235,7 @@ def restart_service(service: str) -> str: @mcp.tool() def backup_now() -> str: - """Erstellt SOFORT ein Voll-Backup (mem0 + Configs + Secrets). Nutze dies vor riskanten + """Erstellt SOFORT ein Voll-Backup (Hermes-Configs + Secrets + llama-swap). Nutze dies vor riskanten Änderungen oder wenn der Nutzer ein Backup will.""" r = _post("/api/system/backup") return f"Backup erstellt: {json.dumps(r, ensure_ascii=False)}" diff --git a/mcp/mcp_memory.py b/mcp/mcp_memory.py deleted file mode 100644 index cd98dca..0000000 --- a/mcp/mcp_memory.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python3 -""" -Mission Control 2.0 — Memory MCP Server (geteiltes Gedächtnis für ALLE Tools). - -Stdio-MCP-Server. Läuft als Subprocess von Cline/Claude Code/OpenCode/Hermes. -Ruft die /api/memory-Endpunkte von Mission Control via HTTP auf. - -Tool-Beschreibungen bewusst als GUARDS formuliert (konditional, nicht imperativ), -damit kleine Modelle (z.B. Hermes 14B) nicht in Aufruf-Schleifen laufen. - -Env: MC_URL (default http://192.168.178.151:9001), MC_TOKEN (optional). -Install (auf dem Rechner des Tools): pip install mcp httpx -""" - -import os - -import httpx -from mcp.server.fastmcp import FastMCP - -MC_URL = os.environ.get("MC_URL", "http://192.168.178.151:9001").rstrip("/") -MC_TOKEN = os.environ.get("MC_TOKEN", "") - -mcp = FastMCP("mission-control-memory") - - -def _h() -> dict: - return {"X-MC-Token": MC_TOKEN} if MC_TOKEN else {} - - -def _get(path: str, **params): - r = httpx.get(f"{MC_URL}{path}", headers=_h(), params=params, timeout=10) - r.raise_for_status() - return r.json() - - -def _post(path: str, data: dict): - r = httpx.post(f"{MC_URL}{path}", headers=_h(), json=data, timeout=10) - r.raise_for_status() - return r.json() - - -def _put(path: str, data: dict): - r = httpx.put(f"{MC_URL}{path}", headers=_h(), json=data, timeout=10) - r.raise_for_status() - return r.json() - - -def _delete(path: str): - r = httpx.delete(f"{MC_URL}{path}", headers=_h(), timeout=10) - r.raise_for_status() - return r.json() - - -@mcp.tool() -def get_memories(category: str = "") -> str: - """Lädt gespeicherte Fakten/Entscheidungen aus dem geteilten Gedächtnis. - Nutze dies EINMAL am Session-Beginn, wenn du Projekt-Kontext brauchst — nicht wiederholt. - category: identity | knowledge | rules | events | (leer = alle)""" - items = _get("/api/memory", **({"category": category} if category else {})) - if not items: - return "Keine Memories gespeichert." - icon = {"identity": "👤", "knowledge": "🔵", "rules": "📋", "events": "🕒"} - return "\n".join( - f"{icon.get(m['category'], '·')} [{m['category']}] {m['content']} (ID: {m['id'][:8]})" - for m in items - ) - - -@mcp.tool() -def search_memories(q: str) -> str: - """Sucht SEMANTISCH (nach Bedeutung, nicht nur Stichwort) in den Fakten. Nutze dies - VOR add_memory (Dubletten-Check) oder wenn du eine konkrete frühere Entscheidung suchst. - Treffer sind nach Relevanz sortiert.""" - items = _get("/api/memory", q=q) - if not items: - return f"Keine Treffer für '{q}'." - def _line(m): - sc = f" {m['score']:.2f}" if isinstance(m.get("score"), (int, float)) else "" - return f"[{m['category']}{sc}] {m['content']} (ID: {m['id'][:8]})" - return "\n".join(_line(m) for m in items) - - -@mcp.tool() -def add_memory(content: str, category: str = "knowledge", source: str = "agent") -> str: - """Speichert EINEN dauerhaften Fakt im geteilten Gedächtnis (alle Tools sehen ihn). - Nur aufrufen, WENN gerade etwas Dauerhaftes entstanden ist (Konvention, Architektur- - Entscheidung, Tech-Version, Nutzer-Präferenz) UND es noch nicht existiert (vorher - search_memories!). Knapp & atomar. Existiert ein passender Eintrag → update_memory. - category: identity (Nutzer/Vorlieben) | knowledge (Fakten/Stack) | rules (Regeln/Konventionen) | events (Ereignisse/Entscheidungen)""" - m = _post("/api/memory", {"content": content, "category": category, "source": source}) - return f"Gespeichert (ID: {m['id'][:8]}): {content}" - - -@mcp.tool() -def update_memory(memory_id: str, content: str = "", category: str = "") -> str: - """Aktualisiert einen bestehenden Eintrag (nur gesetzte Felder).""" - data = {k: v for k, v in (("content", content), ("category", category)) if v} - if not data: - return "Nichts zu aktualisieren." - m = _put(f"/api/memory/{memory_id}", data) - return f"Aktualisiert: {m['content']}" - - -@mcp.tool() -def delete_memory(memory_id: str) -> str: - """Löscht einen veralteten/falschen Eintrag anhand seiner ID.""" - _delete(f"/api/memory/{memory_id}") - return f"Eintrag {memory_id[:8]} gelöscht." - - -@mcp.tool() -def learn(text: str) -> str: - """Lässt das Gedächtnis AUTOMATISCH aus einem Gesprächsausschnitt lernen: reiche - rohe Nutzer-Aussagen/Turns durch — das Gedächtnis EXTRAHIERT die dauerhaften Fakten - selbst und mischt sie ein (ohne Dubletten). Nutze dies, wenn der Nutzer beiläufig etwas - Dauerhaftes über sich/seine Vorlieben/das Projekt erwähnt hat — du musst nicht selbst - den Fakt formulieren. Für einen bereits fertig formulierten Einzel-Fakt → add_memory.""" - res = _post("/api/memory/learn", {"text": text}) - items = res.get("results", []) if isinstance(res, dict) else [] - learned = [r for r in items if r.get("event") in (None, "ADD", "UPDATE")] - if not learned: - return "Nichts Neues gelernt (keine dauerhaften Fakten erkannt)." - return "Gelernt:\n" + "\n".join(f"· {r.get('content')}" for r in learned) - - -if __name__ == "__main__": - mcp.run() diff --git a/mem0_service/app.py b/mem0_service/app.py deleted file mode 100644 index 22beda9..0000000 --- a/mem0_service/app.py +++ /dev/null @@ -1,483 +0,0 @@ -#!/usr/bin/env python3 -""" -Mem0-Sidecar für Mission Control 2.0 — das auto-lernende, semantische Gedächtnis. - -WARUM ein eigener Dienst? Mem0 + chromadb laufen nur unter Python 3.12 (`~/.mem0/venv`), -das MC2-Backend aber unter Python 3.14 (kann mem0 nicht importieren). Darum kapselt dieser -schlanke FastAPI-Dienst die Mem0-Memory-Instanz und exponiert sie auf localhost. MC2 -(`backend/services/memory.py`) spricht ihn per HTTP an — die `/api/memory`-API-Form bleibt -nach außen unverändert (UI + MCP-Server kompatibel). - -Aufbau: -- Vektor-Store : Chroma embedded (kein Docker auf der Box) — Pfad MEM0_CHROMA_PATH. -- Embeddings : llama.cpp `embed`-Rolle über llama-swap (/v1/embeddings, 1024 Dim). -- LLM-Extraktion: lokales `fast`-Hirn (Qwen3.6) über llama-swap (/v1/chat/completions). - Thinking wird abgeschaltet (NoThinkLLM), sonst bricht die JSON-Extraktion ab. - -Läuft als systemd-User-Dienst (deploy/mem0-service.service) im `~/.mem0/venv`. -Bind: 127.0.0.1 (nur lokal; MC2 proxyt nach außen). -""" - -import logging -import os -import re -from contextlib import asynccontextmanager - -from fastapi import FastAPI, HTTPException -from mem0 import Memory -from mem0.configs.llms.openai import OpenAIConfig -from mem0.llms.openai import OpenAILLM -from pydantic import BaseModel - -log = logging.getLogger("mem0_service") - -# --- Konfiguration (alles über Env überschreibbar; Defaults = Box-Stand) ---------- -USER_ID = os.environ.get("MEM0_USER_ID", "mission-control") # ein geteiltes Gehirn -EMBED_URL = os.environ.get("MEM0_EMBED_URL", "http://127.0.0.1:8080/v1") -LLM_URL = os.environ.get("MEM0_LLM_URL", "http://127.0.0.1:8080/v1") -EMBED_MODEL = os.environ.get("MEM0_EMBED_MODEL", "embed") -LLM_MODEL = os.environ.get("MEM0_LLM_MODEL", "fast") -EMBED_DIMS = int(os.environ.get("MEM0_EMBED_DIMS", "1024")) -CHROMA_PATH = os.environ.get("MEM0_CHROMA_PATH", "/srv/models/mem0/chroma") -HISTORY_DB = os.environ.get("MEM0_HISTORY_DB", "/srv/models/mem0/history.db") -COLLECTION = os.environ.get("MEM0_COLLECTION", "mc2") -API_KEY = os.environ.get("MEM0_API_KEY", "sk-local") # llama.cpp ignoriert den Key -LLM_MAX_TOKENS = int(os.environ.get("MEM0_LLM_MAX_TOKENS", "2048")) -SEARCH_TOP_K = int(os.environ.get("MEM0_SEARCH_TOP_K", "50")) - -# --- Rerank-Zweitstufe (07.07.2026): Die Vektor-Suche findet ÄHNLICHES, der Reranker ordnet -# nach ECHTER Relevanz (Qwen3-Reranker via llama-swap /v1/rerank). Es ändert sich NUR die -# Reihenfolge: `score` bleibt der Vektor-Score (RECALL_MIN_SCORE im Hermes-Plugin bleibt -# kalibriert), Konsumenten, die vorne abschneiden (RECALL_LIMIT), bekommen automatisch die -# relevantesten Fakten. Jeder Fehler → lautlos Vektor-Reihenfolge (Gedächtnis bricht NIE). -RERANK_ENABLED = os.environ.get("MC_RERANK_ENABLED", "1") != "0" -RERANK_URL = os.environ.get("MC_RERANK_URL", "http://127.0.0.1:8080/v1/rerank") -RERANK_MODEL = os.environ.get("MC_RERANK_MODEL", "Qwen3-Reranker-0.6B") -RERANK_TIMEOUT = float(os.environ.get("MC_RERANK_TIMEOUT", "8")) -RERANK_CANDIDATES = int(os.environ.get("MC_RERANK_CANDIDATES", "20")) # nur die Top-N neu ordnen (Latenz) - -# Kategorien = fundierte Memory-Taxonomie (semantisch/prozedural/episodisch), bewusst knapp (4). -# Mem0-OSS kann nicht nativ klassifizieren (Cloud-Feature) → wir lassen das Hirn beim Lernen -# einordnen (classify_facts). Die Beschreibungen steuern die Treffsicherheit der Auto-Zuordnung. -CATEGORIES = ("identity", "knowledge", "rules", "events") -DEFAULT_CATEGORY = "knowledge" -CATEGORY_DESCRIPTIONS = { - "identity": "Identität & Vorlieben des Nutzers: wer er ist (Name, Rolle), wie er angesprochen werden " - "will, persönliche Vorlieben und seine Arbeitsweise.", - "knowledge": "Wissen & Fakten: stabile Fakten über Stack, Projekte, Tools, Infrastruktur und Umgebung.", - "rules": "Regeln & Konventionen: verbindliche Anweisungen und Workflows — wie etwas gemacht werden " - "soll, Do's und Don'ts.", - "events": "Ereignisse & Entscheidungen: was passiert ist, getroffene Entscheidungen, zeitgebundene Vorgänge.", -} - - -class NoThinkLLM(OpenAILLM): - """`fast` (Qwen3.6) ist ein Thinking-Modell. Unter response_format=json_object - verbrennt das Reasoning Tokens und schneidet die JSON-Fakten ab (leeres Ergebnis). - `enable_thinking=false` (chat_template_kwargs) → deterministische, schnelle Extraktion.""" - - def generate_response(self, messages, response_format=None, tools=None, - tool_choice="auto", **kwargs): - eb = dict(kwargs.pop("extra_body", {}) or {}) - eb.setdefault("chat_template_kwargs", {"enable_thinking": False}) - return super().generate_response( - messages, response_format=response_format, tools=tools, - tool_choice=tool_choice, extra_body=eb, **kwargs, - ) - - -def build_memory() -> Memory: - os.environ.setdefault("OPENAI_API_KEY", API_KEY) - os.environ.setdefault("TOKENIZERS_PARALLELISM", "false") - os.makedirs(CHROMA_PATH, exist_ok=True) - os.makedirs(os.path.dirname(HISTORY_DB), exist_ok=True) - cfg = { - "vector_store": {"provider": "chroma", "config": { - "collection_name": COLLECTION, "path": CHROMA_PATH}}, - "embedder": {"provider": "openai", "config": { - "model": EMBED_MODEL, "embedding_dims": EMBED_DIMS, - "openai_base_url": EMBED_URL, "api_key": API_KEY}}, - "llm": {"provider": "openai", "config": { - "model": LLM_MODEL, "openai_base_url": LLM_URL, "api_key": API_KEY, - "temperature": 0.1, "max_tokens": LLM_MAX_TOKENS}}, - "history_db_path": HISTORY_DB, - # Sprache zwingend Deutsch erzwingen — mem0s englischer Extraktions-Prompt zieht sonst - # Richtung Englisch. Eigennamen/Fachbegriffe bleiben unangetastet. - "custom_instructions": ( - "RELEVANZ (ZWINGEND, WICHTIGSTE REGEL): Extrahiere NUR dauerhaft nützliche Fakten ÜBER DEN " - "NUTZER (Identität, Vorlieben, Arbeitsweise), seine Projekte/Entscheidungen/Stände, stabile " - "Fakten über Stack/Tools/Infrastruktur sowie verbindliche Regeln und Workflows. " - "NIEMALS FAKTEN ÜBER DEN ASSISTENTEN SELBST (ZWINGEND): Extrahiere KEINE Aussagen über den " - "Assistenten/die KI (Hermes, Lucy), seine Fähigkeiten, seinen Zustand, seine Tools/MCP-Server, " - "seine Cronjobs, Commit-/Versionsstände oder welche Modelle er nutzt. Das Subjekt eines Fakts " - "ist IMMER der Nutzer oder sein Projekt — niemals 'der Assistent', 'Hermes' oder 'Lucy'. " - "KEINE ZEITGEBUNDENEN ZUSTÄNDE: Ignoriere transiente Momentaufnahmen (Fehler-/Job-Läufe, " - "Commit-Rückstand, Versions-Updates, 'gerade dabei'-/'hochgefahren'-/'aufgewärmt'-Status, " - "Test- und Onboarding-Fragen). IGNORIERE VOLLSTÄNDIG und gib KEINE Fakten zurück bei: " - "Tagesnachrichten und Welt-/Politik-/Börsen-/Promi-Ereignissen, Wetter, allgemeinem Weltwissen " - "ohne Bezug zum Nutzer, vom Assistenten erzeugten Zusammenfassungen oder Recherche-Ergebnissen, " - "Smalltalk, sowie Meta-Aussagen über den Gesprächsverlauf (z.B. 'der Nutzer fragt nach X', " - "'der Nutzer möchte Y prüfen', 'der Assistent tat Z'). Speichere nur, was in Wochen noch " - "nützlich ist; im Zweifel NICHT speichern. " - "SPRACHE (ZWINGEND): Formuliere ALLE Fakten auf DEUTSCH — unabhängig von der " - "Eingabesprache, niemals auf Englisch übersetzen. Eigennamen, Befehle, Pfade, Modell- und " - "Produktnamen sowie etablierte Fachbegriffe (z.B. PowerShell-Push, Deploy, Qwen3.6, Neovim, " - "Vulkan) bleiben unverändert. Schreibe jeden Fakt knapp und atomar — genau eine Aussage." - ), - } - m = Memory.from_config(cfg) - # LLM gegen die Thinking-freie Variante tauschen (gleiche Verbindung). - m.llm = NoThinkLLM(OpenAIConfig( - model=LLM_MODEL, openai_base_url=LLM_URL, api_key=API_KEY, - temperature=0.1, max_tokens=LLM_MAX_TOKENS, - )) - return m - - -_mem: Memory | None = None - - -def mem() -> Memory: - global _mem - if _mem is None: - _mem = build_memory() - return _mem - - -@asynccontextmanager -async def lifespan(_app: FastAPI): - logging.basicConfig(level=logging.INFO) - try: - mem() # Memory beim Start aufbauen (Chroma öffnen, Modelle anpingen) - log.info("Mem0 bereit (chroma=%s, embed=%s, llm=%s)", CHROMA_PATH, EMBED_MODEL, LLM_MODEL) - except Exception: - log.exception("Mem0-Init fehlgeschlagen (Dienst läuft, /health meldet down)") - yield - - -app = FastAPI(title="MC2 Mem0 Sidecar", lifespan=lifespan) - - -# --- Mapping Mem0 <-> MC2-API-Form ----------------------------------------------- -def _to_item(r: dict, score=None) -> dict: - meta = r.get("metadata") or {} - out = { - "id": r.get("id"), - "content": r.get("memory", ""), - "category": meta.get("category") or "stable", - "bereich": meta.get("bereich") or "", - "source": meta.get("source") or "auto", - "created_at": r.get("created_at") or "", - "updated_at": r.get("updated_at") or r.get("created_at") or "", - } - if score is not None: - try: - out["score"] = round(float(score), 4) - except (TypeError, ValueError): - pass - return out - - -class MemIn(BaseModel): - content: str - category: str = DEFAULT_CATEGORY - source: str = "manual" - - -class MemUp(BaseModel): - content: str | None = None - category: str | None = None - - -class LearnIn(BaseModel): - text: str | None = None - messages: list[dict] | None = None - source: str = "auto" - category: str = DEFAULT_CATEGORY - classify: bool = True # Hirn ordnet die gelernten Fakten automatisch ein - - -@app.get("/health") -def health() -> dict: - try: - mem().get_all(filters={"user_id": USER_ID}, top_k=1) - return {"ok": True} - except Exception as exc: - raise HTTPException(503, f"mem0 nicht bereit: {exc}") - - -def _rerank(query: str, items: list[dict]) -> list[dict]: - """Suchtreffer nach echter Relevanz umordnen; bei jedem Fehler unverändert zurück.""" - if not (RERANK_ENABLED and len(items) > 1): - return items - try: - import httpx - r = httpx.post(RERANK_URL, json={ - "model": RERANK_MODEL, - "query": query, - "documents": [i.get("content", "") for i in items], - "top_n": len(items), - }, timeout=RERANK_TIMEOUT) - r.raise_for_status() - results = r.json().get("results") or [] - ranked = [] - for s in sorted(results, key=lambda x: x.get("relevance_score", 0.0), reverse=True): - idx = s.get("index") - if isinstance(idx, int) and 0 <= idx < len(items): - item = dict(items[idx]) - item["rerank_score"] = round(float(s.get("relevance_score", 0.0)), 4) - ranked.append(item) - # Nur übernehmen, wenn der Reranker ALLE Kandidaten bewertet hat (sonst Verlustgefahr). - return ranked if len(ranked) == len(items) else items - except Exception as exc: - log.debug("rerank übersprungen: %s", exc) - return items - - -@app.get("/memory") -def list_memory(q: str = "", category: str = "", bereich: str = "") -> list[dict]: - """q gesetzt → semantische Suche (mit Relevanz-Score). Sonst → alle Fakten. - bereich='alltag'|'projekt' filtert (Fakten OHNE Bereichs-Feld laufen immer mit, - damit Alt-Bestand nie verschwindet).""" - if q: - res = mem().search(q, filters={"user_id": USER_ID}, top_k=SEARCH_TOP_K) - items = [_to_item(r, r.get("score")) for r in res.get("results", [])] - # Zweitstufe: die vorderen Kandidaten nach echter Relevanz ordnen (Rest bleibt hinten dran). - items = _rerank(q, items[:RERANK_CANDIDATES]) + items[RERANK_CANDIDATES:] - else: - res = mem().get_all(filters={"user_id": USER_ID}, top_k=1000) - items = [_to_item(r) for r in res.get("results", [])] - items.sort(key=lambda i: i.get("created_at", ""), reverse=True) - if category: - items = [i for i in items if i["category"] == category] - if bereich in ("alltag", "projekt"): - items = [i for i in items if i.get("bereich") in (bereich, "")] - return items - - -@app.post("/memory", status_code=201) -def add_memory(body: MemIn) -> dict: - """Manueller/agentischer Einzel-Fakt → VERBATIM speichern (infer=False, keine - LLM-Umformung). Auto-Lernen aus Gesprächen läuft über /learn (infer=True).""" - content = body.content.strip() - if not content: - raise HTTPException(400, "content leer") - res = mem().add( - [{"role": "user", "content": content}], - user_id=USER_ID, infer=False, - metadata={"category": body.category, "source": body.source}, - ) - results = res.get("results", []) - if not results: - raise HTTPException(500, "Mem0 hat nichts gespeichert") - new_id = results[0]["id"] - full = mem().get(new_id) or {} - return _to_item(full) if full else _to_item({"id": new_id, "memory": content, - "metadata": {"category": body.category, "source": body.source}}) - - -@app.put("/memory/{mid}") -def update_memory(mid: str, body: MemUp) -> dict: - existing = mem().get(mid) - if not existing: - raise HTTPException(404, "Eintrag nicht gefunden") - cur = _to_item(existing) - new_content = body.content.strip() if body.content is not None else cur["content"] - new_cat = body.category if body.category is not None else cur["category"] - mem().update(mid, data=new_content, - metadata={"category": new_cat, "source": cur["source"]}) - full = mem().get(mid) or {} - return _to_item(full) - - -@app.delete("/memory/{mid}") -def delete_memory(mid: str) -> dict: - if not mem().get(mid): - raise HTTPException(404, "Eintrag nicht gefunden") - mem().delete(mid) - return {"ok": True} - - -@app.get("/graph") -def graph(min_score: float = 0.45, top_k: int = 3) -> dict: - """Fakten als Graph: Knoten = Fakten, Kanten = semantische Ähnlichkeit (Kosinus - der gespeicherten Embeddings, je Knoten die top_k Nachbarn ≥ min_score). Für die - Obsidian-artige Gedächtnis-Visualisierung im UI.""" - items = mem().get_all(filters={"user_id": USER_ID}, top_k=2000).get("results", []) - nodes = [_to_item(r) for r in items] - node_ids = [n["id"] for n in nodes] - idx = {nid: i for i, nid in enumerate(node_ids)} - - # Embeddings direkt aus der Chroma-Collection ziehen (kein Re-Embedding). - col = mem().vector_store.collection - raw = col.get(include=["embeddings"]) - raw_ids = raw.get("ids") or [] - raw_embs = raw.get("embeddings") - edges: list[dict] = [] - vecs = [None] * len(node_ids) - have = 0 - if raw_embs is not None: - for rid, emb in zip(raw_ids, raw_embs): - if rid in idx and emb is not None: - vecs[idx[rid]] = emb - have += 1 - - if have >= 2: - import numpy as np - present = [i for i, v in enumerate(vecs) if v is not None] - M = np.array([vecs[i] for i in present], dtype=float) - norms = np.linalg.norm(M, axis=1, keepdims=True) - norms[norms == 0] = 1.0 - Mn = M / norms - sim = Mn @ Mn.T - seen: set[tuple[int, int]] = set() - for a in range(len(present)): - order = np.argsort(-sim[a]) - cnt = 0 - for b in order: - if b == a: - continue - s = float(sim[a][b]) - if s < min_score: - break - i, j = present[a], present[b] - key = (min(i, j), max(i, j)) - if key not in seen: - seen.add(key) - edges.append({"source": node_ids[i], "target": node_ids[j], - "weight": round(s, 3)}) - cnt += 1 - if cnt >= top_k: - break - return {"nodes": nodes, "edges": edges} - - -def classify_facts(facts: list[tuple[str, str]]) -> dict: - """Ordnet jeden Fakt per LLM einer Kategorie UND einem Bereich zu → - {id: {"category": , "bereich": "alltag"|"projekt"}}. - - Bereich (19.07.2026, Trennung der Welten): "alltag" = der Nutzer als Person - (Vorlieben, Leben, Arbeitsweise, Entscheidungen), "projekt" = Technik-/Code-/ - Infrastruktur-Stände. Grundlage für einen späteren Recall-Filter, damit - Projekt-Schutt nicht in Alltags-Gespräche streut — OHNE zweites Gedächtnis. - Nutzt dasselbe (Thinking-freie) Hirn wie die Extraktion. Fehler = leeres Mapping.""" - if not facts: - return {} - import json as _json - import re as _re - cat_lines = "\n".join(f"- {k}: {v}" for k, v in CATEGORY_DESCRIPTIONS.items()) - system = ( - "Du bist ein präziser Klassifikator für ein Langzeitgedächtnis. Ordne jeden Fakt GENAU EINER " - "Kategorie zu. Verfügbare Kategorien (nur diese Slugs verwenden):\n" + cat_lines + - "\nOrdne zusätzlich jeden Fakt GENAU EINEM Bereich zu: 'alltag' (der Nutzer als Person: " - "Vorlieben, Leben, Anrede, Arbeitsweise, grundsätzliche Entscheidungen) oder 'projekt' " - "(Technik: Code, Modelle, Server, Infrastruktur, Projekt- und Fehlerstände). " - "Antworte NUR als JSON-Objekt der Form " - "{\"\": {\"kategorie\": \"\", \"bereich\": \"alltag|projekt\"}, …}." - ) - body = "\n".join(f"{fid}: {txt}" for fid, txt in facts) - try: - resp = mem().llm.generate_response( - messages=[{"role": "system", "content": system}, - {"role": "user", "content": "Fakten:\n" + body}], - response_format={"type": "json_object"}, - ) - m = _re.search(r"\{.*\}", resp or "", _re.DOTALL) - data = _json.loads(m.group(0)) if m else {} - out: dict = {} - for k, v in data.items(): - if isinstance(v, str): # Alt-Form {"id": "slug"} weiter akzeptieren - if v in CATEGORIES: - out[str(k)] = {"category": v, "bereich": ""} - elif isinstance(v, dict): - cat = v.get("kategorie") or v.get("category") or "" - ber = v.get("bereich") or "" - if cat in CATEGORIES or ber in ("alltag", "projekt"): - out[str(k)] = {"category": cat if cat in CATEGORIES else DEFAULT_CATEGORY, - "bereich": ber if ber in ("alltag", "projekt") else ""} - return out - except Exception: - log.exception("Auto-Klassifikation fehlgeschlagen") - return {} - - -# Deterministischer Guard: mem0-OSS extrahiert trotz custom_instructions hartnäckig Fakten ÜBER -# den Assistenten selbst (Hermes/Lucy) und transiente Zustände (Commit-Rückstand, Cronjob-Läufe, -# Onboarding-/Test-Fragen). Diese Muster werden nach der Extraktion verworfen (der Fakt wird wieder -# gelöscht) — reine Sicherungsschicht, unabhängig vom Extraktions-LLM. -_JUNK_FACT_PATTERNS = [ - r"^\s*(?:der|die|das)\s+assistent", # "Der Assistent ..." (Selbstbeschreibung) - r"\bassistent(?:in)?\s+(?:hermes|lucy)\b", # "... Assistent Hermes/Lucy ..." - r"\bhermes[- ]agent\b", - r"commits?\s+hinter", # Versions-Rückstand (transient) - r"\bcronjob\b", - r"beim\s+letzten\s+(?:lauf|mal)", - r"onboarding[-\s]?frage|\btest-?frage\b", - r"hat\s+den\s+assistenten\s+gebeten", - r"auf\s+betriebstemperatur|hochgefahren", - r"aktualisiert\s+sein\s+ged(?:ä|ae)chtnis", # Selbst-Meta über das Gedächtnis -] -_JUNK_FACT_RE = re.compile("|".join(_JUNK_FACT_PATTERNS), re.IGNORECASE) - - -def _is_junk_fact(text: str) -> bool: - """True, wenn der extrahierte Fakt Assistenten-Meta oder ein transienter Zustand ist.""" - return bool(_JUNK_FACT_RE.search(text or "")) - - -@app.post("/learn") -def learn(body: LearnIn) -> dict: - """Auto-Lernen: Gesprächs-Turns/Text durchreichen → Mem0 EXTRAHIERT Fakten selbst - (infer=True). Anschließend ordnet das Hirn jeden neuen Fakt automatisch einer Kategorie zu.""" - msgs = body.messages - if not msgs and body.text: - msgs = [{"role": "user", "content": body.text}] - if not msgs: - raise HTTPException(400, "text oder messages erforderlich") - res = mem().add( - msgs, user_id=USER_ID, infer=True, - metadata={"category": body.category, "source": body.source}, - ) - results = res.get("results", []) - - # Guard: frisch extrahierte Assistenten-Meta/transiente Fakten sofort wieder verwerfen. - kept = [] - for r in results: - if r.get("event") in ("ADD", "UPDATE") and _is_junk_fact(r.get("memory", "")): - try: - mem().delete(r["id"]) - except Exception: - log.debug("Junk-Fakt-Löschung fehlgeschlagen für %s", r.get("id")) - log.info("mem0 guard: Junk-Fakt verworfen: %s", (r.get("memory") or "")[:80]) - continue - kept.append(r) - results = kept - - cats: dict = {} - if body.classify: - to_classify = [(r["id"], r.get("memory", "")) for r in results - if r.get("id") and r.get("memory") and r.get("event") in ("ADD", "UPDATE")] - cats = classify_facts(to_classify) - for r in results: - info = cats.get(r.get("id")) - if info: - meta = {"category": info["category"], "source": body.source} - if info.get("bereich"): - meta["bereich"] = info["bereich"] - try: - mem().update(r["id"], data=r.get("memory", ""), metadata=meta) - except Exception: - log.debug("Kategorie-Update fehlgeschlagen für %s", r.get("id")) - - return {"results": [ - {"id": r.get("id"), "content": r.get("memory"), "event": r.get("event"), - "category": (cats.get(r.get("id")) or {}).get("category", body.category), - "bereich": (cats.get(r.get("id")) or {}).get("bereich", "")} - for r in results - ]} - - -if __name__ == "__main__": - import uvicorn - - uvicorn.run(app, host="127.0.0.1", port=int(os.environ.get("MEM0_PORT", "8765"))) diff --git a/mem0_service/migrate.py b/mem0_service/migrate.py deleted file mode 100644 index 65b9c57..0000000 --- a/mem0_service/migrate.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python3 -""" -Einmalige Migration: alte SQLite-Fakten (`memories`-Tabelle aus dem v1/v2-Memory) -→ Mem0. Läuft im ~/.mem0/venv. Idempotent über eine Marker-Datei. - -Jeder Alt-Eintrag wird VERBATIM übernommen (infer=False), Kategorie/Source als -Metadaten. Beim aktuellen Box-Stand ist die DB leer → No-Op, aber für -Reproduzierbarkeit/künftige Migrationen vorhanden. - -Aufruf: ~/.mem0/venv/bin/python migrate.py [pfad/zur/mc2-memory.db] -""" - -import os -import sqlite3 -import sys - -from app import USER_ID, mem # nutzt dieselbe Mem0-Instanz/Config - -DEFAULT_DB = os.environ.get("MC_MEMORY_DB", "/srv/models/mc2-memory.db") -MARKER = os.environ.get("MEM0_MIGRATION_MARKER", "/srv/models/mem0/.migrated_sqlite") - - -def main() -> int: - db_path = sys.argv[1] if len(sys.argv) > 1 else DEFAULT_DB - if os.path.exists(MARKER): - print(f"Migration bereits erledigt (Marker {MARKER}).") - return 0 - if not os.path.exists(db_path): - print(f"Keine Alt-DB unter {db_path} — nichts zu migrieren.") - os.makedirs(os.path.dirname(MARKER), exist_ok=True) - open(MARKER, "w").close() - return 0 - - conn = sqlite3.connect(db_path) - conn.row_factory = sqlite3.Row - try: - rows = conn.execute( - "SELECT content, category, source FROM memories ORDER BY created_at" - ).fetchall() - except sqlite3.OperationalError: - rows = [] - conn.close() - - m = mem() - n = 0 - for r in rows: - content = (r["content"] or "").strip() - if not content: - continue - m.add([{"role": "user", "content": content}], user_id=USER_ID, infer=False, - metadata={"category": r["category"] or "stable", - "source": r["source"] or "migrated"}) - n += 1 - - os.makedirs(os.path.dirname(MARKER), exist_ok=True) - open(MARKER, "w").close() - print(f"Migriert: {n} Einträge aus {db_path} → Mem0.") - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/mem0_service/requirements.txt b/mem0_service/requirements.txt deleted file mode 100644 index d4cc504..0000000 --- a/mem0_service/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -# Mem0-Sidecar-Deps im ~/.mem0/venv (Python 3.12). BEWUSST GEPINNT — Upgrades nur -# absichtlich, weil der Sidecar mem0-INTERNA nutzt (NoThink-LLM-Swap, Roh-Zugriff auf die -# Chroma-Collection für den Graphen, Annahmen übers Result-Format). Ein unkontrolliertes -# mem0/chromadb-Upgrade kann das still brechen. -# Upgrade-Prozedur (Backup → Pin anheben → smoke_test.py): siehe docs/UPGRADE.md. -mem0ai==2.0.8 -chromadb==1.5.9 -fastapi==0.138.1 -uvicorn[standard]==0.49.0 diff --git a/mem0_service/smoke_test.py b/mem0_service/smoke_test.py deleted file mode 100644 index c198dd0..0000000 --- a/mem0_service/smoke_test.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python3 -""" -Smoke-Test für den Mem0-Sidecar — VOR und NACH jedem mem0/chromadb-Upgrade laufen lassen. -Prüft genau die Pfade, die mem0-INTERNA nutzen (LLM-Extraktion/NoThink, Auto-Einordnung, -Embeddings/Suche, Roh-Chroma-Graph). Nutzt eine WEGWERF-Collection unter /tmp — das echte -Gedächtnis (/srv/models/mem0) wird NICHT angefasst. - -Aufruf: ~/.mem0/venv/bin/python ~/mission-control-v2/mem0_service/smoke_test.py -Exit 0 = alles grün, sonst 1. -""" - -import os -import shutil -import sys -import tempfile -import time - -# WICHTIG: Env vor dem Import von app setzen (app liest die Pfade beim Modul-Load). -_TMP = tempfile.mkdtemp(prefix="mem0_smoke_") -os.environ["MEM0_CHROMA_PATH"] = os.path.join(_TMP, "chroma") -os.environ["MEM0_HISTORY_DB"] = os.path.join(_TMP, "history.db") -os.environ["MEM0_COLLECTION"] = f"smoke_{int(time.time())}" - -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) -import app - -_fails: list[str] = [] - - -def check(name: str, cond: bool, detail: str = "") -> None: - print(("PASS" if cond else "FAIL"), "—", name, ("" if cond else f":: {detail}")) - if not cond: - _fails.append(name) - - -def main() -> int: - app.mem() # Memory bauen (öffnet Chroma, pingt Modelle) - - # 1) Verbatim add + Rücklesen - r = app.add_memory(app.MemIn(content="Smoke: der Himmel ist blau.", category="knowledge", source="smoke")) - check("verbatim add + get", bool(r.get("id")) and "blau" in r.get("content", ""), str(r)[:160]) - - # 2) Embeddings / semantische Suche (Bedeutung, nicht Wort) - res = app.list_memory(q="Welche Farbe hat der Himmel?") - check("semantische Suche", any("blau" in i.get("content", "") for i in res), str(res)[:160]) - - # 3) Auto-Lernen: LLM-Extraktion (NoThink) + Deutsch erzwungen - lr = app.learn(app.LearnIn(text="Ich heiße Max und programmiere am liebsten in Go.", source="smoke")) - items = lr.get("results", []) - check("Auto-Lernen extrahiert Fakten", len(items) > 0, str(lr)[:160]) - joined = " ".join((i.get("content") or "") for i in items).lower() - check("Extraktion auf Deutsch", any(w in joined for w in ("heißt", "programmiert", "mag", "bevorzugt", "name", "nutzt")), joined[:160]) - - # 4) Auto-Einordnung in die 4 gültigen Kategorien - cats = {i.get("category") for i in items if i.get("category")} - check("Auto-Einordnung gültige Kategorie", bool(cats) and cats <= set(app.CATEGORIES), str(cats)) - - # 5) Graph aus den Roh-Embeddings (Chroma-Interna) - g = app.graph() - check("Graph liefert Knoten", len(g.get("nodes", [])) >= 1, str({k: len(v) for k, v in g.items()})) - - print("\n" + ("ALLE TESTS GRÜN ✓" if not _fails else f"FEHLGESCHLAGEN: {_fails}")) - return 0 if not _fails else 1 - - -if __name__ == "__main__": - try: - code = main() - finally: - shutil.rmtree(_TMP, ignore_errors=True) - sys.exit(code)